rx-player
Version:
Canal+ HTML5 Video Player
60 lines (53 loc) • 1.49 kB
text/typescript
import type { ITextDisplayerInterface } from "../../../core/types";
import type { IRange } from "../../../utils/ranges";
import type { ITextDisplayer, ITextDisplayerData } from "../../text_displayer";
/**
* Implementation of an `ITextDisplayerInterface` running in the main
* thread (so, in the same thread that the `ITextDisplayer`).
*
* This is mainly glue code to expose the right types.
*
* @class MainThreadTextDisplayerInterface
*/
export default class MainThreadTextDisplayerInterface implements ITextDisplayerInterface {
/** `ITextDisplayer` to which we will be following API calls. */
private _displayer: ITextDisplayer;
/**
* @param {Object} displayer
*/
constructor(displayer: ITextDisplayer) {
this._displayer = displayer;
}
/**
* @see ITextDisplayerInterface
*/
public pushTextData(infos: ITextDisplayerData): Promise<IRange[]> {
try {
return Promise.resolve(this._displayer.pushTextData(infos));
} catch (err) {
return Promise.reject(err);
}
}
/**
* @see ITextDisplayerInterface
*/
public remove(start: number, end: number): Promise<IRange[]> {
try {
return Promise.resolve(this._displayer.removeBuffer(start, end));
} catch (err) {
return Promise.reject(err);
}
}
/**
* @see ITextDisplayerInterface
*/
public reset(): void {
this._displayer.reset();
}
/**
* @see ITextDisplayerInterface
*/
public stop(): void {
this._displayer.stop();
}
}