80 lines
2.1 KiB
TypeScript
80 lines
2.1 KiB
TypeScript
import { Main, UnityWebSocketStatus } from './main';
|
|
|
|
export class Lighting {
|
|
private _Main: Main;
|
|
|
|
gainInput: HTMLInputElement = document.querySelector(
|
|
'.ntsh_lightingsettings-gain',
|
|
);
|
|
exposureInput: HTMLInputElement = document.querySelector(
|
|
'.ntsh_lightingsettings-exposure',
|
|
);
|
|
whiteBalanceInput: HTMLInputElement = document.querySelector(
|
|
'.ntsh_lightingsettings-whitebalance',
|
|
);
|
|
|
|
constructor(Main: Main) {
|
|
this._Main = Main;
|
|
|
|
this.registerListeners();
|
|
}
|
|
|
|
update(state: UnityWebSocketStatus) {
|
|
if (state?.parameters?.dataAdvancedSliders == null) return;
|
|
|
|
const gainSliderIndex = state.parameters?.dataAdvancedSliders.findIndex(
|
|
(slider) => slider.sliderName === 'Gain',
|
|
);
|
|
const gainSlider =
|
|
state.parameters?.dataAdvancedSliders[gainSliderIndex ?? -1];
|
|
|
|
const exposureSliderIndex =
|
|
state.parameters?.dataAdvancedSliders.findIndex(
|
|
(slider) => slider.sliderName === 'Exposure',
|
|
);
|
|
const exposureSlider =
|
|
state.parameters?.dataAdvancedSliders[exposureSliderIndex ?? -1];
|
|
|
|
const whiteBalanceSliderIndex =
|
|
state.parameters?.dataAdvancedSliders.findIndex(
|
|
(slider) => slider.sliderName === 'WhiteBalance',
|
|
);
|
|
const whiteBalanceSlider =
|
|
state.parameters?.dataAdvancedSliders[
|
|
whiteBalanceSliderIndex ?? -1
|
|
];
|
|
|
|
this.gainInput.valueAsNumber =
|
|
gainSlider?.outputValue ?? this.gainInput.valueAsNumber;
|
|
this.exposureInput.valueAsNumber =
|
|
exposureSlider?.outputValue ?? this.exposureInput.valueAsNumber;
|
|
this.whiteBalanceInput.valueAsNumber =
|
|
whiteBalanceSlider?.outputValue ??
|
|
this.whiteBalanceInput.valueAsNumber;
|
|
|
|
this.gainInput.setAttribute(
|
|
'index',
|
|
gainSliderIndex?.toString() ?? '-1',
|
|
);
|
|
this.exposureInput.setAttribute(
|
|
'index',
|
|
exposureSliderIndex?.toString() ?? '-1',
|
|
);
|
|
this.whiteBalanceInput.setAttribute(
|
|
'index',
|
|
whiteBalanceSliderIndex?.toString() ?? '-1',
|
|
);
|
|
}
|
|
|
|
private registerListeners() {
|
|
this.gainInput.onchange = () => {
|
|
this._Main.socket.emit(
|
|
'unityWebSocket',
|
|
'dataAdvancedParameterValue',
|
|
parseInt(this.gainInput.getAttribute('index') ?? '-1'),
|
|
this.gainInput.valueAsNumber,
|
|
);
|
|
};
|
|
}
|
|
}
|