Ubuntu Platform API  1.0.0
A library helping with tight integration into the Ubuntu platform
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
gps.h File Reference
#include <ubuntu/visibility.h>
#include <stdint.h>
#include <stddef.h>
+ Include dependency graph for gps.h:

Go to the source code of this file.

Data Structures

struct  UHardwareGpsLocation
 
struct  UHardwareGpsSvInfo
 
struct  UHardwareGpsSvStatus
 
struct  UHardwareGpsAGpsStatus
 
struct  UHardwareGpsNiNotification
 
struct  UHardwareGpsParams
 

Macros

#define U_HARDWARE_GPS_MAX_SVS   32
 
#define U_HARDWARE_GPS_CAPABILITY_SCHEDULING   0x0000001
 
#define U_HARDWARE_GPS_CAPABILITY_MSB   0x0000002
 
#define U_HARDWARE_GPS_CAPABILITY_MSA   0x0000004
 
#define U_HARDWARE_GPS_CAPABILITY_SINGLE_SHOT   0x0000008
 
#define U_HARDWARE_GPS_CAPABILITY_ON_DEMAND_TIME   0x0000010
 
#define U_HARDWARE_GPS_NI_NEED_NOTIFY   0x0001
 
#define U_HARDWARE_GPS_NI_NEED_VERIFY   0x0002
 
#define U_HARDWARE_GPS_NI_PRIVACY_OVERRIDE   0x0004
 
#define U_HARDWARE_GPS_NI_SHORT_STRING_MAXLEN   256
 
#define U_HARDWARE_GPS_NI_LONG_STRING_MAXLEN   2048
 
#define U_HARDWARE_GPS_LOCATION_HAS_LAT_LONG   0x0001
 
#define U_HARDWARE_GPS_LOCATION_HAS_ALTITUDE   0x0002
 
#define U_HARDWARE_GPS_LOCATION_HAS_SPEED   0x0004
 
#define U_HARDWARE_GPS_LOCATION_HAS_BEARING   0x0008
 
#define U_HARDWARE_GPS_LOCATION_HAS_ACCURACY   0x0010
 

Typedefs

typedef uint32_t UHardwareGpsNiNotifyFlags
 
typedef int UHardwareGpsUserResponseType
 
typedef int UHardwareGpsNiEncodingType
 
typedef struct UHardwareGps_ * UHardwareGps
 
typedef void(* UHardwareGpsLocationCallback )(UHardwareGpsLocation *location, void *context)
 
typedef void(* UHardwareGpsStatusCallback )(uint16_t status, void *context)
 
typedef void(* UHardwareGpsSvStatusCallback )(UHardwareGpsSvStatus *sv_info, void *context)
 
typedef void(* UHardwareGpsNmeaCallback )(int64_t timestamp, const char *nmea, int length, void *context)
 
typedef void(* UHardwareGpsSetCapabilities )(uint32_t capabilities, void *context)
 
typedef void(* UHardwareGpsRequestUtcTime )(void *context)
 
typedef void(* UHardwareGpsXtraDownloadRequest )(void *context)
 
typedef void(* UHardwareGpsAGpsStatusCallback )(UHardwareGpsAGpsStatus *status, void *context)
 
typedef void(* UHardwareGpsNiNotifyCallback )(UHardwareGpsNiNotification *notification, void *context)
 
typedef void(* UHardwareGpsAGpsRilRequestSetId )(uint32_t flags, void *context)
 
typedef void(* UHardwareGpsAGpsRilRequestRefLoc )(uint32_t flags, void *context)
 

Enumerations

enum  {
  U_HARDWARE_GPS_STATUS_NONE = 0,
  U_HARDWARE_GPS_STATUS_SESSION_BEGIN = 1,
  U_HARDWARE_GPS_STATUS_SESSION_END = 2,
  U_HARDWARE_GPS_STATUS_ENGINE_ON = 3,
  U_HARDWARE_GPS_STATUS_ENGINE_OFF = 4
}
 
enum  {
  U_HARDWARE_GPS_NI_RESPONSE_ACCEPT = 1,
  U_HARDWARE_GPS_NI_RESPONSE_DENY = 2,
  U_HARDWARE_GPS_NI_RESPONSE_NORESP = 3
}
 
enum  {
  U_HARDWARE_GPS_NI_TYPE_VOICE = 1,
  U_HARDWARE_GPS_NI_TYPE_UMTS_SUPL = 2,
  U_HARDWARE_GPS_NI_TYPE_UMTS_CTRL_PLANE = 3
}
 
