From 272a5edbaaef45dcc1bcf4d80359d69d6de1c5e0 Mon Sep 17 00:00:00 2001 From: cg2121 Date: Tue, 13 Feb 2024 03:35:14 -0600 Subject: [PATCH] UI: Use vector for volume control signals This cleans up the volume control code by using a vector for signals. --- UI/volume-control.cpp | 24 ++++++++---------------- UI/volume-control.hpp | 1 + 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/UI/volume-control.cpp b/UI/volume-control.cpp index f8ebff1dc..e4b6125e4 100644 --- a/UI/volume-control.cpp +++ b/UI/volume-control.cpp @@ -379,14 +379,13 @@ VolControl::VolControl(OBSSource source_, bool showConfig, bool vertical) obs_fader_add_callback(obs_fader, OBSVolumeChanged, this); obs_volmeter_add_callback(obs_volmeter, OBSVolumeLevel, this); - signal_handler_connect(obs_source_get_signal_handler(source), "mute", - OBSVolumeMuted, this); - signal_handler_connect(obs_source_get_signal_handler(source), - "audio_mixers", OBSMixersOrMonitoringChanged, - this); - signal_handler_connect(obs_source_get_signal_handler(source), - "audio_monitoring", OBSMixersOrMonitoringChanged, - this); + sigs.emplace_back(obs_source_get_signal_handler(source), "mute", + OBSVolumeMuted, this); + sigs.emplace_back(obs_source_get_signal_handler(source), "audio_mixers", + OBSMixersOrMonitoringChanged, this); + sigs.emplace_back(obs_source_get_signal_handler(source), + "audio_monitoring", OBSMixersOrMonitoringChanged, + this); QWidget::connect(slider, &VolumeSlider::valueChanged, this, &VolControl::SliderChanged); @@ -422,14 +421,7 @@ VolControl::~VolControl() obs_fader_remove_callback(obs_fader, OBSVolumeChanged, this); obs_volmeter_remove_callback(obs_volmeter, OBSVolumeLevel, this); - signal_handler_disconnect(obs_source_get_signal_handler(source), "mute", - OBSVolumeMuted, this); - signal_handler_disconnect(obs_source_get_signal_handler(source), - "audio_mixers", OBSMixersOrMonitoringChanged, - this); - signal_handler_disconnect(obs_source_get_signal_handler(source), - "audio_monitoring", - OBSMixersOrMonitoringChanged, this); + sigs.clear(); if (contextMenu) contextMenu->close(); diff --git a/UI/volume-control.hpp b/UI/volume-control.hpp index 613add27f..ecc7b23f9 100644 --- a/UI/volume-control.hpp +++ b/UI/volume-control.hpp @@ -278,6 +278,7 @@ class VolControl : public QWidget { private: OBSSource source; + std::vector sigs; QLabel *nameLabel; QLabel *volLabel; VolumeMeter *volMeter;