diff --git a/src/mediasettingsview.cpp b/src/mediasettingsview.cpp index f22cccb27e947a0a75fb6a8db926680fcacb2fc1..3e74217c61c3308b395e102c59e815d67aa7fcf4 100644 --- a/src/mediasettingsview.cpp +++ b/src/mediasettingsview.cpp @@ -386,17 +386,11 @@ set_video_device(MediaSettingsView* self) MediaSettingsViewPrivate *priv = MEDIA_SETTINGS_VIEW_GET_PRIVATE(self); auto* device_name = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(priv->combobox_device)); if (device_name) { - auto devices = priv->cpp->avModel_->getDevices(); - auto iter = std::find_if(devices.begin(), devices.end(), - [device_name, &priv](const std::string& d) { - auto settings = priv->cpp->avModel_->getDeviceSettings(d); - return settings.name == device_name; - }); - if (iter == devices.end()) { + auto device_id = priv->cpp->avModel_->getDeviceIdFromName(device_name); + if (device_id.empty()) { g_warning("set_video_device couldn't find device: %s", device_name); return; } - auto& device_id = *iter; auto currentDevice = priv->cpp->avModel_->getDefaultDevice(); if (currentDevice == device_id) return; priv->cpp->avModel_->setDefaultDevice(device_id); diff --git a/src/video/video_widget.cpp b/src/video/video_widget.cpp index e66425cccf4fec82aa1df8580df56b42686b6e33..3fa36f3271b76b61a8184fd29b69ea002107535c 100644 --- a/src/video/video_widget.cpp +++ b/src/video/video_widget.cpp @@ -411,8 +411,14 @@ switch_video_input(GtkWidget *widget, GtkWidget *parent) auto* label = gtk_menu_item_get_label(GTK_MENU_ITEM(widget)); g_return_if_fail(label); - if (priv->avModel_) - priv->avModel_->switchInputTo(label); + if (priv->avModel_) { + auto device_id = priv->avModel_->getDeviceIdFromName(label); + if (device_id.empty()) { + g_warning("switch_video_input couldn't find device: %s", label); + return; + } + priv->avModel_->switchInputTo(device_id); + } } static void @@ -532,8 +538,11 @@ video_widget_on_button_press_in_screen_event(VideoWidget *self, GdkEventButton auto active_device = priv->avModel_->getCurrentRenderedDevice( priv->remote->v_renderer->getId()); + g_debug("active_device.name: %s", active_device.name.c_str()); + for (auto device : device_list) { - GtkWidget *item = gtk_check_menu_item_new_with_mnemonic(device.c_str()); + auto settings = priv->avModel_->getDeviceSettings(device); + GtkWidget *item = gtk_check_menu_item_new_with_mnemonic(settings.name.c_str()); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), device == active_device.name