// Handle events from the frontend static void handle_obs_frontend_event(enum obs_frontend_event event, void *) { switch(event) { case OBS_FRONTEND_EVENT_STREAMING_STARTING: BrowserManager::Instance()->DispatchJSEvent("obsStreamingStarting", nullptr); break; case OBS_FRONTEND_EVENT_STREAMING_STARTED: BrowserManager::Instance()->DispatchJSEvent("obsStreamingStarted", nullptr); break; case OBS_FRONTEND_EVENT_STREAMING_STOPPING: BrowserManager::Instance()->DispatchJSEvent("obsStreamingStopping", nullptr); break; case OBS_FRONTEND_EVENT_STREAMING_STOPPED: BrowserManager::Instance()->DispatchJSEvent("obsStreamingStopped", nullptr); break; case OBS_FRONTEND_EVENT_RECORDING_STARTING: BrowserManager::Instance()->DispatchJSEvent("obsRecordingStarting", nullptr); break; case OBS_FRONTEND_EVENT_RECORDING_STARTED: BrowserManager::Instance()->DispatchJSEvent("obsRecordingStarted", nullptr); break; case OBS_FRONTEND_EVENT_RECORDING_STOPPING: BrowserManager::Instance()->DispatchJSEvent("obsRecordingStopping", nullptr); break; case OBS_FRONTEND_EVENT_RECORDING_STOPPED: BrowserManager::Instance()->DispatchJSEvent("obsRecordingStopped", nullptr); break; case OBS_FRONTEND_EVENT_SCENE_CHANGED: { obs_source_t *source = obs_frontend_get_current_scene(); const char* jsonString = obsSourceToJSON(source); BrowserManager::Instance()->DispatchJSEvent("obsSceneChanged", jsonString); obs_source_release(source); break; } case OBS_FRONTEND_EVENT_SCENE_LIST_CHANGED: break; case OBS_FRONTEND_EVENT_TRANSITION_CHANGED: break; case OBS_FRONTEND_EVENT_TRANSITION_STOPPED: break; case OBS_FRONTEND_EVENT_TRANSITION_LIST_CHANGED: break; case OBS_FRONTEND_EVENT_SCENE_COLLECTION_CHANGED: break; case OBS_FRONTEND_EVENT_SCENE_COLLECTION_LIST_CHANGED: break; case OBS_FRONTEND_EVENT_PROFILE_CHANGED: break; case OBS_FRONTEND_EVENT_PROFILE_LIST_CHANGED: break; case OBS_FRONTEND_EVENT_EXIT: BrowserManager::Instance()->DispatchJSEvent("obsExit", nullptr); break; } }
const char* BrowserOBSBridgeBase::GetCurrentSceneJSONData() { obs_source_t *source = obs_frontend_get_current_scene(); const char* jsonString = obsSourceToJSON(source); obs_source_release(source); return jsonString; }