Fix glib upgrade issue for msg-service
[platform/core/location/lbs-dbus.git] / client / include / lbs_dbus_client.h
1 /*
2  * lbs-dbus
3  *
4  * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved.
5  *
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
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
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.
17  */
18
19 #ifndef __LBS_DBUS_CLIENT_H__
20 #define __LBS_DBUS_CLIENT_H__
21
22 __BEGIN_DECLS
23
24 #include <gio/gio.h>
25
26 #define SERVICE_NAME    "org.tizen.lbs.Providers.LbsServer"
27 #define SERVICE_PATH    "/org/tizen/lbs/Providers/LbsServer"
28
29 typedef enum {
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;
38
39 typedef enum {
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;
46
47 typedef enum {
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,
57 } lbs_client_error_e;
58
59 typedef void *lbs_client_dbus_h;
60
61 typedef void (*lbs_client_cb)(const char *sig, GVariant *param, void *user_data);
62
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);
65
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);
70
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);
73
74 /* Tizen 3.0 */
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);
77
78 __END_DECLS
79
80 #endif /* __LBS_DBUS_CLIENT_H__ */
81
82