4 * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
7 * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
22 #ifndef __LOCATION_TYPE_H__
23 #define __LOCATION_TYPE_H__
26 #include <glib-object.h>
30 #ifndef LOCATION_DEPRECATED_API
31 #define LOCATION_DEPRECATED_API __attribute__ ((deprecated))
35 * @file location-types.h
36 * @brief This file contains the Location related structure, enumeration, and asynchronous function definitions.
37 * @addtogroup LocationFW
39 * @defgroup LocationTypes Location Types
40 * @brief This sub module provides structure, enumeration, and asynchronous function definitions.
41 * @addtogroup LocationTypes
46 * @brief This represents the returned error code of used functions.
49 LOCATION_ERROR_NONE = 0, ///< Success.
50 LOCATION_ERROR_NOT_ALLOWED, ///< Location servie is not allowed.
51 LOCATION_ERROR_NOT_AVAILABLE, ///< Location service is not available.
52 LOCATION_ERROR_NETWORK_FAILED, ///< Network is not available.
53 LOCATION_ERROR_NETWORK_NOT_CONNECTED, ///< Network is not connected.
54 LOCATION_ERROR_CONFIGURATION, ///< Configuration setting is not correct.
55 LOCATION_ERROR_PARAMETER, ///< Input parameter is not correct.
56 LOCATION_ERROR_NOT_FOUND, ///< Output is not found.
57 LOCATION_ERROR_UNKNOWN, ///< Unknown error.
61 * @brief This represents location method to be used.
65 LOCATION_METHOD_NONE = -1, ///< Undefined method.
66 LOCATION_METHOD_HYBRID = 0, ///< This method selects best method.
67 LOCATION_METHOD_GPS, ///< This method uses Global Positioning System.
68 LOCATION_METHOD_WPS, ///< This method uses Wifi Positioning System.
69 LOCATION_METHOD_CPS, ///< This method uses cell ID of base station.
70 LOCATION_METHOD_IPS, ///< This method uses IP address.
71 LOCATION_METHOD_SPS ///< This method uses sensor.
75 * @brief This represents the update type given by signal callback.
78 UPDATE_TYPE_NONE = -1, ///< Undefined update type.
79 POSITION_UPDATED = 0, ///< This type is used when position information is updated.
80 VELOCITY_UPDATED, ///< This type is used when velocity information is updated.
81 SATELLITE_UPDATED, ///< This type is used when satellite information is updated.
82 ADDRESS_UPDATED, ///< This type is used when address information is updated. This is not implemented yet.
83 GEOCODE_UPDATED, ///< This type is used when geocode information is updated. This is not implemented yet.
84 REVERSEGEOCODE_UPDATED ///< This type is used when reverse geocode information is updated. This is not implemented yet.
88 * @brief Location object redefined by GObject.
90 typedef GObject LocationObject;
93 * @brief This represents position information such as latitude-longitude-altitude values and timestamp.
95 typedef struct _LocationPosition LocationPosition;
98 * @brief This represents last known position information such as latitude-longitude values and accuracy.
100 typedef struct _LocationLastPosition LocationLastPosition;
103 * @brief This represents velocity information such as as speed, direction, climb.
105 typedef struct _LocationVelocity LocationVelocity;
108 * @brief This represents location accuracy information such as accuracy level, horizontal and vertical accuracy.
110 typedef struct _LocationAccuracy LocationAccuracy;
113 * @brief This represents address information such as building number, street name, etc.
115 typedef struct _LocationAddress LocationAddress;
118 * @brief This represents boundary information such as rectangular or circle area.
120 typedef struct _LocationBoundary LocationBoundary;
123 * @brief This represents position information such as number of satellites in used or in view.
125 typedef struct _LocationSatellite LocationSatellite;
128 * @brief This represents a number of POI informations.
130 typedef struct _LocationPOIInfo LocationPOIInfo;
133 * @brief This represents callback function which will be called to give position information.
135 typedef void (*LocationPositionCB)(LocationError error, GList *position_list, GList *accuracy_list, gpointer userdata);
138 * @brief This represents callback function which will be called to give address information.
140 typedef void (*LocationAddressCB)(LocationError error, LocationAddress *address, LocationAccuracy *acc, gpointer userdata);
143 * @brief This represents callback function which will be called to give POI information.
145 typedef void (*LocationPOICB)(LocationError error, LocationPOIInfo *poi, gpointer userdata);
153 #endif /* __LOCATION_TYPE_H__ */