41 lines
977 B
TypeScript
41 lines
977 B
TypeScript
import { Main } from './main';
|
|
|
|
export class Calibration {
|
|
private _Main: Main;
|
|
|
|
container: HTMLDivElement = document.querySelector('.ntsh_calibration');
|
|
image: HTMLImageElement = this.container.querySelector('img');
|
|
fullscreenButton: HTMLDivElement = this.container.querySelector(
|
|
'.ntsh_calibration-fullscreen'
|
|
);
|
|
|
|
constructor(Main: Main) {
|
|
this._Main = Main;
|
|
|
|
this.registerListeners();
|
|
}
|
|
|
|
private fetchClock: NodeJS.Timeout;
|
|
startFetchClock() {
|
|
this.image.src = `/calibrationImage?t=${Date.now()}`;
|
|
this.fetchClock = setInterval(() => {
|
|
this.image.src = `/calibrationImage?t=${Date.now()}`;
|
|
}, 1000);
|
|
}
|
|
|
|
stopFetchClock() {
|
|
clearInterval(this.fetchClock);
|
|
}
|
|
|
|
private registerListeners() {
|
|
this._Main.TabController.registerListener('calibration', (visible) => {
|
|
if (visible) this.startFetchClock();
|
|
else this.stopFetchClock();
|
|
});
|
|
|
|
this.fullscreenButton.addEventListener('click', () => {
|
|
this.image.requestFullscreen();
|
|
});
|
|
}
|
|
}
|