示例#1
0
// 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;
	}
}
示例#2
0
const char* BrowserOBSBridgeBase::GetCurrentSceneJSONData()
{
	obs_source_t *source = obs_frontend_get_current_scene();

	const char* jsonString = obsSourceToJSON(source);

	obs_source_release(source);

	return jsonString; 
}