enum  {
  U_HARDWARE_GPS_ENC_NONE = 0,
  U_HARDWARE_GPS_ENC_SUPL_GSM_DEFAULT = 1,
  U_HARDWARE_GPS_ENC_SUPL_UTF8 = 2,
  U_HARDWARE_GPS_ENC_SUPL_UCS2 = 3,
  U_HARDWARE_GPS_ENC_UNKNOWN = -1
}
 
enum  {
  U_HARDWARE_GPS_AGPS_TYPE_SUPL = 1,
  U_HARDWARE_GPS_AGPS_TYPE_C2K = 2
}
 
enum  {
  U_HARDWARE_GPS_POSITION_MODE_STANDALONE = 0,
  U_HARDWARE_GPS_POSITION_MODE_MS_BASED = 1,
  U_HARDWARE_GPS_POSITION_MODE_MS_ASSISTED = 2
}
 
enum  {
  U_HARDWARE_GPS_POSITION_RECURRENCE_PERIODIC = 0,
  U_HARDWARE_GPS_POSITION_RECURRENCE_SINGLE = 1
}
 
enum  {
  U_HARDWARE_GPS_REQUEST_AGPS_DATA_CONN = 1,
  U_HARDWARE_GPS_RELEASE_AGPS_DATA_CONN = 2,
  U_HARDWARE_GPS_AGPS_DATA_CONNECTED = 3,
  U_HARDWARE_GPS_AGPS_DATA_CONN_DONE = 4,
  U_HARDWARE_GPS_AGPS_DATA_CONN_FAILED = 5
}
 

Functions

UBUNTU_DLL_PUBLIC UHardwareGps u_hardware_gps_new (UHardwareGpsParams *params)
 
UBUNTU_DLL_PUBLIC void u_hardware_gps_delete (UHardwareGps handle)
 
UBUNTU_DLL_PUBLIC bool u_hardware_gps_start (UHardwareGps self)
 
UBUNTU_DLL_PUBLIC bool u_hardware_gps_stop (UHardwareGps self)
 
UBUNTU_DLL_PUBLIC void u_hardware_gps_inject_time (UHardwareGps self, int64_t time, int64_t time_reference, int uncertainty)
 
UBUNTU_DLL_PUBLIC void u_hardware_gps_inject_location (UHardwareGps self, double latitude, double longitude, float accuracy)
 
UBUNTU_DLL_PUBLIC void u_hardware_gps_delete_aiding_data (UHardwareGps self, uint16_t flags)
 
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)
 
UBUNTU_DLL_PUBLIC void u_hardware_gps_inject_xtra_data (UHardwareGps self, char *data, int length)
 

Macro Definition Documentation

#define U_HARDWARE_GPS_CAPABILITY_MSA   0x0000004

GPS supports MS-Assisted AGPS mode

Definition at line 68 of file gps.h.

#define U_HARDWARE_GPS_CAPABILITY_MSB   0x0000002

GPS supports MS-Based AGPS mode

Definition at line 66 of file gps.h.

#define U_HARDWARE_GPS_CAPABILITY_ON_DEMAND_TIME   0x0000010

GPS supports on demand time injection

Definition at line 72 of file gps.h.

#define U_HARDWARE_GPS_CAPABILITY_SINGLE_SHOT   0x0000008

GPS supports single-shot fixes

Definition at line 70 of file gps.h.

#define U_HARDWARE_GPS_LOCATION_HAS_ACCURACY   0x0010

UHardwareGpsLocation has valid accuracy.

Definition at line 192 of file gps.h.

#define U_HARDWARE_GPS_LOCATION_HAS_ALTITUDE   0x0002

UHardwareGpsLocation has valid altitude.

Definition at line 186 of file gps.h.

#define U_HARDWARE_GPS_LOCATION_HAS_BEARING   0x0008

UHardwareGpsLocation has valid bearing.

Definition at line 190 of file gps.h.

#define U_HARDWARE_GPS_LOCATION_HAS_LAT_LONG   0x0001

UHardwareGpsLocation has valid latitude and longitude.

Definition at line 184 of file gps.h.

#define U_HARDWARE_GPS_LOCATION_HAS_SPEED   0x0004

UHardwareGpsLocation has valid speed.

Definition at line 188 of file gps.h.

#define U_HARDWARE_GPS_NI_LONG_STRING_MAXLEN   2048

Definition at line 112 of file gps.h.

#define U_HARDWARE_GPS_NI_NEED_NOTIFY   0x0001

NI requires notification

Definition at line 80 of file gps.h.

