#ifndef CAMERACONTROLWIDGET_H #define CAMERACONTROLWIDGET_H #include #include #include #include #include #include #include #include #include "socketclient.h" class CameraControlWidget : public QWidget { Q_OBJECT public: explicit CameraControlWidget(SocketClient* socketClient, QWidget *parent = nullptr); private slots: void onGetFormats(); void onSetFormat(); void onSetExposure(); void onSetWhiteBalance(); void onBrightnessChanged(int value); void onContrastChanged(int value); void onSaturationChanged(int value); void onSharpnessChanged(int value); void onGammaChanged(int value); void onGainChanged(int value); void onExposureModeChanged(); void onWhiteBalanceModeChanged(); private: void setupUI(); QGroupBox* createFormatGroup(); QGroupBox* createExposureGroup(); QGroupBox* createWhiteBalanceGroup(); QGroupBox* createImageAdjustmentGroup(); QWidget* createSliderControl(const QString& label, int min, int max, int defaultValue, QSlider** slider, QSpinBox** spinBox); SocketClient* m_socketClient; // Format controls QComboBox* m_formatCombo; QPushButton* m_getFormatsBtn; QPushButton* m_setFormatBtn; // Exposure controls QRadioButton* m_exposureAuto; QRadioButton* m_exposureManual; QSpinBox* m_exposureValue; QPushButton* m_setExposureBtn; // White Balance controls QRadioButton* m_whiteBalanceAuto; QRadioButton* m_whiteBalanceManual; QSpinBox* m_whiteBalanceTemp; QPushButton* m_setWhiteBalanceBtn; // Image adjustment controls QSlider* m_brightnessSlider; QSpinBox* m_brightnessSpinBox; QSlider* m_contrastSlider; QSpinBox* m_contrastSpinBox; QSlider* m_saturationSlider; QSpinBox* m_saturationSpinBox; QSlider* m_sharpnessSlider; QSpinBox* m_sharpnessSpinBox; QSlider* m_gammaSlider; QSpinBox* m_gammaSpinBox; QSlider* m_gainSlider; QSpinBox* m_gainSpinBox; // Status display QLabel* m_statusLabel; void updateStatus(const QString& status, bool isSuccess); }; #endif // CAMERACONTROLWIDGET_H