#include "glwidget.h"
#include "lrameter.h"
#include "mixer.h"
+#include "post_to_main_thread.h"
#include "ui_display.h"
#include "ui_mainwindow.h"
#include "vumeter.h"
// Hook up the transition buttons.
// TODO: Make them dynamic.
- connect(ui->transition_btn1, &QPushButton::clicked, std::bind(&MainWindow::transition_clicked, this, 0));
- connect(ui->transition_btn2, &QPushButton::clicked, std::bind(&MainWindow::transition_clicked, this, 1));
- connect(ui->transition_btn3, &QPushButton::clicked, std::bind(&MainWindow::transition_clicked, this, 2));
+ connect(ui->transition_btn1, &QPushButton::clicked, bind(&MainWindow::transition_clicked, this, 0));
+ connect(ui->transition_btn2, &QPushButton::clicked, bind(&MainWindow::transition_clicked, this, 1));
+ connect(ui->transition_btn3, &QPushButton::clicked, bind(&MainWindow::transition_clicked, this, 2));
// Aiee...
transition_btn1 = ui->transition_btn1;
connect(ui_display->wb_button, &QPushButton::clicked, std::bind(&MainWindow::wb_button_clicked, this, i));
}
- mixer->set_audio_level_callback([this](float level_lufs, float peak_db, float global_level_lufs, float range_low_lufs, float range_high_lufs, float auto_gain_staging_db){
- ui->vu_meter->set_level(level_lufs);
- ui->lra_meter->set_levels(global_level_lufs, range_low_lufs, range_high_lufs);
+ connect(ui->locut_cutoff_knob, &QDial::valueChanged, [this](int value) {
+ float octaves = value * 0.1f;
+ float cutoff_hz = 20.0 * pow(2.0, octaves);
+ global_mixer->set_locut_cutoff(cutoff_hz);
char buf[256];
- snprintf(buf, sizeof(buf), "%.1f", peak_db);
- ui->peak_display->setText(buf);
- if (peak_db > -0.1f) { // -0.1 dBFS is EBU peak limit.
- ui->peak_display->setStyleSheet("QLabel { background-color: red; color: white; }");
- } else {
- ui->peak_display->setStyleSheet("");
- }
+ snprintf(buf, sizeof(buf), "%ld Hz", lrintf(cutoff_hz));
+ ui->locut_cutoff_display->setText(buf);
+ });
- ui->gainstaging_knob->setValue(lrintf(auto_gain_staging_db * 10.0f));
- snprintf(buf, sizeof(buf), "%+.1f dB", auto_gain_staging_db);
- ui->gainstaging_db_display->setText(buf);
+ mixer->set_audio_level_callback([this](float level_lufs, float peak_db, float global_level_lufs, float range_low_lufs, float range_high_lufs, float auto_gain_staging_db){
+ post_to_main_thread([=]() {
+ ui->vu_meter->set_level(level_lufs);
+ ui->lra_meter->set_levels(global_level_lufs, range_low_lufs, range_high_lufs);
+
+ char buf[256];
+ snprintf(buf, sizeof(buf), "%.1f", peak_db);
+ ui->peak_display->setText(buf);
+ if (peak_db > -0.1f) { // -0.1 dBFS is EBU peak limit.
+ ui->peak_display->setStyleSheet("QLabel { background-color: red; color: white; }");
+ } else {
+ ui->peak_display->setStyleSheet("");
+ }
+
+ ui->gainstaging_knob->setValue(lrintf(auto_gain_staging_db * 10.0f));
+ snprintf(buf, sizeof(buf), "%+.1f dB", auto_gain_staging_db);
+ ui->gainstaging_db_display->setText(buf);
+ });
});
}