X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Fglwidget.cpp;h=f5f350a6865188194f7bf58c7a778521cd0dad92;hb=ecaec75dd52d076ba53cafa1fed716ebc0d93da6;hp=9aae03b05cbb9df60e21134d1e1070dfa9f51d06;hpb=0490c42536a845dd6d718a7c58cfb3e3ab02b1ab;p=nageru diff --git a/nageru/glwidget.cpp b/nageru/glwidget.cpp index 9aae03b..f5f350a 100644 --- a/nageru/glwidget.cpp +++ b/nageru/glwidget.cpp @@ -88,7 +88,7 @@ void GLWidget::initializeGL() { static once_flag flag; call_once(flag, [this]{ - global_mixer = new Mixer(QGLFormat::toSurfaceFormat(format()), global_flags.num_cards); + global_mixer = new Mixer(QGLFormat::toSurfaceFormat(format())); global_audio_mixer = global_mixer->get_audio_mixer(); global_mainwindow->mixer_created(global_mixer); global_mixer->start(); @@ -227,12 +227,13 @@ void GLWidget::show_preview_context_menu(unsigned signal_num, const QPoint &pos) QMenu mode_submenu; QActionGroup mode_group(&mode_submenu); - unsigned num_cards = global_mixer->get_num_cards(); unsigned current_card = global_mixer->map_signal_to_card(signal_num); bool is_ffmpeg = global_mixer->card_is_ffmpeg(current_card); - if (!is_ffmpeg) { // FFmpeg inputs are not connected to any card; they're locked to a given input and have a given Y'CbCr interpretatio and have a given Y'CbCr interpretationn. - for (unsigned card_index = 0; card_index < num_cards; ++card_index) { + if (!is_ffmpeg) { // FFmpeg inputs are not connected to any card; they're locked to a given input and have a given Y'CbCr interpretatio and have a given Y'CbCr interpretation. + for (unsigned card_index = 0; card_index < MAX_VIDEO_CARDS; ++card_index) { + if (!global_mixer->card_is_active(card_index)) continue; + if (global_mixer->card_is_cef(card_index) || global_mixer->card_is_ffmpeg(card_index)) continue; QString description(QString::fromStdString(global_mixer->get_card_description(card_index))); QAction *action = new QAction(description, &card_group); action->setCheckable(true); @@ -292,10 +293,8 @@ void GLWidget::show_preview_context_menu(unsigned signal_num, const QPoint &pos) if (is_ffmpeg) { // Add a menu to change the source URL if we're an FFmpeg card. // (The theme can still override.) - if (global_mixer->card_is_ffmpeg(current_card)) { - change_url_action = new QAction("Change source filename/URL…", &menu); - menu.addAction(change_url_action); - } + change_url_action = new QAction("Change source filename/URL…", &menu); + menu.addAction(change_url_action); } else { // Add a submenu for selecting video input, with an action for each input. std::map video_inputs = global_mixer->get_available_video_inputs(current_card);