diff options
author | Jaikumar Ganesh <jaikumar@google.com> | 2013-03-29 11:56:36 -0700 |
---|---|---|
committer | Jaikumar Ganesh <jaikumar@google.com> | 2013-03-29 11:56:36 -0700 |
commit | 3e39c4906d258afcbd92b039813cdc954cb626a9 (patch) | |
tree | 2025434d1ae23f402c739b63e8a612300154b0a8 /include/hardware/gps.h | |
parent | fb40d5de36fc93a1a3cab9c2cd73988ac52043a2 (diff) | |
download | hardware_libhardware-3e39c4906d258afcbd92b039813cdc954cb626a9.zip hardware_libhardware-3e39c4906d258afcbd92b039813cdc954cb626a9.tar.gz hardware_libhardware-3e39c4906d258afcbd92b039813cdc954cb626a9.tar.bz2 |
Gps geofence.
Make the add / remove / pause / resume asynchronous.
Change-Id: I6d6d254613623b564f1cb6a59742fe000e47ac1e
Diffstat (limited to 'include/hardware/gps.h')
-rw-r--r-- | include/hardware/gps.h | 78 |
1 files changed, 58 insertions, 20 deletions
diff --git a/include/hardware/gps.h b/include/hardware/gps.h index 183647c..458b5b4 100644 --- a/include/hardware/gps.h +++ b/include/hardware/gps.h @@ -800,9 +800,63 @@ typedef void (*gps_geofence_transition_callback) (int32_t geofence_id, GpsLocat */ typedef void (*gps_geofence_status_callback) (int32_t status, GpsLocation* last_location); +/** + * The callback associated with the add_geofence call. + * + * Parameter: + * geofence_id - Id of the geofence. + * status - GPS_GEOFENCE_OPERATION_SUCCESS + * GPS_GEOFENCE_ERROR_TOO_MANY_GEOFENCES - geofence limit has been reached. + * GPS_GEOFENCE_ERROR_ID_EXISTS - geofence with id already exists + * GPS_GEOFENCE_ERROR_INVALID_TRANSITION - the monitorTransition contains an + * invalid transition + * GPS_GEOFENCE_ERROR_GENERIC - for other errors. + */ +typedef void (*gps_geofence_add_callback) (int32_t geofence_id, int32_t status); + +/** + * The callback associated with the remove_geofence call. + * + * Parameter: + * geofence_id - Id of the geofence. + * status - GPS_GEOFENCE_OPERATION_SUCCESS + * GPS_GEOFENCE_ERROR_ID_UNKNOWN - for invalid id + * GPS_GEOFENCE_ERROR_GENERIC for others. + */ +typedef void (*gps_geofence_remove_callback) (int32_t geofence_id, int32_t status); + + +/** + * The callback associated with the pause_geofence call. + * + * Parameter: + * geofence_id - Id of the geofence. + * status - GPS_GEOFENCE_OPERATION_SUCCESS + * GPS_GEOFENCE_ERROR_ID_UNKNOWN - for invalid id + * GPS_GEOFENCE_ERROR_INVALID_TRANSITION - + * when monitor_transitions is invalid + * GPS_GEOFENCE_ERROR_GENERIC for others. + */ +typedef void (*gps_geofence_pause_callback) (int32_t geofence_id, int32_t status); + +/** + * The callback associated with the resume_geofence call. + * + * Parameter: + * geofence_id - Id of the geofence. + * status - GPS_GEOFENCE_OPERATION_SUCCESS + * GPS_GEOFENCE_ERROR_ID_UNKNOWN - for invalid id + * GPS_GEOFENCE_ERROR_GENERIC for others. + */ +typedef void (*gps_geofence_resume_callback) (int32_t geofence_id, int32_t status); + typedef struct { gps_geofence_transition_callback geofence_transition_callback; gps_geofence_status_callback geofence_status_callback; + gps_geofence_add_callback geofence_add_callback; + gps_geofence_remove_callback geofence_remove_callback; + gps_geofence_pause_callback geofence_pause_callback; + gps_geofence_resume_callback geofence_resume_callback; gps_create_thread create_thread_cb; } GpsGeofenceCallbacks; @@ -845,10 +899,8 @@ typedef struct { * unknown_timer_ms - The time limit after which the UNCERTAIN transition * should be triggered. This paramter is defined in milliseconds. * See above for a detailed explanation. - * Return value: GPS_GEOFENCE_OPERATION_SUCCESS on success, - * or any of the GPS_GEOFENCE_ERRORS on failure. */ - int (*add_geofence_area) (int32_t geofence_id, double latitude, + void (*add_geofence_area) (int32_t geofence_id, double latitude, double longitude, double radius_meters, int last_transition, int monitor_transitions, int notification_responsiveness_ms, @@ -858,12 +910,8 @@ typedef struct { * Pause monitoring a particular geofence. * Parameters: * geofence_id - The id for the geofence. - * - * Return value: GPS_GEOFENCE_OPERATION_SUCCESS on success, - * GPS_GEOFENCE_ERROR_ID_UNKNOWN - for invalid id - * GPS_GEOFENCE_ERROR_GENERIC for others. */ - int (*pause_geofence) (int32_t geofence_id); + void (*pause_geofence) (int32_t geofence_id); /** * Resume monitoring a particular geofence. @@ -874,26 +922,16 @@ typedef struct { * GPS_GEOFENCE_UNCERTAIN. * This supersedes the value associated provided in the * add_geofence_area call. - * - * Return value: GPS_GEOFENCE_OPERATION_SUCCESS on success, - * GPS_GEOFENCE_ERROR_ID_UNKNOWN - for invalid id - * GPS_GEOFENCE_ERROR_INVALID_TRANSITION - when - * monitor_transitions is invalid - * GPS_GEOFENCE_ERROR_GENERIC for others. - * */ - int (*resume_geofence) (int32_t geofence_id, int monitor_transitions); + void (*resume_geofence) (int32_t geofence_id, int monitor_transitions); /** * Remove a geofence area. After the function returns, no notifications * should be sent. * Parameter: * geofence_id - The id for the geofence. - * Return value: GPS_GEOFENCE_OPERATION_SUCCESS on success, - * GPS_GEOFENCE_ERROR_ID_UNKNOWN - for invalid id - * GPS_GEOFENCE_ERROR_GENERIC for others. */ - int (*remove_geofence_area) (int32_t geofence_id); + void (*remove_geofence_area) (int32_t geofence_id); } GpsGeofencingInterface; __END_DECLS |