mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
EventHandler: Add (disabled) InputAudioMonitorTypeChanged event
This commit is contained in:
parent
e18aaff661
commit
26bef074ac
@ -62,6 +62,7 @@ void EventHandler::ConnectSourceSignals(obs_source_t *source) // Applies to inpu
|
|||||||
signal_handler_connect(sh, "volume", HandleInputVolumeChanged, this);
|
signal_handler_connect(sh, "volume", HandleInputVolumeChanged, this);
|
||||||
signal_handler_connect(sh, "audio_sync", HandleInputAudioSyncOffsetChanged, this);
|
signal_handler_connect(sh, "audio_sync", HandleInputAudioSyncOffsetChanged, this);
|
||||||
signal_handler_connect(sh, "audio_mixers", HandleInputAudioTracksChanged, this);
|
signal_handler_connect(sh, "audio_mixers", HandleInputAudioTracksChanged, this);
|
||||||
|
//signal_handler_connect(sh, "audio_monitoring", HandleInputAudioMonitorTypeChanged, this);
|
||||||
|
|
||||||
if (sourceType == OBS_SOURCE_TYPE_INPUT) {
|
if (sourceType == OBS_SOURCE_TYPE_INPUT) {
|
||||||
signal_handler_connect(sh, "media_started", HandleMediaInputPlaybackStarted, this);
|
signal_handler_connect(sh, "media_started", HandleMediaInputPlaybackStarted, this);
|
||||||
@ -101,6 +102,7 @@ void EventHandler::DisconnectSourceSignals(obs_source_t *source)
|
|||||||
signal_handler_disconnect(sh, "volume", HandleInputVolumeChanged, this);
|
signal_handler_disconnect(sh, "volume", HandleInputVolumeChanged, this);
|
||||||
signal_handler_disconnect(sh, "audio_sync", HandleInputAudioSyncOffsetChanged, this);
|
signal_handler_disconnect(sh, "audio_sync", HandleInputAudioSyncOffsetChanged, this);
|
||||||
signal_handler_disconnect(sh, "audio_mixers", HandleInputAudioTracksChanged, this);
|
signal_handler_disconnect(sh, "audio_mixers", HandleInputAudioTracksChanged, this);
|
||||||
|
//signal_handler_disconnect(sh, "audio_monitoring", HandleInputAudioMonitorTypeChanged, this);
|
||||||
signal_handler_disconnect(sh, "media_started", HandleMediaInputPlaybackStarted, this);
|
signal_handler_disconnect(sh, "media_started", HandleMediaInputPlaybackStarted, this);
|
||||||
signal_handler_disconnect(sh, "media_ended", HandleMediaInputPlaybackEnded, this);
|
signal_handler_disconnect(sh, "media_ended", HandleMediaInputPlaybackEnded, this);
|
||||||
signal_handler_disconnect(sh, "media_pause", SourceMediaPauseMultiHandler, this);
|
signal_handler_disconnect(sh, "media_pause", SourceMediaPauseMultiHandler, this);
|
||||||
|
@ -75,6 +75,7 @@ class EventHandler
|
|||||||
static void HandleInputVolumeChanged(void *param, calldata_t *data); // Direct callback
|
static void HandleInputVolumeChanged(void *param, calldata_t *data); // Direct callback
|
||||||
static void HandleInputAudioSyncOffsetChanged(void *param, calldata_t *data); // Direct callback
|
static void HandleInputAudioSyncOffsetChanged(void *param, calldata_t *data); // Direct callback
|
||||||
static void HandleInputAudioTracksChanged(void *param, calldata_t *data); // Direct callback
|
static void HandleInputAudioTracksChanged(void *param, calldata_t *data); // Direct callback
|
||||||
|
static void HandleInputAudioMonitorTypeChanged(void *param, calldata_t *data); // Direct callback
|
||||||
|
|
||||||
// Transitions
|
// Transitions
|
||||||
void HandleTransitionCreated(obs_source_t *source);
|
void HandleTransitionCreated(obs_source_t *source);
|
||||||
|
@ -149,3 +149,36 @@ void EventHandler::HandleInputAudioTracksChanged(void *param, calldata_t *data)
|
|||||||
eventData["inputAudioTracks"] = inputAudioTracks;
|
eventData["inputAudioTracks"] = inputAudioTracks;
|
||||||
eventHandler->_webSocketServer->BroadcastEvent(EventSubscription::Inputs, "InputAudioTracksChanged", eventData);
|
eventHandler->_webSocketServer->BroadcastEvent(EventSubscription::Inputs, "InputAudioTracksChanged", eventData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EventHandler::HandleInputAudioMonitorTypeChanged(void *param, calldata_t *data)
|
||||||
|
{
|
||||||
|
auto eventHandler = reinterpret_cast<EventHandler*>(param);
|
||||||
|
|
||||||
|
obs_source_t *source = GetCalldataPointer<obs_source_t>(data, "source");
|
||||||
|
if (!source)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (obs_source_get_type(source) != OBS_SOURCE_TYPE_INPUT)
|
||||||
|
return;
|
||||||
|
|
||||||
|
enum obs_monitoring_type monitorType = (obs_monitoring_type)calldata_int(data, "type");
|
||||||
|
|
||||||
|
std::string monitorTypeString;
|
||||||
|
switch (monitorType) {
|
||||||
|
default:
|
||||||
|
case OBS_MONITORING_TYPE_NONE:
|
||||||
|
monitorTypeString = "OBS_WEBSOCKET_MONITOR_TYPE_NONE";
|
||||||
|
break;
|
||||||
|
case OBS_MONITORING_TYPE_MONITOR_ONLY:
|
||||||
|
monitorTypeString = "OBS_WEBSOCKET_MONITOR_TYPE_MONITOR_ONLY";
|
||||||
|
break;
|
||||||
|
case OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT:
|
||||||
|
monitorTypeString = "OBS_WEBSOCKET_MONITOR_TYPE_MONITOR_AND_OUTPUT";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
json eventData;
|
||||||
|
eventData["inputName"] = obs_source_get_name(source);
|
||||||
|
eventData["monitorType"] = monitorTypeString;
|
||||||
|
eventHandler->_webSocketServer->BroadcastEvent(EventSubscription::Inputs, "InputAudioMonitorTypeChanged", eventData);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user