From 9de822ce5bf493ba3bd4fafea77f458d8cfe97f2 Mon Sep 17 00:00:00 2001
From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
Date: Mon, 11 Feb 2019 16:42:00 -0500
Subject: [PATCH] video: don't always clear default device when calling
 removeDevice

- Checks if there are still video devices in the list, and if so,
  sets the default to the 0th, otherwise empties the string.

Change-Id: Ib7fed45bf2d32d1d41c6286b4d62c71183eed39d
---
 src/media/video/video_device_monitor.cpp | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/media/video/video_device_monitor.cpp b/src/media/video/video_device_monitor.cpp
index f8640cbca1..81513ff40c 100644
--- a/src/media/video/video_device_monitor.cpp
+++ b/src/media/video/video_device_monitor.cpp
@@ -237,10 +237,16 @@ VideoDeviceMonitor::removeDevice(const string& node)
         if (it == devices_.end())
             return;
 
-        if (defaultDevice_ == it->name)
-            defaultDevice_.clear();
-
+        auto removedDeviceName = it->name;
         devices_.erase(it);
+
+        if (defaultDevice_ == removedDeviceName) {
+            if (devices_.size() == 0) {
+                defaultDevice_.clear();
+            } else {
+                defaultDevice_ = devices_[0].name;
+            }
+        }
     }
     notify();
 }
-- 
GitLab