UI: Hide mixer sources if audio deactivated
If audio is determined to be deactivated via the audio source (via the new "audio_activate" and "audio_deactivate" signals), hide the audio source in the mixer.
This commit is contained in:
@@ -1411,6 +1411,12 @@ void OBSBasic::InitOBSCallbacks()
|
||||
signalHandlers.emplace_back(obs_get_signal_handler(),
|
||||
"source_deactivate",
|
||||
OBSBasic::SourceDeactivated, this);
|
||||
signalHandlers.emplace_back(obs_get_signal_handler(),
|
||||
"source_audio_activate",
|
||||
OBSBasic::SourceAudioActivated, this);
|
||||
signalHandlers.emplace_back(obs_get_signal_handler(),
|
||||
"source_audio_deactivate",
|
||||
OBSBasic::SourceAudioDeactivated, this);
|
||||
signalHandlers.emplace_back(obs_get_signal_handler(), "source_rename",
|
||||
OBSBasic::SourceRenamed, this);
|
||||
}
|
||||
@@ -2961,6 +2967,8 @@ void OBSBasic::ActivateAudioSource(OBSSource source)
|
||||
{
|
||||
if (SourceMixerHidden(source))
|
||||
return;
|
||||
if (!obs_source_audio_active(source))
|
||||
return;
|
||||
|
||||
bool vertical = config_get_bool(GetGlobalConfig(), "BasicWindow",
|
||||
"VerticalVolControl");
|
||||
@@ -3282,6 +3290,24 @@ void OBSBasic::SourceDeactivated(void *data, calldata_t *params)
|
||||
Q_ARG(OBSSource, OBSSource(source)));
|
||||
}
|
||||
|
||||
void OBSBasic::SourceAudioActivated(void *data, calldata_t *params)
|
||||
{
|
||||
obs_source_t *source = (obs_source_t *)calldata_ptr(params, "source");
|
||||
|
||||
if (obs_source_active(source))
|
||||
QMetaObject::invokeMethod(static_cast<OBSBasic *>(data),
|
||||
"ActivateAudioSource",
|
||||
Q_ARG(OBSSource, OBSSource(source)));
|
||||
}
|
||||
|
||||
void OBSBasic::SourceAudioDeactivated(void *data, calldata_t *params)
|
||||
{
|
||||
obs_source_t *source = (obs_source_t *)calldata_ptr(params, "source");
|
||||
QMetaObject::invokeMethod(static_cast<OBSBasic *>(data),
|
||||
"DeactivateAudioSource",
|
||||
Q_ARG(OBSSource, OBSSource(source)));
|
||||
}
|
||||
|
||||
void OBSBasic::SourceRenamed(void *data, calldata_t *params)
|
||||
{
|
||||
obs_source_t *source = (obs_source_t *)calldata_ptr(params, "source");
|
||||
|
@@ -570,6 +570,8 @@ private:
|
||||
static void SourceRemoved(void *data, calldata_t *params);
|
||||
static void SourceActivated(void *data, calldata_t *params);
|
||||
static void SourceDeactivated(void *data, calldata_t *params);
|
||||
static void SourceAudioActivated(void *data, calldata_t *params);
|
||||
static void SourceAudioDeactivated(void *data, calldata_t *params);
|
||||
static void SourceRenamed(void *data, calldata_t *params);
|
||||
static void RenderMain(void *data, uint32_t cx, uint32_t cy);
|
||||
|
||||
|
Reference in New Issue
Block a user