/** Represents the standard GPS interface. */ typedefstruct{ /** * Opens the interface and provides the callback routines * to the implemenation of this interface. */ int(*init)( GpsCallbacks* callbacks ); /** Starts navigating. */ int(*start)(void); /** Stops navigating. */ int(*stop)(void); /** Closes the interface. */ void(*cleanup)(void); /** Injects the current time. */ int(*inject_time)(GpsUtcTime time,int64_t timeReference, int uncertainty); /** Injects current location from another location provider * (typically cell ID). * latitude and longitude are measured in degrees * expected accuracy is measured in meters */ int(*inject_location)(double latitude,double longitude,float accuracy); /** * Specifies that the next call to start will not use the * information defined in the flags. GPS_DELETE_ALL is passed for * a cold start. */ void(*delete_aiding_data)(GpsAidingData flags); /** * fix_frequency represents the time between fixes in seconds. * Set fix_frequency to zero for a single-shot fix. */ int(*set_position_mode)(GpsPositionMode mode,int fix_frequency); /** Get a pointer to extension information. */ constvoid*(*get_extension)(constchar* name); } GpsInterface;