mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-19 17:49:14 +00:00
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:
parent
33c09d91c2
commit
94cab1e536
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue