UNPKG

led-matrix-ts

Version:

Highly customizable led matrix for the browser

76 lines 2.1 kB
import { Event } from "../utils/event"; import { PanelPlayer } from "./panel-player"; import { CanvasRenderers } from "./rendering/canvas-renderers"; export class LedMatrixPlayer { constructor(sequence, params) { this.onReady = new Event(); this._params = this._validateParameters(params); this._panelPlayer = new PanelPlayer({ fps: this._params.fps, renderer: this._params.renderer, sequence: sequence }); this.event = { panelUpdate: this._panelPlayer.PanelUpdate, reachingBoundary: this._panelPlayer.ReachingBoundary }; } get Ready() { return this.onReady.expose(); } index() { this._panelPlayer.index; } set renderer(value) { this._panelPlayer.renderer = value; } get renderer() { return this._panelPlayer.renderer; } set fps(value) { this._panelPlayer.fps = value; } get fps() { return this._panelPlayer.fps; } set sequence(value) { this._panelPlayer.sequence = value; } get sequence() { return this._panelPlayer.sequence; } play() { this._panelPlayer.play(); } stop() { this._panelPlayer.stop(); } pause() { this._panelPlayer.pause(); } resume() { this._panelPlayer.resume(); } step() { this._panelPlayer.step(); } seek(frame) { this._panelPlayer.seek(frame); } _validateParameters(params) { let defaultParams = { fps: 30, renderer: new CanvasRenderers.Rect({ elementId: 'led-matrix' }) }; if (params) { params.fps = this._valueOrDefault(params.fps, defaultParams.fps); params.renderer = this._valueOrDefault(params.renderer, defaultParams.renderer); return params; } return defaultParams; } _valueOrDefault(value, defaultValue) { return value ? value : defaultValue; } } //# sourceMappingURL=led-matrix-player.js.map