89 lines
2.2 KiB
C++
89 lines
2.2 KiB
C++
#ifndef CAMERACONTROLWIDGET_H
|
|
#define CAMERACONTROLWIDGET_H
|
|
|
|
#include <QWidget>
|
|
#include <QSlider>
|
|
#include <QSpinBox>
|
|
#include <QComboBox>
|
|
#include <QRadioButton>
|
|
#include <QPushButton>
|
|
#include <QLabel>
|
|
#include <QGroupBox>
|
|
#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
|