From: kj7.sung Date: Thu, 12 Jan 2017 03:01:58 +0000 (+0900) Subject: linecoverage for M2 release tizen_3.0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4f15f7c5f8ef1bebff33f246dbc35bc444be6dd0;p=platform%2Fcore%2Fapi%2Flocation-manager.git linecoverage for M2 release tizen_3.0 Change-Id: Ie57d02f4f58641919f661b129403a9670665636a Signed-off-by: kj7.sung --- diff --git a/doc/location-manager-doc.h b/doc/location-manager-doc.h index 1450f53..75a8795 100644 --- a/doc/location-manager-doc.h +++ b/doc/location-manager-doc.h @@ -24,27 +24,21 @@ * @brief This Location Manager API provides functions for obtaining information related to geographical location. * This API provides functions to acquire information related to the current position. Notifications on events like service becoming * enabled or disabled, new position data being available and others can also be acquired. - * * @section CAPI_LOCATION_MANAGER_MODULE_HEADER Required Header * \#include * * @section CAPI_LOCATION_MANAGER_MODULE_OVERVIEW Overview * The Location Manager API provides functions to acquire information about geographical location, including both as accurate a current position as possible, - * and receiving notification of changes in position, crossing boundary "fences", and velocity changes detected by the device. - * + * and receiving notification of changes in position, crossing boundary "fences", and velocity changes detected by the device. * The related Geolocation API can be used to convert the location to a physical address. - * * Notifications can be received about the following events: * - Change in service status (enabled / disabled) * - New position and velocity information becoming available * - Given area being entered or left (geofencing) - * * Information on GPS satellites is provided by the GPS Status & Satellite API. - * - * The main component of the Location Service is the location manager. A location manager serves as a gateway so the application does not have + * The main component of the Location Service is the location manager. A location manager serves as a gateway, so the application does not have * to manage the details of the back-end connection, which might be GPS, WiFi or others, although it may instruct the location manager * as to a preference. The location manager also manages the callback functions which it invokes when a given event takes place. - * * The location manager has the following properties: * - Method * - Boundary @@ -52,45 +46,35 @@ * - 'Service state change' callback * - 'Velocity updated' callback * - 'Boundary event' callback - * * The method property of a location manager (#location_method_e) determines the source of location information. It can be set only * once - when the location manager is instantiated. The method can be one specific location method, or hybrid. - * * A location manager set to the hybrid method will automatically choose * the best method available at the moment, choosing between GPS, WPS * and WPS. Note that the method may change any time, due to signals * coming in/out of range, and so on. If more than one method is available, * priorities are as follows: - * * 1. GPS\n * 2. WPS\n - * - * If no methods are available, the service state is changed to disabled - * and the appropriate callback is called. See location_manager_set_service_state_changed_cb() and location_service_state_changed_cb(). - * - * The boundary property describes a border enclosing an area. The area - * can be circular - defined by its center in geographic coordinates a radius, or rectangular - defined by the geographic coordinates of its - * top left and bottom right corner. + * If no methods are available, the service state is changed to disabled and the appropriate callback is called. + * See location_manager_set_service_state_changed_cb() and location_service_state_changed_cb(). + * The boundary property describes a border enclosing an area. + * The area can be circular - defined by its center in geographic coordinates a radius, or rectangular - defined by the geographic coordinates of its + * top-left and bottom-right corner. * The location manager will use the selected method to track if the area has been entered or exited. - * The location manager will send asynchronous notifications by invoking - * previously registered callback functions on such change events. - * + * The location manager will send asynchronous notifications by invoking previously registered callback functions on such change events. * There may be multiple location managers. Callback functions to receive * notifications are registered to a specific location manager, not to the location service as a whole. * So it is, for example, possible to define several different geographic areas or fences, using different location methods, * each being tracked by a different location manager and leading to distinct callbacks. - * * Setting and unsetting callbacks for the manager can be done at any time, however before callbacks set for a given location manager can - * be invoked, the location service must be started for that location manager. This constraint holds for managers with GPS, WPS and + * be invoked, the location service must be started for that location manager. This constraint holds for managers with GPS, WPS, and * Hybrid methods. See the Location manager life cycle section below. Note the start/stop functions apply only to * the individual location manager and do not affect any other location managers that may be running. - * * Only one callback can be set for a given event within the scope of a single location manager. Successive callback setting will result in * the new callback replacing the old one. If an 'unset callback' function is called when there is no callback set, no error is returned. * Callbacks can be set and unset any number of times. * * @subsection CAPI_LOCATION_MANAGER_MODULE_MANAGER_LIFECYCLE Location manager life cycle - * * 1. Create location manager ( location_manager_create() )\n * 2. Set callbacks and other required information\n * 3. Start service with location_manager_start()\n @@ -98,131 +82,101 @@ * 5. Other callbacks are working now, wait for events and process\n * 6. Stop service with location_manager_stop()\n * 7. Wait until state change callback ( location_service_state_changed_cb() ) is called with #LOCATIONS_SERVICE_DISABLED as first argument\n - * 8. Destroy location manager (location_manager_destroy())\n - * + * 8. Destroy location manager ( location_manager_destroy() )\n * After stopping the location service for a given location manager, * the location manager can still be used. So some functions can be called if they do not require a location service running on your device. * The location service can be re-started later. - * * If a location manager is no longer needed and is going to be destroyed, it is not mandatory to call location_manager_stop(), * as location_manager_destroy() will call it automatically. - * * Note that after a location manager has been destroyed, the handle (#location_manager_h) can be reused - location_manager_create() can * be called again for this handle. In other words, the state before creation and after destruction can be treated as the same state. * * @section CAPI_LOCATION_MANAGER_MODULE_FEATURE Related Features * This API is related with the following features:\n - * - http://tizen.org/feature/location\n - * - http://tizen.org/feature/location.gps\n - * - http://tizen.org/feature/location.wps\n - * + * - http://tizen.org/feature/location\n + * - http://tizen.org/feature/location.gps\n + * - http://tizen.org/feature/location.wps\n * It is recommended to design feature related codes in your application for reliability.\n - * - * You can check if a devrice supports the related features for this API by using @ref CAPI_SYSTEM_SYSTEM_INFO_MODULE, thereby controlling the procedure of your application.\n - * + * You can check if a device supports the related features for this API by using @ref CAPI_SYSTEM_SYSTEM_INFO_MODULE, thereby controlling the procedure of your application.\n * To ensure your application is only running on the device with specific features, please define the features in your manifest file using the manifest editor in the SDK.\n - * * More details on featuring your application can be found from Feature Element. - * */ + /** * @ingroup CAPI_LOCATION_MANAGER_MODULE * @defgroup CAPI_LOCATION_GPS_STATUS_MODULE GPS Status & Satellite * @brief The GPS Status & Satellite API provides functions to acquire information about GPS satellites in range and in use. - * * @section CAPI_LOCATION_GPS_STATUS_MODULE_HEADER Required Header * \#include * * @section CAPI_LOCATION_GPS_STATUS_MODULE_OVERVIEW Overview - * The GPS Status & Satellite API provides functions to acquire data on satellites that are currently visible to the device. Information - * like azimuth and elevation of each satellite is available, along with number of satellites in range and in use. + * The GPS Status & Satellite API provides functions to acquire data on satellites that are currently visible to the device. + * Information like azimuth and elevation of each satellite is available, along with number of satellites in range and in use. * * @par System Info note: * All of the functions require a started location manager with the #LOCATIONS_METHOD_GPS method set. See the Location Manager API for details. - * - * The gps_status_get_nmea() function gets NMEA data from the GPS system. NMEA 0183 (or NMEA for short) is a combined electrical and data + * The gps_status_get_nmea() function gets NMEA data from the GPS system. NMEA 0183 (or NMEA for short) is a combined electrical and data * specification for communication between electronic devices. NMEA standard uses a simple ASCII, serial communications protocol that - * defines how data is transmitted in a "sentence" from one "talker" to multiple "listeners" at a time. For more details, see NMEA_0183. - * + * defines how data is transmitted in a "sentence" from one "talker" to multiple "listeners" at a time. For more details, see NMEA_0183. * The gps_status_get_satellite() method returns a count of satellites in view. The gps_status_foreach_satellites_in_view() method is an - * iterator which will invoke a callback function for each satellite in view. The gps_status_get_satellite() method returns a count of satellites in use. + * iterator which will invoke a callback function for each satellite in view. The gps_status_get_satellite() method returns a count of satellites in use. * * @section CAPI_LOCATION_GPS_STATUS_MODULE_FEATURE Related Features * This API is related with the following features:\n - * - http://tizen.org/feature/location\n - * - http://tizen.org/feature/location.gps\n - * - http://tizen.org/feature/location.gps.satellite\n - * + * - http://tizen.org/feature/location\n + * - http://tizen.org/feature/location.gps\n + * - http://tizen.org/feature/location.gps.satellite\n * It is recommended to design feature related codes in your application for reliability.\n - * * You can check if a device supports the related features for this API by using @ref CAPI_SYSTEM_SYSTEM_INFO_MODULE, thereby controlling the procedure of your application.\n - * * To ensure your application is only running on the device with specific features, please define the features in your manifest file using the manifest editor in the SDK.\n - * * More details on featuring your application can be found from Feature Element. - * */ + /** * @ingroup CAPI_LOCATION_MANAGER_MODULE * @defgroup CAPI_LOCATION_BOUNDS_MODULE Location Bounds * @brief The Location Bounds APIs provides functions related to geographic bounds information. - * - * * @section CAPI_LOCATION_BOUNDS_MODULE_HEADER Required Header * \#include * * @section CAPI_LOCATION_BOUNDS_MODULE_OVERVIEW Overview - * * Boundary defines geographical boundary. It is same as geo-fence which is a virtual perimeter for a real-world geographic area. * If you create a boundary, you can trigger some activities when a device enters(or exits) the boundaries defined by you. * * @section CAPI_LOCATION_BOUNDS_MODULE_FEATURE Related Features * This API is related with the following features:\n - * - http://tizen.org/feature/location\n - * - http://tizen.org/feature/location.gps\n - * - http://tizen.org/feature/location.wps\n - * + * - http://tizen.org/feature/location\n + * - http://tizen.org/feature/location.gps\n + * - http://tizen.org/feature/location.wps\n * It is recommended to design feature related codes in your application for reliability.\n - * * You can check if a device supports the related features for this API by using @ref CAPI_SYSTEM_SYSTEM_INFO_MODULE, thereby controlling the procedure of your application.\n - * * To ensure your application is only running on the device with specific features, please define the features in your manifest file using the manifest editor in the SDK.\n - * * More details on featuring your application can be found from Feature Element. - * */ + /** * @internal * @{ * @ingroup CAPI_LOCATION_FRAMEWORK * @defgroup CAPI_LOCATION_PREF_MODULE Location Preference - * @brief The Location Preference APIs provides functions related to Maps - * Service. - * - * + * @brief The Location Preference APIs provides functions related to Maps Service. * @section CAPI_LOCATION_PREF_MODULE_HEADER Required Header * \#include * * @section CAPI_LOCATION_PREF_MODULE_OVERVIEW Overview - * * You can set some options with Location Preference when you use Maps Service(geocoder, poi, and route) module. * * @section CAPI_LOCATION_PREF_MODULE_FEATURE Related Features * This API is related with the following features:\n - * - http://tizen.org/feature/location\n - * + * - http://tizen.org/feature/location\n * It is recommended to design feature related codes in your application for reliability.\n - * * You can check if a device supports the related features for this API by using @ref CAPI_SYSTEM_SYSTEM_INFO_MODULE, thereby controlling the procedure of your application.\n - * * To ensure your application is only running on the device with specific features, please define the features in your manifest file using the manifest editor in the SDK.\n - * * More details on featuring your application can be found from Feature Element. * @} - * */ #endif /* __TIZEN_LOCATION_LOCATION_MANAGER_DOC_H__ */ diff --git a/include/location_bounds.h b/include/location_bounds.h index de672a9..6d2c665 100644 --- a/include/location_bounds.h +++ b/include/location_bounds.h @@ -31,67 +31,75 @@ extern "C" { * @{ */ + /** * @brief The structure type to represent coordinates with latitude and longitude. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef struct { - double latitude; /**< The latitude [-90.0 ~ 90.0] (degrees) */ - double longitude; /**< The longitude [-180.0 ~ 180.0] (degrees) */ + double latitude; /**< The latitude [-90.0 ~ 90.0] (degrees) */ + double longitude; /**< The longitude [-180.0 ~ 180.0] (degrees) */ } location_coords_s; + /** * @brief Enumeration for error code for Location manager. */ typedef enum { - LOCATION_BOUNDS_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */ - LOCATION_BOUNDS_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */ - LOCATION_BOUNDS_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */ - LOCATION_BOUNDS_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Not supported */ - LOCATION_BOUNDS_ERROR_INCORRECT_TYPE = LOCATION_BOUNDS_ERROR_CLASS | 0x01, /**< Incorrect bounds type for a given call */ - LOCATION_BOUNDS_ERROR_IS_ADDED = LOCATION_BOUNDS_ERROR_CLASS | 0x02, /**< Cannot remove bounds handle from location manager */ + LOCATION_BOUNDS_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */ + LOCATION_BOUNDS_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */ + LOCATION_BOUNDS_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */ + LOCATION_BOUNDS_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Not supported */ + LOCATION_BOUNDS_ERROR_INCORRECT_TYPE = LOCATION_BOUNDS_ERROR_CLASS | 0x01, /**< Incorrect bounds type for a given call */ + LOCATION_BOUNDS_ERROR_IS_ADDED = LOCATION_BOUNDS_ERROR_CLASS | 0x02, /**< Cannot remove bounds handle from location manager */ } location_bound_error_e; + /** * @brief Enumeration for Location boundary type. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { - LOCATION_BOUNDS_RECT = 1, /**< Rectangular geographical area type. */ - LOCATION_BOUNDS_CIRCLE, /**< Circle geographical area type.. */ - LOCATION_BOUNDS_POLYGON, /**< Polygon geographical area type.. */ + LOCATION_BOUNDS_RECT = 1, /**< Rectangular geographical area type. */ + LOCATION_BOUNDS_CIRCLE, /**< Circle geographical area type.. */ + LOCATION_BOUNDS_POLYGON, /**< Polygon geographical area type.. */ } location_bounds_type_e; + /** * @brief Enumeration for the boundary state. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { - LOCATIONS_BOUNDARY_IN, /**< Boundary In (Zone In) */ - LOCATIONS_BOUNDARY_OUT /**< Boundary Out (Zone Out) */ + LOCATIONS_BOUNDARY_IN, /**< Boundary In (Zone In) */ + LOCATIONS_BOUNDARY_OUT /**< Boundary Out (Zone Out) */ } location_boundary_state_e; + /** * @brief The location boundary handle. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef struct location_bounds_s *location_bounds_h; + /** * @brief Gets called iteratively to notify you of coordinates of a polygon. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] coords The coordinates - * @param[in] user_data The user data passed from the foreach function - * @return @c true to continue with the next iteration of the loop, \n @c false to break out of the loop + * @param[in] coords The coordinates + * @param[in] user_data The user data passed from the foreach function + * @return @c true to continue with the next iteration of the loop, \n + * @c false to break out of the loop * @pre location_bounds_foreach_polygon_coords() will invoke this callback. * @see location_bounds_foreach_polygon_coords() */ typedef bool (*polygon_coords_cb)(location_coords_s coords, void *user_data); + /** * @brief Called when the given boundary is entered or exited. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] state The boundary state + * @param[in] state The boundary state * @pre location_manager_start() will invoke this callback if you register this callback using location_bounds_set_state_changed_cb() * @see #location_boundary_state_e * @see location_manager_start() @@ -99,14 +107,16 @@ typedef bool (*polygon_coords_cb)(location_coords_s coords, void *user_data); */ typedef void (*location_bounds_state_changed_cb)(location_boundary_state_e state, void *user_data); + /** * @brief Creates a rect type of new location bounds. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks You must release @a bounds using location_bounds_destroy(). - * @param[in] top_left The top left position - * @param[in] bottom_right The bottom right position - * @param[out] bounds The location bounds handle that is newly created - * @return @c 0 on success, otherwise a negative error value. + * @param[in] top_left The top left position + * @param[in] bottom_right The bottom right position + * @param[out] bounds The location bounds handle that is newly created + * @return @c 0 on success, + * otherwise a negative error value * @retval #LOCATION_BOUNDS_ERROR_NONE Successful * @retval #LOCATION_BOUNDS_ERROR_OUT_OF_MEMORY Out of memory * @retval #LOCATION_BOUNDS_ERROR_INVALID_PARAMETER Invalid parameter @@ -116,14 +126,16 @@ typedef void (*location_bounds_state_changed_cb)(location_boundary_state_e state */ int location_bounds_create_rect(location_coords_s top_left, location_coords_s bottom_right, location_bounds_h *bounds); + /** * @brief Creates a circle type of new location bounds. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks You must release @a bounds using location_bounds_destroy(). - * @param[in] center The center position - * @param[in] radius The radius of a circle (meters) - * @param[out] bounds The location bounds handle that is newly created - * @return @c 0 on success, otherwise a negative error value + * @param[in] center The center position + * @param[in] radius The radius of a circle (meters) + * @param[out] bounds The location bounds handle that is newly created + * @return @c 0 on success, + * otherwise a negative error value * @retval #LOCATION_BOUNDS_ERROR_NONE Successful * @retval #LOCATION_BOUNDS_ERROR_OUT_OF_MEMORY Out of memory * @retval #LOCATION_BOUNDS_ERROR_INVALID_PARAMETER Invalid parameter @@ -133,15 +145,17 @@ int location_bounds_create_rect(location_coords_s top_left, location_coords_s bo */ int location_bounds_create_circle(location_coords_s center, double radius, location_bounds_h *bounds); + /** * @brief Creates a polygon type of new location bounds. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks You must release @a bounds using location_bounds_destroy(). * @remarks @a length should be more than @c 3 to represent polygon. - * @param[in] coords_list The list of coordinates - * @param[in] length The length of the coordinates list - * @param[out] bounds The location bounds handle that is newly created on success - * @return @c 0 on success, otherwise a negative error value + * @param[in] coords_list The list of coordinates + * @param[in] length The length of the coordinates list + * @param[out] bounds The location bounds handle that is newly created on success + * @return @c 0 on success, + * otherwise a negative error value * @retval #LOCATION_BOUNDS_ERROR_NONE Successful * @retval #LOCATION_BOUNDS_ERROR_OUT_OF_MEMORY Out of memory * @retval #LOCATION_BOUNDS_ERROR_INVALID_PARAMETER Invalid parameter @@ -151,29 +165,33 @@ int location_bounds_create_circle(location_coords_s center, double radius, locat */ int location_bounds_create_polygon(location_coords_s *coords_list, int length, location_bounds_h *bounds); + /** * @brief Checks whether the bounds contains the specified coordinates. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remark The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. - * @param[in] bounds The location bounds handle - * @param[in] coords The coordinates - * @return @c true if the bounds contains the specified coordinates, otherwise else @c false + * @param[in] bounds The location bounds handle + * @param[in] coords The coordinates + * @return @c true if the bounds contains the specified coordinates, + * otherwise else @c false * @exception #LOCATION_BOUNDS_ERROR_NONE Successful * @exception #LOCATION_BOUNDS_ERROR_OUT_OF_MEMORY Out of memory - * @exception #LOCATION_BOUNDS_ERROR_INVALID_PARAMETER Invalid parameter - * @exception #LOCATION_BOUNDS_ERROR_NOT_SUPPORTED Not supported + * @exception #LOCATION_BOUNDS_ERROR_INVALID_PARAMETER Invalid parameter + * @exception #LOCATION_BOUNDS_ERROR_NOT_SUPPORTED Not supported * @see location_bounds_create_rect() * @see location_bounds_create_circle() * @see location_bounds_create_polygon() */ bool location_bounds_contains_coordinates(location_bounds_h bounds, location_coords_s coords); + /** * @brief Gets the type of location bounds. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bounds The location bounds handle - * @param[out] type The type of location bounds - * @return @c 0 on success, otherwise a negative error value. + * @param[in] bounds The location bounds handle + * @param[out] type The type of location bounds + * @return @c 0 on success, + * otherwise a negative error value * @retval #LOCATION_BOUNDS_ERROR_NONE Successful * @retval #LOCATION_BOUNDS_ERROR_INVALID_PARAMETER Invalid parameter * @retval #LOCATION_BOUNDS_ERROR_NOT_SUPPORTED Not supported @@ -183,13 +201,15 @@ bool location_bounds_contains_coordinates(location_bounds_h bounds, location_coo */ int location_bounds_get_type(location_bounds_h bounds, location_bounds_type_e *type); + /** * @brief Gets the center position and radius of circle bounds. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bounds The location bounds handle - * @param[out] top_left The top left position - * @param[out] bottom_right The bottom right position - * @return @c 0 on success, otherwise a negative error value. + * @param[in] bounds The location bounds handle + * @param[out] top_left The top left position + * @param[out] bottom_right The bottom right position + * @return @c 0 on success, + * otherwise a negative error value * @retval #LOCATION_BOUNDS_ERROR_NONE Successful * @retval #LOCATION_BOUNDS_ERROR_INVALID_PARAMETER Invalid parameter * @retval #LOCATION_BOUNDS_ERROR_NOT_SUPPORTED Not supported @@ -198,13 +218,15 @@ int location_bounds_get_type(location_bounds_h bounds, location_bounds_type_e *t */ int location_bounds_get_rect_coords(location_bounds_h bounds, location_coords_s *top_left, location_coords_s *bottom_right); + /** * @brief Gets the center position and radius of circle bounds. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bounds The location bounds handle - * @param[out] center The center position of the circle - * @param[out] radius The radius of the circle - * @return @c 0 on success, otherwise a negative error value. + * @param[in] bounds The location bounds handle + * @param[out] center The center position of the circle + * @param[out] radius The radius of the circle + * @return @c 0 on success, + * otherwise a negative error value * @retval #LOCATION_BOUNDS_ERROR_NONE Successful * @retval #LOCATION_BOUNDS_ERROR_INVALID_PARAMETER Invalid parameter * @retval #LOCATION_BOUNDS_ERROR_NOT_SUPPORTED Not supported @@ -213,13 +235,15 @@ int location_bounds_get_rect_coords(location_bounds_h bounds, location_coords_s */ int location_bounds_get_circle_coords(location_bounds_h bounds, location_coords_s *center, double *radius); + /** * @brief Get the coordinates of a polygon. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bounds The location bounds handle - * @param[in] callback The iteration callback - * @param[in] user_data The user data to be passed to the callback function - * @return @c 0 on success, otherwise a negative error value. + * @param[in] bounds The location bounds handle + * @param[in] callback The iteration callback + * @param[in] user_data The user data to be passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value * @retval #LOCATION_BOUNDS_ERROR_NONE Successful * @retval #LOCATION_BOUNDS_ERROR_INVALID_PARAMETER Invalid parameter * @retval #LOCATION_BOUNDS_ERROR_NOT_SUPPORTED Not supported @@ -230,11 +254,13 @@ int location_bounds_get_circle_coords(location_bounds_h bounds, location_coords_ */ int location_bounds_foreach_polygon_coords(location_bounds_h bounds, polygon_coords_cb callback, void *user_data); + /** * @brief Releases the location bounds. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bounds The location bounds handle - * @return @c 0 on success, otherwise a negative error value. + * @param[in] bounds The location bounds handle + * @return @c 0 on success, + * otherwise a negative error value * @retval #LOCATION_BOUNDS_ERROR_NONE Successful * @retval #LOCATION_BOUNDS_ERROR_INVALID_PARAMETER Invalid parameter * @retval #LOCATION_BOUNDS_ERROR_NOT_SUPPORTED Not supported @@ -244,13 +270,15 @@ int location_bounds_foreach_polygon_coords(location_bounds_h bounds, polygon_coo */ int location_bounds_destroy(location_bounds_h bounds); + /** * @brief Registers a callback function to be invoked when the boundary area is entered or exited. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bounds The location bounds handle - * @param[in] callback The callback function to register - * @param[in] user_data The user data to be passed to the callback function - * @return @c 0 on success, otherwise a negative error value. + * @param[in] bounds The location bounds handle + * @param[in] callback The callback function to register + * @param[in] user_data The user data to be passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value * @retval #LOCATION_BOUNDS_ERROR_NONE Successful * @retval #LOCATION_BOUNDS_ERROR_INVALID_PARAMETER Invalid parameter * @retval #LOCATION_BOUNDS_ERROR_NOT_SUPPORTED Not supported @@ -260,11 +288,13 @@ int location_bounds_destroy(location_bounds_h bounds); */ int location_bounds_set_state_changed_cb(location_bounds_h bounds, location_bounds_state_changed_cb callback, void *user_data); + /** - * @brief Unregisters the callback function. + * @brief Unregisters the callback function. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bounds The location bounds handle - * @return @c 0 on success, otherwise a negative error value. + * @param[in] bounds The location bounds handle + * @return @c 0 on success, + * otherwise a negative error value * @retval #LOCATION_BOUNDS_ERROR_NONE Successful * @retval #LOCATION_BOUNDS_ERROR_INVALID_PARAMETER Invalid parameter * @retval #LOCATION_BOUNDS_ERROR_NOT_SUPPORTED Not supported @@ -272,6 +302,7 @@ int location_bounds_set_state_changed_cb(location_bounds_h bounds, location_boun */ int location_bounds_unset_state_changed_cb(location_bounds_h bounds); + /** * @} */ diff --git a/include/location_internal.h b/include/location_internal.h index 5075c20..ce979d2 100755 --- a/include/location_internal.h +++ b/include/location_internal.h @@ -15,7 +15,7 @@ */ #ifndef __TIZEN_LOCATION_INTERNAL_H__ -#define __TIZEN_LOCATION_INTERNAL_H__ +#define __TIZEN_LOCATION_INTERNAL_H__ #include #include diff --git a/include/locations.h b/include/locations.h index a440454..f8182ae 100755 --- a/include/locations.h +++ b/include/locations.h @@ -17,6 +17,7 @@ #ifndef __TIZEN_LOCATION_LOCATIONS_H__ #define __TIZEN_LOCATION_LOCATIONS_H__ +#include #include #include #include @@ -31,22 +32,23 @@ extern "C" { * @{ */ + /** * @brief Enumeration for error code for Location manager. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { - LOCATIONS_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */ - LOCATIONS_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */ - LOCATIONS_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */ - LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */ - LOCATIONS_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Not supported */ - LOCATIONS_ERROR_INCORRECT_METHOD = TIZEN_ERROR_LOCATION_MANAGER | 0x01, /**< Location manager contains incorrect method for a given call */ - LOCATIONS_ERROR_NETWORK_FAILED = TIZEN_ERROR_LOCATION_MANAGER | 0x02, /**< Network unavailable */ - LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE = TIZEN_ERROR_LOCATION_MANAGER | 0x03, /**< Location service is not available */ - LOCATIONS_ERROR_GPS_SETTING_OFF = TIZEN_ERROR_LOCATION_MANAGER | 0x04, /**< Setting for GPS, WPS, or MOCK is turned off */ - LOCATIONS_ERROR_SECURITY_RESTRICTED = TIZEN_ERROR_LOCATION_MANAGER | 0x05, /**< Restricted by security system policy */ - LOCATIONS_ERROR_SETTING_OFF = LOCATIONS_ERROR_GPS_SETTING_OFF, /**< Setting for GPS, WPS, or MOCK is turned off (Since 3.0) */ + LOCATIONS_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */ + LOCATIONS_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */ + LOCATIONS_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */ + LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */ + LOCATIONS_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Not supported */ + LOCATIONS_ERROR_INCORRECT_METHOD = TIZEN_ERROR_LOCATION_MANAGER | 0x01, /**< Location manager contains incorrect method for a given call */ + LOCATIONS_ERROR_NETWORK_FAILED = TIZEN_ERROR_LOCATION_MANAGER | 0x02, /**< Network unavailable */ + LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE = TIZEN_ERROR_LOCATION_MANAGER | 0x03, /**< Location service is not available */ + LOCATIONS_ERROR_GPS_SETTING_OFF = TIZEN_ERROR_LOCATION_MANAGER | 0x04, /**< Setting for GPS, WPS, or MOCK is turned off */ + LOCATIONS_ERROR_SECURITY_RESTRICTED = TIZEN_ERROR_LOCATION_MANAGER | 0x05, /**< Restricted by security system policy */ + LOCATIONS_ERROR_SETTING_OFF = LOCATIONS_ERROR_GPS_SETTING_OFF, /**< Setting for GPS, WPS, or MOCK is turned off (Since 3.0) */ } location_error_e; @@ -55,53 +57,58 @@ typedef enum { * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { - LOCATIONS_METHOD_NONE = -1, /**< Undefined method */ - LOCATIONS_METHOD_HYBRID, /**< This method selects the best method available at the moment */ - LOCATIONS_METHOD_GPS, /**< This method uses Global Positioning System */ - LOCATIONS_METHOD_WPS, /**< This method uses WiFi Positioning System */ - LOCATIONS_METHOD_MOCK, /**< This method uses mock location for testing (Since 3.0)*/ + LOCATIONS_METHOD_NONE = -1, /**< Undefined method */ + LOCATIONS_METHOD_HYBRID, /**< This method selects the best method available at the moment */ + LOCATIONS_METHOD_GPS, /**< This method uses Global Positioning System */ + LOCATIONS_METHOD_WPS, /**< This method uses WiFi Positioning System */ + LOCATIONS_METHOD_PASSIVE, /**< This method can be used to passively receive location updates without power consumption (Since 3.0)*/ } location_method_e; + /** * @brief Enumeration for Approximate accuracy level of given information. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { - LOCATIONS_ACCURACY_NONE = 0, /**< Invalid data */ - LOCATIONS_ACCURACY_COUNTRY, /**< Country accuracy level */ - LOCATIONS_ACCURACY_REGION, /**< Regional accuracy level */ - LOCATIONS_ACCURACY_LOCALITY, /**< Local accuracy level */ - LOCATIONS_ACCURACY_POSTALCODE, /**< Postal accuracy level */ - LOCATIONS_ACCURACY_STREET, /**< Street accuracy level */ - LOCATIONS_ACCURACY_DETAILED, /**< Detailed accuracy level */ + LOCATIONS_ACCURACY_NONE = 0, /**< Invalid data */ + LOCATIONS_ACCURACY_COUNTRY, /**< Country accuracy level */ + LOCATIONS_ACCURACY_REGION, /**< Regional accuracy level */ + LOCATIONS_ACCURACY_LOCALITY, /**< Local accuracy level */ + LOCATIONS_ACCURACY_POSTALCODE, /**< Postal accuracy level */ + LOCATIONS_ACCURACY_STREET, /**< Street accuracy level */ + LOCATIONS_ACCURACY_DETAILED, /**< Detailed accuracy level */ } location_accuracy_level_e; + /** * @brief Enumeration for the state of the location service. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { - LOCATIONS_SERVICE_DISABLED, /**< Service is disabled */ - LOCATIONS_SERVICE_ENABLED, /**< Service is enabled */ + LOCATIONS_SERVICE_DISABLED, /**< Service is disabled */ + LOCATIONS_SERVICE_ENABLED, /**< Service is enabled */ } location_service_state_e; + /** * @deprecated Deprecated since 3.0 * @brief Enumeration for the location service accessibility state. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { - LOCATIONS_ACCESS_STATE_NONE, /**< Access state is not determined */ - LOCATIONS_ACCESS_STATE_DENIED, /**< Access denied */ - LOCATIONS_ACCESS_STATE_ALLOWED, /**< Access authorized */ + LOCATIONS_ACCESS_STATE_NONE, /**< Access state is not determined */ + LOCATIONS_ACCESS_STATE_DENIED, /**< Access denied */ + LOCATIONS_ACCESS_STATE_ALLOWED, /**< Access authorized */ } location_accessibility_state_e; + /** * @brief The location manager handle. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef struct location_manager_s *location_manager_h; + /** * @} */ @@ -112,57 +119,62 @@ typedef struct location_manager_s *location_manager_h; * @addtogroup CAPI_LOCATION_MANAGER_MODULE * @{ */ + + /** * @brief Called at defined interval with updated position information. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] latitude The updated latitude [-90.0 ~ 90.0] (degrees) - * @param[in] longitude The updated longitude [-180.0 ~ 180.0] (degrees) - * @param[in] altitude The updated altitude (meters) - * @param[in] timestamp The timestamp (time when measurement took place or @c 0 if valid) - * @param[in] user_data The user data passed from the call registration function + * @param[in] latitude The updated latitude [-90.0 ~ 90.0] (degrees) + * @param[in] longitude The updated longitude [-180.0 ~ 180.0] (degrees) + * @param[in] altitude The updated altitude (meters) + * @param[in] timestamp The timestamp (time when measurement took place or @c 0 if valid) + * @param[in] user_data The user data passed from the call registration function * @pre location_manager_start() will invoke this callback if you register this callback using location_manager_set_position_updated_cb(). * @see location_manager_start() * @see location_manager_set_position_updated_cb() */ typedef void(*location_position_updated_cb)(double latitude, double longitude, double altitude, time_t timestamp, void *user_data); + /** * @brief Called at defined interval with updated velocity information. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] speed The updated speed (km/h) - * @param[in] direction The updated direction (in degrees from the north) - * @param[in] climb The updated climb (km/h) - * @param[in] timestamp The timestamp (time when measurement took place or @c 0 if valid) - * @param[in] user_data The user data passed from the callback registration function + * @param[in] speed The updated speed (km/h) + * @param[in] direction The updated direction (in degrees from the north) + * @param[in] climb The updated climb (km/h) + * @param[in] timestamp The timestamp (time when measurement took place or @c 0 if valid) + * @param[in] user_data The user data passed from the callback registration function * @pre location_manager_start() will invoke this callback if you register this callback using location_manager_set_velocity_updated_cb(). * @see location_manager_start() * @see location_manager_set_velocity_updated_cb() */ typedef void(*location_velocity_updated_cb)(double speed, double direction, double climb, time_t timestamp, void *user_data); + /** * @brief Called at defined interval with updated location information. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] error #LOCATIONS_ERROR_NONE Successful - * @param[in] latitude The updated latitude [-90.0 ~ 90.0] (degrees) - * @param[in] longitude The updated longitude [-180.0 ~ 180.0] (degrees) - * @param[in] altitude The updated altitude (meters) - * @param[in] timestamp The timestamp (time when measurement took place or @c 0 if valid) - * @param[in] speed The updated speed (km/h) - * @param[in] direction The updated direction (in degrees from the north) - * @param[in] climb The updated climb (km/h) - * @param[in] user_data The user data passed from the callback registration function + * @param[in] error #LOCATIONS_ERROR_NONE Successful + * @param[in] latitude The updated latitude [-90.0 ~ 90.0] (degrees) + * @param[in] longitude The updated longitude [-180.0 ~ 180.0] (degrees) + * @param[in] altitude The updated altitude (meters) + * @param[in] timestamp The timestamp (time when measurement took place or @c 0 if valid) + * @param[in] speed The updated speed (km/h) + * @param[in] direction The updated direction (in degrees from the north) + * @param[in] climb The updated climb (km/h) + * @param[in] user_data The user data passed from the callback registration function * @pre location_manager_request_single_location() will invoke this callback. * @see location_manager_request_single_location() */ typedef void(*location_updated_cb)(location_error_e error, double latitude, double longitude, double altitude, time_t timestamp, double speed, double direction, double climb, void *user_data); + /** * @brief Called when the state of location service is changed from enabled to disabled or vice versa. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] state The service state - * @param[in] user_data The user data passed from the callback registration function - * @pre Either location_manager_start() or location_manager_stop() will invoke this callback if you register this callback using location_manager_set_service_state_changed_cb() + * @param[in] state The service state + * @param[in] user_data The user data passed from the callback registration function + * @pre Either location_manager_start() or location_manager_stop() will invoke this callback if you register this callback using location_manager_set_service_state_changed_cb(). * @see location_manager_start() * @see location_manager_stop() * @see location_manager_set_service_state_changed_cb() @@ -170,15 +182,16 @@ typedef void(*location_updated_cb)(location_error_e error, double latitude, doub */ typedef void(*location_service_state_changed_cb)(location_service_state_e state, void *user_data); + /** - * @brief Called when the user defined zones are entered or exited. + * @brief Called when the user-defined zones are entered or exited. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] state The boundary state - * @param[in] latitude The updated latitude [-90.0 ~ 90.0] (degrees) - * @param[in] longitude The updated longitude [-180.0 ~ 180.0] (degrees) - * @param[in] altitude The updated altitude (meters) - * @param[in] timestamp The timestamp (time when measurement took place or @c 0 if valid) - * @param[in] user_data The user data passed from the callback registration function + * @param[in] state The boundary state + * @param[in] latitude The updated latitude [-90.0 ~ 90.0] (degrees) + * @param[in] longitude The updated longitude [-180.0 ~ 180.0] (degrees) + * @param[in] altitude The updated altitude (meters) + * @param[in] timestamp The timestamp (time when measurement took place or @c 0 if valid) + * @param[in] user_data The user data passed from the callback registration function * @pre location_manager_start() will invoke this callback if you register this callback using location_manager_set_zone_changed_cb(). * @see #location_boundary_state_e * @see location_manager_start() @@ -186,82 +199,91 @@ typedef void(*location_service_state_changed_cb)(location_service_state_e state, */ typedef void(*location_zone_changed_cb)(location_boundary_state_e state, double latitude, double longitude, double altitude, time_t timestamp, void *user_data); + /** * @brief Called when the state of location method is changed. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] method The method changed on setting - * @param[in] enable The setting value changed - * @param[in] user_data The user data passed from the callback registration function - * @pre location_setting_changed_cb() will invoke this callback if you register this callback using location_manager_set_setting_changed_cb() + * @param[in] method The method changed on setting + * @param[in] enable The setting value changed + * @param[in] user_data The user data passed from the callback registration function + * @pre location_setting_changed_cb() will invoke this callback if you register this callback using location_manager_set_setting_changed_cb(). * @see location_manager_set_setting_changed_cb() * @see location_manager_unset_setting_changed_cb() */ typedef void(*location_setting_changed_cb)(location_method_e method, bool enable, void *user_data); + /** * @brief Called once for each location bound. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bounds The location bounds handle - * @param[in] user_data The user data passed from the callback registration function - * @return @c true to continue with the next iteration of the loop, otherwise @c false to break out of the loop. + * @param[in] bounds The location bounds handle + * @param[in] user_data The user data passed from the callback registration function + * @return @c true to continue with the next iteration of the loop, + * otherwise @c false to break out of the loop * @pre location_manager_foreach_boundary() will invoke this callback. * @see location_manager_foreach_boundary() */ typedef bool(*location_bounds_cb)(location_bounds_h bounds, void *user_data); + /** * @brief Called at defined interval with updated location information. * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif - * @param[in] latitude The updated latitude [-90.0 ~ 90.0] (degrees) - * @param[in] longitude The updated longitude [-180.0 ~ 180.0] (degrees) - * @param[in] altitude The updated altitude (meters) - * @param[in] speed The updated speed (km/h) - * @param[in] direction The updated direction (in degrees from the north) - * @param[in] horizontal_accuracy The horizontal accuracy (meters) - * @param[in] timestamp The timestamp (time when measurement took place or @c 0 if valid) - * @param[in] user_data The user data passed from the callback registration function - * @pre location_manager_start() will invoke this callback if you register this callback using location_manager_set_position_updated_cb() + * @param[in] latitude The updated latitude [-90.0 ~ 90.0] (degrees) + * @param[in] longitude The updated longitude [-180.0 ~ 180.0] (degrees) + * @param[in] altitude The updated altitude (meters) + * @param[in] speed The updated speed (km/h) + * @param[in] direction The updated direction (in degrees from the north) + * @param[in] horizontal_accuracy The horizontal accuracy (meters) + * @param[in] timestamp The timestamp (time when measurement took place or @c 0 if valid) + * @param[in] user_data The user data passed from the callback registration function + * @pre location_manager_start() will invoke this callback if you register this callback using location_manager_set_position_updated_cb(). * @see location_manager_start() * @see location_manager_set_distance_based_location_changed_cb() * @see location_manager_set_location_changed_cb() */ typedef void(*location_changed_cb)(double latitude, double longitude, double altitude, double speed, double direction, double horizontal_accuracy, time_t timestamp, void *user_data); + /** * @brief Called when the batch interval is expired. * @since_tizen @if MOBILE 3.0 @elseif WEARABLE 2.3.2 @endif - * @param[in] num_of_location The number of location batch data - * @param[in] user_data The user data passed from the callback registration function - * @pre location_manager_start_batch() will invoke this callback if you register this callback using location_manager_set_location_batch_cb() + * @param[in] num_of_location The number of location batch data + * @param[in] user_data The user data passed from the callback registration function + * @pre location_manager_start_batch() will invoke this callback if you register this callback using location_manager_set_location_batch_cb(). * @see location_manager_start_batch() * @see location_manager_set_location_batch_cb() */ typedef void(*location_batch_cb)(int num_of_location, void *user_data); + /** * @brief Gets iteratively to receive location batch data. * @since_tizen @if MOBILE 3.0 @elseif WEARABLE 2.3.2 @endif - * @param[in] latitude The updated latitude [-90.0 ~ 90.0] (degrees) - * @param[in] longitude The updated longitude [-180.0 ~ 180.0] (degrees) - * @param[in] altitude The updated altitude (meters) - * @param[in] speed The updated speed (km/h) - * @param[in] direction The updated direction (in degrees from the north) - * @param[in] horizontal The horizontal accuracy (meters) - * @param[in] vertical The vertical accuracy (meters) - * @param[in] timestamp The timestamp (time when measurement took place or @c 0 if valid) - * @param[in] user_data The user data passed from the callback registration function - * @return @c true to continue with the next iteration of the loop, otherwise @c false to break out of the loop. + * @param[in] latitude The updated latitude [-90.0 ~ 90.0] (degrees) + * @param[in] longitude The updated longitude [-180.0 ~ 180.0] (degrees) + * @param[in] altitude The updated altitude (meters) + * @param[in] speed The updated speed (km/h) + * @param[in] direction The updated direction (in degrees from the north) + * @param[in] horizontal The horizontal accuracy (meters) + * @param[in] vertical The vertical accuracy (meters) + * @param[in] timestamp The timestamp (time when measurement took place or @c 0 if valid) + * @param[in] user_data The user data passed from the callback registration function + * @return @c true to continue with the next iteration of the loop, + * otherwise @c false to break out of the loop * @pre location_manager_foreach_location_batch() will invoke this callback * @see location_manager_foreach_location_batch() */ typedef bool(*location_batch_get_location_cb)(double latitude, double longitude, double altitude, double speed, double direction, double horizontal, double vertical, time_t timestamp, void *user_data); + /** * @brief Checks whether the given location method is available. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remark The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. * @param[in] method The location method to be checked - * @return @c true if the specified location method is supported, otherwise @c false if it is not available + * @return @c true if the specified location method is supported, + * otherwise @c false if it is not available * @retval #LOCATIONS_ERROR_NONE Successful * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @retval #LOCATIONS_ERROR_INCORRECT_METHOD Incorrect method @@ -270,120 +292,126 @@ typedef bool(*location_batch_get_location_cb)(double latitude, double longitude, */ bool location_manager_is_supported_method(location_method_e method); + /** * @brief Checks whether the given location method is enabled or not on setting. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] method The location method to be checked - * @param[out] enable The result value of checking the given location method - * @return 0 on success, otherwise a negative error value + * @param[in] method The location method to be checked + * @param[out] enable The result value of checking the given location method + * @return @c 0 on success, + * otherwise a negative error value * @retval #LOCATIONS_ERROR_NONE Successful * @retval #LOCATIONS_ERROR_INCORRECT_METHOD Incorrect method - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_create() * @see location_manager_set_setting_changed_cb() * @see location_manager_unset_setting_changed_cb() */ int location_manager_is_enabled_method(location_method_e method, bool *enable); + /** * @platform * @brief Enables the given location method. * @since_tizen 2.3.1 * @privlevel platform * @privilege %http://tizen.org/privilege/location.enable - * @param[in] method The location method to be checked - * @param[in] enable The value to set - * @return 0 on success, otherwise a negative error value + * @param[in] method The location method to be checked + * @param[in] enable The value to set + * @return @c 0 on success, + * otherwise a negative error value * @retval #LOCATIONS_ERROR_NONE Successful * @retval #LOCATIONS_ERROR_INCORRECT_METHOD Incorrect method * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED Permission denied - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_is_enabled_method() * @see location_manager_create() */ int location_manager_enable_method(const location_method_e method, const bool enable); + /** * @brief Creates a new location manager. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks You must release @a manager using location_manager_destroy(). - * @param[in] method The location method - * @param[out] manager The location manager handle that is newly created - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_OUT_OF_MEMORY Out of memory - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @param[in] method The location method + * @param[out] manager The location manager handle that is newly created + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_OUT_OF_MEMORY Out of memory + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_destroy() */ int location_manager_create(location_method_e method, location_manager_h *manager); + /** * @brief Releases the location manager. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] manager The location manager handle - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_create() */ int location_manager_destroy(location_manager_h manager); + /** - * @brief Request to update current location once. + * @brief Requests to update current location once. * @remarks Do not request to start the location service using the same manager handler - * Calling this function invokes a location service event. When the location service is updated, location_updated_cb + * Calling this function invokes a location service event. + * When the location service is updated, location_updated_cb * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location - * @param[in] manager The location manager handle - * @param[in] timeout Timeout to stop requesting single location after - * @param[in] callback The location callback function to register - * @param[in] user_data The user data to be passed to the callback function - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available - * @retval #LOCATIONS_ERROR_NETWORK_FAILED Network failed - * @retval #LOCATIONS_ERROR_GPS_SETTING_OFF GPS is not enabled - * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @param[in] timeout Timeout to stop requesting single location after + * @param[in] callback The location callback function to register + * @param[in] user_data The user data to be passed to the callback function + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @retval #LOCATIONS_ERROR_NETWORK_FAILED Network failed + * @retval #LOCATIONS_ERROR_GPS_SETTING_OFF GPS is not enabled + * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @post It invokes location_updated_cb(). */ int location_manager_request_single_location(location_manager_h manager, int timeout, location_updated_cb callback, void *user_data); + /** * @brief Starts the location service. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location - * * @remarks There is no limit on number of location managers for which this function was called. - * * @remarks Calling this function invokes a location service event. When the location service is enabled, the service state change callback - * (set using location_manager_set_service_state_changed_cb()) notifies the user with #LOCATIONS_SERVICE_ENABLED as - * the first argument, and the service starts. - * + * (set using location_manager_set_service_state_changed_cb()) notifies the user with #LOCATIONS_SERVICE_ENABLED as + * the first argument, and the service starts. * @remarks The started service is a requirement for calling these functions: - * location_manager_get_position(), location_manager_get_velocity(), location_manager_get_accuracy(), - * gps_status_get_nmea(), gps_status_get_satellite(), gps_status_foreach_satellites_in_view(). - * + * location_manager_get_position(), location_manager_get_velocity(), location_manager_get_accuracy(), + * gps_status_get_nmea(), gps_status_get_satellite(), gps_status_foreach_satellites_in_view(). * @remarks Once you stop the service using location_manager_stop(), you can no longer call the functions listed above. - * * @remarks Starting and stopping the service is in the scope of the given location manager only (if there is more than one manager, - * starting and stopping should be executed for each of them separately). - * - * @param[in] manager The location manager handle - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available - * @retval #LOCATIONS_ERROR_NETWORK_FAILED Network failed - * @retval #LOCATIONS_ERROR_GPS_SETTING_OFF GPS is not enabled + * starting and stopping should be executed for each of them separately). + * @param[in] manager The location manager handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @retval #LOCATIONS_ERROR_NETWORK_FAILED Network failed + * @retval #LOCATIONS_ERROR_GPS_SETTING_OFF GPS is not enabled * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @post It invokes location_position_updated_cb(), location_velocity_updated_cb(), location_zone_changed_cb(), and location_service_state_changed_cb(). * @see location_manager_stop() * @see location_manager_get_position() @@ -399,351 +427,381 @@ int location_manager_request_single_location(location_manager_h manager, int tim */ int location_manager_start(location_manager_h manager); + /** * @brief Stops the location service. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks This function initiates the process of stopping the service. When the process is finished, callback set using - * #location_manager_set_service_state_changed_cb() will be called, with #LOCATIONS_SERVICE_DISABLED as first argument. - * When that happens, the service is stopped and the user is notified. - * + * #location_manager_set_service_state_changed_cb() will be called, with #LOCATIONS_SERVICE_DISABLED as first argument. + * When that happens, the service is stopped and the user is notified. * @remarks You can stop and start the location manager as needed. - * - * @param[in] manager The location manager handle - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available - * @retval #LOCATIONS_ERROR_NETWORK_FAILED Network failed - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @retval #LOCATIONS_ERROR_NETWORK_FAILED Network failed + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_start() - * @see location_manager_set_service_state_changed_cb() - * @see location_service_state_changed_cb() + * @see location_manager_set_service_state_changed_cb() + * @see location_service_state_changed_cb() */ int location_manager_stop(location_manager_h manager); + /** - * @brief Adds a bounds for a given location manager. + * @brief Adds bounds for a given location manager. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] manager The location manager handle - * @param[in] bounds The location bounds handle - * @return @c 0 on success, otherwise a negative error value + * @param[in] manager The location manager handle + * @param[in] bounds The location bounds handle + * @return @c 0 on success, + * otherwise a negative error value * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_OUT_OF_MEMORY Out of memory - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_OUT_OF_MEMORY Out of memory + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @post It invokes location_manager_set_zone_changed_cb() when a boundary is entered or exited, if you set a callback with location_manager_set_zone_changed_cb(). * @see location_manager_remove_boundary() * @see location_manager_set_zone_changed_cb() */ int location_manager_add_boundary(location_manager_h manager, const location_bounds_h bounds); + /** - * @brief Deletes a bounds for a given location manager. + * @brief Deletes bounds for a given location manager. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] manager The location manager handle - * @param[in] bounds The location bounds handle - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_OUT_OF_MEMORY Out of memory - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @param[in] bounds The location bounds handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_OUT_OF_MEMORY Out of memory + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_add_boundary() */ int location_manager_remove_boundary(location_manager_h manager, const location_bounds_h bounds); + /** * @brief Retrieves all location bounds by invoking a specific callback for each location bounds * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] manager The location manager handle - * @param[in] callback The iteration callback - * @param[in] user_data The user data to be passed to the callback function - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported - * @post location_bounds_cb() will be invoked + * @param[in] manager The location manager handle + * @param[in] callback The iteration callback + * @param[in] user_data The user data to be passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @post location_bounds_cb() will be invoked. * @see location_manager_add_boundary() * @see location_manager_remove_boundary() * @see location_bounds_cb() */ int location_manager_foreach_boundary(location_manager_h manager, location_bounds_cb callback, void *user_data); + /** * @brief Gets the given location manager's method. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] manager The location manager handle - * @param[out] method The location method - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @param[out] method The location method + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_create() */ int location_manager_get_method(location_manager_h manager, location_method_e *method); + /** * @brief Gets the current position information. - * @details The result contains the current altitude, latitude, and longitude, with a measurement timestamp. - * + * @details The result contains the current altitude, latitude, and longitude with a measurement timestamp. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location - * @param[in] manager The location manager handle - * @param[out] altitude The current altitude (meters) - * @param[out] latitude The current latitude [-90.0 ~ 90.0] (degrees) - * @param[out] longitude The current longitude [-180.0 ~ 180.0] (degrees) - * @param[out] timestamp The timestamp (time when measurement took place or @c 0 if valid) - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available - * @retval #LOCATIONS_ERROR_GPS_SETTING_OFF GPS is not enabled + * @param[in] manager The location manager handle + * @param[out] altitude The current altitude (meters) + * @param[out] latitude The current latitude [-90.0 ~ 90.0] (degrees) + * @param[out] longitude The current longitude [-180.0 ~ 180.0] (degrees) + * @param[out] timestamp The timestamp (time when measurement took place or @c 0 if valid) + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @retval #LOCATIONS_ERROR_GPS_SETTING_OFF GPS is not enabled * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported - * @pre The location service state must be #LOCATIONS_SERVICE_ENABLED with location_manager_start() + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @pre The location service state must be #LOCATIONS_SERVICE_ENABLED with location_manager_start(). */ int location_manager_get_position(location_manager_h manager, double *altitude, double *latitude, double *longitude, time_t *timestamp); + /** * @brief Gets the current position information. - * @details The result contains the current altitude, latitude, longitude, climb, direction, speed, level, horizontal and vertical with a measurement timestamp. - * + * @details The result contains the current altitude, latitude, longitude, climb, direction, speed, level, horizontal, and vertical with a measurement timestamp. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location - * @param[in] manager The location manager handle - * @param[out] altitude The current altitude (meters) - * @param[out] latitude The current latitude [-90.0 ~ 90.0] (degrees) - * @param[out] longitude The current longitude [-180.0 ~ 180.0] (degrees) - * @param[out] climb The climb (km/h) - * @param[out] direction The direction, degrees from the north - * @param[out] speed The speed (km/h) - * @param[out] level The accuracy level - * @param[out] horizontal The horizontal accuracy (meters) - * @param[out] vertical The vertical accuracy (meters) - * @param[out] timestamp The timestamp (time when measurement took place or @c 0 if valid) - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available - * @retval #LOCATIONS_ERROR_GPS_SETTING_OFF GPS is not enabled + * @param[in] manager The location manager handle + * @param[out] altitude The current altitude (meters) + * @param[out] latitude The current latitude [-90.0 ~ 90.0] (degrees) + * @param[out] longitude The current longitude [-180.0 ~ 180.0] (degrees) + * @param[out] climb The climb (km/h) + * @param[out] direction The direction, degrees from the north + * @param[out] speed The speed (km/h) + * @param[out] level The accuracy level + * @param[out] horizontal The horizontal accuracy (meters) + * @param[out] vertical The vertical accuracy (meters) + * @param[out] timestamp The timestamp (time when measurement took place or @c 0 if valid) + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @retval #LOCATIONS_ERROR_GPS_SETTING_OFF GPS is not enabled * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported - * @pre The location service state must be #LOCATIONS_SERVICE_ENABLED with location_manager_start() + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @pre The location service state must be #LOCATIONS_SERVICE_ENABLED with location_manager_start(). */ int location_manager_get_location(location_manager_h manager, double *altitude, double *latitude, double *longitude, double *climb, double *direction, double *speed, location_accuracy_level_e *level, double *horizontal, double *vertical, time_t *timestamp); + /** * @brief Gets the current velocity information. - * @details The result contains the current climb, direction, and speed, with a measurement timestamp. - * + * @details The result contains the current climb, direction, and speed with a measurement timestamp. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location - * @param[in] manager The location manager handle - * @param[out] climb The climb (km/h) - * @param[out] direction The direction, degrees from the north - * @param[out] speed The speed (km/h) - * @param[out] timestamp The timestamp (time when measurement took place or @c 0 if valid) - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available - * @retval #LOCATIONS_ERROR_GPS_SETTING_OFF GPS is not enabled + * @param[in] manager The location manager handle + * @param[out] climb The climb (km/h) + * @param[out] direction The direction, degrees from the north + * @param[out] speed The speed (km/h) + * @param[out] timestamp The timestamp (time when measurement took place or @c 0 if valid) + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @retval #LOCATIONS_ERROR_GPS_SETTING_OFF GPS is not enabled * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported - * @pre The location service state must be #LOCATIONS_SERVICE_ENABLED with location_manager_start() + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @pre The location service state must be #LOCATIONS_SERVICE_ENABLED with location_manager_start(). */ int location_manager_get_velocity(location_manager_h manager, double *climb, double *direction, double *speed, time_t *timestamp); + /** * @brief Gets the current accuracy information. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location - * @param[in] manager The location manager handle - * @param[out] level The accuracy level - * @param[out] horizontal The horizontal accuracy (meters) - * @param[out] vertical The vertical accuracy (meters) - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available - * @retval #LOCATIONS_ERROR_GPS_SETTING_OFF GPS is not enabled + * @param[in] manager The location manager handle + * @param[out] level The accuracy level + * @param[out] horizontal The horizontal accuracy (meters) + * @param[out] vertical The vertical accuracy (meters) + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @retval #LOCATIONS_ERROR_GPS_SETTING_OFF GPS is not enabled * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported - * @pre The location service state must be #LOCATIONS_SERVICE_ENABLED with location_manager_start() + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @pre The location service state must be #LOCATIONS_SERVICE_ENABLED with location_manager_start(). */ int location_manager_get_accuracy(location_manager_h manager, location_accuracy_level_e *level, double *horizontal, double *vertical); + /** * @brief Gets the last position information which is recorded. * @details The @a altitude, @a latitude, @a longitude, and @c timestamp values should be 0, if there is no record of any previous position information. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location - * @param[in] manager The location manager handle - * @param[out] altitude The last altitude (meters) - * @param[out] latitude The last latitude [-90.0 ~ 90.0] (degrees) - * @param[out] longitude The last longitude [-180.0 ~ 180.0] (degrees) - * @param[out] timestamp The timestamp (time when measurement took place or @c 0 if valid) - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @param[in] manager The location manager handle + * @param[out] altitude The last altitude (meters) + * @param[out] latitude The last latitude [-90.0 ~ 90.0] (degrees) + * @param[out] longitude The last longitude [-180.0 ~ 180.0] (degrees) + * @param[out] timestamp The timestamp (time when measurement took place or @c 0 if valid) + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @pre The location manager handle must be created by location_manager_create() */ int location_manager_get_last_position(location_manager_h manager, double *altitude, double *latitude, double *longitude, time_t *timestamp); + /** * @brief Gets the last location information. - * @details The @a altitude, @a latitude, @a longitude, @a climb, @a direction, @a speed and @c timestamp values should be 0, if there is no record of any previous position information. + * @details The @a altitude, @a latitude, @a longitude, @a climb, @a direction, @a speed, and @c timestamp values should be 0, if there is no record of any previous position information. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location - * @param[in] manager The location manager handle - * @param[out] altitude The current altitude (meters) - * @param[out] latitude The current latitude [-90.0 ~ 90.0] (degrees) - * @param[out] longitude The current longitude [-180.0 ~ 180.0] (degrees) - * @param[out] climb The climb (km/h) - * @param[out] direction The direction, degrees from the north - * @param[out] speed The speed (km/h) - * @param[out] level The accuracy level - * @param[out] horizontal The horizontal accuracy (meters) - * @param[out] vertical The vertical accuracy (meters) - * @param[out] timestamp The timestamp (time when measurement took place or @c 0 if valid) - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @param[in] manager The location manager handle + * @param[out] altitude The current altitude (meters) + * @param[out] latitude The current latitude [-90.0 ~ 90.0] (degrees) + * @param[out] longitude The current longitude [-180.0 ~ 180.0] (degrees) + * @param[out] climb The climb (km/h) + * @param[out] direction The direction, degrees from the north + * @param[out] speed The speed (km/h) + * @param[out] level The accuracy level + * @param[out] horizontal The horizontal accuracy (meters) + * @param[out] vertical The vertical accuracy (meters) + * @param[out] timestamp The timestamp (time when measurement took place or @c 0 if valid) + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported - * @pre The location manager handle must be created by location_manager_create() + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @pre The location manager handle must be created by location_manager_create(). */ int location_manager_get_last_location(location_manager_h manager, double *altitude, double *latitude, double *longitude, double *climb, double *direction, double *speed, location_accuracy_level_e *level, double *horizontal, double *vertical, time_t *timestamp); /** * @brief Gets the last velocity information which is recorded. - * @details The @a climb, @a direction and @a speed values should be @c 0, if there is no record of any previous velocity information. - * + * @details The @a climb, @a direction, and @a speed values should be @c 0, if there is no record of any previous velocity information. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location - * @param[in] manager The location manager handle - * @param[out] climb The last climb (km/h) - * @param[out] direction The last direction, degrees from the north - * @param[out] speed The last speed (km/h) - * @param[out] timestamp The timestamp (time when measurement took place or @c 0 if valid) - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @param[in] manager The location manager handle + * @param[out] climb The last climb (km/h) + * @param[out] direction The last direction, degrees from the north + * @param[out] speed The last speed (km/h) + * @param[out] timestamp The timestamp (time when measurement took place or @c 0 if valid) + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported - * @pre The location manager handle must be created by location_manager_create() + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @pre The location manager handle must be created by location_manager_create(). */ int location_manager_get_last_velocity(location_manager_h manager, double *climb, double *direction, double *speed, time_t *timestamp); + /** * @brief Gets the last accuracy information which is recorded. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location - * @param[in] manager The location manager handle - * @param[out] level The last accuracy level - * @param[out] horizontal The last horizontal accuracy (meters) - * @param[out] vertical The last vertical accuracy (meters) - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @param[in] manager The location manager handle + * @param[out] level The last accuracy level + * @param[out] horizontal The last horizontal accuracy (meters) + * @param[out] vertical The last vertical accuracy (meters) + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported - * @pre The location manager handle must be created by location_manager_create() + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @pre The location manager handle must be created by location_manager_create(). */ int location_manager_get_last_accuracy(location_manager_h manager, location_accuracy_level_e *level, double *horizontal, double *vertical); + /** * @deprecated Deprecated since 3.0 * @brief Gets the current application's location accessibility status. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[out] state The current location service accessibility status. - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[out] state The current location service accessibility status + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported */ -int location_manager_get_accessibility_state(location_accessibility_state_e *state); +int location_manager_get_accessibility_state(location_accessibility_state_e *state) TIZEN_DEPRECATED_API; + /** * @brief Registers a callback function to be invoked at defined interval with updated position information. - * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] manager The location manager handle - * @param[in] callback The callback function to register - * @param[in] interval The interval [1 ~ 120] (seconds) - * @param[in] user_data The user data to be passed to the callback function - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @param[in] callback The callback function to register + * @param[in] interval The interval [1 ~ 120] (seconds) + * @param[in] user_data The user data to be passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @post location_position_updated_cb() will be invoked * @see location_manager_unset_position_updated_cb() * @see location_position_updated_cb() */ int location_manager_set_position_updated_cb(location_manager_h manager, location_position_updated_cb callback, int interval, void *user_data); + /** - * @brief Unregisters the callback function. + * @brief Unregisters the callback function. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] manager The location manager handle - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_set_position_updated_cb() */ int location_manager_unset_position_updated_cb(location_manager_h manager); + /** * @brief Registers a callback function to be invoked at defined interval with updated velocity information. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] manager The location manager handle - * @param[in] callback The callback function to register - * @param[in] interval The interval [1 ~ 120] (seconds) - * @param[in] user_data The user data to be passed to the callback function - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @param[in] callback The callback function to register + * @param[in] interval The interval [1 ~ 120] (seconds) + * @param[in] user_data The user data to be passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @post location_velocity_updated_cb() will be invoked * @see location_manager_unset_velocity_updated_cb() * @see location_velocity_updated_cb() */ int location_manager_set_velocity_updated_cb(location_manager_h manager, location_velocity_updated_cb callback, int interval, void *user_data); + /** - * @brief Unregisters the callback function. + * @brief Unregisters the callback function. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] manager The location manager handle - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_set_velocity_updated_cb() */ int location_manager_unset_velocity_updated_cb(location_manager_h manager); + /** * @brief Registers a callback function to be invoked when the location service state is changed. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] manager The location manager handle - * @param[in] callback The callback function to register - * @param[in] user_data The user data to be passed to the callback function - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @param[in] callback The callback function to register + * @param[in] user_data The user data to be passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @post location_service_state_changed_cb() will be invoked * @see location_manager_unset_service_state_changed_cb() * @see location_service_state_changed_cb() @@ -753,162 +811,184 @@ int location_manager_unset_velocity_updated_cb(location_manager_h manager); */ int location_manager_set_service_state_changed_cb(location_manager_h manager, location_service_state_changed_cb callback, void *user_data); + /** - * @brief Unregisters the callback function. + * @brief Unregisters the callback function. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] manager The location manager handle - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_set_service_state_changed_cb() */ int location_manager_unset_service_state_changed_cb(location_manager_h manager); + /** * @brief Registers a callback function to be invoked when the previously set boundary area is entered or left. - * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] manager The location manager handle - * @param[in] callback The callback function to register - * @param[in] user_data The user data to be passed to the callback function - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported - * @pre location_manager_add_boundary() is called before. + * @param[in] manager The location manager handle + * @param[in] callback The callback function to register + * @param[in] user_data The user data to be passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @pre location_manager_add_boundary() is called before. * @post location_zone_changed_cb() will be invoked * @see location_manager_unset_zone_changed_cb() * @see location_zone_changed_cb() */ int location_manager_set_zone_changed_cb(location_manager_h manager, location_zone_changed_cb callback, void *user_data); + /** - * @brief Unregisters the callback function. + * @brief Unregisters the callback function. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] manager The location manager handle - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_set_zone_changed_cb() */ int location_manager_unset_zone_changed_cb(location_manager_h manager); + /** * @brief Registers a callback function to be invoked when the location setting is changed. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] method The method to observe - * @param[in] callback The callback function to register - * @param[in] user_data The user data to be passed to the callback function - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] method The method to observe + * @param[in] callback The callback function to register + * @param[in] user_data The user data to be passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @post location_setting_changed_cb() will be invoked * @see location_manager_unset_setting_changed_cb() * @see location_setting_changed_cb() */ int location_manager_set_setting_changed_cb(location_method_e method, location_setting_changed_cb callback, void *user_data); + /** * @brief Unregisters the callback function. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] method The method to observe - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] method The method to observe + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_set_setting_changed_cb() */ int location_manager_unset_setting_changed_cb(location_method_e method); + /** * @brief Gets the distance in meters between two locations. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] start_latitude The starting latitude [-90.0 ~ 90.0] (degrees) - * @param[in] start_longitude The starting longitude [-180.0 ~ 180.0] (degrees) - * @param[in] end_latitude The ending latitude [-90.0 ~ 90.0] (degrees) - * @param[in] end_longitude The ending longitude [-180.0 ~ 180.0] (degrees) - * @param[out] distance The distance between two locations (meters) - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] start_latitude The starting latitude [-90.0 ~ 90.0] (degrees) + * @param[in] start_longitude The starting longitude [-180.0 ~ 180.0] (degrees) + * @param[in] end_latitude The ending latitude [-90.0 ~ 90.0] (degrees) + * @param[in] end_longitude The ending longitude [-180.0 ~ 180.0] (degrees) + * @param[out] distance The distance between two locations (meters) + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported */ int location_manager_get_distance(double start_latitude, double start_longitude, double end_latitude, double end_longitude, double *distance); + /** * @brief Registers a callback function to be invoked at minimum interval or minimum distance with updated position information. * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif - * @param[in] manager The location manager handle - * @param[in] callback The callback function to register - * @param[in] interval The minimum interval between position updates [1 ~ 120] (seconds) - * @param[in] distance The minimum distance between position updates [1 ~ 120] (meters) - * @param[in] user_data The user data to be passed to the callback function - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @param[in] callback The callback function to register + * @param[in] interval The minimum interval between position updates [1 ~ 120] (seconds) + * @param[in] distance The minimum distance between position updates [1 ~ 120] (meters) + * @param[in] user_data The user data to be passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @post location_changed_cb() will be invoked * @see location_manager_unset_distance_based_location_changed_cb() * @see location_changed_cb() */ int location_manager_set_distance_based_location_changed_cb(location_manager_h manager, location_changed_cb callback, int interval, double distance, void *user_data); + /** * @brief Unregisters the callback function. * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif - * @param[in] manager The location manager handle - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_set_distance_based_location_changed_cb() */ int location_manager_unset_distance_based_location_changed_cb(location_manager_h manager); + /** * @brief Registers a callback function to be invoked at defined interval with updated location information. * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif - * @param[in] manager The location manager handle - * @param[in] callback The callback function to register - * @param[in] interval The interval [1 ~ 120] (seconds) - * @param[in] user_data The user data to be passed to the callback function - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @param[in] callback The callback function to register + * @param[in] interval The interval [1 ~ 120] (seconds) + * @param[in] user_data The user data to be passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @post location_changed_cb() will be invoked * @see location_manager_unset_location_changed_cb() * @see location_changed_cb() */ int location_manager_set_location_changed_cb(location_manager_h manager, location_changed_cb callback, int interval, void *user_data); + /** - * @brief Unregisters the callback function. + * @brief Unregisters the callback function. * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif - * @param[in] manager The location manager handle - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_set_location_changed_cb() */ int location_manager_unset_location_changed_cb(location_manager_h manager); + /** * @brief Registers a callback function to be invoked when batch_period is expired. * @since_tizen @if MOBILE 3.0 @elseif WEARABLE 2.3.2 @endif * @remarks The batch_period should be greater than or equal to the batch_interval. - * @param[in] manager The location manager handle - * @param[in] callback The callback function to register - * @param[in] batch_interval The batch sampling interval [1 ~ 255] (seconds) - * @param[in] batch_period The batch period [1 ~ 60000] (seconds) - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @param[in] callback The callback function to register + * @param[in] batch_interval The batch sampling interval [1 ~ 255] (seconds) + * @param[in] batch_period The batch period [1 ~ 60000] (seconds) + * @param[in] user_data The user data to be passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @post location_batch_cb() will be invoked * @see location_manager_start_batch() * @see location_batch_cb() @@ -916,37 +996,41 @@ int location_manager_unset_location_changed_cb(location_manager_h manager); */ int location_manager_set_location_batch_cb(location_manager_h manager, location_batch_cb callback, int batch_interval, int batch_period, void *user_data); + /** * @brief Unregisters the callback function. * @since_tizen @if MOBILE 3.0 @elseif WEARABLE 2.3.2 @endif - * @param[in] manager The location manager handle - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_set_location_batch_cb() */ int location_manager_unset_location_batch_cb(location_manager_h manager); + /** * @brief Starts the location batch service. * @details Calling this function starts location batch service, location_batch_cb() will be invoked every @a batch_period seconds. - After that, you can obtain all locations with location_manager_foreach_location_batch(). + * After that, you can obtain all locations with location_manager_foreach_location_batch(). * @since_tizen @if MOBILE 3.0 @elseif WEARABLE 2.3.2 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location * @remarks Calling this function invokes a location service event. When the location service is enabled, the service state change callback - * (set using location_manager_set_service_state_changed_cb()) notifies the user with #LOCATIONS_SERVICE_ENABLED as the first argument, and the service starts. - * @param[in] manager The location manager handle - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_INCORRECT_METHOD Incorrect method - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available - * @retval #LOCATIONS_ERROR_NETWORK_FAILED Network failed - * @retval #LOCATIONS_ERROR_GPS_SETTING_OFF GPS is not enabled + * (set using location_manager_set_service_state_changed_cb()) notifies the user with #LOCATIONS_SERVICE_ENABLED as the first argument, and the service starts. + * @param[in] manager The location manager handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_INCORRECT_METHOD Incorrect method + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @retval #LOCATIONS_ERROR_NETWORK_FAILED Network failed + * @retval #LOCATIONS_ERROR_GPS_SETTING_OFF GPS is not enabled * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @pre location_manager_set_location_batch_cb() * @see location_manager_set_service_state_changed_cb() * @see location_service_state_changed_cb() @@ -955,37 +1039,41 @@ int location_manager_unset_location_batch_cb(location_manager_h manager); */ int location_manager_start_batch(location_manager_h manager); + /** * @brief Stops the location batch service. * @since_tizen @if MOBILE 3.0 @elseif WEARABLE 2.3.2 @endif * @remarks This function initiates the process of stopping the service. When the process is finished, callback set using - * #location_manager_set_service_state_changed_cb() will be called, with #LOCATIONS_SERVICE_DISABLED as first argument. - * @param[in] manager The location manager handle - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available - * @retval #LOCATIONS_ERROR_NETWORK_FAILED Network failed - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * #location_manager_set_service_state_changed_cb() will be called, with #LOCATIONS_SERVICE_DISABLED as the first argument. + * @param[in] manager The location manager handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @retval #LOCATIONS_ERROR_NETWORK_FAILED Network failed + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_start_batch() * @see location_manager_set_service_state_changed_cb() * @see location_service_state_changed_cb() */ int location_manager_stop_batch(location_manager_h manager); + /** * @brief Retrieves all location information by invoking a specific callback for each location data. * @since_tizen @if MOBILE 3.0 @elseif WEARABLE 2.3.2 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location - * @param[in] manager The location manager handle - * @param[in] callback The iteration callback function - * @param[in] user_data The user data passed from the callback registration function - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @param[in] callback The iteration callback function + * @param[in] user_data The user data passed from the callback registration function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @pre location_manager_foreach_location_batch() is available after location_batch_cb() is invoked * @post location_batch_get_location_cb() will be invoked * @see location_manager_start_batch() @@ -994,45 +1082,61 @@ int location_manager_stop_batch(location_manager_h manager); */ int location_manager_foreach_location_batch(location_manager_h manager, location_batch_get_location_cb callback, void *user_data); +/** + * @brief Checks whether the mock location is enabled. + * @since_tizen 3.0 + * @param[out] enabled Indicates whether the mock location is enabled + * @return 0 on success, otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @see location_manager_enable_mock_location() + * @see location_manager_set_mock_location() + * @see location_manager_clear_mock_location() + */ +int location_manager_is_enabled_mock_location(bool *enabled); + /** * @brief Enables mock location. - * @remarks You can enable the mock location when developer mode is enabled. * @since_tizen 3.0 + * @remarks You can enable the mock location when developer mode is enabled. * @privlevel public * @privilege %http://tizen.org/privilege/location - * @param[in] enable The value to set - * @return 0 on success, otherwise a negative error value + * @param[in] enable The value to set + * @return @c 0 on success, + * otherwise a negative error value * @retval #LOCATIONS_ERROR_NONE Successful * @retval #LOCATIONS_ERROR_SETTING_OFF MOCK location is not enabled * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED Permission denied - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_is_enabled_method() * @see location_manager_create() * @see location_manager_set_mock_location() */ int location_manager_enable_mock_location(const bool enable); + /** * @brief Sets a mock location for the given location method. - * @details The location sets the given altitude, latitude, longitude, climb, direction, speed, level, horizontal and vertical accuracy. - * + * @details The location sets the given altitude, latitude, longitude, climb, direction, speed, level, horizontal, and vertical accuracy. * @since_tizen 3.0 * @privlevel public * @privilege %http://tizen.org/privilege/location - * @param[in] manager The location manager handle - * @param[in] latitude The current latitude [-90.0 ~ 90.0] (degrees) - * @param[in] longitude The current longitude [-180.0 ~ 180.0] (degrees) - * @param[in] altitude The current altitude (meters) - * @param[in] speed The speed (km/h) - * @param[in] direction The direction, degrees from the north [0.0 ~ 360.0] - * @param[in] accuracy The horizontal accuracy (meters) - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available - * @retval #LOCATIONS_ERROR_SETTING_OFF MOCK location is not enabled + * @param[in] manager The location manager handle + * @param[in] latitude The current latitude [-90.0 ~ 90.0] (degrees) + * @param[in] longitude The current longitude [-180.0 ~ 180.0] (degrees) + * @param[in] altitude The current altitude (meters) + * @param[in] speed The speed (km/h) + * @param[in] direction The direction, degrees from the north [0.0 ~ 360.0] + * @param[in] accuracy The horizontal accuracy (meters) + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @retval #LOCATIONS_ERROR_SETTING_OFF MOCK location is not enabled * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_is_enabled_method() * @see location_manager_enable_mock_location() * @see location_manager_create() @@ -1040,20 +1144,21 @@ int location_manager_enable_mock_location(const bool enable); */ int location_manager_set_mock_location(location_manager_h manager, const double latitude, const double longitude, const double altitude, const double speed, const double direction, const double accuracy); + /** * @brief Clears a mock location. - * * @since_tizen 3.0 * @privlevel public * @privilege %http://tizen.org/privilege/location - * @param[in] manager The location manager handle - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @param[in] manager The location manager handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_SETTING_OFF MOCK location is not enabled - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @retval #LOCATIONS_ERROR_SETTING_OFF MOCK location is not enabled + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see location_manager_is_enabled_method() * @see location_manager_enable_mock_location() * @see location_manager_create() @@ -1061,6 +1166,7 @@ int location_manager_set_mock_location(location_manager_h manager, const double */ int location_manager_clear_mock_location(location_manager_h manager); + /** * @} */ @@ -1077,86 +1183,94 @@ int location_manager_clear_mock_location(location_manager_h manager); /** * @brief Called once for each satellite in range. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] azimuth The azimuth of the satellite (degrees) - * @param[in] elevation The elevation of the satellite (meters) - * @param[in] prn The PRN of the satellite - * @param[in] snr The SNR of the satellite [dB] - * @param[in] is_active The flag signaling if satellite is in use - * @param[in] user_data The user data passed from the foreach function - * @return @c true to continue with the next iteration of the loop, \n @c false to break out of the loop + * @param[in] azimuth The azimuth of the satellite (degrees) + * @param[in] elevation The elevation of the satellite (meters) + * @param[in] prn The PRN of the satellite + * @param[in] snr The SNR of the satellite [dB] + * @param[in] is_active The flag signaling if satellite is in use + * @param[in] user_data The user data passed from the foreach function + * @return @c true to continue with the next iteration of the loop, \n + * @c false to break out of the loop * @pre gps_status_foreach_satellites_in_view() will invoke this callback. * @pre gps_status_foreach_last_satellites_in_view() will invoke this callback. * @see gps_status_foreach_satellites_in_view() */ typedef bool(*gps_status_get_satellites_cb)(unsigned int azimuth, unsigned int elevation, unsigned int prn, int snr, bool is_active, void *user_data); + /** * @brief Called at defined interval with updated satellite information. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[out] num_of_active The last number of active satellites - * @param[out] num_of_inview The last number of satellites in view - * @param[out] timestamp The last timestamp (time when measurement took place or @c 0 if valid) - * @param[in] user_data The user data passed from the call registration function + * @param[out] num_of_active The last number of active satellites + * @param[out] num_of_inview The last number of satellites in view + * @param[out] timestamp The last timestamp (time when measurement took place or @c 0 if valid) + * @param[in] user_data The user data passed from the call registration function * @pre location_manager_start() will invoke this callback if you register this callback using location_manager_set_position_updated_cb() * @see location_manager_start() * @see location_manager_set_position_updated_cb() */ typedef void(*gps_status_satellite_updated_cb)(int num_of_active, int num_of_inview, time_t timestamp, void *user_data); + /** * @brief Gets the GPS NMEA data. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks This call is valid only for location managers with #LOCATIONS_METHOD_GPS method. - * You must release @a nmea using @c free(). - * @param[in] manager The location manager handle - * @param[out] nmea The NMEA data - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * You must release @a nmea using @c free(). + * @param[in] manager The location manager handle + * @param[out] nmea The NMEA data + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported - * @pre The location service state must be #LOCATIONS_SERVICE_ENABLED with location_manager_start() + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @pre The location service state must be #LOCATIONS_SERVICE_ENABLED with location_manager_start(). * @see location_manager_start() */ int gps_status_get_nmea(location_manager_h manager, char **nmea); + /** * @brief Gets the information of satellites. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location * @remarks This call is valid only for location managers with #LOCATIONS_METHOD_GPS method. - * @param[in] manager The location manager handle - * @param[out] num_of_active The number of active satellites - * @param[out] num_of_inview The number of satellites in view - * @param[out] timestamp The timestamp (time when measurement took place or @c 0 if valid) - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @param[in] manager The location manager handle + * @param[out] num_of_active The number of active satellites + * @param[out] num_of_inview The number of satellites in view + * @param[out] timestamp The timestamp (time when measurement took place or @c 0 if valid) + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported - * @pre The location service state must be #LOCATIONS_SERVICE_ENABLED with location_manager_start() - * @pre The gps_status_satellite_updated_cb must be set with gps_status_set_satellite_updated_cb() - * @see gps_status_foreach_satellites_in_view() + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @pre The location service state must be #LOCATIONS_SERVICE_ENABLED with location_manager_start(). + * @pre The gps_status_satellite_updated_cb must be set with gps_status_set_satellite_updated_cb(). + * @see gps_status_foreach_satellites_in_view() */ int gps_status_get_satellite(location_manager_h manager, int *num_of_active, int *num_of_inview, time_t *timestamp); + /** * @brief Registers a callback function to be invoked at defined interval with updated satellite information. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location - * @param[in] manager The location manager handle - * @param[in] callback The callback function to register - * @param[in] interval The interval [1 ~ 120] (seconds) - * @param[in] user_data The user data to be passed to the callback function - * @return 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @param[in] manager The location manager handle + * @param[in] callback The callback function to register + * @param[in] interval The interval [1 ~ 120] (seconds) + * @param[in] user_data The user data to be passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @post gps_status_satellite_updated_cb() will be invoked * @see gps_status_unset_satellite_updated_cb() * @see gps_status_satellite_updated_cb() @@ -1167,89 +1281,98 @@ int gps_status_get_satellite(location_manager_h manager, int *num_of_active, int */ int gps_status_set_satellite_updated_cb(location_manager_h manager, gps_status_satellite_updated_cb callback, int interval, void *user_data); + /** - * @brief Unregisters the callback function. + * @brief Unregisters the callback function. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] manager The location manager handle - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @param[in] manager The location manager handle + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @see gps_status_set_satellite_updated_cb() */ int gps_status_unset_satellite_updated_cb(location_manager_h manager); + /** * @brief Invokes the callback function for each satellite. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location * @remarks This function is valid only for location managers with the #LOCATIONS_METHOD_GPS method. - * @param[in] manager The location manager handle - * @param[in] callback The iteration callback function - * @param[in] user_data The user data to be passed to the callback function - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument - * @retval #LOCATIONS_ERROR_INCORRECT_METHOD Incorrect method - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @param[in] manager The location manager handle + * @param[in] callback The iteration callback function + * @param[in] user_data The user data to be passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #LOCATIONS_ERROR_INCORRECT_METHOD Incorrect method + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @pre The location service state must be #LOCATIONS_SERVICE_ENABLED with location_manager_start() * @pre The gps_status_satellite_updated_cb must be set with gps_status_set_satellite_updated_cb() * @post It invokes gps_status_get_satellites_cb(). - * @see gps_status_get_satellite() - * @see gps_status_get_satellites_cb() + * @see gps_status_get_satellite() + * @see gps_status_get_satellites_cb() */ int gps_status_foreach_satellites_in_view(location_manager_h manager, gps_status_get_satellites_cb callback, void *user_data); + /** * @brief Gets the last information of satellites. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location * @remarks This call is valid only for location managers with #LOCATIONS_METHOD_GPS method. - * @param[in] manager The location manager handle - * @param[out] num_of_active The last number of active satellites - * @param[out] num_of_inview The last number of satellites in view - * @param[out] timestamp The last timestamp (time when last measurement took place or @c 0 if valid) - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument - * @retval #LOCATIONS_ERROR_INCORRECT_METHOD Incorrect method - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @param[in] manager The location manager handle + * @param[out] num_of_active The last number of active satellites + * @param[out] num_of_inview The last number of satellites in view + * @param[out] timestamp The last timestamp (time when last measurement took place or @c 0 if valid) + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #LOCATIONS_ERROR_INCORRECT_METHOD Incorrect method + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @pre The location service state must be #LOCATIONS_SERVICE_ENABLED with location_manager_start() * @pre The gps_status_satellite_updated_cb must be set with gps_status_set_satellite_updated_cb() - * @see gps_status_foreach_satellites_in_view() + * @see gps_status_foreach_satellites_in_view() */ int gps_status_get_last_satellite(location_manager_h manager, int *num_of_active, int *num_of_inview, time_t *timestamp); + /** * @brief Invokes the callback function for each last satellite which is recorded. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/location * @remarks This function is valid only for location managers with the #LOCATIONS_METHOD_GPS method. - * @param[in] manager The location manager handle - * @param[in] callback The iteration callback function - * @param[in] user_data The user data to be passed to the callback function - * @return @c 0 on success, otherwise a negative error value - * @retval #LOCATIONS_ERROR_NONE Successful - * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument - * @retval #LOCATIONS_ERROR_INCORRECT_METHOD Incorrect method - * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available + * @param[in] manager The location manager handle + * @param[in] callback The iteration callback function + * @param[in] user_data The user data to be passed to the callback function + * @return @c 0 on success, + * otherwise a negative error value + * @retval #LOCATIONS_ERROR_NONE Successful + * @retval #LOCATIONS_ERROR_INVALID_PARAMETER Invalid argument + * @retval #LOCATIONS_ERROR_INCORRECT_METHOD Incorrect method + * @retval #LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE Service not available * @retval #LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED The application does not have the privilege to call this method - * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported + * @retval #LOCATIONS_ERROR_NOT_SUPPORTED Not supported * @pre The location service state must be #LOCATIONS_SERVICE_ENABLED with location_manager_start() * @pre The gps_status_satellite_updated_cb must be set with gps_status_set_satellite_updated_cb() * @post It invokes gps_status_get_satellites_cb(). - * @see gps_status_get_last_satellite() - * @see gps_status_get_satellites_cb() + * @see gps_status_get_last_satellite() + * @see gps_status_get_satellites_cb() */ int gps_status_foreach_last_satellites_in_view(location_manager_h manager, gps_status_get_satellites_cb callback, void *user_data); + /** * @} */ diff --git a/packaging/capi-location-manager.changes b/packaging/capi-location-manager.changes index edaa3b1..2a85062 100644 --- a/packaging/capi-location-manager.changes +++ b/packaging/capi-location-manager.changes @@ -1,3 +1,27 @@ +[Version] capi-location-manager_0.7.6 +[Date] 2 Dec 2016 +[Title] Fix distance based callback +[Developer] Kyoungjun Sung + +================================================================================ +[Version] capi-location-manager_0.7.5 +[Date] 28 Oct 2016 +[Title] Dynamic interval table for multi handle +[Developer] Kyoungjun Sung + +================================================================================ +[Version] capi-location-manager_0.7.4 +[Date] 6 Sep 2016 +[Title] Passive location +[Developer] Kyoungjun Sung + +================================================================================ +[Version] capi-location-manager_0.7.3 +[Date] 18 Aug 2016 +[Title] Change mock location behavior +[Developer] Kyoungjun Sung + +================================================================================ [Version] capi-location-manager_0.7.1 [Date] 15 Apr 2016 [Title] Change batch range to support device behavior diff --git a/packaging/capi-location-manager.spec b/packaging/capi-location-manager.spec index d84035f..4bb8433 100644 --- a/packaging/capi-location-manager.spec +++ b/packaging/capi-location-manager.spec @@ -1,6 +1,6 @@ Name: capi-location-manager Summary: A Location Manager library in Tizen Native API -Version: 0.7.2 +Version: 0.7.6 Release: 1 Group: Location/API License: Apache-2.0 @@ -37,16 +37,11 @@ cp %{SOURCE1001} . export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE" export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE" -#export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE -fprofile-arcs -ftest-coverage -lgcov" export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE" -#export LDFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE -lgcov" - -#export CXXFLAGS = “-fprofile-arcs -ftest-coverage” -#export LDFLAGS = “-lgcov” MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'` cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DLIBDIR=%{_libdir} -DINCLUDEDIR=%{_includedir} \ --DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DTZ_SYS_RO_PACKAGES=%{TZ_SYS_RO_PACKAGES} -DTZ_SYS_RW_APP=%{TZ_SYS_RW_APP} \ +-DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DTZ_SYS_RO_PACKAGES=%{TZ_SYS_RO_PACKAGES} -DTZ_SYS_SHARE=%{TZ_SYS_SHARE} \ make %{?jobs:-j%jobs} @@ -84,5 +79,5 @@ Test application of Location Manager %files test %manifest test/capi-location-manager-test.manifest %{TZ_SYS_RO_PACKAGES}/capi-location-manager-test.xml -%{TZ_SYS_RW_APP}/test/location/location_test +%{TZ_SYS_SHARE}/location/location_test %endif diff --git a/src/locations.c b/src/locations.c index c282012..1f002a8 100755 --- a/src/locations.c +++ b/src/locations.c @@ -21,7 +21,7 @@ #include "locations.h" #include "location_internal.h" -static location_setting_changed_s g_location_setting[LOCATIONS_METHOD_MOCK + 1]; +static location_setting_changed_s g_location_setting[LOCATIONS_METHOD_PASSIVE + 1]; static location_method_e __convert_location_method_e(LocationMethod method) { @@ -56,8 +56,8 @@ static LocationMethod __convert_LocationMethod(location_method_e method) case LOCATIONS_METHOD_WPS: _method = LOCATION_METHOD_WPS; break; - case LOCATIONS_METHOD_MOCK: - _method = LOCATION_METHOD_MOCK; + case LOCATIONS_METHOD_PASSIVE: + _method = LOCATION_METHOD_PASSIVE; break; case LOCATIONS_METHOD_NONE: default: @@ -80,9 +80,10 @@ static void __cb_service_updated(GObject *self, guint type, gpointer data, gpoin sat->timestamp, handle->user_data[_LOCATIONS_EVENT_TYPE_SATELLITE]); } else if (type == DISTANCE_UPDATED && handle->user_cb[_LOCATIONS_EVENT_TYPE_DISTANCE]) { LocationPosition *pos = (LocationPosition *) data; - LocationVelocity *vel = (LocationVelocity *) velocity; /* current velocity */ - ((location_changed_cb) handle->user_cb[_LOCATIONS_EVENT_TYPE_DISTANCE])(0, pos->latitude, pos->longitude, pos->altitude, - vel->speed, vel->direction, pos->timestamp, handle->user_data[_LOCATIONS_EVENT_TYPE_DISTANCE]); + LocationVelocity *vel = (LocationVelocity *) velocity; + LocationAccuracy *acc = (LocationAccuracy *) accuracy; + ((location_changed_cb) handle->user_cb[_LOCATIONS_EVENT_TYPE_DISTANCE])(pos->latitude, pos->longitude, pos->altitude, + vel->speed, vel->direction, acc->horizontal_accuracy, pos->timestamp, handle->user_data[_LOCATIONS_EVENT_TYPE_DISTANCE]); } else { if (handle->user_cb[_LOCATIONS_EVENT_TYPE_POSITION] && (type & POSITION_UPDATED) != 0) { @@ -153,26 +154,6 @@ static void __cb_service_disabled(GObject *self, guint status, gpointer userdata } } -#if 0 -static void __cb_service_status_changed(GObject *self, guint status, gpointer userdata) -{ - LOCATIONS_LOGD("Invoked. status = %u", status); - location_manager_s *handle = (location_manager_s *) userdata; - - if (handle->user_cb[_LOCATIONS_EVENT_TYPE_SERVICE_STATE]) { - if (status == LOCATION_STATUS_2D_FIX || status == LOCATION_STATUS_3D_FIX) - ((location_service_state_changed_cb) - handle->user_cb[_LOCATIONS_EVENT_TYPE_SERVICE_STATE])(LOCATIONS_SERVICE_ENABLED, handle->user_data[_LOCATIONS_EVENT_TYPE_SERVICE_STATE]); - else if (status == LOCATION_STATUS_NO_FIX) - ((location_service_state_changed_cb) - handle->user_cb[_LOCATIONS_EVENT_TYPE_SERVICE_STATE])(LOCATIONS_SERVICE_DISABLED, handle->user_data[_LOCATIONS_EVENT_TYPE_SERVICE_STATE]); - else if (status == LOCATION_STATUS_MOCK_FAIL) - ((location_service_state_changed_cb) - handle->user_cb[_LOCATIONS_EVENT_TYPE_SERVICE_STATE])(LOCATIONS_SERVICE_ERROR, handle->user_data[_LOCATIONS_EVENT_TYPE_SERVICE_STATE]); - } -} -#endif - static int __compare_position(gconstpointer a, gconstpointer b) { if (location_position_equal((LocationPosition *) a, (LocationPosition *)b) == TRUE) @@ -410,15 +391,21 @@ EXPORT_API bool location_manager_is_supported_method(location_method_e method) return false; } - set_last_result(LOCATIONS_ERROR_NONE); - return location_is_supported_method(_method); + gboolean ret = location_is_supported_method(_method); + if (ret) { + set_last_result(LOCATIONS_ERROR_NONE); + return true; + } else { + set_last_result(LOCATIONS_ERROR_NOT_SUPPORTED); + return false; + } } EXPORT_API int location_manager_is_enabled_method(location_method_e method, bool *enable) { LOCATIONS_NOT_SUPPORTED_CHECK(__is_location_supported()); - if (method < LOCATIONS_METHOD_HYBRID || method > LOCATIONS_METHOD_MOCK) { + if (method < LOCATIONS_METHOD_HYBRID || method > LOCATIONS_METHOD_WPS) { LOCATIONS_LOGE("Not supported method [%d]", method); return LOCATIONS_ERROR_INCORRECT_METHOD; } @@ -435,6 +422,7 @@ EXPORT_API int location_manager_is_enabled_method(location_method_e method, bool return __convert_error_code(ret); //LCOV_EXCL_STOP } + if (is_enabled_val == -1) return TIZEN_ERROR_PERMISSION_DENIED; @@ -447,7 +435,7 @@ EXPORT_API int location_manager_enable_method(const location_method_e method, co { LOCATIONS_NOT_SUPPORTED_CHECK(__is_location_supported()); - if (method < LOCATIONS_METHOD_HYBRID || method > LOCATIONS_METHOD_MOCK) { + if (method < LOCATIONS_METHOD_HYBRID || method > LOCATIONS_METHOD_WPS) { LOCATIONS_LOGE("Not supported method [%d]", method); return LOCATIONS_ERROR_INCORRECT_METHOD; } @@ -466,9 +454,6 @@ EXPORT_API int location_manager_enable_method(const location_method_e method, co } return LOCATIONS_ERROR_NONE; - } else if (LOCATIONS_METHOD_MOCK == method) { - ret = location_enable_mock(LOCATION_METHOD_MOCK, enable); - return __convert_error_code(ret); } else { if ((LOCATIONS_METHOD_GPS == method) && (__is_gps_supported() == LOCATIONS_ERROR_NOT_SUPPORTED)) { LOCATIONS_LOGE("LOCATIONS_ERROR_NOT_SUPPORTED(0x%08x)", LOCATIONS_ERROR_NOT_SUPPORTED); @@ -491,24 +476,14 @@ EXPORT_API int location_manager_create(location_method_e method, location_manage { LOCATIONS_LOGD("location_manager_create (method : %d)", method); - if (method == LOCATIONS_METHOD_HYBRID) { + if (method == LOCATIONS_METHOD_HYBRID) + LOCATIONS_NOT_SUPPORTED_CHECK(__is_location_supported()); + else if (method == LOCATIONS_METHOD_GPS) + LOCATIONS_NOT_SUPPORTED_CHECK(__is_gps_supported()); + else if (method == LOCATIONS_METHOD_WPS) + LOCATIONS_NOT_SUPPORTED_CHECK(__is_wps_supported()); + else if (method == LOCATIONS_METHOD_PASSIVE) LOCATIONS_NOT_SUPPORTED_CHECK(__is_location_supported()); - } else if (method == LOCATIONS_METHOD_GPS) { - if (__is_gps_supported() == LOCATIONS_ERROR_NOT_SUPPORTED) { - LOCATIONS_LOGE("LOCATIONS_ERROR_NOT_SUPPORTED(0x%08x) : fail to location feature", LOCATIONS_ERROR_NOT_SUPPORTED); //LCOV_EXCL_LINE - return LOCATIONS_ERROR_NOT_SUPPORTED; //LCOV_EXCL_LINE - } - } else if (method == LOCATIONS_METHOD_WPS) { - if (__is_wps_supported() == LOCATIONS_ERROR_NOT_SUPPORTED) { - LOCATIONS_LOGE("LOCATIONS_ERROR_NOT_SUPPORTED(0x%08x) : fail to location feature", LOCATIONS_ERROR_NOT_SUPPORTED); - return LOCATIONS_ERROR_NOT_SUPPORTED; - } - } else if (method == LOCATIONS_METHOD_MOCK) { - if (__is_gps_supported() == LOCATIONS_ERROR_NOT_SUPPORTED) { - LOCATIONS_LOGE("LOCATIONS_ERROR_NOT_SUPPORTED(0x%08x) : fail to location feature", LOCATIONS_ERROR_NOT_SUPPORTED); //LCOV_EXCL_LINE - return LOCATIONS_ERROR_NOT_SUPPORTED; //LCOV_EXCL_LINE - } - } LocationMethod _method = __convert_LocationMethod(method); if (_method == LOCATION_METHOD_NONE) { @@ -537,7 +512,7 @@ EXPORT_API int location_manager_create(location_method_e method, location_manage memset(handle, 0, sizeof(location_manager_s)); - handle->object = location_new(_method); + handle->object = location_new(_method, FALSE); if (handle->object == NULL) { //LCOV_EXCL_START LOCATIONS_LOGE("LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE(0x%08x) : fail to location_new", LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE); @@ -555,11 +530,6 @@ EXPORT_API int location_manager_create(location_method_e method, location_manage if (!handle->sig_id[_LOCATION_SIGNAL_SERVICE_DISABLED]) handle->sig_id[_LOCATION_SIGNAL_SERVICE_DISABLED] = g_signal_connect(handle->object, "service-disabled", G_CALLBACK(__cb_service_disabled), handle); -#if 0 - if (!handle->sig_id[_LOCATION_SIGNAL_STATUS_CHANGED]) - handle->sig_id[_LOCATION_SIGNAL_STATUS_CHANGED] = g_signal_connect(handle->object, "status-changed", G_CALLBACK(__cb_service_status_changed), handle); -#endif - *manager = (location_manager_h) handle; return LOCATIONS_ERROR_NONE; } @@ -571,7 +541,6 @@ EXPORT_API int location_manager_destroy(location_manager_h manager) LOCATIONS_NULL_ARG_CHECK(manager); location_manager_s *handle = (location_manager_s *) manager; - if (handle->sig_id[_LOCATION_SIGNAL_SERVICE_ENABLED]) { g_signal_handler_disconnect(handle->object, handle->sig_id[_LOCATION_SIGNAL_SERVICE_ENABLED]); handle->sig_id[_LOCATION_SIGNAL_SERVICE_ENABLED] = 0; @@ -582,19 +551,12 @@ EXPORT_API int location_manager_destroy(location_manager_h manager) handle->sig_id[_LOCATION_SIGNAL_SERVICE_DISABLED] = 0; } -#if 0 - if (handle->sig_id[_LOCATION_SIGNAL_STATUS_CHANGED]) { - g_signal_handler_disconnect(handle->object, handle->sig_id[_LOCATION_SIGNAL_STATUS_CHANGED]); - handle->sig_id[_LOCATION_SIGNAL_STATUS_CHANGED] = 0; - } -#endif - if (handle->sig_id[_LOCATION_SIGNAL_ERROR_EMITTED]) { g_signal_handler_disconnect(handle->object, handle->sig_id[_LOCATION_SIGNAL_ERROR_EMITTED]); //LCOV_EXCL_LINE handle->sig_id[_LOCATION_SIGNAL_ERROR_EMITTED] = 0; //LCOV_EXCL_LINE } - int ret = location_free(handle->object); + int ret = location_free(handle->object, FALSE); if (ret != LOCATIONS_ERROR_NONE) return __convert_error_code(ret); //LCOV_EXCL_LINE @@ -612,7 +574,7 @@ EXPORT_API int location_manager_start(location_manager_h manager) if (!handle->sig_id[_LOCATION_SIGNAL_SERVICE_UPDATED]) handle->sig_id[_LOCATION_SIGNAL_SERVICE_UPDATED] = g_signal_connect(handle->object, "service-updated", G_CALLBACK(__cb_service_updated), handle); - if (handle->method >= LOCATIONS_METHOD_HYBRID && handle->method <= LOCATIONS_METHOD_MOCK) { + if (handle->method >= LOCATIONS_METHOD_HYBRID && handle->method <= LOCATIONS_METHOD_PASSIVE) { if (!handle->sig_id[_LOCATION_SIGNAL_ZONE_IN]) handle->sig_id[_LOCATION_SIGNAL_ZONE_IN] = g_signal_connect(handle->object, "zone-in", G_CALLBACK(__cb_zone_in), handle); @@ -656,8 +618,15 @@ EXPORT_API int location_manager_request_single_location(location_manager_h manag return ret; ret = location_request_single_location(handle->object, timeout); - if (ret != LOCATION_ERROR_NONE) - return __convert_error_code(ret); //LCOV_EXCL_LINE + if (ret != LOCATION_ERROR_NONE) { + //LCOV_EXCL_START + if (ret == LOCATION_ERROR_NOT_SUPPORTED) { + LOCATIONS_LOGE("LOCATIONS_ERROR_INCORRECT_METHOD : method - %d", handle->method); + return LOCATIONS_ERROR_INCORRECT_METHOD; + } + return __convert_error_code(ret); + //LCOV_EXCL_STOP + } return LOCATIONS_ERROR_NONE; } @@ -675,7 +644,7 @@ EXPORT_API int location_manager_stop(location_manager_h manager) handle->sig_id[_LOCATION_SIGNAL_SERVICE_UPDATED] = 0; } - if (handle->method >= LOCATIONS_METHOD_HYBRID && handle->method <= LOCATIONS_METHOD_MOCK) { + if (handle->method >= LOCATIONS_METHOD_HYBRID && handle->method <= LOCATIONS_METHOD_PASSIVE) { if (handle->sig_id[_LOCATION_SIGNAL_ZONE_IN]) { g_signal_handler_disconnect(handle->object, handle->sig_id[_LOCATION_SIGNAL_ZONE_IN]); handle->sig_id[_LOCATION_SIGNAL_ZONE_IN] = 0; @@ -771,8 +740,8 @@ EXPORT_API int location_manager_get_method(location_manager_h manager, location_ case LOCATION_METHOD_WPS: *method = LOCATIONS_METHOD_WPS; //LCOV_EXCL_LINE break; //LCOV_EXCL_LINE - case LOCATION_METHOD_MOCK: - *method = LOCATIONS_METHOD_MOCK; + case LOCATION_METHOD_PASSIVE: + *method = LOCATIONS_METHOD_PASSIVE; break; default: { LOCATIONS_LOGE("[LOCATIONS_ERROR_INVALID_PARAMETER] method : %d ", method); //LCOV_EXCL_LINE @@ -794,10 +763,9 @@ EXPORT_API int location_manager_get_position(location_manager_h manager, double LOCATIONS_NULL_ARG_CHECK(timestamp); location_manager_s *handle = (location_manager_s *) manager; - int ret; LocationPosition *pos = NULL; LocationAccuracy *acc = NULL; - ret = location_get_position(handle->object, &pos, &acc); + int ret = location_get_position(handle->object, &pos, &acc); if (ret != LOCATION_ERROR_NONE) return __convert_error_code(ret); //LCOV_EXCL_LINE @@ -831,11 +799,10 @@ EXPORT_API int location_manager_get_location(location_manager_h manager, double LOCATIONS_NULL_ARG_CHECK(timestamp); location_manager_s *handle = (location_manager_s *) manager; - int ret; LocationPosition *pos = NULL; LocationVelocity *vel = NULL; LocationAccuracy *acc = NULL; - ret = location_get_position_ext(handle->object, &pos, &vel, &acc); + int ret = location_get_position_ext(handle->object, &pos, &vel, &acc); if (ret != LOCATION_ERROR_NONE) return __convert_error_code(ret); //LCOV_EXCL_LINE @@ -871,10 +838,10 @@ EXPORT_API int location_manager_get_velocity(location_manager_h manager, double LOCATIONS_NULL_ARG_CHECK(timestamp); location_manager_s *handle = (location_manager_s *) manager; - int ret; LocationVelocity *vel = NULL; LocationAccuracy *acc = NULL; - ret = location_get_velocity(handle->object, &vel, &acc); + + int ret = location_get_velocity(handle->object, &vel, &acc); if (ret != LOCATION_ERROR_NONE) return __convert_error_code(ret); //LCOV_EXCL_LINE @@ -1049,6 +1016,7 @@ EXPORT_API int location_manager_get_last_accuracy(location_manager_h manager, lo EXPORT_API int location_manager_get_accessibility_state(location_accessibility_state_e *state) { + dlog_print(DLOG_WARN, LOG_TAG, "DEPRECATION WARNING: location_manager_get_accessibility_state() is deprecated and will be removed from next release."); LOCATIONS_LOGD("location_manager_get_accessibility_state"); LOCATIONS_NOT_SUPPORTED_CHECK(__is_location_supported()); LOCATIONS_NULL_ARG_CHECK(state); @@ -1195,8 +1163,12 @@ EXPORT_API int location_manager_set_setting_changed_cb(location_method_e method, LocationMethod _method = __convert_LocationMethod(method); int ret = LOCATION_ERROR_NONE; - if (_method == LOCATION_METHOD_NONE) + if (_method == LOCATION_METHOD_NONE) { return __convert_error_code(LOCATION_ERROR_PARAMETER); + } else if (_method == LOCATION_METHOD_PASSIVE) { + LOCATIONS_LOGE("LOCATIONS_ERROR_INCORRECT_METHOD"); //LCOV_EXCL_LINE + return LOCATIONS_ERROR_INCORRECT_METHOD; //LCOV_EXCL_LINE + } g_location_setting[_method].callback = callback; g_location_setting[_method].user_data = user_data; @@ -1215,8 +1187,12 @@ EXPORT_API int location_manager_unset_setting_changed_cb(location_method_e metho LocationMethod _method = __convert_LocationMethod(method); int ret = LOCATION_ERROR_NONE; - if (_method == LOCATION_METHOD_NONE) + if (_method == LOCATION_METHOD_NONE) { return __convert_error_code(LOCATION_ERROR_PARAMETER); + } else if (_method == LOCATION_METHOD_PASSIVE) { + LOCATIONS_LOGE("LOCATIONS_ERROR_INCORRECT_METHOD"); //LCOV_EXCL_LINE + return LOCATIONS_ERROR_INCORRECT_METHOD; //LCOV_EXCL_LINE + } ret = location_ignore_setting_notify(_method, __setting_changed_cb); if (ret != LOCATION_ERROR_NONE) { @@ -1585,13 +1561,29 @@ EXPORT_API int location_manager_foreach_location_batch(location_manager_h manage //LCOV_EXCL_STOP } +EXPORT_API int location_manager_is_enabled_mock_location(bool *enabled) +{ + LOCATIONS_NOT_SUPPORTED_CHECK(__is_location_supported()); + LOCATIONS_NULL_ARG_CHECK(enabled); + int is_enabled_val = -1; + int ret = location_is_enabled_method(INTERNAL_METHOD_MOCK, &is_enabled_val); + if (ret != LOCATION_ERROR_NONE) + return __convert_error_code(ret); //LCOV_EXCL_LINE + + if (is_enabled_val == -1) + return TIZEN_ERROR_PERMISSION_DENIED; //LCOV_EXCL_LINE + + *enabled = (is_enabled_val == 0) ? FALSE : TRUE; + return LOCATIONS_ERROR_NONE; +} + EXPORT_API int location_manager_enable_mock_location(const bool enable) { LOCATIONS_LOGD("enable: %d", enable); LOCATIONS_NOT_SUPPORTED_CHECK(__is_location_supported()); int ret = LOCATION_ERROR_NONE; - ret = location_enable_mock(LOCATION_METHOD_MOCK, enable); + ret = location_enable_mock(enable); return __convert_error_code(ret); } @@ -1612,7 +1604,7 @@ EXPORT_API int location_manager_set_mock_location(location_manager_h manager, co LocationVelocity *vel = NULL; LocationAccuracy *acc = NULL; - ret = location_is_enabled_method(LOCATION_METHOD_MOCK, &enabled); + ret = location_is_enabled_method(INTERNAL_METHOD_MOCK, &enabled); LOCATIONS_LOGD("enable: %d, ret: %d", enabled, ret); if (ret == LOCATIONS_ERROR_NONE) { if (enabled == 0) @@ -1629,7 +1621,7 @@ EXPORT_API int location_manager_set_mock_location(location_manager_h manager, co vel = location_velocity_new(0, speed, direction, 0); if (!vel) { //LCOV_EXCL_START - LOCATIONS_LOGE("Failed to create volocity"); + LOCATIONS_LOGE("Failed to create velocity"); location_position_free(pos); return LOCATIONS_ERROR_OUT_OF_MEMORY; //LCOV_EXCL_STOP @@ -1652,7 +1644,6 @@ EXPORT_API int location_manager_set_mock_location(location_manager_h manager, co location_accuracy_free(acc); return __convert_error_code(ret); - } EXPORT_API int location_manager_clear_mock_location(location_manager_h manager) @@ -1661,10 +1652,10 @@ EXPORT_API int location_manager_clear_mock_location(location_manager_h manager) LOCATIONS_NULL_ARG_CHECK(manager); location_manager_s *handle = (location_manager_s *) manager; - int ret = LOCATION_ERROR_NONE; int enabled; - ret = location_is_enabled_method(LOCATION_METHOD_MOCK, &enabled); + int ret = location_is_enabled_method(INTERNAL_METHOD_MOCK, &enabled); + LOCATIONS_LOGD("enable: %d, ret: %d", enabled, ret); if (ret == LOCATIONS_ERROR_NONE) { if (enabled == 0) return __convert_error_code(LOCATION_ERROR_SETTING_OFF); diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6f1e359..a442ad9 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -17,5 +17,5 @@ FOREACH(src ${sources}) TARGET_LINK_LIBRARIES(${src_name} ${fw_name} ${${fw_test}_LDFLAGS}) ENDFOREACH() -INSTALL(TARGETS ${src_name} DESTINATION ${TZ_SYS_RW_APP}/test/location/) +INSTALL(TARGETS ${src_name} DESTINATION ${TZ_SYS_SHARE}/location/) INSTALL(FILES ${fw_test}.xml DESTINATION ${TZ_SYS_RO_PACKAGES}/) diff --git a/test/capi-location-manager-test.xml b/test/capi-location-manager-test.xml index c1ed32e..17d722d 100644 --- a/test/capi-location-manager-test.xml +++ b/test/capi-location-manager-test.xml @@ -8,7 +8,7 @@ http://tizen.org/privilege/location http://tizen.org/privilege/location.enable - + diff --git a/test/location_test.c b/test/location_test.c index e86eca2..75d69c7 100755 --- a/test/location_test.c +++ b/test/location_test.c @@ -368,10 +368,12 @@ static void _setting_cb(location_method_e method, bool enable, void *user_data) void _satellite_updated_cb(int num_of_active, int num_of_inview, time_t timestamp, void *user_data) { - fprintf(stderr, "-------------------------- satellite updated --------------------------\n"); - fprintf(stderr, "num_of_active[%d] num_of_inview[%d] timestamp[%ld]\n", num_of_active, num_of_inview, timestamp); +/* fprintf(stderr, "-------------------------- satellite updated --------------------------\n"); */ + fprintf(stderr, "--- num_of_active[%d] num_of_inview[%d] timestamp[%ld]\n", num_of_active, num_of_inview, timestamp); - test_timer = g_timeout_add_seconds(1, wait_test, NULL); + repeat_count++; + if (repeat_count > 60) + test_timer = g_timeout_add_seconds(1, wait_test, NULL); } static void print_location_status() @@ -386,10 +388,6 @@ static void print_location_status() location_manager_is_enabled_method(LOCATIONS_METHOD_WPS, &is_enabled); fprintf(stderr, "wps: %d, ", is_enabled); - - /* location_manager_is_test_location_enabled(&is_enabled); */ - location_manager_is_enabled_method(LOCATIONS_METHOD_MOCK, &is_enabled); - fprintf(stderr, "mock: %d\n", is_enabled); } static int enable_method(location_method_e method, bool enable) @@ -499,11 +497,11 @@ static int location_test() fprintf(stderr, "gps_status_set_satellite_updated_cb: %d\n", ret); } break; - } + } case 4: case 5: case 6: { - int timeout = 30; + int timeout = 60; fprintf(stderr, "\n Input timeout ==> "); ret = scanf("%d", &timeout); @@ -513,7 +511,7 @@ static int location_test() ret = location_manager_request_single_location(manager, timeout, _location_cb, manager); fprintf(stderr, "request single_location (method: %d): %d\n", method, ret); break; - } + } case 11: case 12: case 13: { @@ -592,8 +590,8 @@ static int location_test() ret = location_manager_enable_mock_location(onoff); fprintf(stderr, "Enabling mock test: ret=%d\n", ret); - ret = location_manager_create(LOCATIONS_METHOD_MOCK, &manager); - fprintf(stderr, "location_manager_create (method: %d): %d\n", LOCATIONS_METHOD_MOCK, ret); + ret = location_manager_create(LOCATIONS_METHOD_GPS, &manager); + fprintf(stderr, "location_manager_create (method: %d - mock): %d\n", LOCATIONS_METHOD_GPS, ret); ret = location_manager_set_mock_location(manager, 10, 20, 0, 40, 50, 100); fprintf(stderr, "location_manager_set_mock_location: %d\n", ret);