]> git.sesse.net Git - nageru/blobdiff - nageru/mainwindow.cpp
Make it possible to get and set EQ parameters from the theme.
[nageru] / nageru / mainwindow.cpp
index c369f28993452aea9d610834b32b0c8c4eb19a73..20f8e50dbc6ec189310b20e6b7337d19b826062d 100644 (file)
@@ -1182,6 +1182,19 @@ void MainWindow::set_treble(unsigned bus_idx, float value)
        set_relative_value_if_exists(bus_idx, &Ui::AudioExpandedView::treble_knob, value);
 }
 
+void MainWindow::set_eq_absolute(unsigned bus_idx, EQBand eq_band, float value_db)
+{
+       if (eq_band == EQ_BAND_TREBLE) {
+               set_db_value_if_exists(bus_idx, &Ui::AudioExpandedView::treble_knob, value_db);
+       } else if (eq_band == EQ_BAND_MID) {
+               set_db_value_if_exists(bus_idx, &Ui::AudioExpandedView::mid_knob, value_db);
+       } else if (eq_band == EQ_BAND_BASS) {
+               set_db_value_if_exists(bus_idx, &Ui::AudioExpandedView::bass_knob, value_db);
+       } else {
+               assert(false);
+       }
+}
+
 void MainWindow::set_mid(unsigned bus_idx, float value)
 {
        set_relative_value_if_exists(bus_idx, &Ui::AudioExpandedView::mid_knob, value);
@@ -1433,6 +1446,18 @@ void MainWindow::set_relative_value_if_exists(unsigned bus_idx, T *(Ui_AudioExpa
        }
 }
 
+void MainWindow::set_db_value_if_exists(unsigned bus_idx, QDial *(Ui_AudioExpandedView::*control), float value_db)
+{
+       post_to_main_thread([this, bus_idx, control, value_db]{
+               if (global_audio_mixer != nullptr &&
+                   global_audio_mixer->get_mapping_mode() == AudioMixer::MappingMode::MULTICHANNEL &&
+                   bus_idx < audio_expanded_views.size()) {
+                       int value = lrintf(value_db * 10.0f);
+                       (audio_expanded_views[bus_idx]->*control)->setValue(value);
+               }
+       });
+}
+
 template<class T>
 void MainWindow::click_button_if_exists(unsigned bus_idx, T *(Ui_AudioExpandedView::*control))
 {