Pult: Handy als Stream Deck mit Soundboard und Szenenwechsel
Paket bauen und veroeffentlichen / paket (push) Failing after 1m21s
Paket bauen und veroeffentlichen / paket (push) Failing after 1m21s
- /pult als installierbare Web-App (Manifest, Service Worker, Symbole) - Soundboard: Sounds vom Handy hochladen, bearbeiten, im Stream spielen ueber die neue Browser-Source /sounds - Szenen, Clip und Stummschalter: der Stream-PC waehlt sich mit eigenem Schluessel beim Hub ein (fern:verbinden), Befehle warten auf OBS - Browser-Sources melden, welche Seite sie sind Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
70448967f5
commit
8be195d938
29 files changed
+2935
-28
No files matched your search
@@ -11,9 +11,13 @@ import { forever } from '#core/retry.ts';
|
||||
|
||||
const log = logger('obs');
|
||||
|
||||
/** Ereignisgruppen als Bitmaske. Wir brauchen General, Scenes und Outputs. */
|
||||
export const SUBSCRIPTIONS = { general: 1, config: 2, scenes: 4, outputs: 64 } as const;
|
||||
const DEFAULT_SUBS = SUBSCRIPTIONS.general | SUBSCRIPTIONS.scenes | SUBSCRIPTIONS.outputs;
|
||||
/**
|
||||
* Ereignisgruppen als Bitmaske. Wir brauchen General, Scenes und Outputs,
|
||||
* dazu Inputs fuer die Stummschalter auf dem Pult.
|
||||
*/
|
||||
export const SUBSCRIPTIONS = { general: 1, config: 2, scenes: 4, inputs: 8, outputs: 64 } as const;
|
||||
const DEFAULT_SUBS = SUBSCRIPTIONS.general | SUBSCRIPTIONS.scenes |
|
||||
SUBSCRIPTIONS.inputs | SUBSCRIPTIONS.outputs;
|
||||
|
||||
/**
|
||||
* Antwort auf die Authentifizierungsaufforderung.
|
||||
@@ -31,6 +35,8 @@ export type ObsEventHandlers = {
|
||||
onSceneChanged?: (scene: string) => void;
|
||||
onIdentified?: () => void;
|
||||
onClosed?: () => void;
|
||||
/** Jedes Ereignis, auch die oben schon einzeln gemeldeten. */
|
||||
onEvent?: (type: string, data: Record<string, unknown>) => void;
|
||||
};
|
||||
|
||||
export type ObsClient = {
|
||||
@@ -105,6 +111,7 @@ export function createObs(
|
||||
} else if (type === 'CurrentProgramSceneChanged') {
|
||||
handlers.onSceneChanged?.(String(data['sceneName'] ?? ''));
|
||||
}
|
||||
handlers.onEvent?.(type, data);
|
||||
break;
|
||||
}
|
||||
case 7: { // RequestResponse
|
||||
|
||||
Reference in new issue
Block a user