From 8dc91ce5e1decb2be1bad60d9f764e2cb502dfd7 Mon Sep 17 00:00:00 2001 From: cg2121 Date: Fri, 13 May 2022 01:57:43 -0500 Subject: [PATCH] UI: Add rename signal to adv audio dialog The names wouldn't be updated in the advanced audio dialog when the source is renamed. --- UI/adv-audio-control.cpp | 18 +++++++++++++++++- UI/adv-audio-control.hpp | 3 +++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/UI/adv-audio-control.cpp b/UI/adv-audio-control.cpp index 02dac995b..d7c9679ba 100644 --- a/UI/adv-audio-control.cpp +++ b/UI/adv-audio-control.cpp @@ -68,6 +68,7 @@ OBSAdvAudioCtrl::OBSAdvAudioCtrl(QGridLayout *, obs_source_t *source_) this); balChangedSignal.Connect(handler, "audio_balance", OBSSourceBalanceChanged, this); + renameSignal.Connect(handler, "rename", OBSSourceRenamed, this); hlayout = new QHBoxLayout(); hlayout->setContentsMargins(0, 0, 0, 0); @@ -95,7 +96,7 @@ OBSAdvAudioCtrl::OBSAdvAudioCtrl(QGridLayout *, obs_source_t *source_) iconLabel->setFixedSize(16, 16); iconLabel->setStyleSheet("background: none"); - nameLabel->setText(sourceName); + SetSourceName(sourceName); nameLabel->setAlignment(Qt::AlignVCenter); bool isActive = obs_source_active(source); @@ -360,6 +361,15 @@ void OBSAdvAudioCtrl::OBSSourceBalanceChanged(void *param, calldata_t *calldata) "SourceBalanceChanged", Q_ARG(int, balance)); } +void OBSAdvAudioCtrl::OBSSourceRenamed(void *param, calldata_t *calldata) +{ + QString newName = QT_UTF8(calldata_string(calldata, "new_name")); + + QMetaObject::invokeMethod(reinterpret_cast(param), + "SetSourceName", + Q_ARG(const QString &, newName)); +} + /* ------------------------------------------------------------------------- */ /* Qt event queue source callbacks */ @@ -689,3 +699,9 @@ void OBSAdvAudioCtrl::SetIconVisible(bool visible) { visible ? iconLabel->show() : iconLabel->hide(); } + +void OBSAdvAudioCtrl::SetSourceName(const QString &newName) +{ + if (nameLabel->text() != newName) + nameLabel->setText(newName); +} diff --git a/UI/adv-audio-control.hpp b/UI/adv-audio-control.hpp index 405ab4309..460dfb07b 100644 --- a/UI/adv-audio-control.hpp +++ b/UI/adv-audio-control.hpp @@ -56,6 +56,7 @@ private: OBSSignal activateSignal; OBSSignal deactivateSignal; OBSSignal balChangedSignal; + OBSSignal renameSignal; static void OBSSourceActivated(void *param, calldata_t *calldata); static void OBSSourceDeactivated(void *param, calldata_t *calldata); @@ -66,6 +67,7 @@ private: calldata_t *calldata); static void OBSSourceMixersChanged(void *param, calldata_t *calldata); static void OBSSourceBalanceChanged(void *param, calldata_t *calldata); + static void OBSSourceRenamed(void *param, calldata_t *calldata); public: OBSAdvAudioCtrl(QGridLayout *layout, obs_source_t *source_); @@ -85,6 +87,7 @@ public slots: void SourceMonitoringTypeChanged(int type); void SourceMixersChanged(uint32_t mixers); void SourceBalanceChanged(int balance); + void SetSourceName(const QString &newNamw); void volumeChanged(double db); void percentChanged(int percent);