import MediaStreamTrack from '../html-media-element/MediaStreamTrack.js';
import HTMLCanvasElement from './HTMLCanvasElement.js';
import * as PropertySymbol from '../../PropertySymbol.js';
/**
* Canvas Capture Media Stream Track.
*
* @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasCaptureMediaStreamTrack
*/
export default class CanvasCaptureMediaStreamTrack extends MediaStreamTrack {
public [PropertySymbol.canvas]: HTMLCanvasElement;
/**
* Constructor.
*
* @param illegalConstructorSymbol Illegal constructor symbol.
* @param canvas Canvas.
*/
constructor(illegalConstructorSymbol: symbol, canvas: HTMLCanvasElement) {
super(illegalConstructorSymbol);
this[PropertySymbol.canvas] = canvas;
}
/**
* Returns the canvas.
*
* @returns Canvas.
*/
public get canvas(): HTMLCanvasElement {
return this[PropertySymbol.canvas];
}
/**
* Requests a frame.
*/
public requestFrame(): void {
// Do nothing
}
/**
* Clones the track.
*
* @returns Clone.
*/
public clone(): CanvasCaptureMediaStreamTrack {
const clone = super.clone();
clone[PropertySymbol.canvas] = this.canvas;
return clone;
}
}