Merge lp:~thomas-voss/platform-api/add-controller-and-accuracy into lp:platform-api
- add-controller-and-accuracy
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Ricardo Mendoza |
Approved revision: | 237 |
Merged at revision: | 234 |
Proposed branch: | lp:~thomas-voss/platform-api/add-controller-and-accuracy |
Merge into: | lp:platform-api |
Diff against target: |
724 lines (+351/-78) 15 files modified
debian/control (+1/-1) debian/libubuntu-application-api2.symbols (+4/-0) include/ubuntu/application/location/position_update.h (+40/-0) include/ubuntu/visibility.h (+2/-0) src/ubuntu/application/common/application/location/controller.cpp (+27/-1) src/ubuntu/application/common/application/location/controller_p.h (+1/-0) src/ubuntu/application/common/application/location/heading_update.cpp (+1/-1) src/ubuntu/application/common/application/location/instance.h (+71/-0) src/ubuntu/application/common/application/location/position_update.cpp (+32/-4) src/ubuntu/application/common/application/location/ref_counted.h (+1/-1) src/ubuntu/application/common/application/location/service.cpp (+16/-41) src/ubuntu/application/common/application/location/session.cpp (+50/-24) src/ubuntu/application/common/application/location/session_p.h (+100/-4) src/ubuntu/application/common/application/location/velocity_update.cpp (+1/-1) src/ubuntu/application/ubuntu_application_api.cpp (+4/-0) |
To merge this branch: | bzr merge lp:~thomas-voss/platform-api/add-controller-and-accuracy |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot | continuous-integration | Needs Fixing | |
Ubuntu Phablet Team | Pending | ||
Review via email: mp+224107@code.launchpad.net |
Commit message
Adjust to API changes in location service.
Implement controller interface.
Add functions to query the accuracy estimates for a position update.
Description of the change
Adjust to API changes in location service.
Implement controller interface.
Add functions to query the accuracy estimates for a position update.
PS Jenkins bot (ps-jenkins) wrote : | # |
- 230. By Thomas Voß
-
Adjust flags value correctly.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:230
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 231. By Thomas Voß
-
Catch possible exceptions when interacting with the remote location service instance.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:231
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 232. By Thomas Voß
-
Remove Google log macros with sprintfs.
- 233. By Thomas Voß
-
sprintf really should be fprintf.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:232
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:233
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 234. By Thomas Voß
-
[ Ricardo Mendoza ]
* Added orientation sensor, extended existing sensor API to allow
for dynamic event rate setting.
[ Ubuntu daily release ]
* debian/*symbols: auto-update new symbols to released version - 235. By Thomas Voß
-
Expose symbols for horizontal and vertical accuracy.
- 236. By Thomas Voß
-
Adjust symbols file.
- 237. By Thomas Voß
-
Add a versioned build-dependency on location service.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:236
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:237
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 238. By Thomas Voß
-
[ Ricardo Mendoza ]
Add missing enable/disable functions for haptic - 239. By Thomas Voß
-
Clean up event connections on destruction.
- 240. By Thomas Voß
-
Make destruction thread-safe.
- 241. By Thomas Voß
-
Make sure that handlers and contexts are setup before creating event connections.
- 242. By Thomas Voß
-
Make sure that refcounted elements are actually deleted.
Preview Diff
1 | === modified file 'debian/control' | |||
2 | --- debian/control 2014-06-13 16:31:35 +0000 | |||
3 | +++ debian/control 2014-06-26 20:03:03 +0000 | |||
4 | @@ -15,7 +15,7 @@ | |||
5 | 15 | liburl-dispatcher1-dev, | 15 | liburl-dispatcher1-dev, |
6 | 16 | libdbus-1-dev, | 16 | libdbus-1-dev, |
7 | 17 | libdbus-cpp-dev (>= 2.0.0), | 17 | libdbus-cpp-dev (>= 2.0.0), |
9 | 18 | libubuntu-location-service-dev, | 18 | libubuntu-location-service-dev (>= 1.0.0),, |
10 | 19 | libgtest-dev, | 19 | libgtest-dev, |
11 | 20 | libprocess-cpp-dev (>= 0.0.1+14.04.20131212), | 20 | libprocess-cpp-dev (>= 0.0.1+14.04.20131212), |
12 | 21 | libproperties-cpp-dev, | 21 | libproperties-cpp-dev, |
13 | 22 | 22 | ||
14 | === modified file 'debian/libubuntu-application-api2.symbols' | |||
15 | --- debian/libubuntu-application-api2.symbols 2014-06-23 16:39:57 +0000 | |||
16 | +++ debian/libubuntu-application-api2.symbols 2014-06-26 20:03:03 +0000 | |||
17 | @@ -25,10 +25,14 @@ | |||
18 | 25 | ua_location_heading_update_ref@Base 0.18.3+13.10.20130807 | 25 | ua_location_heading_update_ref@Base 0.18.3+13.10.20130807 |
19 | 26 | ua_location_heading_update_unref@Base 0.18.3+13.10.20130807 | 26 | ua_location_heading_update_unref@Base 0.18.3+13.10.20130807 |
20 | 27 | ua_location_position_update_get_altitude_in_meter@Base 0.18.3+13.10.20130807 | 27 | ua_location_position_update_get_altitude_in_meter@Base 0.18.3+13.10.20130807 |
21 | 28 | ua_location_position_update_get_horizontal_accuracy_in_meter@Base 0replaceme | ||
22 | 28 | ua_location_position_update_get_latitude_in_degree@Base 0.18.3+13.10.20130807 | 29 | ua_location_position_update_get_latitude_in_degree@Base 0.18.3+13.10.20130807 |
23 | 29 | ua_location_position_update_get_longitude_in_degree@Base 0.18.3+13.10.20130807 | 30 | ua_location_position_update_get_longitude_in_degree@Base 0.18.3+13.10.20130807 |
24 | 30 | ua_location_position_update_get_timestamp@Base 0.18.3+13.10.20130807 | 31 | ua_location_position_update_get_timestamp@Base 0.18.3+13.10.20130807 |
25 | 32 | ua_location_position_update_get_vertical_accuracy_in_meter@Base 0replaceme | ||
26 | 31 | ua_location_position_update_has_altitude@Base 0.18.3+13.10.20130807 | 33 | ua_location_position_update_has_altitude@Base 0.18.3+13.10.20130807 |
27 | 34 | ua_location_position_update_has_horizontal_accuracy@Base 0replaceme | ||
28 | 35 | ua_location_position_update_has_vertical_accuracy@Base 0replaceme | ||
29 | 32 | ua_location_position_update_ref@Base 0.18.3+13.10.20130807 | 36 | ua_location_position_update_ref@Base 0.18.3+13.10.20130807 |
30 | 33 | ua_location_position_update_unref@Base 0.18.3+13.10.20130807 | 37 | ua_location_position_update_unref@Base 0.18.3+13.10.20130807 |
31 | 34 | ua_location_service_controller_disable_gps@Base 0.18.3+13.10.20130826 | 38 | ua_location_service_controller_disable_gps@Base 0.18.3+13.10.20130826 |
32 | 35 | 39 | ||
33 | === modified file 'include/ubuntu/application/location/position_update.h' | |||
34 | --- include/ubuntu/application/location/position_update.h 2013-08-22 07:03:49 +0000 | |||
35 | +++ include/ubuntu/application/location/position_update.h 2014-06-26 20:03:03 +0000 | |||
36 | @@ -103,6 +103,46 @@ | |||
37 | 103 | ua_location_position_update_get_altitude_in_meter( | 103 | ua_location_position_update_get_altitude_in_meter( |
38 | 104 | UALocationPositionUpdate *update); | 104 | UALocationPositionUpdate *update); |
39 | 105 | 105 | ||
40 | 106 | /** | ||
41 | 107 | * \brief Checks if the position update contains a horizontal accuracy estimate. | ||
42 | 108 | * \ingroup location_service | ||
43 | 109 | * \returns TRUE if the update contains a horizontal accuracy estimate, else FALSE. | ||
44 | 110 | * \param[in] update The position update instance to be queried. | ||
45 | 111 | */ | ||
46 | 112 | UBUNTU_DLL_PUBLIC bool | ||
47 | 113 | ua_location_position_update_has_horizontal_accuracy( | ||
48 | 114 | UALocationPositionUpdate *update); | ||
49 | 115 | |||
50 | 116 | /** | ||
51 | 117 | * \brief Queries the horizontal accuracy contained in the position update. | ||
52 | 118 | * \ingroup location_service | ||
53 | 119 | * \returns The horizontal accuracy of the position update in [m]. | ||
54 | 120 | * \param[in] update The position update instance to be queried. | ||
55 | 121 | */ | ||
56 | 122 | UBUNTU_DLL_PUBLIC double | ||
57 | 123 | ua_location_position_update_get_horizontal_accuracy_in_meter( | ||
58 | 124 | UALocationPositionUpdate *update); | ||
59 | 125 | |||
60 | 126 | /** | ||
61 | 127 | * \brief Checks if the position update contains a vertical accuracy estimate. | ||
62 | 128 | * \ingroup location_service | ||
63 | 129 | * \returns TRUE if the update contains a vertical accuracy estimate, else FALSE. | ||
64 | 130 | * \param[in] update The position update instance to be queried. | ||
65 | 131 | */ | ||
66 | 132 | UBUNTU_DLL_PUBLIC bool | ||
67 | 133 | ua_location_position_update_has_vertical_accuracy( | ||
68 | 134 | UALocationPositionUpdate *update); | ||
69 | 135 | |||
70 | 136 | /** | ||
71 | 137 | * \brief Queries the vertical accuracy contained in the position update. | ||
72 | 138 | * \ingroup location_service | ||
73 | 139 | * \returns The vertical accuracy of the position update in [m]. | ||
74 | 140 | * \param[in] update The position update instance to be queried. | ||
75 | 141 | */ | ||
76 | 142 | UBUNTU_DLL_PUBLIC double | ||
77 | 143 | ua_location_position_update_get_vertical_accuracy_in_meter( | ||
78 | 144 | UALocationPositionUpdate *update); | ||
79 | 145 | |||
80 | 106 | #ifdef __cplusplus | 146 | #ifdef __cplusplus |
81 | 107 | } | 147 | } |
82 | 108 | #endif | 148 | #endif |
83 | 109 | 149 | ||
84 | === modified file 'include/ubuntu/visibility.h' | |||
85 | --- include/ubuntu/visibility.h 2013-08-22 06:32:14 +0000 | |||
86 | +++ include/ubuntu/visibility.h 2014-06-26 20:03:03 +0000 | |||
87 | @@ -21,8 +21,10 @@ | |||
88 | 21 | 21 | ||
89 | 22 | #if __GNUC__ >= 4 | 22 | #if __GNUC__ >= 4 |
90 | 23 | #define UBUNTU_DLL_PUBLIC __attribute__ ((visibility ("default"))) | 23 | #define UBUNTU_DLL_PUBLIC __attribute__ ((visibility ("default"))) |
91 | 24 | #define UBUNTU_DLL_LOCAL __attribute__ ((visibility ("hidden"))) | ||
92 | 24 | #else | 25 | #else |
93 | 25 | #define UBUNTU_DLL_PUBLIC | 26 | #define UBUNTU_DLL_PUBLIC |
94 | 27 | #define UBUNTU_DLL_LOCAL | ||
95 | 26 | #endif | 28 | #endif |
96 | 27 | 29 | ||
97 | 28 | #endif /* UBUNTU_VISIBILITY_H_ */ | 30 | #endif /* UBUNTU_VISIBILITY_H_ */ |
98 | 29 | 31 | ||
99 | === modified file 'src/ubuntu/application/common/application/location/controller.cpp' | |||
100 | --- src/ubuntu/application/common/application/location/controller.cpp 2013-08-23 10:55:16 +0000 | |||
101 | +++ src/ubuntu/application/common/application/location/controller.cpp 2014-06-26 20:03:03 +0000 | |||
102 | @@ -19,6 +19,7 @@ | |||
103 | 19 | #include "ubuntu/application/location/controller.h" | 19 | #include "ubuntu/application/location/controller.h" |
104 | 20 | 20 | ||
105 | 21 | #include "controller_p.h" | 21 | #include "controller_p.h" |
106 | 22 | #include "instance.h" | ||
107 | 22 | 23 | ||
108 | 23 | void | 24 | void |
109 | 24 | ua_location_service_controller_ref( | 25 | ua_location_service_controller_ref( |
110 | @@ -51,7 +52,20 @@ | |||
111 | 51 | UALocationServiceStatusFlags *out_flags) | 52 | UALocationServiceStatusFlags *out_flags) |
112 | 52 | { | 53 | { |
113 | 53 | (void) controller; | 54 | (void) controller; |
115 | 54 | (void) out_flags; | 55 | |
116 | 56 | *out_flags = 0; | ||
117 | 57 | |||
118 | 58 | auto service = Instance::instance().get_service(); | ||
119 | 59 | |||
120 | 60 | if (service->is_online().get()) | ||
121 | 61 | *out_flags |= UA_LOCATION_SERVICE_ENABLED; | ||
122 | 62 | else | ||
123 | 63 | *out_flags |= UA_LOCATION_SERVICE_DISABLED; | ||
124 | 64 | |||
125 | 65 | if (service->does_satellite_based_positioning().get()) | ||
126 | 66 | *out_flags |= UA_LOCATION_SERVICE_GPS_ENABLED; | ||
127 | 67 | else | ||
128 | 68 | *out_flags |= UA_LOCATION_SERVICE_GPS_DISABLED; | ||
129 | 55 | 69 | ||
130 | 56 | return U_STATUS_SUCCESS; | 70 | return U_STATUS_SUCCESS; |
131 | 57 | } | 71 | } |
132 | @@ -62,6 +76,9 @@ | |||
133 | 62 | { | 76 | { |
134 | 63 | (void) controller; | 77 | (void) controller; |
135 | 64 | 78 | ||
136 | 79 | auto service = Instance::instance().get_service(); | ||
137 | 80 | service->is_online().set(true); | ||
138 | 81 | |||
139 | 65 | return U_STATUS_SUCCESS; | 82 | return U_STATUS_SUCCESS; |
140 | 66 | } | 83 | } |
141 | 67 | 84 | ||
142 | @@ -70,6 +87,9 @@ | |||
143 | 70 | UALocationServiceController *controller) | 87 | UALocationServiceController *controller) |
144 | 71 | { | 88 | { |
145 | 72 | (void) controller; | 89 | (void) controller; |
146 | 90 | |||
147 | 91 | auto service = Instance::instance().get_service(); | ||
148 | 92 | service->is_online().set(false); | ||
149 | 73 | 93 | ||
150 | 74 | return U_STATUS_SUCCESS; | 94 | return U_STATUS_SUCCESS; |
151 | 75 | } | 95 | } |
152 | @@ -80,6 +100,9 @@ | |||
153 | 80 | { | 100 | { |
154 | 81 | (void) controller; | 101 | (void) controller; |
155 | 82 | 102 | ||
156 | 103 | auto service = Instance::instance().get_service(); | ||
157 | 104 | service->does_satellite_based_positioning().set(true); | ||
158 | 105 | |||
159 | 83 | return U_STATUS_SUCCESS; | 106 | return U_STATUS_SUCCESS; |
160 | 84 | } | 107 | } |
161 | 85 | 108 | ||
162 | @@ -89,5 +112,8 @@ | |||
163 | 89 | { | 112 | { |
164 | 90 | (void) controller; | 113 | (void) controller; |
165 | 91 | 114 | ||
166 | 115 | auto service = Instance::instance().get_service(); | ||
167 | 116 | service->does_satellite_based_positioning().set(false); | ||
168 | 117 | |||
169 | 92 | return U_STATUS_SUCCESS; | 118 | return U_STATUS_SUCCESS; |
170 | 93 | } | 119 | } |
171 | 94 | 120 | ||
172 | === modified file 'src/ubuntu/application/common/application/location/controller_p.h' | |||
173 | --- src/ubuntu/application/common/application/location/controller_p.h 2013-08-21 14:59:45 +0000 | |||
174 | +++ src/ubuntu/application/common/application/location/controller_p.h 2014-06-26 20:03:03 +0000 | |||
175 | @@ -25,6 +25,7 @@ | |||
176 | 25 | 25 | ||
177 | 26 | struct UbuntuApplicationLocationServiceController : public detail::RefCounted | 26 | struct UbuntuApplicationLocationServiceController : public detail::RefCounted |
178 | 27 | { | 27 | { |
179 | 28 | |||
180 | 28 | }; | 29 | }; |
181 | 29 | 30 | ||
182 | 30 | #endif // CONTROLLER_PRIVATE_H_ | 31 | #endif // CONTROLLER_PRIVATE_H_ |
183 | 31 | 32 | ||
184 | === modified file 'src/ubuntu/application/common/application/location/heading_update.cpp' | |||
185 | --- src/ubuntu/application/common/application/location/heading_update.cpp 2013-08-19 06:46:47 +0000 | |||
186 | +++ src/ubuntu/application/common/application/location/heading_update.cpp 2014-06-26 20:03:03 +0000 | |||
187 | @@ -51,5 +51,5 @@ | |||
188 | 51 | ua_location_heading_update_get_heading_in_degree( | 51 | ua_location_heading_update_get_heading_in_degree( |
189 | 52 | UALocationHeadingUpdate *update) | 52 | UALocationHeadingUpdate *update) |
190 | 53 | { | 53 | { |
192 | 54 | return update->update.value.value.value(); | 54 | return update->update.value.value(); |
193 | 55 | } | 55 | } |
194 | 56 | 56 | ||
195 | === added file 'src/ubuntu/application/common/application/location/instance.h' | |||
196 | --- src/ubuntu/application/common/application/location/instance.h 1970-01-01 00:00:00 +0000 | |||
197 | +++ src/ubuntu/application/common/application/location/instance.h 2014-06-26 20:03:03 +0000 | |||
198 | @@ -0,0 +1,71 @@ | |||
199 | 1 | /* | ||
200 | 2 | * Copyright © 2013 Canonical Ltd. | ||
201 | 3 | * | ||
202 | 4 | * This program is free software: you can redistribute it and/or modify | ||
203 | 5 | * it under the terms of the GNU Lesser General Public License version 3 as | ||
204 | 6 | * published by the Free Software Foundation. | ||
205 | 7 | * | ||
206 | 8 | * This program is distributed in the hope that it will be useful, | ||
207 | 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
208 | 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
209 | 11 | * GNU Lesser General Public License for more details. | ||
210 | 12 | * | ||
211 | 13 | * You should have received a copy of the GNU Lesser General Public License | ||
212 | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
213 | 15 | * | ||
214 | 16 | * Authored by: Thomas Voß <thomas.voss@canonical.com> | ||
215 | 17 | */ | ||
216 | 18 | |||
217 | 19 | #ifndef INSTANCE_H_ | ||
218 | 20 | #define INSTANCE_H_ | ||
219 | 21 | |||
220 | 22 | #include "ubuntu/visibility.h" | ||
221 | 23 | |||
222 | 24 | #include <com/ubuntu/location/service/stub.h> | ||
223 | 25 | |||
224 | 26 | #include <core/dbus/resolver.h> | ||
225 | 27 | #include <core/dbus/asio/executor.h> | ||
226 | 28 | |||
227 | 29 | #include <thread> | ||
228 | 30 | |||
229 | 31 | class UBUNTU_DLL_LOCAL Instance | ||
230 | 32 | { | ||
231 | 33 | public: | ||
232 | 34 | static Instance& instance() | ||
233 | 35 | { | ||
234 | 36 | static Instance inst; | ||
235 | 37 | return inst; | ||
236 | 38 | } | ||
237 | 39 | |||
238 | 40 | const com::ubuntu::location::service::Interface::Ptr& get_service() const | ||
239 | 41 | { | ||
240 | 42 | return service; | ||
241 | 43 | } | ||
242 | 44 | |||
243 | 45 | private: | ||
244 | 46 | Instance() : bus(std::make_shared<core::dbus::Bus>(core::dbus::WellKnownBus::system)), | ||
245 | 47 | executor(core::dbus::asio::make_executor(bus)), | ||
246 | 48 | service(core::dbus::resolve_service_on_bus< | ||
247 | 49 | com::ubuntu::location::service::Interface, | ||
248 | 50 | com::ubuntu::location::service::Stub | ||
249 | 51 | >(bus)) | ||
250 | 52 | { | ||
251 | 53 | bus->install_executor(executor); | ||
252 | 54 | worker = std::move(std::thread([&]() { bus->run(); })); | ||
253 | 55 | } | ||
254 | 56 | |||
255 | 57 | ~Instance() noexcept | ||
256 | 58 | { | ||
257 | 59 | bus->stop(); | ||
258 | 60 | |||
259 | 61 | if (worker.joinable()) | ||
260 | 62 | worker.join(); | ||
261 | 63 | } | ||
262 | 64 | |||
263 | 65 | core::dbus::Bus::Ptr bus; | ||
264 | 66 | core::dbus::Executor::Ptr executor; | ||
265 | 67 | com::ubuntu::location::service::Interface::Ptr service; | ||
266 | 68 | std::thread worker; | ||
267 | 69 | }; | ||
268 | 70 | |||
269 | 71 | #endif // INSTANCE_H_ | ||
270 | 0 | 72 | ||
271 | === modified file 'src/ubuntu/application/common/application/location/position_update.cpp' | |||
272 | --- src/ubuntu/application/common/application/location/position_update.cpp 2013-08-19 06:46:47 +0000 | |||
273 | +++ src/ubuntu/application/common/application/location/position_update.cpp 2014-06-26 20:03:03 +0000 | |||
274 | @@ -51,26 +51,54 @@ | |||
275 | 51 | ua_location_position_update_get_latitude_in_degree( | 51 | ua_location_position_update_get_latitude_in_degree( |
276 | 52 | UALocationPositionUpdate *update) | 52 | UALocationPositionUpdate *update) |
277 | 53 | { | 53 | { |
279 | 54 | return update->update.value.latitude().value.value(); | 54 | return update->update.value.latitude.value.value(); |
280 | 55 | } | 55 | } |
281 | 56 | 56 | ||
282 | 57 | double | 57 | double |
283 | 58 | ua_location_position_update_get_longitude_in_degree( | 58 | ua_location_position_update_get_longitude_in_degree( |
284 | 59 | UALocationPositionUpdate *update) | 59 | UALocationPositionUpdate *update) |
285 | 60 | { | 60 | { |
287 | 61 | return update->update.value.longitude().value.value(); | 61 | return update->update.value.longitude.value.value(); |
288 | 62 | } | 62 | } |
289 | 63 | 63 | ||
290 | 64 | bool | 64 | bool |
291 | 65 | ua_location_position_update_has_altitude( | 65 | ua_location_position_update_has_altitude( |
292 | 66 | UALocationPositionUpdate *update) | 66 | UALocationPositionUpdate *update) |
293 | 67 | { | 67 | { |
295 | 68 | return update->update.value.has_altitude(); | 68 | return update->update.value.altitude; |
296 | 69 | } | 69 | } |
297 | 70 | 70 | ||
298 | 71 | double | 71 | double |
299 | 72 | ua_location_position_update_get_altitude_in_meter( | 72 | ua_location_position_update_get_altitude_in_meter( |
300 | 73 | UALocationPositionUpdate *update) | 73 | UALocationPositionUpdate *update) |
301 | 74 | { | 74 | { |
303 | 75 | return update->update.value.altitude().value.value(); | 75 | return update->update.value.altitude->value.value(); |
304 | 76 | } | ||
305 | 77 | |||
306 | 78 | bool | ||
307 | 79 | ua_location_position_update_has_horizontal_accuracy( | ||
308 | 80 | UALocationPositionUpdate *update) | ||
309 | 81 | { | ||
310 | 82 | return update->update.value.accuracy.horizontal; | ||
311 | 83 | } | ||
312 | 84 | |||
313 | 85 | double | ||
314 | 86 | ua_location_position_update_get_horizontal_accuracy_in_meter( | ||
315 | 87 | UALocationPositionUpdate *update) | ||
316 | 88 | { | ||
317 | 89 | return update->update.value.accuracy.horizontal->value(); | ||
318 | 90 | } | ||
319 | 91 | |||
320 | 92 | bool | ||
321 | 93 | ua_location_position_update_has_vertical_accuracy( | ||
322 | 94 | UALocationPositionUpdate *update) | ||
323 | 95 | { | ||
324 | 96 | return update->update.value.accuracy.vertical; | ||
325 | 97 | } | ||
326 | 98 | |||
327 | 99 | double | ||
328 | 100 | ua_location_position_update_get_vertical_accuracy_in_meter( | ||
329 | 101 | UALocationPositionUpdate *update) | ||
330 | 102 | { | ||
331 | 103 | return update->update.value.accuracy.vertical->value(); | ||
332 | 76 | } | 104 | } |
333 | 77 | 105 | ||
334 | === modified file 'src/ubuntu/application/common/application/location/ref_counted.h' | |||
335 | --- src/ubuntu/application/common/application/location/ref_counted.h 2013-08-19 06:47:19 +0000 | |||
336 | +++ src/ubuntu/application/common/application/location/ref_counted.h 2014-06-26 20:03:03 +0000 | |||
337 | @@ -32,7 +32,7 @@ | |||
338 | 32 | bool operator==(const RefCounted&) const = delete; | 32 | bool operator==(const RefCounted&) const = delete; |
339 | 33 | 33 | ||
340 | 34 | void ref() { counter.fetch_add(1); } | 34 | void ref() { counter.fetch_add(1); } |
342 | 35 | void unref() { if (0 == counter.fetch_sub(1)) { delete this; } } | 35 | void unref() { if (1 == counter.fetch_sub(1)) { delete this; } } |
343 | 36 | 36 | ||
344 | 37 | protected: | 37 | protected: |
345 | 38 | RefCounted() : counter(1) | 38 | RefCounted() : counter(1) |
346 | 39 | 39 | ||
347 | === modified file 'src/ubuntu/application/common/application/location/service.cpp' | |||
348 | --- src/ubuntu/application/common/application/location/service.cpp 2014-01-31 13:35:28 +0000 | |||
349 | +++ src/ubuntu/application/common/application/location/service.cpp 2014-06-26 20:03:03 +0000 | |||
350 | @@ -19,6 +19,7 @@ | |||
351 | 19 | #include "ubuntu/application/location/service.h" | 19 | #include "ubuntu/application/location/service.h" |
352 | 20 | 20 | ||
353 | 21 | #include "controller_p.h" | 21 | #include "controller_p.h" |
354 | 22 | #include "instance.h" | ||
355 | 22 | #include "session_p.h" | 23 | #include "session_p.h" |
356 | 23 | 24 | ||
357 | 24 | #include <com/ubuntu/location/service/stub.h> | 25 | #include <com/ubuntu/location/service/stub.h> |
358 | @@ -30,45 +31,6 @@ | |||
359 | 30 | namespace cul = com::ubuntu::location; | 31 | namespace cul = com::ubuntu::location; |
360 | 31 | namespace culs = com::ubuntu::location::service; | 32 | namespace culs = com::ubuntu::location::service; |
361 | 32 | 33 | ||
362 | 33 | namespace | ||
363 | 34 | { | ||
364 | 35 | class Instance | ||
365 | 36 | { | ||
366 | 37 | public: | ||
367 | 38 | static Instance& instance() | ||
368 | 39 | { | ||
369 | 40 | static Instance inst; | ||
370 | 41 | return inst; | ||
371 | 42 | } | ||
372 | 43 | |||
373 | 44 | const culs::Interface::Ptr& get_service() const | ||
374 | 45 | { | ||
375 | 46 | return service; | ||
376 | 47 | } | ||
377 | 48 | |||
378 | 49 | private: | ||
379 | 50 | Instance() : bus(std::make_shared<dbus::Bus>(dbus::WellKnownBus::system)), | ||
380 | 51 | executor(dbus::asio::make_executor(bus)), | ||
381 | 52 | service(dbus::resolve_service_on_bus<culs::Interface, culs::Stub>(bus)) | ||
382 | 53 | { | ||
383 | 54 | bus->install_executor(executor); | ||
384 | 55 | worker = std::move(std::thread([&]() { bus->run(); })); | ||
385 | 56 | } | ||
386 | 57 | |||
387 | 58 | ~Instance() noexcept | ||
388 | 59 | { | ||
389 | 60 | if (worker.joinable()) | ||
390 | 61 | worker.join(); | ||
391 | 62 | } | ||
392 | 63 | |||
393 | 64 | dbus::Bus::Ptr bus; | ||
394 | 65 | dbus::Executor::Ptr executor; | ||
395 | 66 | culs::Interface::Ptr service; | ||
396 | 67 | std::thread worker; | ||
397 | 68 | }; | ||
398 | 69 | |||
399 | 70 | } | ||
400 | 71 | |||
401 | 72 | UALocationServiceSession* | 34 | UALocationServiceSession* |
402 | 73 | ua_location_service_create_session_for_low_accuracy( | 35 | ua_location_service_create_session_for_low_accuracy( |
403 | 74 | UALocationServiceRequirementsFlags /*flags*/) | 36 | UALocationServiceRequirementsFlags /*flags*/) |
404 | @@ -81,8 +43,21 @@ | |||
405 | 81 | ua_location_service_create_session_for_high_accuracy( | 43 | ua_location_service_create_session_for_high_accuracy( |
406 | 82 | UALocationServiceRequirementsFlags /*flags*/) | 44 | UALocationServiceRequirementsFlags /*flags*/) |
407 | 83 | { | 45 | { |
410 | 84 | return new UbuntuApplicationLocationServiceSession{ | 46 | try |
411 | 85 | Instance::instance().get_service()->create_session_for_criteria(cul::Criteria{})}; | 47 | { |
412 | 48 | return new UbuntuApplicationLocationServiceSession | ||
413 | 49 | { | ||
414 | 50 | Instance::instance().get_service()->create_session_for_criteria(cul::Criteria{}) | ||
415 | 51 | }; | ||
416 | 52 | } catch(const std::exception& e) | ||
417 | 53 | { | ||
418 | 54 | fprintf(stderr, "Error creating session for high accuracy: %s \n", e.what()); | ||
419 | 55 | } catch(...) | ||
420 | 56 | { | ||
421 | 57 | fprintf(stderr, "Error creating session for high accuracy.\n"); | ||
422 | 58 | } | ||
423 | 59 | |||
424 | 60 | return NULL; | ||
425 | 86 | } | 61 | } |
426 | 87 | 62 | ||
427 | 88 | UALocationServiceController* | 63 | UALocationServiceController* |
428 | 89 | 64 | ||
429 | === modified file 'src/ubuntu/application/common/application/location/session.cpp' | |||
430 | --- src/ubuntu/application/common/application/location/session.cpp 2013-08-19 06:46:47 +0000 | |||
431 | +++ src/ubuntu/application/common/application/location/session.cpp 2014-06-26 20:03:03 +0000 | |||
432 | @@ -24,6 +24,8 @@ | |||
433 | 24 | #include "position_update_p.h" | 24 | #include "position_update_p.h" |
434 | 25 | #include "velocity_update_p.h" | 25 | #include "velocity_update_p.h" |
435 | 26 | 26 | ||
436 | 27 | namespace location = com::ubuntu::location; | ||
437 | 28 | |||
438 | 27 | void | 29 | void |
439 | 28 | ua_location_service_session_ref( | 30 | ua_location_service_session_ref( |
440 | 29 | UALocationServiceSession *session) | 31 | UALocationServiceSession *session) |
441 | @@ -47,12 +49,18 @@ | |||
442 | 47 | void *context) | 49 | void *context) |
443 | 48 | { | 50 | { |
444 | 49 | auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session); | 51 | auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session); |
451 | 50 | s->session->install_position_updates_handler( | 52 | try |
452 | 51 | [handler, context](const com::ubuntu::location::Update<com::ubuntu::location::Position>& new_position) | 53 | { |
453 | 52 | { | 54 | std::lock_guard<std::mutex> lg(s->position_updates.guard); |
454 | 53 | UbuntuApplicationLocationPositionUpdate pu{new_position}; | 55 | s->position_updates.handler = handler; |
455 | 54 | handler(std::addressof(pu), context); | 56 | s->position_updates.context = context; |
456 | 55 | }); | 57 | } catch(const std::exception& e) |
457 | 58 | { | ||
458 | 59 | fprintf(stderr, "Error setting up position updates handler: %s \n", e.what()); | ||
459 | 60 | } catch(...) | ||
460 | 61 | { | ||
461 | 62 | fprintf(stderr, "Error setting up position updates handler.\n"); | ||
462 | 63 | } | ||
463 | 56 | } | 64 | } |
464 | 57 | 65 | ||
465 | 58 | void | 66 | void |
466 | @@ -62,12 +70,18 @@ | |||
467 | 62 | void *context) | 70 | void *context) |
468 | 63 | { | 71 | { |
469 | 64 | auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session); | 72 | auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session); |
476 | 65 | s->session->install_heading_updates_handler( | 73 | try |
477 | 66 | [handler, context](const com::ubuntu::location::Update<com::ubuntu::location::Heading>& new_heading) | 74 | { |
478 | 67 | { | 75 | std::lock_guard<std::mutex> lg(s->heading_updates.guard); |
479 | 68 | UbuntuApplicationLocationHeadingUpdate hu{new_heading}; | 76 | s->heading_updates.handler = handler; |
480 | 69 | handler(std::addressof(hu), context); | 77 | s->heading_updates.context = context; |
481 | 70 | }); | 78 | } catch(const std::exception& e) |
482 | 79 | { | ||
483 | 80 | fprintf(stderr, "Error setting up heading updates handler: %s \n", e.what()); | ||
484 | 81 | } catch(...) | ||
485 | 82 | { | ||
486 | 83 | fprintf(stderr, "Error setting up heading updates handler. \n"); | ||
487 | 84 | } | ||
488 | 71 | } | 85 | } |
489 | 72 | 86 | ||
490 | 73 | void | 87 | void |
491 | @@ -77,12 +91,18 @@ | |||
492 | 77 | void *context) | 91 | void *context) |
493 | 78 | { | 92 | { |
494 | 79 | auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session); | 93 | auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session); |
501 | 80 | s->session->install_velocity_updates_handler( | 94 | try |
502 | 81 | [handler, context](const com::ubuntu::location::Update<com::ubuntu::location::Velocity>& new_velocity) | 95 | { |
503 | 82 | { | 96 | std::lock_guard<std::mutex> lg(s->velocity_updates.guard); |
504 | 83 | UbuntuApplicationLocationVelocityUpdate vu{new_velocity}; | 97 | s->velocity_updates.handler = handler; |
505 | 84 | handler(std::addressof(vu), context); | 98 | s->velocity_updates.context = context; |
506 | 85 | }); | 99 | } catch(const std::exception& e) |
507 | 100 | { | ||
508 | 101 | fprintf(stderr, "Error setting up velocity updates handler: %s \n", e.what()); | ||
509 | 102 | } catch(...) | ||
510 | 103 | { | ||
511 | 104 | fprintf(stderr, "Error setting up velocity updates handler."); | ||
512 | 105 | } | ||
513 | 86 | } | 106 | } |
514 | 87 | 107 | ||
515 | 88 | UStatus | 108 | UStatus |
516 | @@ -95,7 +115,8 @@ | |||
517 | 95 | 115 | ||
518 | 96 | try | 116 | try |
519 | 97 | { | 117 | { |
521 | 98 | s->session->start_position_updates(); | 118 | s->session->updates().position_status.set( |
522 | 119 | location::service::session::Interface::Updates::Status::enabled); | ||
523 | 99 | } catch(...) | 120 | } catch(...) |
524 | 100 | { | 121 | { |
525 | 101 | return U_STATUS_ERROR; | 122 | return U_STATUS_ERROR; |
526 | @@ -114,7 +135,8 @@ | |||
527 | 114 | 135 | ||
528 | 115 | try | 136 | try |
529 | 116 | { | 137 | { |
531 | 117 | s->session->stop_position_updates(); | 138 | s->session->updates().position_status.set( |
532 | 139 | location::service::session::Interface::Updates::Status::disabled); | ||
533 | 118 | } catch(...) | 140 | } catch(...) |
534 | 119 | { | 141 | { |
535 | 120 | } | 142 | } |
536 | @@ -130,7 +152,8 @@ | |||
537 | 130 | 152 | ||
538 | 131 | try | 153 | try |
539 | 132 | { | 154 | { |
541 | 133 | s->session->start_heading_updates(); | 155 | s->session->updates().heading_status.set( |
542 | 156 | location::service::session::Interface::Updates::Status::enabled); | ||
543 | 134 | } catch(...) | 157 | } catch(...) |
544 | 135 | { | 158 | { |
545 | 136 | return U_STATUS_ERROR; | 159 | return U_STATUS_ERROR; |
546 | @@ -149,7 +172,8 @@ | |||
547 | 149 | 172 | ||
548 | 150 | try | 173 | try |
549 | 151 | { | 174 | { |
551 | 152 | s->session->stop_heading_updates(); | 175 | s->session->updates().heading_status.set( |
552 | 176 | location::service::session::Interface::Updates::Status::disabled); | ||
553 | 153 | } catch(...) | 177 | } catch(...) |
554 | 154 | { | 178 | { |
555 | 155 | } | 179 | } |
556 | @@ -165,7 +189,8 @@ | |||
557 | 165 | 189 | ||
558 | 166 | try | 190 | try |
559 | 167 | { | 191 | { |
561 | 168 | s->session->start_velocity_updates(); | 192 | s->session->updates().velocity_status.set( |
562 | 193 | location::service::session::Interface::Updates::Status::enabled); | ||
563 | 169 | } catch(...) | 194 | } catch(...) |
564 | 170 | { | 195 | { |
565 | 171 | return U_STATUS_ERROR; | 196 | return U_STATUS_ERROR; |
566 | @@ -184,7 +209,8 @@ | |||
567 | 184 | 209 | ||
568 | 185 | try | 210 | try |
569 | 186 | { | 211 | { |
571 | 187 | s->session->stop_velocity_updates(); | 212 | s->session->updates().velocity_status.set( |
572 | 213 | location::service::session::Interface::Updates::Status::disabled); | ||
573 | 188 | } catch(...) | 214 | } catch(...) |
574 | 189 | { | 215 | { |
575 | 190 | } | 216 | } |
576 | 191 | 217 | ||
577 | === modified file 'src/ubuntu/application/common/application/location/session_p.h' | |||
578 | --- src/ubuntu/application/common/application/location/session_p.h 2013-08-19 06:46:47 +0000 | |||
579 | +++ src/ubuntu/application/common/application/location/session_p.h 2014-06-26 20:03:03 +0000 | |||
580 | @@ -22,18 +22,114 @@ | |||
581 | 22 | 22 | ||
582 | 23 | #include "ref_counted.h" | 23 | #include "ref_counted.h" |
583 | 24 | 24 | ||
584 | 25 | #include "heading_update_p.h" | ||
585 | 26 | #include "position_update_p.h" | ||
586 | 27 | #include "velocity_update_p.h" | ||
587 | 28 | |||
588 | 25 | #include <com/ubuntu/location/service/session/interface.h> | 29 | #include <com/ubuntu/location/service/session/interface.h> |
589 | 26 | 30 | ||
590 | 31 | #include <mutex> | ||
591 | 32 | |||
592 | 33 | namespace cul = com::ubuntu::location; | ||
593 | 27 | namespace culss = com::ubuntu::location::service::session; | 34 | namespace culss = com::ubuntu::location::service::session; |
594 | 28 | 35 | ||
595 | 29 | struct UbuntuApplicationLocationServiceSession : public detail::RefCounted | 36 | struct UbuntuApplicationLocationServiceSession : public detail::RefCounted |
596 | 30 | { | 37 | { |
597 | 31 | UbuntuApplicationLocationServiceSession(const culss::Interface::Ptr& session) | 38 | UbuntuApplicationLocationServiceSession(const culss::Interface::Ptr& session) |
602 | 32 | : session(session) | 39 | : session(session), |
603 | 33 | { | 40 | connections |
604 | 34 | } | 41 | { |
605 | 35 | 42 | session->updates().position.changed().connect( | |
606 | 43 | [this](const cul::Update<cul::Position>& new_position) | ||
607 | 44 | { | ||
608 | 45 | try | ||
609 | 46 | { | ||
610 | 47 | std::lock_guard<std::mutex> lg(position_updates.guard); | ||
611 | 48 | |||
612 | 49 | UbuntuApplicationLocationPositionUpdate pu{new_position}; | ||
613 | 50 | if (position_updates.handler) position_updates.handler( | ||
614 | 51 | std::addressof(pu), | ||
615 | 52 | position_updates.context); | ||
616 | 53 | } catch(...) | ||
617 | 54 | { | ||
618 | 55 | // We silently ignore the issue and keep going. | ||
619 | 56 | } | ||
620 | 57 | }), | ||
621 | 58 | session->updates().heading.changed().connect( | ||
622 | 59 | [this](const cul::Update<cul::Heading>& new_heading) | ||
623 | 60 | { | ||
624 | 61 | try | ||
625 | 62 | { | ||
626 | 63 | std::lock_guard<std::mutex> lg(heading_updates.guard); | ||
627 | 64 | UbuntuApplicationLocationHeadingUpdate hu{new_heading}; | ||
628 | 65 | if (heading_updates.handler) heading_updates.handler( | ||
629 | 66 | std::addressof(hu), | ||
630 | 67 | heading_updates.context); | ||
631 | 68 | } catch(...) | ||
632 | 69 | { | ||
633 | 70 | // We silently ignore the issue and keep going. | ||
634 | 71 | } | ||
635 | 72 | }), | ||
636 | 73 | session->updates().velocity.changed().connect( | ||
637 | 74 | [this](const cul::Update<cul::Velocity>& new_velocity) | ||
638 | 75 | { | ||
639 | 76 | try | ||
640 | 77 | { | ||
641 | 78 | std::lock_guard<std::mutex> lg(velocity_updates.guard); | ||
642 | 79 | |||
643 | 80 | UbuntuApplicationLocationVelocityUpdate vu{new_velocity}; | ||
644 | 81 | if (velocity_updates.handler) velocity_updates.handler( | ||
645 | 82 | std::addressof(vu), | ||
646 | 83 | velocity_updates.context); | ||
647 | 84 | } catch(...) | ||
648 | 85 | { | ||
649 | 86 | // We silently ignore the issue and keep going. | ||
650 | 87 | } | ||
651 | 88 | }), | ||
652 | 89 | } | ||
653 | 90 | { | ||
654 | 91 | } | ||
655 | 92 | |||
656 | 93 | ~UbuntuApplicationLocationServiceSession() | ||
657 | 94 | { | ||
658 | 95 | std::lock_guard<std::mutex> lgp(position_updates.guard); | ||
659 | 96 | std::lock_guard<std::mutex> lgh(heading_updates.guard); | ||
660 | 97 | std::lock_guard<std::mutex> lgv(velocity_updates.guard); | ||
661 | 98 | |||
662 | 99 | position_updates.handler = nullptr; | ||
663 | 100 | heading_updates.handler = nullptr; | ||
664 | 101 | velocity_updates.handler = nullptr; | ||
665 | 102 | } | ||
666 | 103 | |||
667 | 36 | culss::Interface::Ptr session; | 104 | culss::Interface::Ptr session; |
668 | 105 | |||
669 | 106 | struct | ||
670 | 107 | { | ||
671 | 108 | std::mutex guard; | ||
672 | 109 | UALocationServiceSessionPositionUpdatesHandler handler{nullptr}; | ||
673 | 110 | void* context{nullptr}; | ||
674 | 111 | } position_updates{}; | ||
675 | 112 | |||
676 | 113 | struct | ||
677 | 114 | { | ||
678 | 115 | std::mutex guard; | ||
679 | 116 | UALocationServiceSessionHeadingUpdatesHandler handler{nullptr}; | ||
680 | 117 | void* context{nullptr}; | ||
681 | 118 | } heading_updates{}; | ||
682 | 119 | |||
683 | 120 | struct | ||
684 | 121 | { | ||
685 | 122 | std::mutex guard; | ||
686 | 123 | UALocationServiceSessionVelocityUpdatesHandler handler{nullptr}; | ||
687 | 124 | void* context{nullptr}; | ||
688 | 125 | } velocity_updates{}; | ||
689 | 126 | |||
690 | 127 | struct | ||
691 | 128 | { | ||
692 | 129 | core::ScopedConnection position_updates; | ||
693 | 130 | core::ScopedConnection heading_updates; | ||
694 | 131 | core::ScopedConnection velocity_updates; | ||
695 | 132 | } connections; | ||
696 | 37 | }; | 133 | }; |
697 | 38 | 134 | ||
698 | 39 | #endif // SESSION_PRIVATE_H_ | 135 | #endif // SESSION_PRIVATE_H_ |
699 | 40 | 136 | ||
700 | === modified file 'src/ubuntu/application/common/application/location/velocity_update.cpp' | |||
701 | --- src/ubuntu/application/common/application/location/velocity_update.cpp 2013-08-19 06:46:47 +0000 | |||
702 | +++ src/ubuntu/application/common/application/location/velocity_update.cpp 2014-06-26 20:03:03 +0000 | |||
703 | @@ -51,5 +51,5 @@ | |||
704 | 51 | ua_location_velocity_update_get_velocity_in_meters_per_second( | 51 | ua_location_velocity_update_get_velocity_in_meters_per_second( |
705 | 52 | UALocationVelocityUpdate *update) | 52 | UALocationVelocityUpdate *update) |
706 | 53 | { | 53 | { |
708 | 54 | return update->update.value.value.value(); | 54 | return update->update.value.value(); |
709 | 55 | } | 55 | } |
710 | 56 | 56 | ||
711 | === modified file 'src/ubuntu/application/ubuntu_application_api.cpp' | |||
712 | --- src/ubuntu/application/ubuntu_application_api.cpp 2014-06-16 13:42:24 +0000 | |||
713 | +++ src/ubuntu/application/ubuntu_application_api.cpp 2014-06-26 20:03:03 +0000 | |||
714 | @@ -214,6 +214,10 @@ | |||
715 | 214 | IMPLEMENT_FUNCTION1(double, ua_location_position_update_get_longitude_in_degree, UALocationPositionUpdate*); | 214 | IMPLEMENT_FUNCTION1(double, ua_location_position_update_get_longitude_in_degree, UALocationPositionUpdate*); |
716 | 215 | IMPLEMENT_FUNCTION1(bool, ua_location_position_update_has_altitude, UALocationPositionUpdate*); | 215 | IMPLEMENT_FUNCTION1(bool, ua_location_position_update_has_altitude, UALocationPositionUpdate*); |
717 | 216 | IMPLEMENT_FUNCTION1(double, ua_location_position_update_get_altitude_in_meter, UALocationPositionUpdate*); | 216 | IMPLEMENT_FUNCTION1(double, ua_location_position_update_get_altitude_in_meter, UALocationPositionUpdate*); |
718 | 217 | IMPLEMENT_FUNCTION1(bool, ua_location_position_update_has_horizontal_accuracy, UALocationPositionUpdate*); | ||
719 | 218 | IMPLEMENT_FUNCTION1(double, ua_location_position_update_get_horizontal_accuracy_in_meter, UALocationPositionUpdate*); | ||
720 | 219 | IMPLEMENT_FUNCTION1(bool, ua_location_position_update_has_vertical_accuracy, UALocationPositionUpdate*); | ||
721 | 220 | IMPLEMENT_FUNCTION1(double, ua_location_position_update_get_vertical_accuracy_in_meter, UALocationPositionUpdate*); | ||
722 | 217 | IMPLEMENT_FUNCTION1(UALocationServiceSession*, ua_location_service_create_session_for_low_accuracy, UALocationServiceRequirementsFlags); | 221 | IMPLEMENT_FUNCTION1(UALocationServiceSession*, ua_location_service_create_session_for_low_accuracy, UALocationServiceRequirementsFlags); |
723 | 218 | IMPLEMENT_FUNCTION1(UALocationServiceSession*, ua_location_service_create_session_for_high_accuracy, UALocationServiceRequirementsFlags); | 222 | IMPLEMENT_FUNCTION1(UALocationServiceSession*, ua_location_service_create_session_for_high_accuracy, UALocationServiceRequirementsFlags); |
724 | 219 | IMPLEMENT_CTOR0(UALocationServiceController*, ua_location_service_create_controller); | 223 | IMPLEMENT_CTOR0(UALocationServiceController*, ua_location_service_create_controller); |
FAILED: Continuous integration, rev:229 jenkins. qa.ubuntu. com/job/ platform- api-ci/ 323/ jenkins. qa.ubuntu. com/job/ platform- api-utopic- amd64-ci/ 56/console jenkins. qa.ubuntu. com/job/ platform- api-utopic- armhf-ci/ 56/console jenkins. qa.ubuntu. com/job/ platform- api-utopic- i386-ci/ 56/console
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/platform- api-ci/ 323/rebuild
http://