31 lines
1023 B
TypeScript
31 lines
1023 B
TypeScript
import * as console from "console";
|
|
import App from "./App";
|
|
import ObsSceneButton from "./obs/ObsSceneButton";
|
|
import ObsSourceToggleMuteButton from "./obs/ObsSourceToggleMuteButton";
|
|
import ObsSourceKnob from "./obs/ObsSourceKnob";
|
|
import config from "config";
|
|
|
|
(async () => {
|
|
const app = new App(async () => {
|
|
await configureApp(app);
|
|
});
|
|
await app.init();
|
|
await app.start();
|
|
})().catch(console.error);
|
|
|
|
async function configureApp(app: App): Promise<void> {
|
|
let obsStateTracker = app.getObsStateTracker();
|
|
|
|
// Scenes
|
|
const scenes = obsStateTracker.getSceneList();
|
|
for (let i = 0; i < scenes.length && i < 8; i++) {
|
|
app.registerControl(new ObsSceneButton(112 + i, scenes[i]));
|
|
}
|
|
|
|
// Sources
|
|
const sources = config.get<string[]>('obs.audio_sources');
|
|
for (let i = 0; i < sources.length && i < 8; i++) {
|
|
app.registerControl(new ObsSourceToggleMuteButton(96 + i, sources[i]));
|
|
app.registerControl(new ObsSourceKnob(21 + i, sources[i]))
|
|
}
|
|
} |