from PySide6.QtCore import QObject, Signal from PySide6.QtGui import QPixmap class BaseImageSource(QObject): new_frame = Signal(QPixmap) errorOccurred = Signal(str) def start(self): raise NotImplementedError def stop(self): raise NotImplementedError class BaseControlSource(QObject): errorOccurred = Signal(str) parameterChanged = Signal(str, object) def set_parameter(self, name: str, value): raise NotImplementedError def get_parameter(self, name: str): raise NotImplementedError def list_parameters(self) -> dict: raise NotImplementedError