mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-05-19 05:51:16 -04:00
UI: Use signal vector for advanced audio dialog
Simplifies code by using a vector instead of individual signals.
This commit is contained in:
@@ -12,19 +12,17 @@ Q_DECLARE_METATYPE(OBSSource);
|
||||
OBSBasicAdvAudio::OBSBasicAdvAudio(QWidget *parent)
|
||||
: QDialog(parent),
|
||||
ui(new Ui::OBSAdvAudio),
|
||||
sourceAddedSignal(obs_get_signal_handler(), "source_audio_activate",
|
||||
OBSSourceAdded, this),
|
||||
sourceRemovedSignal(obs_get_signal_handler(),
|
||||
"source_audio_deactivate", OBSSourceRemoved,
|
||||
this),
|
||||
sourceActivatedSignal(obs_get_signal_handler(), "source_activate",
|
||||
OBSSourceActivated, this),
|
||||
sourceDeactivatedSignal(obs_get_signal_handler(), "source_deactivate",
|
||||
OBSSourceRemoved, this),
|
||||
showInactive(false)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
signal_handler_t *sh = obs_get_signal_handler();
|
||||
sigs.emplace_back(sh, "source_audio_activate", OBSSourceAdded, this);
|
||||
sigs.emplace_back(sh, "source_audio_deactivate", OBSSourceRemoved,
|
||||
this);
|
||||
sigs.emplace_back(sh, "source_activate", OBSSourceActivated, this);
|
||||
sigs.emplace_back(sh, "source_deactivate", OBSSourceRemoved, this);
|
||||
|
||||
VolumeType volType = (VolumeType)config_get_int(
|
||||
GetGlobalConfig(), "BasicWindow", "AdvAudioVolumeType");
|
||||
|
||||
@@ -158,35 +156,25 @@ void OBSBasicAdvAudio::SetShowInactive(bool show)
|
||||
|
||||
showInactive = show;
|
||||
|
||||
sourceAddedSignal.Disconnect();
|
||||
sourceRemovedSignal.Disconnect();
|
||||
sourceActivatedSignal.Disconnect();
|
||||
sourceDeactivatedSignal.Disconnect();
|
||||
sigs.clear();
|
||||
signal_handler_t *sh = obs_get_signal_handler();
|
||||
|
||||
if (showInactive) {
|
||||
sourceAddedSignal.Connect(obs_get_signal_handler(),
|
||||
"source_create", OBSSourceAdded,
|
||||
this);
|
||||
sourceRemovedSignal.Connect(obs_get_signal_handler(),
|
||||
"source_remove", OBSSourceRemoved,
|
||||
this);
|
||||
sigs.emplace_back(sh, "source_create", OBSSourceAdded, this);
|
||||
sigs.emplace_back(sh, "source_remove", OBSSourceRemoved, this);
|
||||
|
||||
obs_enum_sources(EnumSources, this);
|
||||
|
||||
SetIconsVisible(showVisible);
|
||||
} else {
|
||||
sourceAddedSignal.Connect(obs_get_signal_handler(),
|
||||
"source_audio_activate",
|
||||
OBSSourceAdded, this);
|
||||
sourceRemovedSignal.Connect(obs_get_signal_handler(),
|
||||
"source_audio_deactivate",
|
||||
OBSSourceRemoved, this);
|
||||
sourceActivatedSignal.Connect(obs_get_signal_handler(),
|
||||
"source_activate",
|
||||
OBSSourceActivated, this);
|
||||
sourceDeactivatedSignal.Connect(obs_get_signal_handler(),
|
||||
"source_deactivate",
|
||||
OBSSourceRemoved, this);
|
||||
sigs.emplace_back(sh, "source_audio_activate", OBSSourceAdded,
|
||||
this);
|
||||
sigs.emplace_back(sh, "source_audio_deactivate",
|
||||
OBSSourceRemoved, this);
|
||||
sigs.emplace_back(sh, "source_activate", OBSSourceActivated,
|
||||
this);
|
||||
sigs.emplace_back(sh, "source_deactivate", OBSSourceRemoved,
|
||||
this);
|
||||
|
||||
for (size_t i = 0; i < controls.size(); i++) {
|
||||
const auto source = controls[i]->GetSource();
|
||||
|
||||
Reference in New Issue
Block a user