X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=mainwindow.cpp;h=3245fdde0254c75e8505e52bbfa0a4fcd568449c;hb=61116d03f84a53e96445c2b5d8686f2ea7e7c855;hp=a16d5bd159bfde3b37ac85833907737102a7754c;hpb=1d75037f1e47e1e86adc444417922b402ba8272a;p=nageru diff --git a/mainwindow.cpp b/mainwindow.cpp index a16d5bd..3245fdd 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -235,6 +235,7 @@ void MainWindow::mixer_created(Mixer *mixer) setup_audio_miniview(); setup_audio_expanded_view(); + global_audio_mixer->set_state_changed_callback(bind(&MainWindow::audio_state_changed, this)); slave_knob(ui->locut_cutoff_knob, ui->locut_cutoff_knob_2); slave_knob(ui->limiter_threshold_knob, ui->limiter_threshold_knob_2); @@ -338,7 +339,8 @@ void MainWindow::setup_audio_miniview() peak_meter->set_max_level(0.0f); peak_meter->set_ref_level(0.0f); - // TODO: Set the fader position. + ui_audio_miniview->fader->setDbValue(global_audio_mixer->get_fader_volume(bus_index)); + ui->faders->addWidget(channel); connect(ui_audio_miniview->fader, &NonLinearFader::dbValueChanged, @@ -372,7 +374,7 @@ void MainWindow::setup_audio_expanded_view() 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)); - // TODO: Set the fader position. + ui_audio_expanded_view->fader->setDbValue(global_audio_mixer->get_fader_volume(bus_index)); ui->buses->addWidget(channel); ui_audio_expanded_view->locut_enabled->setChecked(global_audio_mixer->get_locut_enabled(bus_index)); @@ -841,3 +843,27 @@ void MainWindow::set_white_balance(int channel_number, int x, int y) global_mixer->set_wb(Mixer::OUTPUT_INPUT0 + channel_number, r, g, b); previews[channel_number]->display->updateGL(); } + +void MainWindow::audio_state_changed() +{ + post_to_main_thread([this]{ + InputMapping mapping = global_audio_mixer->get_input_mapping(); + for (unsigned bus_index = 0; bus_index < mapping.buses.size(); ++bus_index) { + const InputMapping::Bus &bus = mapping.buses[bus_index]; + string suffix; + if (bus.device.type == InputSourceType::ALSA_INPUT) { + ALSAPool::Device::State state = global_audio_mixer->get_alsa_card_state(bus.device.index); + if (state == ALSAPool::Device::State::STARTING) { + suffix = " (busy)"; + } else if (state == ALSAPool::Device::State::DEAD) { + suffix = " (dead)"; + } + } + + audio_miniviews[bus_index]->bus_desc_label->setFullText( + QString::fromStdString(bus.name + suffix)); + audio_expanded_views[bus_index]->bus_desc_label->setFullText( + QString::fromStdString(bus.name + suffix)); + } + }); +}