summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2023-06-22 01:12:44 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2023-06-22 01:12:44 -0400
commit85bc7b95f76cbc27e414c9f9182e51052b259b20 (patch)
tree797276a9d8e374b2e7afeaecc1580753ea08ff93
parent7832ab5d2a24cc951ad411649b74defd46afb224 (diff)
downloadabaddon-portaudio-85bc7b95f76cbc27e414c9f9182e51052b259b20.tar.gz
abaddon-portaudio-85bc7b95f76cbc27e414c9f9182e51052b259b20.zip
allow setting unreasonably high gain
apparently packing is still a thing or whatever... someone asked
-rw-r--r--res/css/main.css5
-rw-r--r--src/windows/voicesettingswindow.cpp12
-rw-r--r--src/windows/voicesettingswindow.hpp6
-rw-r--r--src/windows/voicewindow.cpp5
4 files changed, 28 insertions, 0 deletions
diff --git a/res/css/main.css b/res/css/main.css
index dcbdf4f..40e1696 100644
--- a/res/css/main.css
+++ b/res/css/main.css
@@ -382,3 +382,8 @@
.voice-state-server {
color: red;
}
+
+spinbutton {
+ color: @text_color;
+ margin-top: 10px;
+}
diff --git a/src/windows/voicesettingswindow.cpp b/src/windows/voicesettingswindow.cpp
index c009cbf..3749986 100644
--- a/src/windows/voicesettingswindow.cpp
+++ b/src/windows/voicesettingswindow.cpp
@@ -110,9 +110,17 @@ VoiceSettingsWindow::VoiceSettingsWindow()
}
});
+ m_gain.set_increments(1.0, 5.0);
+ m_gain.set_range(0.0, 6969696969.0);
+ m_gain.set_value(Abaddon::Get().GetAudio().GetCaptureGain() * 100.0);
+ m_gain.signal_value_changed().connect([this]() {
+ m_signal_gain.emit(m_gain.get_value() / 100.0);
+ });
+
m_main.add(m_encoding_mode);
m_main.add(m_signal);
m_main.add(m_bitrate);
+ m_main.add(m_gain);
add(m_main);
show_all_children();
@@ -122,4 +130,8 @@ VoiceSettingsWindow::VoiceSettingsWindow()
});
}
+VoiceSettingsWindow::type_signal_gain VoiceSettingsWindow::signal_gain() {
+ return m_signal_gain;
+}
+
#endif
diff --git a/src/windows/voicesettingswindow.hpp b/src/windows/voicesettingswindow.hpp
index cf6b477..9b3498e 100644
--- a/src/windows/voicesettingswindow.hpp
+++ b/src/windows/voicesettingswindow.hpp
@@ -18,8 +18,14 @@ public:
Gtk::ComboBoxText m_encoding_mode;
Gtk::ComboBoxText m_signal;
Gtk::Scale m_bitrate;
+ Gtk::SpinButton m_gain;
private:
+ using type_signal_gain = sigc::signal<void(double)>;
+ type_signal_gain m_signal_gain;
+
+public:
+ type_signal_gain signal_gain();
};
#endif
diff --git a/src/windows/voicewindow.cpp b/src/windows/voicewindow.cpp
index 9e2efee..a915da6 100644
--- a/src/windows/voicewindow.cpp
+++ b/src/windows/voicewindow.cpp
@@ -163,6 +163,11 @@ VoiceWindow::VoiceWindow(Snowflake channel_id)
m_menu_view_sub.append(m_menu_view_settings);
m_menu_view_settings.signal_activate().connect([this]() {
auto *window = new VoiceSettingsWindow;
+ const auto cb = [this](double gain) {
+ m_capture_gain.set_value(gain * 100.0);
+ m_signal_gain.emit(gain);
+ };
+ window->signal_gain().connect(sigc::track_obj(cb, *this));
window->show();
});