mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-19 20:32:15 +02:00
UI: Use signal vector for advanced audio dialog
Simplifies code by using a vector instead of individual signals.
This commit is contained in:
parent
7a90c80b36
commit
f07d2cd621
@ -51,28 +51,22 @@ OBSAdvAudioCtrl::OBSAdvAudioCtrl(QGridLayout *, obs_source_t *source_)
|
|||||||
mixer5 = new QCheckBox();
|
mixer5 = new QCheckBox();
|
||||||
mixer6 = new QCheckBox();
|
mixer6 = new QCheckBox();
|
||||||
|
|
||||||
activateSignal.Connect(handler, "activate", OBSSourceActivated, this);
|
sigs.emplace_back(handler, "activate", OBSSourceActivated, this);
|
||||||
deactivateSignal.Connect(handler, "deactivate", OBSSourceDeactivated,
|
sigs.emplace_back(handler, "deactivate", OBSSourceDeactivated, this);
|
||||||
this);
|
sigs.emplace_back(handler, "audio_activate", OBSSourceActivated, this);
|
||||||
audioActivateSignal.Connect(handler, "audio_activate",
|
sigs.emplace_back(handler, "audio_deactivate", OBSSourceDeactivated,
|
||||||
OBSSourceActivated, this);
|
this);
|
||||||
audioDeactivateSignal.Connect(handler, "audio_deactivate",
|
sigs.emplace_back(handler, "volume", OBSSourceVolumeChanged, this);
|
||||||
OBSSourceDeactivated, this);
|
sigs.emplace_back(handler, "audio_sync", OBSSourceSyncChanged, this);
|
||||||
volChangedSignal.Connect(handler, "volume", OBSSourceVolumeChanged,
|
sigs.emplace_back(handler, "update_flags", OBSSourceFlagsChanged, this);
|
||||||
this);
|
|
||||||
syncOffsetSignal.Connect(handler, "audio_sync", OBSSourceSyncChanged,
|
|
||||||
this);
|
|
||||||
flagsSignal.Connect(handler, "update_flags", OBSSourceFlagsChanged,
|
|
||||||
this);
|
|
||||||
if (obs_audio_monitoring_available())
|
if (obs_audio_monitoring_available())
|
||||||
monitoringTypeSignal.Connect(handler, "audio_monitoring",
|
sigs.emplace_back(handler, "audio_monitoring",
|
||||||
OBSSourceMonitoringTypeChanged,
|
OBSSourceMonitoringTypeChanged, this);
|
||||||
this);
|
sigs.emplace_back(handler, "audio_mixers", OBSSourceMixersChanged,
|
||||||
mixersSignal.Connect(handler, "audio_mixers", OBSSourceMixersChanged,
|
this);
|
||||||
this);
|
sigs.emplace_back(handler, "audio_balance", OBSSourceBalanceChanged,
|
||||||
balChangedSignal.Connect(handler, "audio_balance",
|
this);
|
||||||
OBSSourceBalanceChanged, this);
|
sigs.emplace_back(handler, "rename", OBSSourceRenamed, this);
|
||||||
renameSignal.Connect(handler, "rename", OBSSourceRenamed, this);
|
|
||||||
|
|
||||||
hlayout = new QHBoxLayout();
|
hlayout = new QHBoxLayout();
|
||||||
hlayout->setContentsMargins(0, 0, 0, 0);
|
hlayout->setContentsMargins(0, 0, 0, 0);
|
||||||
|
@ -46,17 +46,7 @@ private:
|
|||||||
QPointer<QCheckBox> mixer5;
|
QPointer<QCheckBox> mixer5;
|
||||||
QPointer<QCheckBox> mixer6;
|
QPointer<QCheckBox> mixer6;
|
||||||
|
|
||||||
OBSSignal volChangedSignal;
|
std::vector<OBSSignal> sigs;
|
||||||
OBSSignal syncOffsetSignal;
|
|
||||||
OBSSignal flagsSignal;
|
|
||||||
OBSSignal monitoringTypeSignal;
|
|
||||||
OBSSignal mixersSignal;
|
|
||||||
OBSSignal activateSignal;
|
|
||||||
OBSSignal deactivateSignal;
|
|
||||||
OBSSignal audioActivateSignal;
|
|
||||||
OBSSignal audioDeactivateSignal;
|
|
||||||
OBSSignal balChangedSignal;
|
|
||||||
OBSSignal renameSignal;
|
|
||||||
|
|
||||||
static void OBSSourceActivated(void *param, calldata_t *calldata);
|
static void OBSSourceActivated(void *param, calldata_t *calldata);
|
||||||
static void OBSSourceDeactivated(void *param, calldata_t *calldata);
|
static void OBSSourceDeactivated(void *param, calldata_t *calldata);
|
||||||
|
@ -12,19 +12,17 @@ Q_DECLARE_METATYPE(OBSSource);
|
|||||||
OBSBasicAdvAudio::OBSBasicAdvAudio(QWidget *parent)
|
OBSBasicAdvAudio::OBSBasicAdvAudio(QWidget *parent)
|
||||||
: QDialog(parent),
|
: QDialog(parent),
|
||||||
ui(new Ui::OBSAdvAudio),
|
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)
|
showInactive(false)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
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(
|
VolumeType volType = (VolumeType)config_get_int(
|
||||||
GetGlobalConfig(), "BasicWindow", "AdvAudioVolumeType");
|
GetGlobalConfig(), "BasicWindow", "AdvAudioVolumeType");
|
||||||
|
|
||||||
@ -158,35 +156,25 @@ void OBSBasicAdvAudio::SetShowInactive(bool show)
|
|||||||
|
|
||||||
showInactive = show;
|
showInactive = show;
|
||||||
|
|
||||||
sourceAddedSignal.Disconnect();
|
sigs.clear();
|
||||||
sourceRemovedSignal.Disconnect();
|
signal_handler_t *sh = obs_get_signal_handler();
|
||||||
sourceActivatedSignal.Disconnect();
|
|
||||||
sourceDeactivatedSignal.Disconnect();
|
|
||||||
|
|
||||||
if (showInactive) {
|
if (showInactive) {
|
||||||
sourceAddedSignal.Connect(obs_get_signal_handler(),
|
sigs.emplace_back(sh, "source_create", OBSSourceAdded, this);
|
||||||
"source_create", OBSSourceAdded,
|
sigs.emplace_back(sh, "source_remove", OBSSourceRemoved, this);
|
||||||
this);
|
|
||||||
sourceRemovedSignal.Connect(obs_get_signal_handler(),
|
|
||||||
"source_remove", OBSSourceRemoved,
|
|
||||||
this);
|
|
||||||
|
|
||||||
obs_enum_sources(EnumSources, this);
|
obs_enum_sources(EnumSources, this);
|
||||||
|
|
||||||
SetIconsVisible(showVisible);
|
SetIconsVisible(showVisible);
|
||||||
} else {
|
} else {
|
||||||
sourceAddedSignal.Connect(obs_get_signal_handler(),
|
sigs.emplace_back(sh, "source_audio_activate", OBSSourceAdded,
|
||||||
"source_audio_activate",
|
this);
|
||||||
OBSSourceAdded, this);
|
sigs.emplace_back(sh, "source_audio_deactivate",
|
||||||
sourceRemovedSignal.Connect(obs_get_signal_handler(),
|
OBSSourceRemoved, this);
|
||||||
"source_audio_deactivate",
|
sigs.emplace_back(sh, "source_activate", OBSSourceActivated,
|
||||||
OBSSourceRemoved, this);
|
this);
|
||||||
sourceActivatedSignal.Connect(obs_get_signal_handler(),
|
sigs.emplace_back(sh, "source_deactivate", OBSSourceRemoved,
|
||||||
"source_activate",
|
this);
|
||||||
OBSSourceActivated, this);
|
|
||||||
sourceDeactivatedSignal.Connect(obs_get_signal_handler(),
|
|
||||||
"source_deactivate",
|
|
||||||
OBSSourceRemoved, this);
|
|
||||||
|
|
||||||
for (size_t i = 0; i < controls.size(); i++) {
|
for (size_t i = 0; i < controls.size(); i++) {
|
||||||
const auto source = controls[i]->GetSource();
|
const auto source = controls[i]->GetSource();
|
||||||
|
@ -14,10 +14,7 @@ class OBSBasicAdvAudio : public QDialog {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
private:
|
private:
|
||||||
OBSSignal sourceAddedSignal;
|
std::vector<OBSSignal> sigs;
|
||||||
OBSSignal sourceRemovedSignal;
|
|
||||||
OBSSignal sourceActivatedSignal;
|
|
||||||
OBSSignal sourceDeactivatedSignal;
|
|
||||||
bool showInactive;
|
bool showInactive;
|
||||||
bool showVisible;
|
bool showVisible;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user