events: Add support for audio_active, fix docs version

This commit is contained in:
Matt Gajownik 2020-07-01 17:22:09 +10:00 committed by tt2468
parent 822a1751a2
commit d03e94ada8
3 changed files with 53 additions and 1 deletions

View File

@ -271,6 +271,8 @@ void WSEvents::connectSourceSignals(obs_source_t* source) {
signal_handler_connect(sh, "volume", OnSourceVolumeChange, this);
signal_handler_connect(sh, "audio_sync", OnSourceAudioSyncOffsetChanged, this);
signal_handler_connect(sh, "audio_mixers", OnSourceAudioMixersChanged, this);
signal_handler_connect(sh, "audio_activate", OnSourceAudioActivated, this);
signal_handler_connect(sh, "audio_deactivate", OnSourceAudioDeactivated, this);
signal_handler_connect(sh, "filter_add", OnSourceFilterAdded, this);
signal_handler_connect(sh, "filter_remove", OnSourceFilterRemoved, this);
@ -303,6 +305,8 @@ void WSEvents::disconnectSourceSignals(obs_source_t* source) {
signal_handler_disconnect(sh, "volume", OnSourceVolumeChange, this);
signal_handler_disconnect(sh, "audio_sync", OnSourceAudioSyncOffsetChanged, this);
signal_handler_disconnect(sh, "audio_mixers", OnSourceAudioMixersChanged, this);
signal_handler_disconnect(sh, "audio_activate", OnSourceAudioActivated, this);
signal_handler_disconnect(sh, "audio_deactivate", OnSourceAudioDeactivated, this);
signal_handler_disconnect(sh, "filter_add", OnSourceFilterAdded, this);
signal_handler_disconnect(sh, "filter_remove", OnSourceFilterRemoved, this);
@ -1098,6 +1102,52 @@ void WSEvents::OnSourceMuteStateChange(void* param, calldata_t* data) {
self->broadcastUpdate("SourceMuteStateChanged", fields);
}
/**
* A source has removed audio.
*
* @return {String} `sourceName` Source name
*
* @api events
* @name SourceAudioDeactivated
* @category sources
* @since unreleased
*/
void WSEvents::OnSourceAudioDeactivated(void* param, calldata_t* data) {
auto self = reinterpret_cast<WSEvents*>(param);
OBSSource source = calldata_get_pointer<obs_source_t>(data, "source");
if (!source) {
return;
}
OBSDataAutoRelease fields = obs_data_create();
obs_data_set_string(fields, "sourceName", obs_source_get_name(source));
self->broadcastUpdate("SourceAudioDeactivated", fields);
}
/**
* A source has added audio.
*
* @return {String} `sourceName` Source name
*
* @api events
* @name SourceAudioActivated
* @category sources
* @since unreleased
*/
void WSEvents::OnSourceAudioActivated(void* param, calldata_t* data) {
auto self = reinterpret_cast<WSEvents*>(param);
OBSSource source = calldata_get_pointer<obs_source_t>(data, "source");
if (!source) {
return;
}
OBSDataAutoRelease fields = obs_data_create();
obs_data_set_string(fields, "sourceName", obs_source_get_name(source));
self->broadcastUpdate("SourceAudioActivated", fields);
}
/**
* The audio sync offset of a source has changed.
*

View File

@ -126,6 +126,8 @@ private:
static void OnSourceMuteStateChange(void* param, calldata_t* data);
static void OnSourceAudioSyncOffsetChanged(void* param, calldata_t* data);
static void OnSourceAudioMixersChanged(void* param, calldata_t* data);
static void OnSourceAudioActivated(void* param, calldata_t* data);
static void OnSourceAudioDeactivated(void* param, calldata_t* data);
static void OnSourceRename(void* param, calldata_t* data);

View File

@ -351,7 +351,7 @@ RpcResponse WSRequestHandler::ToggleMute(const RpcRequest& request)
* @api requests
* @name GetAudioActive
* @category sources
* @since 4.9.0
* @since unreleased
*/
RpcResponse WSRequestHandler::GetAudioActive(const RpcRequest& request)
{