class OpenCVControlSource(BaseControlSource): def __init__(self, cap: cv2.VideoCapture, parent=None): super().__init__(parent) self.cap = cap def set_parameter(self, name, value): prop_id = getattr(cv2, name, None) if prop_id is None: self.errorOccurred.emit(f"Nieznany parametr {name}") return self.cap.set(prop_id, value) self.parameterChanged.emit(name, value) def get_parameter(self, name): prop_id = getattr(cv2, name, None) if prop_id is None: self.errorOccurred.emit(f"Nieznany parametr {name}") return None return self.cap.get(prop_id) def list_parameters(self): return { "CAP_PROP_BRIGHTNESS": self.cap.get(cv2.CAP_PROP_BRIGHTNESS), "CAP_PROP_CONTRAST": self.cap.get(cv2.CAP_PROP_CONTRAST), "CAP_PROP_SATURATION": self.cap.get(cv2.CAP_PROP_SATURATION), "CAP_PROP_GAIN": self.cap.get(cv2.CAP_PROP_GAIN), "CAP_PROP_EXPOSURE": self.cap.get(cv2.CAP_PROP_EXPOSURE), }