#define U_HARDWARE_GPS_NI_NEED_VERIFY   0x0002

NI requires verification

Definition at line 82 of file gps.h.

#define U_HARDWARE_GPS_NI_PRIVACY_OVERRIDE   0x0004

NI requires privacy override, no notification/minimal trace

Definition at line 84 of file gps.h.

Typedef Documentation

typedef struct UHardwareGps_* UHardwareGps

Definition at line 194 of file gps.h.

typedef void(* UHardwareGpsAGpsRilRequestRefLoc)(uint32_t flags, void *context)

Definition at line 373 of file gps.h.

typedef void(* UHardwareGpsAGpsRilRequestSetId)(uint32_t flags, void *context)

Definition at line 372 of file gps.h.

typedef void(* UHardwareGpsAGpsStatusCallback)(UHardwareGpsAGpsStatus *status, void *context)

Callback with AGPS status information.

Definition at line 363 of file gps.h.

typedef void(* UHardwareGpsLocationCallback)(UHardwareGpsLocation *location, void *context)

Definition at line 349 of file gps.h.

typedef void(* UHardwareGpsNiNotifyCallback)(UHardwareGpsNiNotification *notification, void *context)

Callback with NI notification.

Definition at line 367 of file gps.h.

typedef void(* UHardwareGpsNmeaCallback)(int64_t timestamp, const char *nmea, int length, void *context)

Definition at line 352 of file gps.h.

typedef void(* UHardwareGpsRequestUtcTime)(void *context)

Definition at line 354 of file gps.h.

typedef void(* UHardwareGpsSetCapabilities)(uint32_t capabilities, void *context)

Definition at line 353 of file gps.h.

typedef void(* UHardwareGpsStatusCallback)(uint16_t status, void *context)

Definition at line 350 of file gps.h.

typedef void(* UHardwareGpsSvStatusCallback)(UHardwareGpsSvStatus *sv_info, void *context)

Definition at line 351 of file gps.h.

typedef void(* UHardwareGpsXtraDownloadRequest)(void *context)

Callback to request the client to download XTRA data. The client should download XTRA data and inject it by calling inject_xtra_data().

Definition at line 359 of file gps.h.

Enumeration Type Documentation

anonymous enum
Enumerator
U_HARDWARE_GPS_NI_RESPONSE_ACCEPT 
U_HARDWARE_GPS_NI_RESPONSE_DENY 
U_HARDWARE_GPS_NI_RESPONSE_NORESP 

Definition at line 93 of file gps.h.

anonymous enum
Enumerator
U_HARDWARE_GPS_NI_TYPE_VOICE 
U_HARDWARE_GPS_NI_TYPE_UMTS_SUPL 
U_HARDWARE_GPS_NI_TYPE_UMTS_CTRL_PLANE 

Definition at line 100 of file gps.h.

anonymous enum
Enumerator
U_HARDWARE_GPS_REQUEST_AGPS_DATA_CONN 

GPS requests data connection for AGPS.

U_HARDWARE_GPS_RELEASE_AGPS_DATA_CONN 

GPS releases the AGPS data connection.

U_HARDWARE_GPS_AGPS_DATA_CONNECTED 

AGPS data connection initiated

U_HARDWARE_GPS_AGPS_DATA_CONN_DONE 

AGPS data connection completed

U_HARDWARE_GPS_AGPS_DATA_CONN_FAILED 

AGPS data connection failed

Definition at line 169 of file gps.h.

Function Documentation

UBUNTU_DLL_PUBLIC void u_hardware_gps_delete ( UHardwareGps  handle)
UBUNTU_DLL_PUBLIC void u_hardware_gps_delete_aiding_data ( UHardwareGps  self,
uint16_t  flags 
)
UBUNTU_DLL_PUBLIC void u_hardware_gps_inject_location ( UHardwareGps  self,
double  latitude,
double  longitude,
float  accuracy 
)
UBUNTU_DLL_PUBLIC void u_hardware_gps_inject_time ( UHardwareGps  self,
int64_t  time,
int64_t  time_reference,
int  uncertainty 
)
UBUNTU_DLL_PUBLIC void u_hardware_gps_inject_xtra_data ( UHardwareGps  self,
char *  data,
int  length 
)
UBUNTU_DLL_PUBLIC UHardwareGps u_hardware_gps_new ( UHardwareGpsParams params)
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 
)
UBUNTU_DLL_PUBLIC bool u_hardware_gps_start ( UHardwareGps  self)
UBUNTU_DLL_PUBLIC bool u_hardware_gps_stop ( UHardwareGps  self)