UI: Update adv audio props on monitoring type change
Update the audio monitoring combo box when it is changed via libobs. Required to make obs-websocket requests work well
This commit is contained in:
parent
c90b13f93e
commit
33b75a1a78
@ -60,6 +60,10 @@ OBSAdvAudioCtrl::OBSAdvAudioCtrl(QGridLayout *, obs_source_t *source_)
|
||||
this);
|
||||
flagsSignal.Connect(handler, "update_flags", OBSSourceFlagsChanged,
|
||||
this);
|
||||
if (obs_audio_monitoring_supported())
|
||||
monitoringTypeSignal.Connect(handler, "audio_monitoring",
|
||||
OBSSourceMonitoringTypeChanged,
|
||||
this);
|
||||
mixersSignal.Connect(handler, "audio_mixers", OBSSourceMixersChanged,
|
||||
this);
|
||||
|
||||
@ -330,6 +334,15 @@ void OBSAdvAudioCtrl::OBSSourceSyncChanged(void *param, calldata_t *calldata)
|
||||
"SourceSyncChanged", Q_ARG(int64_t, offset));
|
||||
}
|
||||
|
||||
void OBSAdvAudioCtrl::OBSSourceMonitoringTypeChanged(void *param,
|
||||
calldata_t *calldata)
|
||||
{
|
||||
int type = calldata_int(calldata, "type");
|
||||
QMetaObject::invokeMethod(reinterpret_cast<OBSAdvAudioCtrl *>(param),
|
||||
"SourceMonitoringTypeChanged",
|
||||
Q_ARG(int, type));
|
||||
}
|
||||
|
||||
void OBSAdvAudioCtrl::OBSSourceMixersChanged(void *param, calldata_t *calldata)
|
||||
{
|
||||
uint32_t mixers = (uint32_t)calldata_int(calldata, "mixers");
|
||||
@ -382,6 +395,14 @@ void OBSAdvAudioCtrl::SourceSyncChanged(int64_t offset)
|
||||
syncOffset->blockSignals(false);
|
||||
}
|
||||
|
||||
void OBSAdvAudioCtrl::SourceMonitoringTypeChanged(int type)
|
||||
{
|
||||
int idx = monitoringType->findData(type);
|
||||
monitoringType->blockSignals(true);
|
||||
monitoringType->setCurrentIndex(idx);
|
||||
monitoringType->blockSignals(false);
|
||||
}
|
||||
|
||||
void OBSAdvAudioCtrl::SourceMixersChanged(uint32_t mixers)
|
||||
{
|
||||
setCheckboxState(mixer1, mixers & (1 << 0));
|
||||
|
@ -51,6 +51,7 @@ private:
|
||||
OBSSignal volChangedSignal;
|
||||
OBSSignal syncOffsetSignal;
|
||||
OBSSignal flagsSignal;
|
||||
OBSSignal monitoringTypeSignal;
|
||||
OBSSignal mixersSignal;
|
||||
OBSSignal activateSignal;
|
||||
OBSSignal deactivateSignal;
|
||||
@ -60,6 +61,8 @@ private:
|
||||
static void OBSSourceFlagsChanged(void *param, calldata_t *calldata);
|
||||
static void OBSSourceVolumeChanged(void *param, calldata_t *calldata);
|
||||
static void OBSSourceSyncChanged(void *param, calldata_t *calldata);
|
||||
static void OBSSourceMonitoringTypeChanged(void *param,
|
||||
calldata_t *calldata);
|
||||
static void OBSSourceMixersChanged(void *param, calldata_t *calldata);
|
||||
|
||||
public:
|
||||
@ -77,6 +80,7 @@ public slots:
|
||||
void SourceFlagsChanged(uint32_t flags);
|
||||
void SourceVolumeChanged(float volume);
|
||||
void SourceSyncChanged(int64_t offset);
|
||||
void SourceMonitoringTypeChanged(int type);
|
||||
void SourceMixersChanged(uint32_t mixers);
|
||||
|
||||
void volumeChanged(double db);
|
||||
|
Loading…
x
Reference in New Issue
Block a user