X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=input_mapping_dialog.cpp;h=08d68dcbc05ed783f1dacb2bf3aa30c2a8ab3790;hb=e4c99b681aceb0d960f1d56acc9dafc83643854b;hp=9c8180cce6321750894c1b4547b6c6f991cbca37;hpb=0b0e067a60997906a192dd184434260dd97938da;p=nageru diff --git a/input_mapping_dialog.cpp b/input_mapping_dialog.cpp index 9c8180c..08d68dc 100644 --- a/input_mapping_dialog.cpp +++ b/input_mapping_dialog.cpp @@ -9,9 +9,9 @@ using namespace std::placeholders; InputMappingDialog::InputMappingDialog() : ui(new Ui::InputMappingDialog), - mapping(global_mixer->get_audio_mixer()->get_input_mapping()), + mapping(global_audio_mixer->get_input_mapping()), old_mapping(mapping), - devices(global_mixer->get_audio_mixer()->get_devices()) + devices(global_audio_mixer->get_devices()) { ui->setupUi(this); ui->table->setSelectionBehavior(QAbstractItemView::SelectRows); @@ -54,9 +54,20 @@ void InputMappingDialog::fill_row_from_bus(unsigned row, const InputMapping::Bus unsigned current_index = 0; card_combo->addItem(QString("(none) ")); for (const auto &spec_and_info : devices) { + QString label(QString::fromStdString(spec_and_info.second.name)); + if (spec_and_info.first.type == InputSourceType::ALSA_INPUT) { + ALSAPool::Device::State state = global_audio_mixer->get_alsa_card_state(spec_and_info.first.index); + if (state == ALSAPool::Device::State::EMPTY) { + continue; + } else if (state == ALSAPool::Device::State::STARTING) { + label += " (busy)"; + } else if (state == ALSAPool::Device::State::DEAD) { + label += " (dead)"; + } + } ++current_index; card_combo->addItem( - QString::fromStdString(spec_and_info.second.name + " "), + label + " ", qulonglong(DeviceSpec_to_key(spec_and_info.first))); if (bus.device == spec_and_info.first) { card_combo->setCurrentIndex(current_index); @@ -97,13 +108,13 @@ void InputMappingDialog::setup_channel_choices_from_bus(unsigned row, const Inpu void InputMappingDialog::ok_clicked() { - global_mixer->get_audio_mixer()->set_input_mapping(mapping); + global_audio_mixer->set_input_mapping(mapping); accept(); } void InputMappingDialog::cancel_clicked() { - global_mixer->get_audio_mixer()->set_input_mapping(old_mapping); + global_audio_mixer->set_input_mapping(old_mapping); reject(); }