4 * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
19 #ifndef __LBS_DBUS_CLIENT_H__
20 #define __LBS_DBUS_CLIENT_H__
26 #define SERVICE_NAME "org.tizen.lbs.Providers.LbsServer"
27 #define SERVICE_PATH "/org/tizen/lbs/Providers/LbsServer"
30 LBS_CLIENT_METHOD_GPS = 0,
31 LBS_CLIENT_METHOD_NPS,
32 LBS_CLIENT_METHOD_AGPS,
33 LBS_CLIENT_METHOD_GEOFENCE,
34 LBS_CLIENT_METHOD_MOCK,
35 LBS_CLIENT_METHOD_PASSIVE,
36 LBS_CLIENT_METHOD_FUSED
37 } lbs_client_method_e;
40 LBS_CLIENT_LOCATION_CB = 0x01,
41 LBS_CLIENT_LOCATION_STATUS_CB = LBS_CLIENT_LOCATION_CB << 0x01,
42 LBS_CLIENT_SATELLITE_CB = LBS_CLIENT_LOCATION_CB << 0x02,
43 LBS_CLIENT_NMEA_CB = LBS_CLIENT_LOCATION_CB << 0x03,
44 LBS_CLIENT_BATCH_CB = LBS_CLIENT_LOCATION_CB << 0x04,
45 } lbs_client_callback_e;
48 LBS_CLIENT_ERROR_NONE = 0x0,
49 LBS_CLIENT_ERROR_UNKNOWN,
50 LBS_CLIENT_ERROR_PARAMETER,
51 LBS_CLIENT_ERROR_MEMORY,
52 LBS_CLIENT_ERROR_CONNECTION,
53 LBS_CLIENT_ERROR_STATUS,
54 LBS_CLIENT_ERROR_DBUS_CALL,
55 LBS_CLIENT_ERROR_NO_RESULT,
56 LBS_CLIENT_ERROR_ACCESS_DENIED,
59 typedef void *lbs_client_dbus_h;
61 typedef void (*lbs_client_cb)(const char *sig, GVariant *param, void *user_data);
63 int lbs_client_create(lbs_client_method_e method, lbs_client_dbus_h *lbs_client);
64 int lbs_client_destroy(lbs_client_dbus_h lbs_client);
66 int lbs_client_start(lbs_client_dbus_h lbs_client, unsigned int interval, lbs_client_callback_e callback_type, lbs_client_cb callback, int fused_mode, void *user_data);
67 int lbs_client_stop(lbs_client_dbus_h lbs_client, unsigned int interval, int fused_mode);
68 int lbs_client_batch_start(lbs_client_dbus_h lbs_client, lbs_client_callback_e callback_type, lbs_client_cb callback, unsigned int batch_interval, unsigned int batch_period, void *user_data);
69 int lbs_client_batch_stop(lbs_client_dbus_h lbs_client);
71 int lbs_client_get_nmea(lbs_client_dbus_h lbs_client, int *timestamp, char **nmea);
72 int lbs_client_set_position_update_interval(lbs_client_dbus_h lbs_client, unsigned int interval, unsigned int prev_interval);
75 int lbs_client_set_mock_location_async(lbs_client_dbus_h lbs_client,
76 gint method, gdouble latitude, gdouble longitude, gdouble altitude, gdouble speed, gdouble direction, gdouble accuracy, lbs_client_cb callback, void *user_data);
80 #endif /* __LBS_DBUS_CLIENT_H__ */