Auto-sleep of background cameras works. Dynamic changing of resolutions also works.

This commit is contained in:
2018-01-25 16:11:47 -08:00
parent 7397153412
commit 006f11af65

View File

@@ -66,6 +66,8 @@ class RoverVideoCoordinator(QtCore.QThread):
self.secondary_label_max_resolution = -1 self.secondary_label_max_resolution = -1
self.tertiary_label_max_resolution = -1 self.tertiary_label_max_resolution = -1
self.first_image_received = False
def run(self): def run(self):
self.logger.debug("Starting Video Coordinator Thread") self.logger.debug("Starting Video Coordinator Thread")
@@ -74,7 +76,7 @@ class RoverVideoCoordinator(QtCore.QThread):
while self.run_thread_flag: while self.run_thread_flag:
self.__set_max_resolutions() self.__set_max_resolutions()
# self.__toggle_background_cameras_if_needed() self.__toggle_background_cameras_if_needed()
self.msleep(10) self.msleep(10)
self.__wait_for_camera_threads() self.__wait_for_camera_threads()
@@ -102,14 +104,15 @@ class RoverVideoCoordinator(QtCore.QThread):
TERTIARY_LABEL_MAX) TERTIARY_LABEL_MAX)
def __toggle_background_cameras_if_needed(self): def __toggle_background_cameras_if_needed(self):
if self.first_image_received:
enabled = list({self.primary_label_current_setting, self.secondary_label_current_setting, enabled = list({self.primary_label_current_setting, self.secondary_label_current_setting,
self.tertiary_label_current_setting}) self.tertiary_label_current_setting})
for camera_index, camera_name in enumerate(self.valid_cameras): for camera_index, camera_name in enumerate(self.valid_cameras):
if camera_index not in enabled: if camera_index not in enabled and camera_index not in self.disabled_cameras:
self.camera_threads[camera_name].toggle_video_display() self.camera_threads[camera_name].toggle_video_display()
self.disabled_cameras.append(camera_index) self.disabled_cameras.append(camera_index)
elif camera_index in self.disabled_cameras: elif camera_index in enabled and camera_index in self.disabled_cameras:
self.camera_threads[camera_name].toggle_video_display() self.camera_threads[camera_name].toggle_video_display()
self.disabled_cameras.remove(camera_index) self.disabled_cameras.remove(camera_index)
@@ -174,6 +177,9 @@ class RoverVideoCoordinator(QtCore.QThread):
self.camera_threads[self.valid_cameras[self.tertiary_label_current_setting]].toggle_video_display() self.camera_threads[self.valid_cameras[self.tertiary_label_current_setting]].toggle_video_display()
def pixmap_ready__slot(self, camera): def pixmap_ready__slot(self, camera):
if not self.first_image_received:
self.first_image_received = True
if self.valid_cameras[self.primary_label_current_setting] == camera: if self.valid_cameras[self.primary_label_current_setting] == camera:
self.primary_video_display_label.setPixmap(self.camera_threads[camera].pixmap_1280x720_image) self.primary_video_display_label.setPixmap(self.camera_threads[camera].pixmap_1280x720_image)