X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=glwidget.cpp;fp=glwidget.cpp;h=e09060f4949c12ab1258de5ac9616b3155dfa8d8;hb=adaeecd2ab8f1da45169861b7af22a0c7af066be;hp=e71ac405721bf53d94fb3caffd05711ee8c17f06;hpb=f245cb0d0453e0e8bd5c7d40720bd0a5b50454ee;p=nageru diff --git a/glwidget.cpp b/glwidget.cpp index e71ac40..e09060f 100644 --- a/glwidget.cpp +++ b/glwidget.cpp @@ -112,11 +112,13 @@ void GLWidget::mousePressEvent(QMouseEvent *event) emit clicked(); } -void GLWidget::show_context_menu(int signal_num, const QPoint &pos) +void GLWidget::show_context_menu(unsigned signal_num, const QPoint &pos) { QPoint global_pos = mapToGlobal(pos); QMenu menu; + + // Add an action for each card. QActionGroup group(&menu); unsigned num_cards = global_mixer->get_num_cards(); @@ -131,8 +133,22 @@ void GLWidget::show_context_menu(int signal_num, const QPoint &pos) action->setData(card_index); menu.addAction(action); } + + menu.addSeparator(); + + // Add an audio source selector. + QAction *audio_source_action = new QAction("Use as audio source", &menu); + audio_source_action->setCheckable(true); + if (global_mixer->get_audio_source() == signal_num) { + audio_source_action->setChecked(true); + audio_source_action->setEnabled(false); + } + menu.addAction(audio_source_action); + QAction *selected_item = menu.exec(global_pos); - if (selected_item) { + if (selected_item == audio_source_action) { + global_mixer->set_audio_source(signal_num); + } else if (selected_item != nullptr) { unsigned card_index = selected_item->data().toInt(nullptr); global_mixer->set_signal_mapping(signal_num, card_index); }