led-matrix-ts
Version:
Highly customizable led matrix for the browser
76 lines • 2.1 kB
JavaScript
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