Implemented sound and lighting sliders
This commit is contained in:
@@ -7,7 +7,7 @@ export class Calibration {
|
||||
visible: boolean = false;
|
||||
|
||||
container: HTMLDivElement = document.querySelector('.ntsh-calibration');
|
||||
image: HTMLImageElement = this.container.querySelector('img');
|
||||
image: HTMLImageElement = this.container.querySelector('img.stream');
|
||||
|
||||
constructor(Main: Main) {
|
||||
this._Main = Main;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Main } from './main';
|
||||
import { Main, UnityWebSocketStatus } from './main';
|
||||
|
||||
export class Lighting {
|
||||
private _Main: Main;
|
||||
@@ -15,5 +15,65 @@ export class Lighting {
|
||||
|
||||
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,
|
||||
);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ export class Main {
|
||||
state?.parameters?.outOfService ?? false;
|
||||
this.OutOfServiceMode.state =
|
||||
state?.parameters?.outOfService ?? false;
|
||||
|
||||
this.Lighting.update(state);
|
||||
this.Sound.update(state);
|
||||
});
|
||||
|
||||
socket.on('timer', (data) => {
|
||||
@@ -119,7 +122,7 @@ export type ServiceState =
|
||||
| 'DISCONNECTED'
|
||||
| 'FAILED';
|
||||
|
||||
interface UnityWebSocketStatus {
|
||||
export interface UnityWebSocketStatus {
|
||||
state: ServiceState;
|
||||
message?: string;
|
||||
error?: string;
|
||||
@@ -137,6 +140,8 @@ interface UnityParameters {
|
||||
outOfService: boolean;
|
||||
sliders: UnityParameterSlider[];
|
||||
advancedSliders: UnityParameterSlider[];
|
||||
dataSliders: UnityParameterSlider[];
|
||||
dataAdvancedSliders: UnityParameterSlider[];
|
||||
sensors: UnitySocketMessageHeartbeat['heartbeat']['dataSensors'];
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Main } from './main';
|
||||
import { Main, UnityWebSocketStatus } from './main';
|
||||
|
||||
export class Sound {
|
||||
private _Main: Main;
|
||||
@@ -18,5 +18,99 @@ export class Sound {
|
||||
|
||||
constructor(Main: Main) {
|
||||
this._Main = Main;
|
||||
|
||||
this.registerListeners();
|
||||
}
|
||||
|
||||
update(state: UnityWebSocketStatus) {
|
||||
if (state?.parameters?.dataSliders == null) return;
|
||||
|
||||
const volumeSliderIndex = state.parameters?.dataSliders.findIndex(
|
||||
(slider) => slider.sliderName === 'Volume',
|
||||
);
|
||||
const volumeSlider =
|
||||
state.parameters?.dataSliders[volumeSliderIndex ?? -1];
|
||||
|
||||
const eqLowSliderIndex = state.parameters?.dataSliders.findIndex(
|
||||
(slider) => slider.sliderName === 'EQ_Low',
|
||||
);
|
||||
const eqLowSlider =
|
||||
state.parameters?.dataSliders[eqLowSliderIndex ?? -1];
|
||||
|
||||
const eqMidSliderIndex = state.parameters?.dataSliders.findIndex(
|
||||
(slider) => slider.sliderName === 'EQ_Mid',
|
||||
);
|
||||
const eqMidSlider =
|
||||
state.parameters?.dataSliders[eqMidSliderIndex ?? -1];
|
||||
|
||||
const eqHighSliderIndex = state.parameters?.dataSliders.findIndex(
|
||||
(slider) => slider.sliderName === 'EQ_High',
|
||||
);
|
||||
const eqHighSlider =
|
||||
state.parameters?.dataSliders[eqHighSliderIndex ?? -1];
|
||||
|
||||
this.volumeInput.valueAsNumber =
|
||||
volumeSlider?.outputValue ?? this.volumeInput.valueAsNumber;
|
||||
this.eqLowInput.valueAsNumber =
|
||||
eqLowSlider?.outputValue ?? this.eqLowInput.valueAsNumber;
|
||||
this.eqMidInput.valueAsNumber =
|
||||
eqMidSlider?.outputValue ?? this.eqMidInput.valueAsNumber;
|
||||
this.eqHighInput.valueAsNumber =
|
||||
eqHighSlider?.outputValue ?? this.eqHighInput.valueAsNumber;
|
||||
|
||||
this.volumeInput.setAttribute(
|
||||
'index',
|
||||
volumeSliderIndex?.toString() ?? '-1',
|
||||
);
|
||||
this.eqLowInput.setAttribute(
|
||||
'index',
|
||||
eqLowSliderIndex?.toString() ?? '-1',
|
||||
);
|
||||
this.eqMidInput.setAttribute(
|
||||
'index',
|
||||
eqMidSliderIndex?.toString() ?? '-1',
|
||||
);
|
||||
this.eqHighInput.setAttribute(
|
||||
'index',
|
||||
eqHighSliderIndex?.toString() ?? '-1',
|
||||
);
|
||||
}
|
||||
|
||||
private registerListeners() {
|
||||
this.volumeInput.onchange = () => {
|
||||
this._Main.socket.emit(
|
||||
'unityWebSocket',
|
||||
'dataParameterValue',
|
||||
parseInt(this.volumeInput.getAttribute('index') ?? '-1'),
|
||||
this.volumeInput.valueAsNumber,
|
||||
);
|
||||
};
|
||||
|
||||
this.eqLowInput.onchange = () => {
|
||||
this._Main.socket.emit(
|
||||
'unityWebSocket',
|
||||
'dataParameterValue',
|
||||
parseInt(this.eqLowInput.getAttribute('index') ?? '-1'),
|
||||
this.eqLowInput.valueAsNumber,
|
||||
);
|
||||
};
|
||||
|
||||
this.eqMidInput.onchange = () => {
|
||||
this._Main.socket.emit(
|
||||
'unityWebSocket',
|
||||
'dataParameterValue',
|
||||
parseInt(this.eqMidInput.getAttribute('index') ?? '-1'),
|
||||
this.eqMidInput.valueAsNumber,
|
||||
);
|
||||
};
|
||||
|
||||
this.eqHighInput.onchange = () => {
|
||||
this._Main.socket.emit(
|
||||
'unityWebSocket',
|
||||
'dataParameterValue',
|
||||
parseInt(this.eqHighInput.getAttribute('index') ?? '-1'),
|
||||
this.eqHighInput.valueAsNumber,
|
||||
);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user