X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=mainwindow.cpp;h=b542c1093243dc15af5ae006c0b274b5e9c06352;hb=e5a0d3dfb676087bdcef4c82876234782e46604c;hp=313097de4de63807b5f17fa2637a31a99d2e88d0;hpb=86520183fc1bb7aafb65b766e6f31b722c77a640;p=nageru diff --git a/mainwindow.cpp b/mainwindow.cpp index 313097d..b542c10 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -301,6 +301,9 @@ MainWindow::MainWindow() } midi_mapper.refresh_highlights(); midi_mapper.refresh_lights(); + if (global_flags.fullscreen) { + QMainWindow::showFullScreen(); + } } void MainWindow::resizeEvent(QResizeEvent* event) @@ -557,6 +560,7 @@ void MainWindow::setup_audio_expanded_view() ui_audio_expanded_view->bus_desc_label->setFullText( QString::fromStdString(get_bus_desc_label(mapping.buses[bus_index]))); audio_expanded_views[bus_index] = ui_audio_expanded_view; + update_stereo_knob_and_label(bus_index, lrintf(100.0f * global_audio_mixer->get_stereo_width(bus_index))); update_eq_label(bus_index, EQ_BAND_TREBLE, global_audio_mixer->get_eq(bus_index, EQ_BAND_TREBLE)); update_eq_label(bus_index, EQ_BAND_MID, global_audio_mixer->get_eq(bus_index, EQ_BAND_MID)); update_eq_label(bus_index, EQ_BAND_BASS, global_audio_mixer->get_eq(bus_index, EQ_BAND_BASS)); @@ -572,6 +576,9 @@ void MainWindow::setup_audio_expanded_view() midi_mapper.refresh_lights(); }); + connect(ui_audio_expanded_view->stereo_width_knob, &QDial::valueChanged, + bind(&MainWindow::stereo_width_knob_changed, this, bus_index, _1)); + connect(ui_audio_expanded_view->treble_knob, &QDial::valueChanged, bind(&MainWindow::eq_knob_changed, this, bus_index, EQ_BAND_TREBLE, _1)); connect(ui_audio_expanded_view->mid_knob, &QDial::valueChanged, @@ -805,6 +812,14 @@ void MainWindow::report_disk_space(off_t free_bytes, double estimated_seconds_le }); } +void MainWindow::stereo_width_knob_changed(unsigned bus_index, int value) +{ + float stereo_width = value * 0.01f; + global_audio_mixer->set_stereo_width(bus_index, stereo_width); + + update_stereo_label(bus_index, value); +} + void MainWindow::eq_knob_changed(unsigned bus_index, EQBand band, int value) { float gain_db = value * 0.1f; @@ -813,6 +828,34 @@ void MainWindow::eq_knob_changed(unsigned bus_index, EQBand band, int value) update_eq_label(bus_index, band, gain_db); } +void MainWindow::update_stereo_knob_and_label(unsigned bus_index, int stereo_width_percent) +{ + Ui::AudioExpandedView *view = audio_expanded_views[bus_index]; + + if (global_audio_mixer->is_mono(bus_index)) { + view->stereo_width_knob->setEnabled(false); + view->stereo_width_label->setEnabled(false); + } else { + view->stereo_width_knob->setEnabled(true); + view->stereo_width_label->setEnabled(true); + } + view->stereo_width_knob->setValue(stereo_width_percent); + update_stereo_label(bus_index, stereo_width_percent); +} + +void MainWindow::update_stereo_label(unsigned bus_index, int stereo_width_percent) +{ + Ui::AudioExpandedView *view = audio_expanded_views[bus_index]; + + if (global_audio_mixer->is_mono(bus_index)) { + view->stereo_width_label->setText("Mono"); + } else { + char buf[256]; + snprintf(buf, sizeof(buf), "Stereo: %d%%", stereo_width_percent); + view->stereo_width_label->setText(buf); + } +} + void MainWindow::update_eq_label(unsigned bus_index, EQBand band, float gain_db) { Ui::AudioExpandedView *view = audio_expanded_views[bus_index]; @@ -956,11 +999,13 @@ void MainWindow::audio_level_callback(float level_lufs, float peak_db, vectorpeak_display, peak_db); // NOTE: Will be invisible when using multitrack audio. - ui->gainstaging_knob->blockSignals(true); - ui->gainstaging_knob->setValue(lrintf(bus_levels[0].gain_staging_db * 10.0f)); - ui->gainstaging_knob->blockSignals(false); - ui->gainstaging_db_display->setText( - QString::fromStdString(format_db(bus_levels[0].gain_staging_db, DB_WITH_SIGN))); + if (!bus_levels.empty()) { + ui->gainstaging_knob->blockSignals(true); + ui->gainstaging_knob->setValue(lrintf(bus_levels[0].gain_staging_db * 10.0f)); + ui->gainstaging_knob->blockSignals(false); + ui->gainstaging_db_display->setText( + QString::fromStdString(format_db(bus_levels[0].gain_staging_db, DB_WITH_SIGN))); + } ui->makeup_gain_knob->blockSignals(true); ui->makeup_gain_knob->setValue(lrintf(final_makeup_gain_db * 10.0f)); @@ -1096,6 +1141,11 @@ void MainWindow::set_makeup_gain(float value) set_relative_value(ui->makeup_gain_knob, value); } +void MainWindow::set_stereo_width(unsigned bus_idx, float value) +{ + set_relative_value_if_exists(bus_idx, &Ui::AudioExpandedView::stereo_width_knob, value); +} + void MainWindow::set_treble(unsigned bus_idx, float value) { set_relative_value_if_exists(bus_idx, &Ui::AudioExpandedView::treble_knob, value); @@ -1218,6 +1268,11 @@ void MainWindow::highlight_makeup_gain(bool highlight) }); } +void MainWindow::highlight_stereo_width(unsigned bus_idx, bool highlight) +{ + highlight_control_if_exists(bus_idx, &Ui::AudioExpandedView::stereo_width_knob, highlight); +} + void MainWindow::highlight_treble(unsigned bus_idx, bool highlight) { highlight_control_if_exists(bus_idx, &Ui::AudioExpandedView::treble_knob, highlight);