19
19
#include "ubuntu/application/location/session.h"
21
#include "session_p.h"
23
#include "heading_update_p.h"
24
#include "position_update_p.h"
25
#include "velocity_update_p.h"
22
28
ua_location_service_session_ref(
23
29
UALocationServiceSession *session)
31
auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session);
29
36
ua_location_service_session_unref(
30
37
UALocationServiceSession *session)
39
auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session);
38
46
UALocationServiceSessionPositionUpdatesHandler handler,
49
auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session);
50
s->session->install_position_updates_handler(
51
[handler, context](const com::ubuntu::location::Update<com::ubuntu::location::Position>& new_position)
53
UbuntuApplicationLocationPositionUpdate pu{new_position};
54
handler(std::addressof(pu), context);
49
61
UALocationServiceSessionHeadingUpdatesHandler handler,
64
auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session);
65
s->session->install_heading_updates_handler(
66
[handler, context](const com::ubuntu::location::Update<com::ubuntu::location::Heading>& new_heading)
68
UbuntuApplicationLocationHeadingUpdate hu{new_heading};
69
handler(std::addressof(hu), context);
60
76
UALocationServiceSessionVelocityUpdatesHandler handler,
79
auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session);
80
s->session->install_velocity_updates_handler(
81
[handler, context](const com::ubuntu::location::Update<com::ubuntu::location::Velocity>& new_velocity)
83
UbuntuApplicationLocationVelocityUpdate vu{new_velocity};
84
handler(std::addressof(vu), context);
69
89
ua_location_service_session_start_position_updates(
70
90
UALocationServiceSession *session)
73
return U_STATUS_ERROR;
92
auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session);
94
return U_STATUS_ERROR;
98
s->session->start_position_updates();
101
return U_STATUS_ERROR;
104
return U_STATUS_SUCCESS;
77
108
ua_location_service_session_stop_position_updates(
78
109
UALocationServiceSession *session)
111
auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session);
117
s->session->stop_position_updates();
84
124
ua_location_service_session_start_heading_updates(
85
125
UALocationServiceSession *session)
88
return U_STATUS_ERROR;
127
auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session);
129
return U_STATUS_ERROR;
133
s->session->start_heading_updates();
136
return U_STATUS_ERROR;
139
return U_STATUS_SUCCESS;
92
143
ua_location_service_session_stop_heading_updates(
93
144
UALocationServiceSession *session)
146
auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session);
152
s->session->stop_heading_updates();
99
159
ua_location_service_session_start_velocity_updates(
100
160
UALocationServiceSession *session)
103
return U_STATUS_ERROR;
162
auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session);
164
return U_STATUS_ERROR;
168
s->session->start_velocity_updates();
171
return U_STATUS_ERROR;
174
return U_STATUS_SUCCESS;
107
178
ua_location_service_session_stop_velocity_updates(
108
179
UALocationServiceSession *session)
181
auto s = static_cast<UbuntuApplicationLocationServiceSession*>(session);
187
s->session->stop_velocity_updates();