+ connect(ui_display->wb_button, &QPushButton::clicked, bind(&MainWindow::wb_button_clicked, this, i));
+ }
+
+ char buf[256];
+ snprintf(buf, sizeof(buf), "%.1f dB", mixer->get_limiter_threshold_dbfs());
+ ui->limiter_threshold_db_display->setText(buf);
+ snprintf(buf, sizeof(buf), "%.1f dB", mixer->get_compressor_threshold_dbfs());
+ ui->compressor_threshold_db_display->setText(buf);
+
+ connect(ui->locut_cutoff_knob, &QDial::valueChanged, this, &MainWindow::cutoff_knob_changed);
+ cutoff_knob_changed(ui->locut_cutoff_knob->value());
+
+ connect(ui->limiter_threshold_knob, &QDial::valueChanged, this, &MainWindow::limiter_threshold_knob_changed);
+ connect(ui->compressor_threshold_knob, &QDial::valueChanged, this, &MainWindow::compressor_threshold_knob_changed);
+ connect(ui->limiter_enabled, &QCheckBox::stateChanged, [this](int state){
+ global_mixer->set_limiter_enabled(state == Qt::Checked);
+ });
+ connect(ui->compressor_enabled, &QCheckBox::stateChanged, [this](int state){
+ global_mixer->set_compressor_enabled(state == Qt::Checked);
+ });
+ connect(ui->reset_meters_button, &QPushButton::clicked, this, &MainWindow::reset_meters_button_clicked);
+ mixer->set_audio_level_callback(bind(&MainWindow::audio_level_callback, this, _1, _2, _3, _4, _5, _6));
+}
+
+void MainWindow::mixer_shutting_down()
+{
+ ui->me_live->clean_context();
+ ui->me_preview->clean_context();
+ for (Ui::Display *display : previews) {
+ display->display->clean_context();