UNPKG

raspi-io-server-utils

Version:

Utilities for interacting with Raspberry IOs and Raspbian

73 lines 4.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const EventEmitter = require('events'); class AbstractPlayer extends EventEmitter { constructor(file) { super(); this._file = file; this._volume = 50; } start() { this._start(); } stop() { this._stop(); } /** * @param volume Volume between 0 and 100 */ set volume(volume) { this._volume = volume; } get status() { return { running: this.running, playedSeconds: this.playTimeSeconds, volume: this._volume, playerName: this.playerName, error: this._error, }; } get playTime() { if (this._tStart) { if (this._tStop > this._tStart) { return this._tStop - this._tStart; } else { return Date.now() - this._tStart; } } return 0; } get playTimeSeconds() { return Math.round(this.playTime / 100) / 10; } get playerName() { throw new Error('Not implemented!'); } get running() { throw new Error('Not implemented!'); } get volume() { return this._volume; } get isVideo() { return !/(mp3|wav|ogg)$/i.test(this._file); } get file() { return this._file; } _started() { this._tStart = Date.now(); setImmediate(() => this.emit('start')); } _stopped() { this._tStop = Date.now(); setImmediate(() => this.emit('stop')); } _setError(err) { this._error = err; } } exports.AbstractPlayer = AbstractPlayer; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtcGxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F2cGxheWVyL2Fic3RyYWN0LXBsYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBRSxRQUFRLENBQUUsQ0FBQztBQUV6QyxNQUFzQixjQUFlLFNBQVEsWUFBWTtJQU1yRCxZQUF1QixJQUFhO1FBQ2hDLEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQUk7UUFDQSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxNQUFNLENBQUUsTUFBZTtRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTztZQUNILE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixhQUFhLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDbkMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3BCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDckIsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixJQUFLLElBQUksQ0FBQyxPQUFPLEVBQUc7WUFDaEIsSUFBSyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUc7Z0JBQzlCLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ3JDO2lCQUFNO2dCQUNILE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDcEM7U0FDSjtRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQU1ELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBRSxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBRSxHQUFHLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBRSxrQkFBa0IsQ0FBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxNQUFNLElBQUksS0FBSyxDQUFFLGtCQUFrQixDQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsS0FBSyxDQUFFLENBQUM7SUFDakQsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLFlBQVksQ0FBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFFLE9BQU8sQ0FBRSxDQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN6QixZQUFZLENBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBRSxNQUFNLENBQUUsQ0FBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxTQUFTLENBQUUsR0FBVztRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUN0QixDQUFDO0NBRUo7QUEzRkQsd0NBMkZDIn0=