Add studio mode status display and preview/program indicators

- Enhanced obsStatus API to include studio mode and preview scene information
- Updated Footer component to show studio mode status (STUDIO/DIRECT)
- Added preview scene display in footer when studio mode is enabled
- Implemented dynamic scene button states showing Program/Preview/Both status
- Scene buttons now clearly indicate preview vs program with distinct colors
- Added proper state management for studio mode and preview scenes

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Decobus 2025-07-25 20:52:42 -04:00
parent e777b3d422
commit 07028b0792
3 changed files with 147 additions and 43 deletions

View file

@ -19,9 +19,11 @@ export async function GET() {
obsWebSocketVersion: string;
};
currentScene?: string;
currentPreviewScene?: string;
sceneCount?: number;
streaming?: boolean;
recording?: boolean;
studioModeEnabled?: boolean;
error?: string;
} = {
host: OBS_HOST,
@ -58,15 +60,31 @@ export async function GET() {
// Get recording status
const recordStatus = await obs.call('GetRecordStatus');
// Get studio mode status
const studioModeStatus = await obs.call('GetStudioModeEnabled');
// Get preview scene if studio mode is enabled
let currentPreviewScene;
if (studioModeStatus.studioModeEnabled) {
try {
const previewSceneInfo = await obs.call('GetCurrentPreviewScene');
currentPreviewScene = previewSceneInfo.sceneName;
} catch (previewError) {
console.log('Could not get preview scene:', previewError);
}
}
connectionStatus.connected = true;
connectionStatus.version = {
obsVersion: versionInfo.obsVersion,
obsWebSocketVersion: versionInfo.obsWebSocketVersion
};
connectionStatus.currentScene = currentSceneInfo.sceneName;
connectionStatus.currentPreviewScene = currentPreviewScene;
connectionStatus.sceneCount = sceneList.scenes.length;
connectionStatus.streaming = streamStatus.outputActive;
connectionStatus.recording = recordStatus.outputActive;
connectionStatus.studioModeEnabled = studioModeStatus.studioModeEnabled;
} catch (err) {
connectionStatus.error = err instanceof Error ? err.message : 'Unknown error occurred';