diff options
Diffstat (limited to 'gps/izat_api/izat_remote_api.h')
-rw-r--r-- | gps/izat_api/izat_remote_api.h | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/gps/izat_api/izat_remote_api.h b/gps/izat_api/izat_remote_api.h new file mode 100644 index 0000000..cbfdd60 --- /dev/null +++ b/gps/izat_api/izat_remote_api.h @@ -0,0 +1,105 @@ +/*============================================================================= + Copyright (c) 2016, The Linux Foundation. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of The Linux Foundation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + =============================================================================*/ + +#ifndef __IZAT_REMOTE_APIS_H__ +#define __IZAT_REMOTE_APIS_H__ + +#include <gps_extended_c.h> + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void (*locationUpdateCb)(UlpLocation *location, + GpsLocationExtended *locExtended, + void* clientData); + +/* registers a client callback for listening to location updates + locationCb - location callback function pointer implemented by client + Can not be NULL. + clientData - an opaque data pointer from client. This pointer will be + provided back when the locationCb() callbacak is called. + This can be used by client to store application context + or statemachine etc. + Can be NULL. + return: an opaque pointer that serves as a request handle. This handle + is to be fed to theunregisterLocationUpdater() call. +*/ +void* registerLocationUpdater(locationUpdateCb locationCb, void* clientData); + +/* unregisters the client callback + locationUpdaterHandle - the opaque pointer from the return of + registerLocationUpdater() +*/ +void unregisterLocationUpdater(void* locationUpdaterHandle); + +typedef void (*errReportCb)(const char* errStr, void* clientData); +typedef void (*sstpSiteUpdateCb)(const char* name, double lat, double lon, + float unc, int32_t uncConfidence, + void* clientData); +typedef void (*sstpMccUpdateCb)(uint32_t mcc, const char* confidence, + void* clientData); +/* registers a client callback for listening to SSTP updates + siteCb - site info callback function pointer implemented by client + Can not be NULL. + mccCb - MCC info callback function pointer implemented by client + Can not be NULL. + errCb - callback to receive error report in string format, in case + of any error that might happen, and no siteCb or mccCb can + be called. + Can be NULL. + clientData - an opaque data pointer from client. This pointer will be + provided back when the locationCb() callbacak is called. + This can be used by client to store application context + or statemachine etc. + Can be NULL. + return: an opaque pointer that serves as a request handle. This handle + is to be fed to theunregisterLocationUpdater() call. +*/ +void* registerSstpUpdater(sstpSiteUpdateCb siteCb, sstpMccUpdateCb mccCb, + errReportCb errCb, void* clientData); + +/* unregisters the client callback + sstpUpdaterHandle - the opaque pointer from the return of + registerLocationUpdater() +*/ +void unregisterSstpUpdater(void* sstpUpdaterHandle); + +/* stop the current burst of SSTP updates (until next triggering event) + sstpUpdaterHandle - the opaque pointer from the return of + registerLocationUpdater() +*/ +void stopSstpUpdate(void* sstpUpdaterHandle); + + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif //__IZAT_REMOTE_APIS_H__ |