UNPKG

nertc-electron-sdk

Version:
118 lines (103 loc) 2.85 kB
import SoftwareRenderer from './SoftwareRenderer'; import createGlRenderer from './GlRenderer'; import { EventEmitter } from 'events'; interface IRenderer { event: EventEmitter; bind(element: Element): void; unbind(): void; equalsElement(element: Element): boolean; drawFrame(imageData: { header: any, yUint8Array: any, uUint8Array: any, vUint8Array: any }): void; setContentMode(mode: number): void; setMirrorMode(enabled: boolean): void; setBackgroundColor(color: string): void; refreshCanvas(): void; captureImage(): string; } class GlRenderer implements IRenderer { self: any; event: EventEmitter; constructor() { this.self = createGlRenderer.apply(this); this.event = this.self.event; } bind(element: Element): void { return this.self.bind(element); } unbind(): void { return this.self.unbind(); } equalsElement(element: Element): boolean{ return this.self.view === element; } drawFrame(imageData: { header: any, yUint8Array: any, uUint8Array: any, vUint8Array: any }): void { return this.self.drawFrame(imageData); } setContentMode(mode: number): void { return this.self.setContentMode(mode); } setMirrorMode(enabled: boolean): void { return this.self.setMirrorMode(enabled); } setBackgroundColor(color: string): void { return this.self.setBackgroundColor(color); } refreshCanvas() { return this.self.refreshCanvas(); } captureImage(): string { return this.self.captureImage() } } class CustomRenderer implements IRenderer { constructor() { throw new Error('You have to declare your own custom render'); } event: EventEmitter; bind(element: Element) { throw new Error('You have to declare your own custom render'); } unbind() { throw new Error('You have to declare your own custom render'); } equalsElement(element: Element) { throw new Error('You have to declare your own custom render'); return false; } drawFrame(imageData: { header: any, yUint8Array: any, uUint8Array: any, vUint8Array: any }) { throw new Error('You have to declare your own custom render'); } setContentMode(mode: number) { throw new Error('You have to declare your own custom render'); } setMirrorMode(enabled: boolean) { throw new Error('You have to declare your own custom render'); } setBackgroundColor(color: string) { throw new Error('You have to declare your own custom render'); } refreshCanvas() { throw new Error('You have to declare your own custom render'); } captureImage(): string { throw new Error('You have to declare your own custom render'); } } export { SoftwareRenderer, GlRenderer, IRenderer, CustomRenderer }; export { RendererManager, DisplayConfig, StreamType } from './RendererManager';