@@ -2,10 +2,11 @@ from enum import Enum
|
||||
from typing import Any
|
||||
import logging
|
||||
|
||||
from PySide6.QtWidgets import QGridLayout, QHBoxLayout, QMainWindow, QStyle, QToolButton, QWidget, QVBoxLayout, QPushButton
|
||||
from PySide6.QtGui import QIcon
|
||||
from PySide6.QtWidgets import QGridLayout, QHBoxLayout, QMainWindow, QStyle, QToolButton, QWidget, QVBoxLayout, QPushButton, QLabel
|
||||
from PySide6.QtGui import QIcon, QPixmap
|
||||
from PySide6.QtCore import Qt, QSize
|
||||
|
||||
from .video_stream.controller import VideoStreamController, FrameMetrics
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
class VideoMode(Enum):
|
||||
@@ -70,13 +71,22 @@ class MainWindow(QMainWindow):
|
||||
self.video_mode = VideoMode.STREAMING
|
||||
logger.debug(f"Initial video mode: {self.video_mode}")
|
||||
|
||||
|
||||
self.video_controller = VideoStreamController()
|
||||
self.video_controller.change_source(0) # Start with default camera
|
||||
self.video_controller.image_ready.connect(self.update_frame)
|
||||
|
||||
self.setup_ui()
|
||||
|
||||
self.video_controller.start()
|
||||
|
||||
def setup_ui(self):
|
||||
self.central_widget = QWidget()
|
||||
self.setCentralWidget(self.central_widget)
|
||||
self.central_widget.setStyleSheet("background-color: #001e1e;")
|
||||
|
||||
self.video_label = QLabel(self.central_widget)
|
||||
|
||||
self.toolbar_widget = QWidget(self.central_widget)
|
||||
self.toolbar_widget.setMinimumWidth(400)
|
||||
self.toolbar_widget.setObjectName("bottomToolbar")
|
||||
@@ -185,4 +195,12 @@ class MainWindow(QMainWindow):
|
||||
def pause_video(self):
|
||||
logger.debug("Pausing video")
|
||||
self.video_mode = VideoMode.STOPPED
|
||||
set_icon(self.action_button, "play")
|
||||
set_icon(self.action_button, "play")
|
||||
|
||||
def closeEvent(self, event: Any) -> None:
|
||||
logger.debug("Closing main window, cleaning up resources.")
|
||||
self.video_controller.cleanup()
|
||||
super().closeEvent(event)
|
||||
|
||||
def update_frame(self, frame):
|
||||
self.video_label.setPixmap(QPixmap.fromImage(frame))
|
||||
Reference in New Issue
Block a user