refactor: implement CameraManager class with methods for detecting GPhoto and OpenCV cameras

This commit is contained in:
2025-10-01 18:26:41 +02:00
parent dea17b8b26
commit ca25b06f99
2 changed files with 98 additions and 71 deletions

View File

@@ -5,10 +5,13 @@ from core.media import MediaRepository
from ui.widgets.color_list_widget import ColorListWidget
from ui.widgets.thumbnail_list_widget import ThumbnailListWidget
from ui.widgets.split_view_widget import SplitView
from .camera_controller import CameraController
# from .camera_controller import CameraController
from core.camera.camera_controller import CameraController
from core.camera.camera_manager import CameraManager
from core.camera.gphoto_camera import GPhotoCamera
from core.camera.camera_manager import CameraManager
from core.camera.camera_controller import CameraController
class MainController:
def __init__(self, view):
@@ -17,9 +20,11 @@ class MainController:
self.media_repo = MediaRepository(self.db)
self.media_repo.sync_media()
camera = GPhotoCamera()
self.manager = CameraManager(camera)
# camera = GPhotoCamera()
# self.manager = CameraController(camera)
manager = CameraManager()
manager.detect_gphoto()
manager.detect_opencv()
# self.camera_controller = CameraController()
@@ -39,9 +44,9 @@ class MainController:
self.thumbnail_list.selectedThumbnail.connect(self.on_thumbnail_selected)
# self.camera_controller.errorOccurred.connect(self.split_view.widget_start.set_info_text)
self.manager.error_occurred.connect(self.split_view.widget_start.set_info_text)
# self.manager.error_occurred.connect(self.split_view.widget_start.set_info_text)
# self.camera_controller.frameReady.connect(self.split_view.set_live_image)
self.manager.frame_ready.connect(self.split_view.set_live_image)
# self.manager.frame_ready.connect(self.split_view.set_live_image)
# self.split_view.widget_start.camera_start_btn.clicked.connect(self.camera_controller.start)
self.split_view.widget_start.camera_start_btn.clicked.connect(self.start_liveview)
@@ -86,8 +91,10 @@ class MainController:
self.split_view.toglle_live_view()
def start_liveview(self):
self.manager.start_camera()
pass
# self.manager.start_camera()
# self.manager.start_stream()
def shutdown(self):
self.manager.stop()
pass
# self.manager.stop()

View File

@@ -0,0 +1,20 @@
from .gphoto_camera import GPhotoCamera
from .opencv_camera import OpenCvCamera
from .camera_controller import CameraController
class CameraManager:
def __init__(self) -> None:
pass
def detect_gphoto(self):
camera_list = GPhotoCamera.detect()
print(camera_list)
return camera_list
def detect_opencv(self):
camera_list = OpenCvCamera.detect()
print(camera_list)
return camera_list