19 #ifndef UBUNTU_HARDWARE_GPS_H_
20 #define UBUNTU_HARDWARE_GPS_H_
37 #define U_HARDWARE_GPS_MAX_SVS 32
64 #define U_HARDWARE_GPS_CAPABILITY_SCHEDULING 0x0000001
66 #define U_HARDWARE_GPS_CAPABILITY_MSB 0x0000002
68 #define U_HARDWARE_GPS_CAPABILITY_MSA 0x0000004
70 #define U_HARDWARE_GPS_CAPABILITY_SINGLE_SHOT 0x0000008
72 #define U_HARDWARE_GPS_CAPABILITY_ON_DEMAND_TIME 0x0000010
80 #define U_HARDWARE_GPS_NI_NEED_NOTIFY 0x0001
82 #define U_HARDWARE_GPS_NI_NEED_VERIFY 0x0002
84 #define U_HARDWARE_GPS_NI_PRIVACY_OVERRIDE 0x0004
111 #define U_HARDWARE_GPS_NI_SHORT_STRING_MAXLEN 256
112 #define U_HARDWARE_GPS_NI_LONG_STRING_MAXLEN 2048
187 #define U_HARDWARE_GPS_DELETE_EPHEMERIS 0x0001
188 #define U_HARDWARE_GPS_DELETE_ALMANAC 0x0002
189 #define U_HARDWARE_GPS_DELETE_POSITION 0x0004
190 #define U_HARDWARE_GPS_DELETE_TIME 0x0008
191 #define U_HARDWARE_GPS_DELETE_IONO 0x0010
192 #define U_HARDWARE_GPS_DELETE_UTC 0x0020
193 #define U_HARDWARE_GPS_DELETE_HEALTH 0x0040
194 #define U_HARDWARE_GPS_DELETE_SVDIR 0x0080
195 #define U_HARDWARE_GPS_DELETE_SVSTEER 0x0100
196 #define U_HARDWARE_GPS_DELETE_SADATA 0x0200
197 #define U_HARDWARE_GPS_DELETE_RTI 0x0400
198 #define U_HARDWARE_GPS_DELETE_CELLDB_INFO 0x8000
199 #define U_HARDWARE_GPS_DELETE_ALL 0xFFFF
203 #define U_HARDWARE_GPS_AGPS_TYPE_SUPL 1
204 #define U_HARDWARE_GPS_AGPS_TYPE_C2K 2
208 #define U_HARDWARE_GPS_AGPS_REF_LOCATION_TYPE_GSM_CELLID 1
210 #define U_HARDWARE_GPS_AGPS_REF_LOCATION_TYPE_UMTS_CELLID 2
212 #define U_HARDWARE_GPS_AGPS_REG_LOCATION_TYPE_MAC 3
215 #define U_HARDWARE_GPS_LOCATION_HAS_LAT_LONG 0x0001
217 #define U_HARDWARE_GPS_LOCATION_HAS_ALTITUDE 0x0002
219 #define U_HARDWARE_GPS_LOCATION_HAS_SPEED 0x0004
221 #define U_HARDWARE_GPS_LOCATION_HAS_BEARING 0x0008
223 #define U_HARDWARE_GPS_LOCATION_HAS_ACCURACY 0x0010
486 int64_t time_reference,
512 size_t size_of_struct);
550 UHardwareGpsAGpsType type,
551 const char* hostname,
562 UHardwareGpsAidingData flags);
577 uint32_t min_interval,
578 uint32_t preferred_accuracy,
579 uint32_t preferred_time);
591 #endif // UBUNTU_HARDWARE_GPS_H_
UHardwareGpsUserResponseType default_response
void(* UHardwareGpsRequestUtcTime)(void *context)
#define U_HARDWARE_GPS_MAX_SVS
UBUNTU_DLL_PUBLIC void u_hardware_gps_agps_set_server_for_type(UHardwareGps self, UHardwareGpsAGpsType type, const char *hostname, uint16_t port)
Sets the hostname and port for the AGPS server.
UBUNTU_DLL_PUBLIC bool u_hardware_gps_stop(UHardwareGps self)
UHardwareGpsSvStatusCallback sv_status_cb
UHardwareGpsRequestUtcTime request_utc_time_cb
UBUNTU_DLL_PUBLIC bool u_hardware_gps_set_position_mode(UHardwareGps self, uint32_t mode, uint32_t recurrence, uint32_t min_interval, uint32_t preferred_accuracy, uint32_t preferred_time)
Sets the positioning mode of the chipset.
uint16_t UHardwareGpsAGpsType
#define U_HARDWARE_GPS_NI_LONG_STRING_MAXLEN
Describes a wifi ID as understood by the GPS chipset.
UHardwareGpsNiNotifyCallback gps_ni_notify_cb
UHardwareGpsNmeaCallback nmea_cb
void(* UHardwareGpsSetCapabilities)(uint32_t capabilities, void *context)
#define U_HARDWARE_GPS_NI_SHORT_STRING_MAXLEN
Describes a reference location, either a radio cell or a wifi.
UHardwareGpsSetCapabilities set_capabilities_cb
void(* UHardwareGpsAGpsRilRequestSetId)(uint32_t flags, void *context)
UBUNTU_DLL_PUBLIC UHardwareGps u_hardware_gps_new(UHardwareGpsParams *params)
uint32_t UHardwareGpsNiNotifyFlags
int UHardwareGpsNiEncodingType
UBUNTU_DLL_PUBLIC void u_hardware_gps_inject_xtra_data(UHardwareGps self, char *data, int length)
UBUNTU_DLL_PUBLIC void u_hardware_gps_agps_notify_connection_not_available(UHardwareGps self)
Notifies the chipset that an AGPS data connection is not available.
UHardwareGpsAGpsRefLocationCellID cellID
UHardwareGpsNiEncodingType requestor_id_encoding
UBUNTU_DLL_PUBLIC void u_hardware_gps_delete_aiding_data(UHardwareGps self, UHardwareGpsAidingData flags)
Requests the chipset to delete the aiding data specified in flags.
UBUNTU_DLL_PUBLIC bool u_hardware_gps_start(UHardwareGps self)
UHardwareGpsAGpsRilRequestRefLoc request_refloc_cb
int UHardwareGpsUserResponseType
UBUNTU_DLL_PUBLIC void u_hardware_gps_inject_time(UHardwareGps self, int64_t time, int64_t time_reference, int uncertainty)
Injects a new reference time into the GPS chipset.
UHardwareGpsNiEncodingType text_encoding
uint16_t UHardwareGpsAidingData
UBUNTU_DLL_PUBLIC void u_hardware_gps_inject_location(UHardwareGps self, UHardwareGpsLocation location)
Injects a new reference location into the GPS chipset.
UBUNTU_DLL_PUBLIC void u_hardware_gps_agps_notify_connection_is_closed(UHardwareGps self)
Notifies the chipset that an AGPS data connection has been closed.
#define U_HARDWARE_GPS_AGPS_TYPE_SUPL
UHardwareGpsNiNotifyFlags notify_flags
void(* UHardwareGpsLocationCallback)(UHardwareGpsLocation *location, void *context)
UHardwareGpsLocationCallback location_cb
uint32_t used_in_fix_mask
UHardwareGpsAGpsStatusCallback agps_status_cb
void(* UHardwareGpsStatusCallback)(uint16_t status, void *context)
UBUNTU_DLL_PUBLIC void u_hardware_gps_agps_notify_connection_is_open(UHardwareGps self, const char *apn)
Notifies the chipset that a data connection is availble.
void(* UHardwareGpsNmeaCallback)(int64_t timestamp, const char *nmea, int length, void *context)
#define UBUNTU_DLL_PUBLIC
UHardwareGpsStatusCallback status_cb
UHardwareGpsXtraDownloadRequest xtra_download_request_cb
UHardwareGpsAGpsRefLocationMac mac
void(* UHardwareGpsSvStatusCallback)(UHardwareGpsSvStatus *sv_info, void *context)
Describes a cell ID as understood by the GPS chipset.
UBUNTU_DLL_PUBLIC void u_hardware_gps_agps_set_reference_location(UHardwareGps self, UHardwareGpsAGpsRefLocation *location, size_t size_of_struct)
Informs the GPS chipset about wifi ap's or radio cells to be used in AGPS calls.
void(* UHardwareGpsXtraDownloadRequest)(void *context)
UBUNTU_DLL_PUBLIC void u_hardware_gps_delete(UHardwareGps handle)
struct UHardwareGps_ * UHardwareGps
void(* UHardwareGpsNiNotifyCallback)(UHardwareGpsNiNotification *notification, void *context)
#define U_HARDWARE_GPS_AGPS_TYPE_C2K
void(* UHardwareGpsAGpsRilRequestRefLoc)(uint32_t flags, void *context)
void(* UHardwareGpsAGpsStatusCallback)(UHardwareGpsAGpsStatus *status, void *context)
UHardwareGpsAGpsRilRequestSetId request_setid_cb