Merge lp:~uriboni/qtubuntu-camera/metering-area into lp:qtubuntu-camera/staging

Proposed by Ugo Riboni
Status: Merged
Merged at revision: 187
Proposed branch: lp:~uriboni/qtubuntu-camera/metering-area
Merge into: lp:qtubuntu-camera/staging
Diff against target: 133 lines (+41/-11)
5 files modified
src/aalcamerafocuscontrol.cpp (+9/-4)
src/aalcamerafocuscontrol.h (+1/-1)
unittests/aalcamerafocuscontrol/tst_aalcamerafocuscontrol.cpp (+11/-6)
unittests/mocks/aal/camera_compatibility_layer.cpp (+11/-0)
unittests/mocks/aal/camera_compatibility_layer_capabilities.h (+9/-0)
To merge this branch: bzr merge lp:~uriboni/qtubuntu-camera/metering-area
Reviewer Review Type Date Requested Status
Florian Boucault (community) Needs Fixing
PS Jenkins bot continuous-integration Needs Fixing
Review via email: mp+290995@code.launchpad.net

Commit message

Set the metering area to the same as the focus area

Description of the change

Set the metering area to the same as the focus area

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Florian Boucault (fboucault) wrote :

Does not compile: missing a line in unittests/mocks/aal/camera_compatibility_layer_capabilities.h

void android_camera_set_metering_region(CameraControl* control, MeteringRegion* region);

review: Needs Fixing

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/aalcamerafocuscontrol.cpp'
2--- src/aalcamerafocuscontrol.cpp 2016-01-21 16:14:37 +0000
3+++ src/aalcamerafocuscontrol.cpp 2016-04-05 14:23:02 +0000
4@@ -84,11 +84,13 @@
5 if (m_focusPoint == point)
6 return;
7
8+ MeteringRegion meteringRegion;
9 m_focusPoint = point;
10- m_focusRegion = point2Region(m_focusPoint);
11+ point2Region(m_focusPoint, m_focusRegion, meteringRegion);
12 Q_EMIT customFocusPointChanged(m_focusPoint);
13
14 if (m_service->androidControl()) {
15+ android_camera_set_metering_region(m_service->androidControl(), &meteringRegion);
16 android_camera_set_focus_region(m_service->androidControl(), &m_focusRegion);
17 startFocus();
18 }
19@@ -207,7 +209,7 @@
20 }
21 }
22
23-FocusRegion AalCameraFocusControl::point2Region(const QPointF &point) const
24+void AalCameraFocusControl::point2Region(const QPointF &point, FocusRegion& region, MeteringRegion& metering) const
25 {
26 int centerX = (point.x() * (2* focusFullSize)) - focusFullSize;
27 int maxCenterPosition = focusFullSize - focusRegionSize;
28@@ -215,12 +217,15 @@
29 int centerY = (point.y() * (2 * focusFullSize)) - focusFullSize;
30 centerY = std::max(std::min(centerY, maxCenterPosition), -maxCenterPosition);
31
32- FocusRegion region;
33 region.left = centerX - focusRegionSize;
34 region.right = centerX + focusRegionSize;
35 region.top = centerY - focusRegionSize;
36 region.bottom = centerY + focusRegionSize;
37 region.weight = 5;
38
39- return region;
40+ metering.left = region.left;
41+ metering.right = region.right;
42+ metering.top = region.top;
43+ metering.bottom = region.bottom;
44+ metering.weight = 5;
45 }
46
47=== modified file 'src/aalcamerafocuscontrol.h'
48--- src/aalcamerafocuscontrol.h 2015-04-08 12:57:01 +0000
49+++ src/aalcamerafocuscontrol.h 2016-04-05 14:23:02 +0000
50@@ -54,7 +54,7 @@
51 private:
52 AutoFocusMode qt2Android(QCameraFocus::FocusModes mode);
53 QCameraFocus::FocusModes android2Qt(AutoFocusMode mode);
54- FocusRegion point2Region(const QPointF &point) const;
55+ void point2Region(const QPointF &point, FocusRegion& region, MeteringRegion& metering) const;
56
57 AalCameraService *m_service;
58 QCameraFocus::FocusModes m_focusMode;
59
60=== modified file 'unittests/aalcamerafocuscontrol/tst_aalcamerafocuscontrol.cpp'
61--- unittests/aalcamerafocuscontrol/tst_aalcamerafocuscontrol.cpp 2016-01-27 16:28:38 +0000
62+++ unittests/aalcamerafocuscontrol/tst_aalcamerafocuscontrol.cpp 2016-04-05 14:23:02 +0000
63@@ -143,12 +143,17 @@
64 AalCameraFocusControl focusControl(0);
65
66 QPointF point(x, y);
67- FocusRegion region;
68- region = m_focusControl->point2Region(point);
69- QCOMPARE(region.left, left);
70- QCOMPARE(region.right, right);
71- QCOMPARE(region.top, top);
72- QCOMPARE(region.bottom, bottom);
73+ FocusRegion focusRegion;
74+ MeteringRegion meteringRegion;
75+ m_focusControl->point2Region(point, focusRegion, meteringRegion);
76+ QCOMPARE(focusRegion.left, left);
77+ QCOMPARE(focusRegion.right, right);
78+ QCOMPARE(focusRegion.top, top);
79+ QCOMPARE(focusRegion.bottom, bottom);
80+ QCOMPARE(focusRegion.left, meteringRegion.left);
81+ QCOMPARE(focusRegion.right, meteringRegion.right);
82+ QCOMPARE(focusRegion.top, meteringRegion.top);
83+ QCOMPARE(focusRegion.bottom, meteringRegion.bottom);
84 }
85
86
87
88=== modified file 'unittests/mocks/aal/camera_compatibility_layer.cpp'
89--- unittests/mocks/aal/camera_compatibility_layer.cpp 2015-11-25 16:59:38 +0000
90+++ unittests/mocks/aal/camera_compatibility_layer.cpp 2016-04-05 14:23:02 +0000
91@@ -306,11 +306,22 @@
92 crashTest(control);
93 }
94
95+void android_camera_set_metering_region(CameraControl* control, MeteringRegion* region)
96+{
97+ Q_UNUSED(region);
98+ crashTest(control);
99+}
100+
101 void android_camera_reset_focus_region(CameraControl* control)
102 {
103 crashTest(control);
104 }
105
106+void android_camera_reset_metering_region(CameraControl* control)
107+{
108+ crashTest(control);
109+}
110+
111 void android_camera_set_rotation(CameraControl* control, int rotation)
112 {
113 Q_UNUSED(rotation);
114
115=== modified file 'unittests/mocks/aal/camera_compatibility_layer_capabilities.h'
116--- unittests/mocks/aal/camera_compatibility_layer_capabilities.h 2015-01-14 10:48:34 +0000
117+++ unittests/mocks/aal/camera_compatibility_layer_capabilities.h 2016-04-05 14:23:02 +0000
118@@ -95,6 +95,15 @@
119 int weight;
120 } FocusRegion;
121
122+typedef struct
123+{
124+ int top;
125+ int left;
126+ int bottom;
127+ int right;
128+ int weight;
129+} MeteringRegion;
130+
131 typedef void (*size_callback)(void* ctx, int width, int height);
132 typedef void (*scene_mode_callback)(void* ctx, SceneMode mode);
133 typedef void (*flash_mode_callback)(void* ctx, FlashMode mode);

Subscribers

People subscribed via source and target branches