UNPKG

johnny-five

Version:

The JavaScript Robotics and Hardware Programming Framework. Use with: Arduino (all models), Electric Imp, Beagle Bone, Intel Galileo & Edison, Linino One, Pinoccio, pcDuino3, Raspberry Pi, Particle/Spark Core & Photon, Tessel 2, TI Launchpad and more!

68 lines (55 loc) 1.37 kB
var Animation = require("../animation"); var Led = require("./led"); var callbacks = require("./callbacks"); var Collection = require("../mixins/collection"); /** * Leds() * new Leds() * * Create an Array-like object instance of Leds * @alias Led.Array * @constructor * @return {Leds} */ function Leds(numsOrObjects) { if (!(this instanceof Leds)) { return new Leds(numsOrObjects); } Object.defineProperty(this, "type", { value: Led }); Collection.call(this, numsOrObjects); } Leds.prototype = Object.create(Collection.prototype, { constructor: { value: Leds } }); Collection.installMethodForwarding( Leds.prototype, Led.prototype ); callbacks(Leds, ["pulse", "fade", "fadeIn", "fadeOut", "blink"]); /** * Animation.normalize * * @param [number || object] keyFrames An array of step values or a keyFrame objects */ Leds.prototype[Animation.normalize] = function(keyFrameSet) { return keyFrameSet.map(function(keyFrames, index) { if (keyFrames !== null) { return this[index][Animation.normalize](keyFrames); } return keyFrames; }, this); }; /** * Animation.render * * @position [number] array of values to set the leds to */ Leds.prototype[Animation.render] = function(frames) { return this.each(function(led, i) { led[Animation.render]([frames[i]]); }); }; module.exports = Leds;