~sushanth317/+junk/qtcam

« back to all changes in this revision

Viewing changes to qtcam/src/qml/qtcam/UVCSettings/see3cam130/uvc_130.qml

  • Committer: Sushanth
  • Date: 2022-11-24 15:56:47 UTC
  • Revision ID: sushanth.s@e-consystems.com-20221124155647-5jx2tzazwlob7vmd
Added Support for See3cam_27CUG

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import QtQuick 2.0
 
2
import QtQuick.Controls 1.1
 
3
import QtQuick.Controls.Styles 1.0
 
4
import QtQuick.Dialogs 1.1
 
5
import econ.camera.uvcsettings 1.0
 
6
import econ.camera.see3cam130 1.0
 
7
import QtQuick.Layouts 1.1
 
8
import cameraenum 1.0
 
9
 
 
10
Item {
 
11
    id: see3cam30Id
 
12
    width:268
 
13
    height:750    
 
14
    property int denoiseMin: 0
 
15
    property int denoiseMax: 15
 
16
    property int qFactorMin: 10
 
17
    property int qFactorMax: 96
 
18
    property int frameRateMin: 1
 
19
    property int frameRateMax: 120
 
20
    property int expoCompMin: 8000
 
21
    property int expoCompMax: 1000000
 
22
    property int iHDRMin: 1
 
23
    property int iHDRMax: 4   
 
24
    // Flags to prevent setting values in camera when getting the values from camera    
 
25
    property bool skipUpdateUIQFactor : false
 
26
    property bool skipUpdateUIDenoise : false
 
27
    property bool skipUpdateUIFrameRate: false
 
28
    property bool skipUpdateUIOnAFWindowSize: false
 
29
    property bool skipUpdateUIOnExpWindowSize: false
 
30
    property bool skipUpdateUIOnBurstLength: false
 
31
    property bool skipUpdateUIiHDR: false
 
32
    property bool setButtonClicked: false
 
33
    property bool skipUpdateUIFlickerCtrl:false
 
34
    property int  flickerCtrl
 
35
 
 
36
    Connections
 
37
    {
 
38
        target: root
 
39
        onTakeScreenShot:
 
40
        {
 
41
            if(seecam130.enableDisableFaceRectangle(false)){
 
42
                root.imageCapture(CommonEnums.BURST_SHOT);
 
43
            }
 
44
        }
 
45
        onGetVideoPinStatus:
 
46
        {
 
47
            root.enableVideoPin(true);
 
48
        }
 
49
        onGetStillImageFormats:
 
50
        {
 
51
            var stillImageFormat = []
 
52
            stillImageFormat.push("jpg")
 
53
            stillImageFormat.push("bmp")
 
54
            stillImageFormat.push("raw")
 
55
            stillImageFormat.push("png")
 
56
            root.insertStillImageFormat(stillImageFormat);
 
57
        }
 
58
    }
 
59
 
 
60
    Timer {
 
61
        id: burstShotTimer
 
62
        interval: 1000
 
63
        onTriggered: {
 
64
            root.imageCapture(CommonEnums.BURST_SHOT);
 
65
            stop()
 
66
        }
 
67
    }    
 
68
 
 
69
    Timer {
 
70
        id: getCamValuesTimer
 
71
        interval: 500
 
72
        onTriggered: {
 
73
            seecam130.getSceneMode()
 
74
            seecam130.getEffectMode()
 
75
            seecam130.getDenoiseValue()
 
76
            seecam130.getQFactor()
 
77
            seecam130.getExposureCompensation()            
 
78
            seecam130.getFrameRateCtrlValue()
 
79
            stop()
 
80
        }
 
81
    }
 
82
 
 
83
    Timer {
 
84
        id: getexposureCompFrameRateCtrlTimer
 
85
        interval: 500
 
86
        onTriggered: {
 
87
            seecam130.getExposureCompensation()            
 
88
            seecam130.getFrameRateCtrlValue()
 
89
            stop()
 
90
        }
 
91
    }
 
92
 
 
93
    // Used when selecting auto focus in image Quality settings menu
 
94
    Timer {
 
95
        id: getAutoFocusControlValues
 
96
        interval: 500
 
97
        onTriggered: {
 
98
            seecam130.getAutoFocusROIModeAndWindowSize()
 
99
            stop()
 
100
        }
 
101
    }
 
102
 
 
103
    // Used when selecting auto exposure in image Quality settings menu
 
104
    Timer {
 
105
        id: getAutoExpsoureControlValues
 
106
        interval: 500
 
107
        onTriggered: {
 
108
            seecam130.getAutoExpROIModeAndWindowSize()
 
109
            stop()
 
110
        }
 
111
    }
 
112
 
 
113
    Action {
 
114
        id: triggerAction
 
115
        onTriggered: {
 
116
            seecam130.setAutoFocusMode(See3Cam130.OneShot)
 
117
        }
 
118
    }
 
119
 
 
120
    Action {
 
121
        id: firmwareVersion
 
122
        onTriggered:
 
123
        {
 
124
            getFirmwareVersion()
 
125
        }
 
126
    }
 
127
 
 
128
    Action {
 
129
        id: serialNumber
 
130
        onTriggered: {
 
131
            getSerialNumber()
 
132
        }
 
133
    }
 
134
 
 
135
    Action {
 
136
        id: setDefault
 
137
        onTriggered:
 
138
        {
 
139
            setToDefaultValues()
 
140
        }
 
141
    }
 
142
 
 
143
    ScrollView{
 
144
        id: scrollview
 
145
        x: 10
 
146
        y: 189.5
 
147
        width: 257
 
148
        height: 500
 
149
        style: econscrollViewStyle
 
150
        ColumnLayout{
 
151
            x:2
 
152
            y:5
 
153
            spacing:20
 
154
 
 
155
            Text {
 
156
            id: scene_mode
 
157
            text: "--- Scene Mode ---"
 
158
            font.pixelSize: 14
 
159
            font.family: "Ubuntu"
 
160
            color: "#ffffff"
 
161
            smooth: true
 
162
            Layout.alignment: Qt.AlignCenter
 
163
            opacity: 0.50196078431373
 
164
            }
 
165
 
 
166
 
 
167
            Grid {
 
168
                columns: 2
 
169
                spacing: 20
 
170
 
 
171
                ExclusiveGroup { id: sceneInputGroup }
 
172
                RadioButton {
 
173
                    id: sceneNormal
 
174
                    style:  econRadioButtonStyle
 
175
                    text:   qsTr("Normal")                 
 
176
                    exclusiveGroup: sceneInputGroup
 
177
                    activeFocusOnPress: true                    
 
178
                    onClicked: {
 
179
                        seecam130.setSceneMode(See3Cam130.SCENE_NORMAL)
 
180
                    }
 
181
                    Keys.onReturnPressed: {
 
182
                        seecam130.setSceneMode(See3Cam130.SCENE_NORMAL)
 
183
                    }
 
184
                }
 
185
                RadioButton {
 
186
                    id: sceneDoc
 
187
                    style:  econRadioButtonStyle
 
188
                    text: qsTr("Document")                  
 
189
                    exclusiveGroup: sceneInputGroup
 
190
                    activeFocusOnPress: true
 
191
                    onClicked: {
 
192
                        seecam130.setSceneMode(See3Cam130.SCENE_DOCUMENT)
 
193
                    }
 
194
                    Keys.onReturnPressed: {
 
195
                        seecam130.setSceneMode(See3Cam130.SCENE_DOCUMENT)
 
196
                    }
 
197
 
 
198
                }
 
199
 
 
200
            }
 
201
 
 
202
            Text {
 
203
                id: special_effects
 
204
                text: "--- Special Effects ---"
 
205
                font.pixelSize: 14
 
206
                font.family: "Ubuntu"
 
207
                color: "#ffffff"
 
208
                smooth: true
 
209
                Layout.alignment: Qt.AlignCenter
 
210
                opacity: 0.50196078431373
 
211
            }
 
212
 
 
213
            Grid {
 
214
                columns: 2
 
215
                spacing: 20
 
216
 
 
217
                ExclusiveGroup { id: effectInputGroup }
 
218
                RadioButton {
 
219
                    id: effectNormal
 
220
                    style:  econRadioButtonStyle
 
221
                    text:   qsTr("Normal")
 
222
                    exclusiveGroup: effectInputGroup
 
223
                    activeFocusOnPress: true
 
224
                    //checked: true
 
225
                    onClicked: {
 
226
                        seecam130.setEffectMode(See3Cam130.EFFECT_NORMAL)
 
227
                    }
 
228
                    Keys.onReturnPressed: {
 
229
                        seecam130.setEffectMode(See3Cam130.EFFECT_NORMAL)
 
230
                    }
 
231
 
 
232
                }
 
233
                RadioButton {
 
234
                    id: effectBW
 
235
                    style:  econRadioButtonStyle
 
236
                    text: qsTr("Black and White")
 
237
                    exclusiveGroup: effectInputGroup
 
238
                    activeFocusOnPress: true
 
239
                    onClicked: {
 
240
                        seecam130.setEffectMode(See3Cam130.EFFECT_BLACK_WHITE)
 
241
                    }
 
242
                    Keys.onReturnPressed: {
 
243
                        seecam130.setEffectMode(See3Cam130.EFFECT_BLACK_WHITE)
 
244
                    }
 
245
                }
 
246
                RadioButton {
 
247
                    id: effectNegative
 
248
                    style:  econRadioButtonStyle
 
249
                    text: qsTr("Negative")
 
250
                    exclusiveGroup: effectInputGroup
 
251
                    activeFocusOnPress: true
 
252
                    onClicked: {
 
253
                        seecam130.setEffectMode(See3Cam130.EFFECT_NEGATIVE)
 
254
                    }
 
255
                    Keys.onReturnPressed: {
 
256
                        seecam130.setEffectMode(See3Cam130.EFFECT_NEGATIVE)
 
257
                    }
 
258
 
 
259
                }
 
260
                RadioButton {
 
261
                    id: effectGrayscale
 
262
                    style:  econRadioButtonStyle
 
263
                    text: qsTr("Grayscale")
 
264
                    exclusiveGroup: effectInputGroup
 
265
                    activeFocusOnPress: true
 
266
                    onClicked: {
 
267
                        seecam130.setEffectMode(See3Cam130.EFFECT_GREYSCALE)
 
268
                    }
 
269
                    Keys.onReturnPressed: {
 
270
                        seecam130.setEffectMode(See3Cam130.EFFECT_GREYSCALE)
 
271
                    }
 
272
                }
 
273
                RadioButton {
 
274
                    id: effectSketch
 
275
                    style:  econRadioButtonStyle
 
276
                    text: qsTr("Sketch")
 
277
                    exclusiveGroup: effectInputGroup
 
278
                    activeFocusOnPress: true
 
279
                    onClicked: {
 
280
                        seecam130.setEffectMode(See3Cam130.EFFECT_SKETCH)
 
281
                    }
 
282
                    Keys.onReturnPressed: {
 
283
                        seecam130.setEffectMode(See3Cam130.EFFECT_SKETCH)
 
284
                    }
 
285
                }
 
286
 
 
287
            }
 
288
            Text {
 
289
                id: autoFocusMode
 
290
                text: "--- Auto Focus Mode ---"
 
291
                font.pixelSize: 14
 
292
                font.family: "Ubuntu"
 
293
                color: "#ffffff"
 
294
                smooth: true
 
295
                Layout.alignment: Qt.AlignCenter
 
296
                opacity: 0.50196078431373
 
297
            }
 
298
 
 
299
            Row{
 
300
                  spacing:10
 
301
                  ExclusiveGroup { id: afgroup }
 
302
                  RadioButton {
 
303
                      exclusiveGroup: afgroup
 
304
                      id: radioContin
 
305
                      text: "Continuous"
 
306
                      activeFocusOnPress: true
 
307
                      style: econRadioButtonStyle                      
 
308
                      opacity: enabled ? 1 : 0.1
 
309
                      onClicked: {
 
310
                        seecam130.setAutoFocusMode(See3Cam130.Continuous);
 
311
                      }
 
312
                      Keys.onReturnPressed: {
 
313
                        seecam130.setAutoFocusMode(See3Cam130.Continuous);
 
314
                      }
 
315
                  }
 
316
            }
 
317
            Row{
 
318
                spacing:25
 
319
                RadioButton {
 
320
                    exclusiveGroup: afgroup
 
321
                    id: radioOneshot
 
322
                    text: "One-Shot"
 
323
                    activeFocusOnPress: true
 
324
                    style: econRadioButtonStyle                    
 
325
                    opacity: enabled ? 1 : 0.1
 
326
                    onClicked: {
 
327
                        seecam130.setAutoFocusMode(See3Cam130.OneShot);
 
328
                    }
 
329
                    Keys.onReturnPressed: {
 
330
                        seecam130.setAutoFocusMode(See3Cam130.OneShot);
 
331
                    }
 
332
                }
 
333
                Button {
 
334
                    id: trigger
 
335
                    activeFocusOnPress : true
 
336
                    text: "Trigger"
 
337
                    style: econButtonStyle
 
338
                    enabled: (radioOneshot.enabled && radioOneshot.checked) ? true : false
 
339
                    opacity: (radioOneshot.enabled && radioOneshot.checked) ? 1 : 0.1
 
340
                    implicitHeight: 25
 
341
                    implicitWidth: 120
 
342
                    action: (radioOneshot.enabled && radioOneshot.checked) ? triggerAction : null
 
343
                    Keys.onReturnPressed: {
 
344
                        seecam130.setAutoFocusMode(See3Cam130.OneShot);
 
345
                    }
 
346
                }
 
347
            }
 
348
            Text {
 
349
                id: enableDisableAFRectText
 
350
                text: "--- Enable/Disable AF Rectangle ---"
 
351
                font.pixelSize: 14
 
352
                font.family: "Ubuntu"
 
353
                color: "#ffffff"
 
354
                smooth: true
 
355
                Layout.alignment: Qt.AlignCenter
 
356
                opacity: 0.50196078431373
 
357
            }
 
358
 
 
359
            Row{
 
360
                spacing:75
 
361
                ExclusiveGroup { id: afRectGroup }
 
362
                RadioButton {
 
363
                    exclusiveGroup: afRectGroup
 
364
                    id: rectEnable
 
365
                    text: "Enable"
 
366
                    activeFocusOnPress: true
 
367
                    style: econRadioButtonStyle
 
368
                    onClicked:{
 
369
                        seecam130.enableDisableAFRectangle(true)
 
370
                    }
 
371
                    Keys.onReturnPressed: {
 
372
                        seecam130.enableDisableAFRectangle(true)
 
373
                    }
 
374
                }
 
375
                RadioButton {
 
376
                    exclusiveGroup: afRectGroup
 
377
                    id:rectDisable
 
378
                    text: "Disable"
 
379
                    activeFocusOnPress: true
 
380
                    style: econRadioButtonStyle
 
381
                    onClicked: {
 
382
                        seecam130.enableDisableAFRectangle(false)
 
383
                    }
 
384
                    Keys.onReturnPressed: {
 
385
                        seecam130.enableDisableAFRectangle(false)
 
386
                    }
 
387
                }
 
388
            }
 
389
            Text {
 
390
                id: roiAutoFocusMode
 
391
                text: "--- ROI - Auto Focus ---"
 
392
                font.pixelSize: 14
 
393
                font.family: "Ubuntu"
 
394
                color: "#ffffff"
 
395
                smooth: true
 
396
                Layout.alignment: Qt.AlignCenter
 
397
                opacity: 0.50196078431373
 
398
            }
 
399
 
 
400
            Row{
 
401
                  spacing:55
 
402
                  ExclusiveGroup { id: roiAfgroup }
 
403
                  RadioButton {
 
404
                      exclusiveGroup: roiAfgroup
 
405
                      id: afCentered
 
406
                      text: "Centered"
 
407
                      activeFocusOnPress: true
 
408
                      style: econRadioButtonStyle
 
409
                      opacity: afCentered.enabled ? 1 : 0.1
 
410
                      // setROIAutoFoucs() args:  mode, videoresolnWidth, videoresolnHeight, mouseXCord, mouseYCord, WinSize]
 
411
                      // videoresolnWidth, videoresolnHeight, mouseXCord, mouseYCord - these parameters are required only when click in preview]
 
412
                      // winSize is required only for manual mode
 
413
                      onClicked: {
 
414
                            seecam130.setROIAutoFoucs(See3Cam130.AFCentered, 0, 0, 0, 0, 0);
 
415
                            afWindowSizeCombo.enabled = false
 
416
                      }                      
 
417
                      Keys.onReturnPressed: {
 
418
                            seecam130.setROIAutoFoucs(See3Cam130.AFCentered, 0, 0, 0, 0, 0);
 
419
                            afWindowSizeCombo.enabled = false
 
420
                      }
 
421
                  }
 
422
                  RadioButton {
 
423
                      exclusiveGroup: roiAfgroup
 
424
                      id: afManual
 
425
                      text: "Manual"
 
426
                      activeFocusOnPress: true
 
427
                      style: econRadioButtonStyle
 
428
                      opacity: afManual.enabled ? 1 : 0.1
 
429
                      onClicked: {
 
430
                            seecam130.setROIAutoFoucs(See3Cam130.AFManual, 0, 0, 0, 0, afWindowSizeCombo.currentText)
 
431
                            afWindowSizeCombo.enabled = true
 
432
                      }
 
433
                      Keys.onReturnPressed: {
 
434
                            seecam130.setROIAutoFocusMode(See3Cam130.AFManual, 0, 0, 0, 0, afWindowSizeCombo.currentText);
 
435
                            afWindowSizeCombo.enabled = true
 
436
                      }
 
437
                  }
 
438
            }
 
439
 
 
440
            ComboBox
 
441
            {
 
442
                id: afWindowSizeCombo                
 
443
                enabled: (afManual.enabled && afManual.checked) ? true : false
 
444
                opacity: (afManual.enabled && afManual.checked) ? 1 : 0.1
 
445
                model: ListModel {
 
446
                    ListElement { text: "1" }
 
447
                    ListElement { text: "2" }
 
448
                    ListElement { text: "3" }
 
449
                    ListElement { text: "4" }
 
450
                    ListElement { text: "5" }
 
451
                    ListElement { text: "6" }
 
452
                    ListElement { text: "7" }
 
453
                    ListElement { text: "8" }
 
454
                }                
 
455
                activeFocusOnPress: true
 
456
                style: econComboBoxStyle
 
457
                onCurrentIndexChanged: {
 
458
                    if(skipUpdateUIOnAFWindowSize){
 
459
                        seecam130.setROIAutoFoucs(See3Cam130.AFManual, 0, 0, 0, 0, afWindowSizeCombo.currentText)
 
460
                    }
 
461
                    skipUpdateUIOnAFWindowSize = true
 
462
                }
 
463
            }
 
464
            Text {
 
465
                id: iHdrMode
 
466
                text: "--- iHDR ---"
 
467
                font.pixelSize: 14
 
468
                font.family: "Ubuntu"
 
469
                color: "#ffffff"
 
470
                smooth: true
 
471
                Layout.alignment: Qt.AlignCenter
 
472
                opacity: 0.50196078431373
 
473
            }
 
474
 
 
475
            Row{
 
476
                spacing:25
 
477
                ExclusiveGroup { id: iHDRgroup }
 
478
                RadioButton {
 
479
                    exclusiveGroup: iHDRgroup
 
480
                    id: hdrOff
 
481
                    text: "Off"
 
482
                    activeFocusOnPress: true
 
483
                    style: econRadioButtonStyle
 
484
                    onClicked:{
 
485
                        seecam130.setiHDRMode(See3Cam130.HdrOff, 0)
 
486
                    }
 
487
 
 
488
                    Keys.onReturnPressed: {
 
489
                        seecam130.setiHDRMode(See3Cam130.HdrOff, 0)
 
490
                    }
 
491
                }
 
492
                RadioButton {
 
493
                    exclusiveGroup: iHDRgroup
 
494
                    id:hdrAuto
 
495
                    text: "Auto"
 
496
                    activeFocusOnPress: true
 
497
                    style: econRadioButtonStyle
 
498
                    onClicked: {
 
499
                        seecam130.setiHDRMode(See3Cam130.HdrAuto, 0)
 
500
                    }
 
501
 
 
502
                    Keys.onReturnPressed: {
 
503
                        seecam130.setiHDRMode(See3Cam130.HdrAuto, 0)
 
504
                    }
 
505
                }
 
506
                RadioButton {
 
507
                    exclusiveGroup: iHDRgroup
 
508
                    id: hdrManual
 
509
                    text: "Manual"
 
510
                    activeFocusOnPress: true
 
511
                    style: econRadioButtonStyle
 
512
                    onClicked:{
 
513
                        seecam130.setiHDRMode(See3Cam130.HdrManual, iHDRSlider.value)
 
514
                    }
 
515
                    Keys.onReturnPressed: {
 
516
                        seecam130.setiHDRMode(See3Cam130.HdrManual, iHDRSlider.value)
 
517
                    }
 
518
                }
 
519
            }
 
520
            Row{
 
521
                spacing: 35
 
522
                Slider {
 
523
                    activeFocusOnPress: true
 
524
                    updateValueWhileDragging: false
 
525
                    id: iHDRSlider
 
526
                    width: 150
 
527
                    stepSize: 1
 
528
                    style:econSliderStyle
 
529
                    minimumValue: iHDRMin
 
530
                    maximumValue: iHDRMax
 
531
                    enabled: (hdrManual.enabled && hdrManual.checked) ? true : false
 
532
                    opacity: enabled ? 1 : 0.1
 
533
                    onValueChanged:  {
 
534
                        iHDRTextField.text = iHDRSlider.value
 
535
                        if(skipUpdateUIiHDR){
 
536
                            seecam130.setiHDRMode(See3Cam130.HdrManual, iHDRSlider.value)
 
537
                        }
 
538
                        skipUpdateUIiHDR = true
 
539
 
 
540
                    }
 
541
                }
 
542
                TextField {
 
543
                    id: iHDRTextField
 
544
                    text: iHDRSlider.value
 
545
                    font.pixelSize: 10
 
546
                    font.family: "Ubuntu"
 
547
                    smooth: true
 
548
                    horizontalAlignment: TextInput.AlignHCenter
 
549
                    style: econTextFieldStyle
 
550
                    enabled: (hdrManual.enabled && hdrManual.checked) ? true : false
 
551
                    opacity: enabled ? 1 : 0.1
 
552
                    validator: IntValidator {bottom: iHDRSlider.minimumValue; top: iHDRSlider.maximumValue}
 
553
                    onTextChanged: {
 
554
                        if(text.length > 0){
 
555
                            iHDRSlider.value = iHDRTextField.text
 
556
                        }
 
557
                    }
 
558
                }
 
559
            }
 
560
 
 
561
            Text {
 
562
                id: streamModeText
 
563
                text: "--- Stream Mode ---"
 
564
                font.pixelSize: 14
 
565
                font.family: "Ubuntu"
 
566
                color: "#ffffff"
 
567
                smooth: true
 
568
                Layout.alignment: Qt.AlignCenter
 
569
                opacity: 0.50196078431373
 
570
            }
 
571
 
 
572
            Row{
 
573
                spacing:68
 
574
                ExclusiveGroup { id: streamModeGroup }
 
575
                RadioButton {
 
576
                    exclusiveGroup: streamModeGroup
 
577
                    id: streamMaster
 
578
                    text: "Master"
 
579
                    activeFocusOnPress: true
 
580
                    style: econRadioButtonStyle
 
581
                    onClicked:{
 
582
                        setMasterMode()
 
583
                    }
 
584
                    Keys.onReturnPressed: {                        
 
585
                        setMasterMode()
 
586
                    }
 
587
                }
 
588
                RadioButton {
 
589
                    exclusiveGroup: streamModeGroup
 
590
                    id: streamTrigger
 
591
                    text: "Trigger"
 
592
                    activeFocusOnPress: true
 
593
                    style: econRadioButtonStyle
 
594
                    onClicked: {
 
595
                        setTriggerMode()
 
596
                    }
 
597
                    Keys.onReturnPressed: {
 
598
                        setTriggerMode()
 
599
                    }                   
 
600
                }
 
601
            }
 
602
            Text {
 
603
                id: denoiseText
 
604
                text: "--- De-Noise ---"
 
605
                font.pixelSize: 14
 
606
                font.family: "Ubuntu"
 
607
                color: "#ffffff"
 
608
                smooth: true
 
609
                Layout.alignment: Qt.AlignCenter
 
610
                opacity: 0.50196078431373
 
611
            }
 
612
 
 
613
            Row{
 
614
                spacing: 35
 
615
                Slider {
 
616
                    activeFocusOnPress: true
 
617
                    updateValueWhileDragging: false
 
618
                    id: deNoiseSlider
 
619
                    width: 150
 
620
                    stepSize: 1
 
621
                    style:econSliderStyle
 
622
                    minimumValue: denoiseMin
 
623
                    maximumValue: denoiseMax
 
624
                    onValueChanged:  {
 
625
                        deNoiseTextField.text = deNoiseSlider.value
 
626
                        if(skipUpdateUIDenoise){
 
627
                            seecam130.setDenoiseValue(deNoiseSlider.value)
 
628
                        }
 
629
                        skipUpdateUIDenoise = true
 
630
                    }
 
631
                }
 
632
                TextField {
 
633
                    id: deNoiseTextField
 
634
                    text: deNoiseSlider.value
 
635
                    font.pixelSize: 10
 
636
                    font.family: "Ubuntu"
 
637
                    smooth: true
 
638
                    horizontalAlignment: TextInput.AlignHCenter
 
639
                    style: econTextFieldStyle
 
640
                    validator: IntValidator {bottom: deNoiseSlider.minimumValue; top: deNoiseSlider.maximumValue}
 
641
                    onTextChanged: {
 
642
                        if(text.length > 0){
 
643
                            deNoiseSlider.value = deNoiseTextField.text
 
644
                        }
 
645
                    }
 
646
                }
 
647
            }
 
648
            
 
649
            Text {
 
650
                id: roiAutoExpMode
 
651
                text: "--- ROI - Auto Exposure ---"
 
652
                font.pixelSize: 14
 
653
                font.family: "Ubuntu"
 
654
                color: "#ffffff"
 
655
                smooth: true
 
656
                Layout.alignment: Qt.AlignCenter
 
657
                opacity: 0.50196078431373
 
658
            }
 
659
 
 
660
            Row{
 
661
                  spacing:38
 
662
                  ExclusiveGroup { id: roiExpogroup }
 
663
 
 
664
                  RadioButton {
 
665
                      exclusiveGroup: roiExpogroup
 
666
                      id: autoexpFull
 
667
                      text: "Full"
 
668
                      activeFocusOnPress: true
 
669
                      style: econRadioButtonStyle                      
 
670
                      opacity: enabled ? 1 : 0.1
 
671
                      // setROIAutoExposure() args:  mode, videoresolnWidth, videoresolnHeight, mouseXCord, mouseYCord, WinSize]
 
672
                      // videoresolnWidth, videoresolnHeight, mouseXCord, mouseYCord - these parameters are required only when click in preview]
 
673
                      // winSize is required only for manual mode
 
674
                      onClicked: {
 
675
                          seecam130.setROIAutoExposure(See3Cam130.AutoExpFull, 0, 0, 0, 0, 0);
 
676
                          autoExpoWinSizeCombo.enabled = false
 
677
                      }
 
678
                      Keys.onReturnPressed: {
 
679
                          seecam130.setROIAutoExposure(See3Cam130.AutoExpFull, 0, 0, 0, 0, 0);
 
680
                          autoExpoWinSizeCombo.enabled = false
 
681
                      }
 
682
                  }
 
683
                  RadioButton {
 
684
                      exclusiveGroup: roiExpogroup
 
685
                      id: autoexpManual
 
686
                      text: "Manual"
 
687
                      activeFocusOnPress: true
 
688
                      style: econRadioButtonStyle                      
 
689
                      opacity: enabled ? 1 : 0.1
 
690
                      onClicked: {
 
691
                          seecam130.setROIAutoExposure(See3Cam130.AutoExpManual, 0, 0, 0, 0, autoExpoWinSizeCombo.currentText);
 
692
                          autoExpoWinSizeCombo.enabled = true
 
693
                      }
 
694
                      Keys.onReturnPressed: {
 
695
                          seecam130.setROIAutoExposure(See3Cam130.AutoExpManual, 0, 0, 0, 0, autoExpoWinSizeCombo.currentText);
 
696
                          autoExpoWinSizeCombo.enabled = true
 
697
                      }
 
698
                  }
 
699
            }
 
700
 
 
701
            ComboBox
 
702
            {
 
703
                id: autoExpoWinSizeCombo
 
704
                enabled: (autoexpManual.enabled && autoexpManual.checked) ? true : false
 
705
                opacity: (autoexpManual.enabled && autoexpManual.checked) ? 1 : 0.1
 
706
                model: ListModel {
 
707
                    ListElement { text: "1" }
 
708
                    ListElement { text: "2" }
 
709
                    ListElement { text: "3" }
 
710
                    ListElement { text: "4" }
 
711
                    ListElement { text: "5" }
 
712
                    ListElement { text: "6" }
 
713
                    ListElement { text: "7" }
 
714
                    ListElement { text: "8" }
 
715
                }
 
716
                activeFocusOnPress: true
 
717
                style: econComboBoxStyle
 
718
                onCurrentIndexChanged: {
 
719
                    if(skipUpdateUIOnExpWindowSize){
 
720
                        seecam130.setROIAutoExposure(See3Cam130.AutoExpManual, 0, 0, 0, 0, autoExpoWinSizeCombo.currentText)
 
721
                    }
 
722
                    skipUpdateUIOnExpWindowSize = true
 
723
                }
 
724
            }
 
725
            Text {
 
726
                id: exposureCompTextTitle
 
727
                text: "--- Exposure Compensation ---"
 
728
                font.pixelSize: 14
 
729
                font.family: "Ubuntu"
 
730
                color: "#ffffff"
 
731
                smooth: true
 
732
                Layout.alignment: Qt.AlignCenter
 
733
                opacity: 0.50196078431373
 
734
            } 
 
735
            Row{
 
736
                spacing: 9
 
737
                Text {
 
738
                    id: exposureCompText
 
739
                    text: "value(µs)[8000 - 1000000]"
 
740
                    font.pixelSize: 14
 
741
                    font.family: "Ubuntu"
 
742
                    color: "#ffffff"
 
743
                    smooth: true
 
744
                    width: 80
 
745
                    wrapMode: Text.WordWrap
 
746
                    opacity: 1
 
747
                }
 
748
                TextField {
 
749
                    id: exposureCompValue
 
750
                    font.pixelSize: 10
 
751
                    font.family: "Ubuntu"
 
752
                    smooth: true
 
753
                    horizontalAlignment: TextInput.AlignHCenter
 
754
                    opacity: 1
 
755
                    style: econTextFieldStyle
 
756
                    implicitHeight: 25
 
757
                    implicitWidth: 80
 
758
                    validator: IntValidator {bottom: expoCompMin; top: expoCompMax}
 
759
                }
 
760
                Button {
 
761
                    id: exposureCompSet
 
762
                    activeFocusOnPress : true
 
763
                    text: "Set"
 
764
                    tooltip: "You can set the required exposure compensation value by changing the
 
765
value in the text box and click the Set button"
 
766
                    style: econButtonStyle
 
767
                    enabled: true
 
768
                    opacity: 1
 
769
                    implicitHeight: 25
 
770
                    implicitWidth: 60
 
771
                    onClicked: {
 
772
                        exposureCompSet.enabled = false
 
773
                        setButtonClicked = true
 
774
                        seecam130.setExposureCompensation(exposureCompValue.text)
 
775
                        exposureCompSet.enabled = true
 
776
                    }
 
777
                    Keys.onReturnPressed: {
 
778
                        exposureCompSet.enabled = false
 
779
                        setButtonClicked = true
 
780
                        seecam130.setExposureCompensation(exposureCompValue.text)
 
781
                        exposureCompSet.enabled = true
 
782
                    }
 
783
                }
 
784
            }
 
785
            Text {
 
786
                id: qFactorText
 
787
                text: "--- Q Factor ---"
 
788
                font.pixelSize: 14
 
789
                font.family: "Ubuntu"
 
790
                color: "#ffffff"
 
791
                smooth: true
 
792
                Layout.alignment: Qt.AlignCenter
 
793
                opacity: 0.50196078431373
 
794
            }
 
795
 
 
796
            Row{
 
797
                spacing: 35
 
798
                Slider {
 
799
                    activeFocusOnPress: true
 
800
                    updateValueWhileDragging: false
 
801
                    id: qFactorSlider
 
802
                    width: 150
 
803
                    stepSize: 1
 
804
                    style:econSliderStyle
 
805
                    minimumValue: qFactorMin
 
806
                    maximumValue: qFactorMax
 
807
                    onValueChanged:  {
 
808
                        qFactorTextField.text = qFactorSlider.value
 
809
                        if(skipUpdateUIQFactor){
 
810
                            seecam130.setQFactor(qFactorSlider.value)
 
811
                        }
 
812
                        skipUpdateUIQFactor = true
 
813
                    }
 
814
                }
 
815
                TextField {
 
816
                    id: qFactorTextField
 
817
                    text: qFactorSlider.value
 
818
                    font.pixelSize: 10
 
819
                    font.family: "Ubuntu"
 
820
                    smooth: true
 
821
                    horizontalAlignment: TextInput.AlignHCenter
 
822
                    style: econTextFieldStyle
 
823
                    validator: IntValidator {bottom: qFactorSlider.minimumValue; top: qFactorSlider.maximumValue}
 
824
                    onTextChanged: {
 
825
                        if(text.length > 0){
 
826
                            qFactorSlider.value = qFactorTextField.text
 
827
                        }
 
828
                    }
 
829
                }
 
830
            }
 
831
 
 
832
            Text {
 
833
                id: imgCapText
 
834
                text: "--- Image Capture ---"
 
835
                font.pixelSize: 14
 
836
                font.family: "Ubuntu"
 
837
                color: "#ffffff"
 
838
                smooth: true
 
839
                Layout.alignment: Qt.AlignCenter
 
840
                opacity: 0.50196078431373
 
841
            }
 
842
            Text {
 
843
                id: burstLength
 
844
                text: "Burst Length :"
 
845
                font.pixelSize: 14
 
846
                font.family: "Ubuntu"
 
847
                color: "#ffffff"
 
848
                smooth: true
 
849
                opacity: 1
 
850
            }
 
851
            ComboBox
 
852
            {
 
853
                id: burstLengthCombo
 
854
                opacity: 1
 
855
                enabled: true
 
856
                model: ListModel {
 
857
                    ListElement { text: "1" }
 
858
                    ListElement { text: "2" }
 
859
                    ListElement { text: "3" }
 
860
                    ListElement { text: "4" }
 
861
                    ListElement { text: "5" }
 
862
                }
 
863
                activeFocusOnPress: true
 
864
                style: econComboBoxStyle
 
865
                onCurrentIndexChanged: {                    
 
866
                    root.stillBurstLength(burstLengthCombo.currentIndex + 1) // combobox index starts from 0
 
867
                    if(skipUpdateUIOnBurstLength){
 
868
                        seecam130.setBurstLength(burstLengthCombo.currentText)
 
869
                    }
 
870
                    skipUpdateUIOnBurstLength = true
 
871
                }
 
872
            }
 
873
            
 
874
            Text {
 
875
                id: flipText
 
876
                text: "--- Flip Control ---"
 
877
                font.pixelSize: 14
 
878
                font.family: "Ubuntu"
 
879
                color: "#ffffff"
 
880
                smooth: true
 
881
                Layout.alignment: Qt.AlignCenter
 
882
                opacity: 0.50196078431373
 
883
            }
 
884
            Row{
 
885
                spacing: 55
 
886
                CheckBox {
 
887
                    id: flipCtrlHorizotal
 
888
                    activeFocusOnPress : true
 
889
                    text: "Horizontal"
 
890
                    style: econCheckBoxStyle
 
891
                    onClicked:{
 
892
                        seecam130.setFlipHorzMode(checked)
 
893
                    }
 
894
                    Keys.onReturnPressed: {
 
895
                        seecam130.setFlipHorzMode(checked)
 
896
                    }
 
897
                }
 
898
                CheckBox {
 
899
                    id: flipCtrlVertical
 
900
                    activeFocusOnPress : true
 
901
                    text: "Vertical"
 
902
                    style: econCheckBoxStyle
 
903
                    onClicked:{
 
904
                        seecam130.setFlipVertiMode(checked)
 
905
                    }
 
906
                    Keys.onReturnPressed: {
 
907
                        seecam130.setFlipVertiMode(checked)
 
908
                    }
 
909
                }
 
910
            }
 
911
 
 
912
            Text {
 
913
                id: faceDetectionText
 
914
                text: "--- Face Detection ---"
 
915
                font.pixelSize: 14
 
916
                font.family: "Ubuntu"
 
917
                color: "#ffffff"
 
918
                smooth: true
 
919
                Layout.alignment: Qt.AlignCenter
 
920
                opacity: 0.50196078431373
 
921
            }
 
922
 
 
923
            Row{
 
924
                spacing: 62
 
925
                ExclusiveGroup { id: faceRectGroup }
 
926
                RadioButton {
 
927
                    exclusiveGroup: faceRectGroup
 
928
                    id: faceRectEnable
 
929
                    text: "Enable"
 
930
                    activeFocusOnPress: true
 
931
                    style: econRadioButtonStyle
 
932
                    onClicked:{
 
933
                        seecam130.setFaceDetectionRect(true, faceDetectEmbedData.checked, overlayRect.checked)
 
934
                    }
 
935
                    Keys.onReturnPressed: {
 
936
                        seecam130.setFaceDetectionRect(true, faceDetectEmbedData.checked, overlayRect.checked)
 
937
                    }
 
938
                }
 
939
                RadioButton {
 
940
                    exclusiveGroup: faceRectGroup
 
941
                    id:faceRectDisable
 
942
                    text: "Disable"
 
943
                    activeFocusOnPress: true
 
944
                    style: econRadioButtonStyle
 
945
                    onClicked: {
 
946
                        seecam130.setFaceDetectionRect(false, faceDetectEmbedData.checked, overlayRect.checked)
 
947
                    }
 
948
                    Keys.onReturnPressed: {
 
949
                        seecam130.setFaceDetectionRect(false, faceDetectEmbedData.checked, overlayRect.checked)
 
950
                    }
 
951
                }
 
952
            }
 
953
            Row{
 
954
                spacing: 5
 
955
                CheckBox {
 
956
                    id: faceDetectEmbedData
 
957
                    activeFocusOnPress : true
 
958
                    text: "Embed \nData"
 
959
                    style: econCheckBoxTextWrapModeStyle
 
960
                    enabled: faceRectEnable.checked ? true : false
 
961
                    opacity: enabled ? 1 : 0.1
 
962
                    onClicked:{
 
963
                        enableFaceDetectEmbedData()
 
964
                    }
 
965
                    Keys.onReturnPressed: {
 
966
                        enableFaceDetectEmbedData()
 
967
                    }
 
968
                }
 
969
                CheckBox {
 
970
                    id: overlayRect
 
971
                    activeFocusOnPress : true
 
972
                    text: "Overlay Rectangle"
 
973
                    style: econCheckBoxTextWrapModeStyle
 
974
                    enabled: faceRectEnable.checked ? true : false
 
975
                    opacity: enabled ? 1 : 0.1
 
976
                    onClicked:{
 
977
                        seecam130.setFaceDetectionRect(faceRectEnable.checked, faceDetectEmbedData.checked, checked)
 
978
                    }
 
979
                    Keys.onReturnPressed: {
 
980
                        seecam130.setFaceDetectionRect(faceRectEnable.checked, faceDetectEmbedData.checked, checked)
 
981
                    }
 
982
                }
 
983
            }
 
984
 
 
985
            Text {
 
986
                id: smileDetectionText
 
987
                text: "--- Smile Detection ---"
 
988
                font.pixelSize: 14
 
989
                font.family: "Ubuntu"
 
990
                color: "#ffffff"
 
991
                smooth: true
 
992
                Layout.alignment: Qt.AlignCenter
 
993
                opacity: 0.50196078431373
 
994
            }
 
995
            Row{
 
996
                spacing: 62
 
997
                ExclusiveGroup { id: smileDetectGroup }
 
998
                RadioButton {
 
999
                    exclusiveGroup: smileDetectGroup
 
1000
                    id: smileDetectEnable
 
1001
                    text: "Enable"
 
1002
                    activeFocusOnPress: true
 
1003
                    style: econRadioButtonStyle
 
1004
                    onClicked:{
 
1005
                        seecam130.setSmileDetection(true, smileDetectEmbedData.checked)
 
1006
                    }
 
1007
                    Keys.onReturnPressed: {
 
1008
                        seecam130.setSmileDetection(true, smileDetectEmbedData.checked)
 
1009
                    }
 
1010
                }
 
1011
                RadioButton {
 
1012
                    exclusiveGroup: smileDetectGroup
 
1013
                    id:smileDetectDisable
 
1014
                    text: "Disable"
 
1015
                    activeFocusOnPress: true
 
1016
                    style: econRadioButtonStyle
 
1017
                    onClicked: {
 
1018
                        seecam130.setSmileDetection(false, smileDetectEmbedData.checked)
 
1019
                    }
 
1020
                    Keys.onReturnPressed: {
 
1021
                        seecam130.setSmileDetection(false, smileDetectEmbedData.checked)
 
1022
                    }
 
1023
                }
 
1024
            }
 
1025
            Row{
 
1026
                spacing: 5
 
1027
                CheckBox {
 
1028
                    id: smileDetectEmbedData
 
1029
                    activeFocusOnPress : true
 
1030
                    text: "Embed Data"
 
1031
                    style: econCheckBoxStyle
 
1032
                    enabled: smileDetectEnable.checked ? true : false
 
1033
                    opacity: enabled ? 1 : 0.1
 
1034
                    onClicked:{
 
1035
                        enableSmileDetectEmbedData()
 
1036
                    }
 
1037
                    Keys.onReturnPressed: {
 
1038
                        enableSmileDetectEmbedData()
 
1039
                    }
 
1040
                }
 
1041
            }
 
1042
                                 
 
1043
            Text {
 
1044
                id: frameRateText
 
1045
                text: "--- Frame Rate Control ---"
 
1046
                font.pixelSize: 14
 
1047
                font.family: "Ubuntu"
 
1048
                color: "#ffffff"
 
1049
                smooth: true
 
1050
                Layout.alignment: Qt.AlignCenter
 
1051
                opacity: 0.50196078431373
 
1052
            }
 
1053
 
 
1054
            Row{
 
1055
                spacing: 35
 
1056
                Slider {
 
1057
                    activeFocusOnPress: true
 
1058
                    updateValueWhileDragging: false
 
1059
                    id: frameRateSlider
 
1060
                    width: 150
 
1061
                    stepSize: 1
 
1062
                    style:econSliderStyle
 
1063
                    minimumValue: frameRateMin
 
1064
                    maximumValue: frameRateMax
 
1065
                    onValueChanged:  {
 
1066
                        frameRateTextField.text = frameRateSlider.value
 
1067
                        if(skipUpdateUIFrameRate){
 
1068
                            seecam130.setFrameRateCtrlValue(frameRateSlider.value)
 
1069
                        }
 
1070
                        skipUpdateUIFrameRate = true
 
1071
                    }
 
1072
                }
 
1073
                TextField {
 
1074
                    id: frameRateTextField
 
1075
                    text: frameRateSlider.value
 
1076
                    font.pixelSize: 10
 
1077
                    font.family: "Ubuntu"
 
1078
                    smooth: true
 
1079
                    horizontalAlignment: TextInput.AlignHCenter
 
1080
                    style: econTextFieldStyle
 
1081
                    validator: IntValidator {bottom: frameRateSlider.minimumValue; top: frameRateSlider.maximumValue}
 
1082
                    onTextChanged: {
 
1083
                        if(text.length > 0){
 
1084
                            frameRateSlider.value = frameRateTextField.text
 
1085
                        }
 
1086
                    }
 
1087
                }
 
1088
            }
 
1089
 
 
1090
            Text {
 
1091
                id: flickerctrlField
 
1092
                text: "-- Flicker Detection Control --"
 
1093
                font.pixelSize: 14
 
1094
                font.family: "Ubuntu"
 
1095
                color: "#ffffff"
 
1096
                smooth: true
 
1097
                Layout.alignment: Qt.AlignCenter
 
1098
                opacity: 0.50196078431373
 
1099
            }
 
1100
 
 
1101
            ComboBox
 
1102
            {
 
1103
                id: flickercombo
 
1104
                opacity: 1
 
1105
                enabled: true
 
1106
                model: ListModel {
 
1107
                    ListElement { text: "AUTO" }
 
1108
                    ListElement { text: "50Hz" }
 
1109
                    ListElement { text: "60Hz" }
 
1110
                    ListElement { text: "DISABLE" }
 
1111
                }
 
1112
                activeFocusOnPress: true
 
1113
                style: econComboBoxStyle
 
1114
                onCurrentIndexChanged: {
 
1115
                    if(skipUpdateUIFlickerCtrl){
 
1116
                       setFlickerDetectionFn();
 
1117
                    }
 
1118
                }
 
1119
            }
 
1120
 
 
1121
            Row{
 
1122
                Layout.alignment: Qt.AlignCenter
 
1123
                Button {
 
1124
                    id: defaultValue
 
1125
                    opacity: 1
 
1126
                    activeFocusOnPress : true
 
1127
                    text: "Default"
 
1128
                    tooltip: "Click to set default values in extension controls"
 
1129
                    action: setDefault
 
1130
                    style: econButtonStyle
 
1131
                    Keys.onReturnPressed: {
 
1132
                        setToDefaultValues()
 
1133
                    }
 
1134
                }
 
1135
            }
 
1136
 
 
1137
            Row{
 
1138
               // Layout.alignment: Qt.AlignCenter
 
1139
                Button {
 
1140
                    id: f_wversion_selected130
 
1141
                    opacity: 1
 
1142
                    action: firmwareVersion
 
1143
                    activeFocusOnPress : true
 
1144
                    tooltip: "Click to view the firmware version of the camera"
 
1145
                    style: ButtonStyle {
 
1146
                        background: Rectangle {
 
1147
                        border.width: control.activeFocus ? 3 :0
 
1148
                        color: "#222021"
 
1149
                        border.color: control.activeFocus ? "#ffffff" : "#222021"
 
1150
                        radius: 5
 
1151
                        }
 
1152
                        label: Image {
 
1153
                        source: "images/f_wversion_selected.png"
 
1154
                        }
 
1155
                    }
 
1156
                    Keys.onReturnPressed: {
 
1157
                    getFirmwareVersion()
 
1158
                    }
 
1159
                }
 
1160
                Button {
 
1161
                    id: serial_no_selected
 
1162
                    opacity: 1
 
1163
                    action: serialNumber
 
1164
                    activeFocusOnPress : true
 
1165
                    tooltip: "Click to view the Serial Number"
 
1166
                    style: ButtonStyle {
 
1167
                        background: Rectangle {
 
1168
                        border.width: control.activeFocus ? 3 :0
 
1169
                        color: "#222021"
 
1170
                        border.color: control.activeFocus ? "#ffffff" : "#222021"
 
1171
                        radius: 5
 
1172
                        }
 
1173
                        label: Image {
 
1174
                        source: "images/serial_no_selected.png"
 
1175
                        }
 
1176
                    }
 
1177
                    Keys.onReturnPressed: {
 
1178
                    getSerialNumber()
 
1179
                    }
 
1180
                }
 
1181
            }
 
1182
            Row{
 
1183
                Button {
 
1184
                    id: dummy
 
1185
                    opacity: 0
 
1186
                }
 
1187
            }
 
1188
        }
 
1189
    }
 
1190
 
 
1191
 
 
1192
    See3Cam130 {
 
1193
        id: seecam130
 
1194
        onSceneModeValue: {
 
1195
            defaultSceneMode(sceneMode)
 
1196
        }
 
1197
        onEffectModeValue: {
 
1198
            defaultEffectMode(effectMode)
 
1199
        }
 
1200
        onDenoiseValueReceived:{
 
1201
            skipUpdateUIDenoise = false
 
1202
            deNoiseSlider.value = denoiseValue
 
1203
            skipUpdateUIDenoise = true
 
1204
        }
 
1205
        onFrameRateCtrlValueReceived:{
 
1206
            skipUpdateUIFrameRate = false
 
1207
            frameRateSlider.value = frameRateCtrlValue
 
1208
            skipUpdateUIFrameRate = true
 
1209
        }
 
1210
 
 
1211
        onAfModeValue:{
 
1212
            defaultAfMode(afMode)
 
1213
        }
 
1214
        onFaceDetectModeValue:{
 
1215
            if(faceDetectMode == See3Cam130.FaceRectEnable){
 
1216
                faceRectEnable.checked = true
 
1217
                if(faceDetectEmbedDataValue == See3Cam130.FaceDetectEmbedDataEnable){
 
1218
                    faceDetectEmbedData.checked = true
 
1219
                }
 
1220
                if(faceDetectOverlayRect == See3Cam130.FaceDetectOverlayRectEnable){
 
1221
                    overlayRect.checked = true
 
1222
                }
 
1223
            }else if(faceDetectMode == See3Cam130.FaceRectDisable){
 
1224
                faceRectDisable.checked = true
 
1225
                if(faceDetectEmbedDataValue == See3Cam130.FaceDetectEmbedDataEnable){
 
1226
                    faceDetectEmbedData.checked = true
 
1227
                }else{
 
1228
                    faceDetectEmbedData.checked = false
 
1229
                }
 
1230
                if(faceDetectOverlayRect == See3Cam130.FaceDetectOverlayRectEnable){
 
1231
                    overlayRect.checked = true
 
1232
                }else{
 
1233
                    overlayRect.checked = false
 
1234
                }
 
1235
            }
 
1236
        }        
 
1237
        onSmileDetectModeValue:{
 
1238
            if(smileDetectMode == See3Cam130.SmileDetectEnable){
 
1239
                smileDetectEnable.checked = true
 
1240
                if(smileDetectEmbedDataValue == See3Cam130.SmileDetectEmbedDataEnable){
 
1241
                    smileDetectEmbedData.checked = true
 
1242
                }
 
1243
            }else if(smileDetectMode == See3Cam130.SmileDetectDisable){
 
1244
                smileDetectDisable.checked = true
 
1245
                if(smileDetectEmbedDataValue == See3Cam130.SmileDetectEmbedDataEnable){
 
1246
                    smileDetectEmbedData.checked = true
 
1247
                }else{
 
1248
                    smileDetectEmbedData.checked = false
 
1249
                }
 
1250
            }
 
1251
        }
 
1252
 
 
1253
        onExposureCompValueReceived:{
 
1254
            exposureCompValue.text = exposureCompensation
 
1255
        }
 
1256
 
 
1257
        onHDRModeValueReceived:{
 
1258
            defaultHDRMode(hdrMode)
 
1259
            if(hdrMode == See3Cam130.HdrManual){
 
1260
                iHDRSlider.value = hdrValue
 
1261
            }
 
1262
        }
 
1263
        onQFactorValue:{
 
1264
              skipUpdateUIQFactor = false
 
1265
              qFactorSlider.value = qFactor
 
1266
              skipUpdateUIQFactor = true
 
1267
        }
 
1268
        onRoiAfModeValue:{
 
1269
            if(roiMode == See3Cam130.AFCentered){
 
1270
                afCentered.checked = true
 
1271
                afWindowSizeCombo.currentIndex = winSize-1
 
1272
            }else if(roiMode == See3Cam130.AFManual){
 
1273
                skipUpdateUIOnAFWindowSize = false
 
1274
                afManual.checked = true
 
1275
                afWindowSizeCombo.currentIndex = winSize-1
 
1276
            }else if(roiMode == See3Cam130.AFDisabled){
 
1277
                rectEnable.enabled = false
 
1278
                rectDisable.enabled = false
 
1279
                rectEnable.opacity = 0.1
 
1280
                rectDisable.opacity = 0.1
 
1281
                afCentered.enabled = false
 
1282
                afManual.enabled = false
 
1283
                afWindowSizeCombo.enabled = false
 
1284
            }
 
1285
        }
 
1286
        onRoiAutoExpModeValue:{
 
1287
            currentROIAutoExposureMode(roiMode, winSize)
 
1288
        }
 
1289
        onBurstLengthValue:{
 
1290
            skipUpdateUIOnBurstLength = false
 
1291
            burstLengthCombo.currentIndex = burstLength - 1
 
1292
        }
 
1293
        onFlickerDetectionMode:{
 
1294
 
 
1295
            skipUpdateUIFlickerCtrl = false
 
1296
            if(flickerMode == See3Cam130.MODE_AUTO){
 
1297
                flickercombo.currentIndex = 0
 
1298
            }else if(flickerMode == See3Cam130.MODE_50Hz){
 
1299
                flickercombo.currentIndex  = 1
 
1300
            }else if(flickerMode == See3Cam130.MODE_60Hz){
 
1301
                flickercombo.currentIndex  = 2
 
1302
            }else if(flickerMode == See3Cam130.MODE_DISABLE){
 
1303
                flickercombo.currentIndex  = 3
 
1304
            }else{ }
 
1305
            skipUpdateUIFlickerCtrl = true;
 
1306
        }
 
1307
 
 
1308
        onAfRectModeValue:{            
 
1309
            if(afRectMode == See3Cam130.AFRectEnable){                
 
1310
                rectEnable.checked = true
 
1311
 
 
1312
            }else if(afRectMode == See3Cam130.AFRectDisable){            
 
1313
                rectDisable.checked = true
 
1314
            }
 
1315
 
 
1316
        }
 
1317
        onFlipModeValue:{
 
1318
           updateFlipMode(flipMode, flipEnableDisableMode)
 
1319
        }
 
1320
        onStreamModeValue:{
 
1321
            if(streamMode == See3Cam130.STREAM_MASTER){                
 
1322
                streamMaster.checked = true
 
1323
                root.captureBtnEnable(true)
 
1324
                root.videoRecordBtnEnable(true)
 
1325
            }else if(streamMode == See3Cam130.STREAM_TRIGGER){
 
1326
                streamTrigger.checked = true
 
1327
                root.captureBtnEnable(false)
 
1328
                root.videoRecordBtnEnable(false)
 
1329
                displayMessageBox(qsTr("Trigger Mode"), qsTr("Frames will be out only when external hardware pulses are given to PIN 5 of CN3. Refer the document."))
 
1330
            }
 
1331
        }
 
1332
        onIndicateCommandStatus:{            
 
1333
            if(setButtonClicked){
 
1334
                displayMessageBox(title, text)
 
1335
                setButtonClicked = false
 
1336
            }            
 
1337
        }
 
1338
 
 
1339
        onIndicateExposureValueRangeFailure:{
 
1340
            if(setButtonClicked){
 
1341
                displayMessageBox(title, text)
 
1342
                setButtonClicked = false
 
1343
                seecam130.getExposureCompensation()
 
1344
            }
 
1345
        }
 
1346
        
 
1347
    }
 
1348
 
 
1349
    Component {
 
1350
        id: econTextFieldStyle
 
1351
        TextFieldStyle {
 
1352
            textColor: "black"
 
1353
            background: Rectangle {
 
1354
                radius: 2
 
1355
                implicitWidth: 50
 
1356
                implicitHeight: 20
 
1357
                border.color: "#333"
 
1358
                border.width: 2
 
1359
                y: 1
 
1360
            }
 
1361
        }
 
1362
    }
 
1363
 
 
1364
    Component {
 
1365
        id: econButtonStyle
 
1366
        ButtonStyle {
 
1367
            background: Rectangle {
 
1368
                implicitHeight: 38
 
1369
                implicitWidth: 104
 
1370
                border.width: control.activeFocus ? 3 :0
 
1371
                color: "#e76943"
 
1372
                border.color: control.activeFocus ? "#ffffff" : "#222021"
 
1373
                radius: control.activeFocus ? 5 : 0
 
1374
            }
 
1375
            label: Text {
 
1376
                color: "#ffffff"
 
1377
                horizontalAlignment: Text.AlignHCenter
 
1378
                verticalAlignment: Text.AlignVCenter
 
1379
                font.family: "Ubuntu"
 
1380
                font.pointSize: 10
 
1381
                text: control.text
 
1382
            }
 
1383
        }
 
1384
    }
 
1385
 
 
1386
    Component {
 
1387
    id: econscrollViewStyle
 
1388
    ScrollViewStyle {
 
1389
    scrollToClickedPosition: true
 
1390
    handle: Image {
 
1391
        id: scrollhandle
 
1392
        source: "images/scroller.png"
 
1393
    }
 
1394
    scrollBarBackground: Image {
 
1395
        id: scrollStyle
 
1396
        source: "images/Scroller_bg.png"
 
1397
    }
 
1398
    incrementControl: Image {
 
1399
        id: increment
 
1400
        source: "images/down_arrow.png"
 
1401
    }
 
1402
    decrementControl: Image {
 
1403
        id: decrement
 
1404
        source: "images/up_arrow.png"
 
1405
    }
 
1406
    }}
 
1407
 
 
1408
    Component {
 
1409
        id: econComboBoxStyle
 
1410
        ComboBoxStyle {
 
1411
            background: Image {
 
1412
                id: burstLengthCombo_bkgrnd
 
1413
                source: "../../Views/images/device_box.png"
 
1414
                Rectangle {
 
1415
                    width: burstLengthCombo_bkgrnd.sourceSize.width  - 28
 
1416
                    height: burstLengthCombo_bkgrnd.sourceSize.height
 
1417
                    color: "#222021"
 
1418
                    border.color: "white"
 
1419
                    border.width: control.activeFocus ? 3 : 1
 
1420
                    radius: control.activeFocus ? 5 : 0
 
1421
                }
 
1422
            }
 
1423
            label:  Text{
 
1424
                anchors.fill: parent
 
1425
                color: "#ffffff"
 
1426
                elide: Text.ElideRight
 
1427
                text: control.currentText
 
1428
                verticalAlignment: Text.AlignVCenter
 
1429
                maximumLineCount: 1
 
1430
                font.family: "Ubuntu"
 
1431
                font.pixelSize: 14
 
1432
            }
 
1433
        }
 
1434
    }
 
1435
 
 
1436
    Component {
 
1437
        id: econCheckBoxStyle
 
1438
        CheckBoxStyle {
 
1439
            label: Text {
 
1440
                text: control.text
 
1441
                font.pixelSize: 14
 
1442
                font.family: "Ubuntu"
 
1443
                color: "#ffffff"
 
1444
                smooth: true
 
1445
                opacity: 1
 
1446
            }
 
1447
            background: Rectangle {
 
1448
                color: "#222021"
 
1449
                border.color: control.activeFocus ? "#ffffff" : "#222021"
 
1450
            }
 
1451
        }
 
1452
    }
 
1453
 
 
1454
 
 
1455
    Component {
 
1456
        id: econCheckBoxTextWrapModeStyle
 
1457
        CheckBoxStyle {
 
1458
            label: Text {
 
1459
                text: control.text
 
1460
                font.pixelSize: 14
 
1461
                font.family: "Ubuntu"
 
1462
                color: "#ffffff"
 
1463
                smooth: true
 
1464
                opacity: 1
 
1465
                width: 100
 
1466
                wrapMode: Text.WordWrap
 
1467
            }
 
1468
            background: Rectangle {
 
1469
                color: "#222021"
 
1470
                border.color: control.activeFocus ? "#ffffff" : "#222021"
 
1471
            }
 
1472
        }
 
1473
    }
 
1474
    Component {
 
1475
        id: econRadioButtonStyle
 
1476
        RadioButtonStyle {
 
1477
            label: Text {
 
1478
                text: control.text
 
1479
                font.pixelSize: 14
 
1480
                font.family: "Ubuntu"
 
1481
                color: "#ffffff"
 
1482
                smooth: true
 
1483
                opacity: 1
 
1484
            }
 
1485
            background: Rectangle {
 
1486
                color: "#222021"
 
1487
                border.color: control.activeFocus ? "#ffffff" : "#222021"
 
1488
            }
 
1489
        }
 
1490
    }
 
1491
 
 
1492
    Uvccamera {
 
1493
        id: uvccamera
 
1494
        onTitleTextChanged: {
 
1495
            messageDialog.title = _title.toString()
 
1496
            messageDialog.text = _text.toString()
 
1497
            messageDialog.open()
 
1498
        }
 
1499
        onSerialNumber:{
 
1500
            messageDialog.title = qsTr("Serial Number")
 
1501
            messageDialog.text = serialNumber;
 
1502
        }
 
1503
    }
 
1504
 
 
1505
    Component.onCompleted:{
 
1506
        //getting valid effect mode and scene mode takes some time.
 
1507
        //So In timer, after 500 ms, getting effect mode and scene mode is done
 
1508
        getCamValuesTimer.start()
 
1509
        seecam130.getAutoFocusMode()
 
1510
        seecam130.getiHDRMode()      
 
1511
        seecam130.getBurstLength()
 
1512
        seecam130.getAutoFocusROIModeAndWindowSize()
 
1513
        seecam130.getAutoExpROIModeAndWindowSize()
 
1514
        seecam130.getAFRectMode()
 
1515
        seecam130.getFlipMode()
 
1516
        seecam130.getStreamMode()
 
1517
        seecam130.getFlickerDetection()
 
1518
        seecam130.getFaceDetectMode()
 
1519
        seecam130.getSmileDetectMode()
 
1520
        root.disablePowerLineFreq()   //Added by Navya-4th June 2019 - call to disable Power Line Frequency.
 
1521
 
 
1522
    }
 
1523
 
 
1524
    function displayMessageBox(title, text){
 
1525
        messageDialog.title = qsTr(title)
 
1526
        messageDialog.text = qsTr(text)
 
1527
        messageDialog.open()
 
1528
    }
 
1529
 
 
1530
    function updateFlipMode(flipMode, FlipEnableDisableMode){
 
1531
        switch(flipMode){
 
1532
        case See3Cam130.FlipHorizontal:
 
1533
            if(FlipEnableDisableMode == See3Cam130.FlipEnable){
 
1534
                flipCtrlHorizotal.checked = true
 
1535
            }else{
 
1536
                flipCtrlHorizotal.checked = false
 
1537
            }
 
1538
            break;
 
1539
        case See3Cam130.FlipVertical:
 
1540
            if(FlipEnableDisableMode == See3Cam130.FlipEnable){
 
1541
                flipCtrlVertical.checked = true
 
1542
            }else{
 
1543
                flipCtrlVertical.checked = false
 
1544
            }
 
1545
            break;
 
1546
        case See3Cam130.FlipBoth:
 
1547
            if(FlipEnableDisableMode == See3Cam130.FlipEnable){
 
1548
                flipCtrlHorizotal.checked = true
 
1549
                flipCtrlVertical.checked = true
 
1550
            }else{
 
1551
                flipCtrlHorizotal.checked = false
 
1552
                flipCtrlVertical.checked = false
 
1553
            }
 
1554
            break;
 
1555
        }
 
1556
 
 
1557
    }
 
1558
 
 
1559
    // current ROI auto exposure mode
 
1560
    function currentROIAutoExposureMode(roiMode, winSize){
 
1561
        switch(roiMode){
 
1562
            case See3Cam130.AutoExpFull:
 
1563
                autoexpFull.checked = true
 
1564
                autoExpoWinSizeCombo.enabled = false
 
1565
                break
 
1566
            case See3Cam130.AutoExpManual:
 
1567
                skipUpdateUIOnExpWindowSize = false
 
1568
                autoexpManual.checked = true
 
1569
                // If window size is got from camera is 0 then set window size to 1 in UI
 
1570
                if(winSize == 0){
 
1571
                    autoExpoWinSizeCombo.currentIndex = 0
 
1572
                }else
 
1573
                    autoExpoWinSizeCombo.currentIndex = winSize-1
 
1574
                break
 
1575
            case See3Cam130.AutoExpDisabled:
 
1576
                autoexpFull.enabled = false
 
1577
                autoexpManual.enabled = false
 
1578
                autoExpoWinSizeCombo.enabled = false
 
1579
                break
 
1580
        }
 
1581
    }
 
1582
 
 
1583
    function setMasterMode(){
 
1584
        seecam130.setStreamMode(See3Cam130.STREAM_MASTER)
 
1585
        root.checkForTriggerMode(false)
 
1586
        root.captureBtnEnable(true)
 
1587
        root.videoRecordBtnEnable(true)
 
1588
    }
 
1589
 
 
1590
    function setTriggerMode(){
 
1591
        root.checkForTriggerMode(true)
 
1592
        root.captureBtnEnable(false)
 
1593
        root.videoRecordBtnEnable(false)
 
1594
        seecam130.setStreamMode(See3Cam130.STREAM_TRIGGER)
 
1595
        displayMessageBox(qsTr("Trigger Mode"), qsTr("Frames will be out only when external hardware pulses are given to PIN 5 of CN3. Refer the document See3CAM_130_Trigger_Mode"))
 
1596
    }
 
1597
 
 
1598
    function getSerialNumber() {
 
1599
        uvccamera.getSerialNumber()
 
1600
        messageDialog.open()
 
1601
    }
 
1602
 
 
1603
    function getFirmwareVersion() {
 
1604
        uvccamera.getFirmWareVersion()
 
1605
        messageDialog.open()
 
1606
    }
 
1607
    function setToDefaultValues(){
 
1608
        root.checkForTriggerMode(false)
 
1609
        seecam130.setToDefault()
 
1610
        seecam130.getSceneMode()
 
1611
        seecam130.getEffectMode()
 
1612
        seecam130.getAutoFocusMode()
 
1613
        seecam130.getiHDRMode()
 
1614
        seecam130.getDenoiseValue()
 
1615
        seecam130.getQFactor()
 
1616
        seecam130.getBurstLength()
 
1617
        seecam130.getAutoFocusROIModeAndWindowSize()
 
1618
        seecam130.getAutoExpROIModeAndWindowSize()
 
1619
        seecam130.getAFRectMode()
 
1620
        seecam130.getFlipMode()
 
1621
        seecam130.getStreamMode()
 
1622
        seecam130.getFlickerDetection()
 
1623
        // Added by Sankari: 17 Apr 2017. To get preview in master mode
 
1624
        root.startUpdatePreviewInMasterMode()
 
1625
        seecam130.getFaceDetectMode()
 
1626
        seecam130.getSmileDetectMode()
 
1627
        seecam130.getExposureCompensation()        
 
1628
        seecam130.getFrameRateCtrlValue()
 
1629
    }
 
1630
 
 
1631
    function defaultSceneMode(mode)
 
1632
    {        
 
1633
        switch(mode)
 
1634
        {            
 
1635
            case See3Cam130.SCENE_NORMAL:                
 
1636
                sceneNormal.checked = true
 
1637
                break;
 
1638
            case See3Cam130.SCENE_DOCUMENT:
 
1639
                sceneDoc.checked = true
 
1640
                break;
 
1641
        }
 
1642
    }
 
1643
    function defaultEffectMode(mode)
 
1644
    {        
 
1645
        switch(mode)
 
1646
        {
 
1647
            case See3Cam130.EFFECT_NORMAL:
 
1648
                effectNormal.checked = true
 
1649
                break;
 
1650
            case See3Cam130.EFFECT_BLACK_WHITE:
 
1651
                effectBW.checked = true
 
1652
                break;
 
1653
            case See3Cam130.EFFECT_GREYSCALE:
 
1654
                effectGrayscale.checked = true
 
1655
                break;
 
1656
            case See3Cam130.EFFECT_NEGATIVE:
 
1657
                effectNegative.checked = true
 
1658
                break;
 
1659
            case See3Cam130.EFFECT_SKETCH:
 
1660
                effectSketch.checked = true
 
1661
                break;
 
1662
        }
 
1663
    }
 
1664
 
 
1665
    function defaultAfMode(mode)
 
1666
    {
 
1667
        switch(mode)
 
1668
        {
 
1669
            case See3Cam130.Continuous:
 
1670
                radioContin.checked = true
 
1671
                break;
 
1672
            case See3Cam130.OneShot:
 
1673
                radioOneshot.checked = true
 
1674
                break;
 
1675
            case See3Cam130.AfModeDisabled:
 
1676
                radioContin.enabled = false
 
1677
                radioOneshot.enabled = false
 
1678
                trigger.enabled = false
 
1679
                break;
 
1680
        }
 
1681
    }
 
1682
 
 
1683
    function defaultHDRMode(mode)
 
1684
    {
 
1685
        switch(mode)
 
1686
        {
 
1687
            case See3Cam130.HdrOff:
 
1688
                hdrOff.checked = true
 
1689
                break;
 
1690
            case See3Cam130.HdrAuto:
 
1691
                hdrAuto.checked = true
 
1692
                break;
 
1693
            case See3Cam130.HdrManual:
 
1694
                hdrManual.checked = true
 
1695
                break;
 
1696
        }
 
1697
    }
 
1698
    function enableDisableAutoFocusUIControls(autoFocusSelect){
 
1699
        if(autoFocusSelect){
 
1700
            radioContin.enabled = true
 
1701
            radioOneshot.enabled = true
 
1702
            trigger.enabled = true
 
1703
            afCentered.enabled = true
 
1704
            afManual.enabled = true
 
1705
            if(afCentered.checked)
 
1706
                afWindowSizeCombo.enabled = false
 
1707
            if(afManual.checked)
 
1708
                afWindowSizeCombo.enabled = true
 
1709
            rectEnable.enabled = true
 
1710
            rectEnable.opacity = 1
 
1711
            rectDisable.enabled = true
 
1712
            rectDisable.opacity = 1
 
1713
            radioContin.opacity = 1
 
1714
            radioOneshot.opacity = 1
 
1715
            afCentered.opacity = 1
 
1716
            afManual.opacity = 1
 
1717
        }else{
 
1718
            radioContin.enabled = false
 
1719
            radioOneshot.enabled = false
 
1720
            trigger.enabled = false
 
1721
            afCentered.enabled = false
 
1722
            afManual.enabled = false
 
1723
            afWindowSizeCombo.enabled = false
 
1724
            radioContin.opacity = 0.1
 
1725
            radioOneshot.opacity = 0.1
 
1726
            afCentered.opacity = 0.1
 
1727
            afManual.opacity = 0.1
 
1728
            rectEnable.enabled = false
 
1729
            rectEnable.opacity = 0.1
 
1730
            rectDisable.enabled = false
 
1731
            rectDisable.opacity = 0.1
 
1732
        }
 
1733
        getAutoFocusControlValues.start()
 
1734
    }
 
1735
 
 
1736
    function enableFaceDetectEmbedData(){        
 
1737
        if(seecam130.setFaceDetectionRect(faceRectEnable.checked, faceDetectEmbedData.checked, overlayRect.checked)){            
 
1738
            if(faceDetectEmbedData.checked){
 
1739
                displayMessageBox(qsTr("Status"),qsTr("The last part of the frame will be replaced by face data.Refer document See3CAM_130_Face_and_Smile_Detection for more details"))
 
1740
            }
 
1741
        }
 
1742
    }
 
1743
 
 
1744
    function enableSmileDetectEmbedData(){
 
1745
        setButtonClicked = false
 
1746
        if(seecam130.setSmileDetection(true, smileDetectEmbedData.checked)){
 
1747
            if(smileDetectEmbedData.checked){
 
1748
                messageDialog.title = qsTr("Status")
 
1749
                messageDialog.text = qsTr("The last part of the frame will be replaced by smile data.Refer document See3CAM_130_Face_and_Smile_Detection for more details")
 
1750
                messageDialog.open()
 
1751
            }
 
1752
        }
 
1753
    }
 
1754
 
 
1755
    function setFlickerDetectionFn()
 
1756
    {
 
1757
        switch(flickercombo.currentIndex){
 
1758
        case 0:
 
1759
            flickerCtrl= See3Cam130.MODE_AUTO
 
1760
            break
 
1761
        case 1:
 
1762
            flickerCtrl = See3Cam130.MODE_50Hz
 
1763
            break
 
1764
        case 2:
 
1765
            flickerCtrl = See3Cam130.MODE_60Hz
 
1766
            break
 
1767
        case 3:
 
1768
            flickerCtrl = See3Cam130.MODE_DISABLE
 
1769
            break
 
1770
        }
 
1771
        seecam130.setFlickerDetection(flickerCtrl)
 
1772
    }
 
1773
 
 
1774
    function enableDisableAutoExposureControls(autoExposureSelect){
 
1775
        if(autoExposureSelect){
 
1776
            autoexpManual.enabled = true
 
1777
            autoexpFull.enabled = true
 
1778
            if(autoexpManual.checked)
 
1779
                autoExpoWinSizeCombo.enabled = true
 
1780
            if(autoexpFull.checked)
 
1781
                autoExpoWinSizeCombo.enabled = false
 
1782
            autoexpManual.opacity = 1
 
1783
            autoexpFull.opacity = 1
 
1784
            exposureCompValue.enabled = true
 
1785
            exposureCompValue.opacity = 1
 
1786
            exposureCompSet.enabled = true
 
1787
            exposureCompSet.opacity = 1
 
1788
            exposureCompText.opacity = 1
 
1789
        }else{
 
1790
            autoexpManual.enabled = false
 
1791
            autoexpFull.enabled = false
 
1792
            autoExpoWinSizeCombo.enabled = false
 
1793
            autoexpManual.opacity = 0.1
 
1794
            autoexpFull.opacity = 0.1
 
1795
            exposureCompValue.enabled = false
 
1796
            exposureCompValue.opacity = 0.1
 
1797
            exposureCompSet.enabled = false
 
1798
            exposureCompSet.opacity = 0.1
 
1799
            exposureCompText.opacity = 0.1
 
1800
        }
 
1801
        getAutoExpsoureControlValues.start()
 
1802
    }
 
1803
 
 
1804
    Connections{
 
1805
         target: root
 
1806
         onMouseRightClicked:{
 
1807
             if(afManual.enabled && afManual.checked){
 
1808
                 seecam130.setROIAutoFoucs(See3Cam130.AFManual, width, height, x, y, afWindowSizeCombo.currentText)
 
1809
             }
 
1810
             if(autoexpManual.enabled && autoexpManual.checked){
 
1811
                seecam130.setROIAutoExposure(See3Cam130.AutoExpManual, width, height, x, y, autoExpoWinSizeCombo.currentText)
 
1812
             }
 
1813
         }
 
1814
         onAutoFocusSelected:{
 
1815
             enableDisableAutoFocusUIControls(autoFocusSelect)
 
1816
         }
 
1817
         onAutoExposureSelected:{
 
1818
             enableDisableAutoExposureControls(autoExposureSelect)
 
1819
         }
 
1820
         onEnableFaceRectafterBurst:{
 
1821
             seecam130.enableDisableFaceRectangle(true)
 
1822
         }
 
1823
    }
 
1824
 
 
1825
    Connections{
 
1826
         target: root
 
1827
         onAfterBurst:{
 
1828
             if(rectEnable.checked){
 
1829
                seecam130.enableDisableAFRectangle(true)
 
1830
             }
 
1831
         }
 
1832
         onBeforeRecordVideo:{
 
1833
             seecam130.enableDisableAFRectangle(false)
 
1834
             seecam130.enableDisableFaceRectangle(false)
 
1835
         }
 
1836
         onAfterRecordVideo:{
 
1837
             if(rectEnable.checked){
 
1838
                seecam130.enableDisableAFRectangle(true)
 
1839
             }
 
1840
             seecam130.enableDisableFaceRectangle(true)
 
1841
         }
 
1842
         onVideoResolutionChanged:{
 
1843
             getexposureCompFrameRateCtrlTimer.start()
 
1844
         }
 
1845
         onPreviewFPSChanged:{
 
1846
             getexposureCompFrameRateCtrlTimer.start()
 
1847
         }
 
1848
         onVideoColorSpaceChanged:{
 
1849
             getexposureCompFrameRateCtrlTimer.start()
 
1850
         }
 
1851
    }
 
1852
 
 
1853
}
 
1854