UNPKG

webcodecs-flv

Version:

webcodecs decode flv

69 lines (64 loc) 2.27 kB
export const EventDispatcher = function () { // Private vars const spec = {}; spec.dispatcher = {}; spec.dispatcher.eventListeners = {}; /** * @function addEventListener * @desc This function registers a callback function as a handler for the corresponding event. It's shortened form is on(eventType, listener). See the event description in the following table.<br> * @instance * @memberof Oms.Base.EventDispatcher * @param {string} eventType Event string. * @param {function} listener Callback function. */ this.addEventListener = function (eventType, listener) { if (spec.dispatcher.eventListeners[eventType] === undefined) { spec.dispatcher.eventListeners[eventType] = []; } spec.dispatcher.eventListeners[eventType].push(listener); }; /** * @function removeEventListener * @desc This function removes a registered event listener. * @instance * @memberof Oms.Base.EventDispatcher * @param {string} eventType Event string. * @param {function} listener Callback function. */ this.removeEventListener = function (eventType, listener) { if (!spec.dispatcher.eventListeners[eventType]) { return; } var index = spec.dispatcher.eventListeners[eventType].indexOf(listener); if (index !== -1) { spec.dispatcher.eventListeners[eventType].splice(index, 1); } }; /** * @function clearEventListener * @desc This function removes all event listeners for one type. * @instance * @memberof Oms.Base.EventDispatcher * @param {string} eventType Event string. */ this.clearEventListener = function (eventType) { spec.dispatcher.eventListeners[eventType] = []; }; // It dispatch a new event to the event listeners, based on the type // of event. All events are intended to be LicodeEvents. this.dispatchEvent = function (event) { if (!spec.dispatcher.eventListeners[event.type]) { return; } spec.dispatcher.eventListeners[event.type].map(function (listener) { listener(event); }); }; }; export class demuxerChange { constructor(type, data) { this.type = type; this.event = data.event; //del modity this.data = data.data; } }