3
// Added By Sankari : 17 Dec 2016
6
#include <QtConcurrentRun>
10
#define CMD_TIMEOUT_81CAM 3000
11
#define CAMERA_CONTROL_81 0x7C
12
#define SETSPECIALEFFECT_81 0x09
13
#define GETSPECIALEFFECT_81 0x08
14
#define GETFLIPMIRRORSTATUS_81 0x0A
15
#define SETFLIPMIRRORSTATUS_81 0x0B
16
#define GET_AF_ROI_MODE_81 0x13
17
#define SET_AF_ROI_MODE_81 0x14
18
#define SET_AF_ROI_MODE_COORDINATES_81 0x16
19
#define SET_FOCUS_MODE_81 0x02
20
#define GET_FOCUS_POSITION_81 0x03
21
#define SET_FOCUS_POSITION_81 0x04
22
#define GPIO_OPERATION_81 0x20
23
#define GPIO_GET_LEVEL_81 0x01
24
#define GPIO_SET_LEVEL_81 0x02
25
#define GET_INPUT_GPIO_LEVEL_81 0x04
26
#define SET_TO_DEFAULT_CAM81 0x0C
28
#define GETSTROBE_STATUS 0x06
29
#define SETSTROBE_STATUS 0x07
30
#define GETFOCUS_STATUS 0x05
32
#define GET_FAIL_CAM81 0x01
33
#define GET_SUCCESS_CAM81 0x00
35
class See3CAM_81: public QObject {
44
enum flipMirrorControls{
45
FLIP_OFF_MIRROR_OFF_81 = 0x00,
46
FLIP_ON_MIRROR_OFF_81 = 0x01,
47
FLIP_OFF_MIRROR_ON_81 = 0x02,
48
FLIP_ON_MIRROR_ON_81 = 0x03
50
Q_ENUMS(flipMirrorControls)
54
EFFECT_GRAYSCALE = 0x02
56
Q_ENUMS(specialEffects)
60
STROBE_FLASH_VS_81 = 0x01,
61
STROBE_TORCH_81 = 0x03
66
CONTINUOUS_FOCUS_81 = 0x01,
67
MANUAL_FOCUS_81 = 0x02,
68
SINGLETRIGGER_FOCUS_81 = 0x03
73
CAM_FOCUS_FAILED = 0x00,
74
CAM_FOCUS_SUCCESS = 0x01,
77
Q_ENUMS(focusModeStatus)
86
GPIO_OUT8_INDEX = 0x00,
87
GPIO_OUT9_INDEX = 0x01
92
GPIO_IN3_INDEX = 0x00,
97
enum gpioControlsCam81{
102
CAM81_OUT8_READVAL = 25,
103
CAM81_OUT9_READVAL = 24,
104
CAM81_IN3_READVAL = 21,
105
CAM81_IN6_READVAL = 23,
107
Q_ENUMS(gpioControlsCam81)
110
* @brief The camGpioValue enum are used to set status (High/Low) for the Gpio pin.
116
Q_ENUMS(camGpioValue)
118
enum camFocusModesComboIndex{
121
SINGLE_TRIGGER_MODE_INDEX
123
Q_ENUMS(camFocusModesComboIndex)
125
// This is used to set RGB gain value
133
// This is used to get RGB gain value
140
Q_ENUMS(camRGBcolorGet)
147
Q_ENUMS(camROIAfMode)
149
// APIs running in background to avoid preview hang
150
static bool setGpioLevelBackgrndFn(See3CAM_81 *see3cam81obj, gpioControlsCam81 gpioPin,camGpioValue gpioValue);
151
static bool setFocusModeBackgrndFn(See3CAM_81 *see3cam81obj, uint focusMode);
152
static bool getOutputGpioLevelBackgrndFn(See3CAM_81 *see3cam81obj, gpioControlsCam81 gpioPinNumber);
153
static bool setWbValuesBackgrndFn(See3CAM_81 *see3cam81obj, camRGBcolor rgbColor, uint rgbValue);
156
void effectModeValue(uint effectMode);
157
void flipMirrorModeValue(uint flipMirrorMode);
158
void strobeModeValue(uint strobeMode);
159
void focusModeStatus(unsigned int focusModeStatus);
160
void focusModeValue(unsigned int focusModeValue);
161
void focusPostionValue(quint16 focusPositionValue);
162
void gpioLevel(unsigned int level);
163
void updateFrameToSkipfromCam81(uint stillSkip);
164
void returnFromSetFocusMode(bool status);
165
void whiteBalanceGainValue(uint rgbColor, uint whiteBalanceGain);
166
void roiAfMode(uint roiMode, uint winSize);
167
void roiAfModeSuccess();
168
void roiAfModeFail();
171
bool setEffectMode(const See3CAM_81::specialEffects &specialEffect);
172
bool getEffectMode();
174
bool setFlipMirrorMode(bool flipMode, bool mirrorMode);
175
bool getFlipMirrorMode();
177
bool setStrobeMode(const See3CAM_81::strobeValues &strobeMode);
178
bool getStrobeMode();
182
bool setFocusPosition(int focusPosition);
183
bool getFocusPosition();
184
bool getFocusStatus();
188
bool getInputGpioLevel(gpioControlsCam81 gpioPinNumber);
189
void getOutputGpioLevel(gpioControlsCam81 gpioPinNumber);
191
void setGpioLevel(gpioControlsCam81 gpioPin,camGpioValue gpioValue);
192
void setFocusMode(uint focusMode);
194
void setStillSkipCount(QString stillResoln, QString videoResoln);
195
void setStillSkipCountWhenFPSChange(bool fpsChange);
197
void setWbValues(camRGBcolor rgbColor, uint rgbValue);
198
bool getWbValues(camRGBcolor rgbColor);
200
bool setROIAutoFoucs(camROIAfMode see3camAfROIMode, QString winSize);
201
bool setROIAutoFoucsCoordinates(uint vidResolnWidth, uint vidResolnHeight, uint xCord, uint yCord);
202
bool getAutoFocusROIModeAndWindowSize();
205
#endif // SEECAM_81_H