aboutsummaryrefslogtreecommitdiff
path: root/gps/izat_api
diff options
context:
space:
mode:
Diffstat (limited to 'gps/izat_api')
-rw-r--r--gps/izat_api/Android.mk15
-rw-r--r--gps/izat_api/IzatRemoteApi.h91
-rw-r--r--gps/izat_api/izat_remote_api.h105
3 files changed, 211 insertions, 0 deletions
diff --git a/gps/izat_api/Android.mk b/gps/izat_api/Android.mk
new file mode 100644
index 0000000..06db16e
--- /dev/null
+++ b/gps/izat_api/Android.mk
@@ -0,0 +1,15 @@
+ifneq ($(BUILD_TINY_ANDROID),true)
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_COPY_HEADERS_TO:= liblocationservice/lcp/inc/
+
+LOCAL_COPY_HEADERS:= \
+ IzatRemoteApi.h \
+ izat_remote_api.h
+
+include $(BUILD_COPY_HEADERS)
+
+endif # not BUILD_TINY_ANDROID
diff --git a/gps/izat_api/IzatRemoteApi.h b/gps/izat_api/IzatRemoteApi.h
new file mode 100644
index 0000000..5cd12e3
--- /dev/null
+++ b/gps/izat_api/IzatRemoteApi.h
@@ -0,0 +1,91 @@
+/*=============================================================================
+ 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 __IZATREMOTEAPIS_H__
+#define __IZATREMOTEAPIS_H__
+
+#include <gps_extended_c.h>
+
+namespace qc_loc_fw {
+ class InPostcard;
+}
+
+namespace izat_remote_api {
+
+class IzatNotifierProxy;
+
+struct OutCard;
+
+class IzatNotifier {
+protected:
+ IzatNotifierProxy* const mNotifierProxy;
+ IzatNotifier(const char* const tag, const OutCard* subCard);
+ virtual ~IzatNotifier();
+public:
+ virtual void handleMsg(qc_loc_fw::InPostcard * const in_card) = 0;
+};
+
+
+class LocationUpdater : public IzatNotifier {
+ static const char* const sLatTag;
+ static const char* const sLonTag;
+ static const char* const sAccuracyTag;
+ static const OutCard* sSubscriptionCard;
+protected:
+ inline LocationUpdater() : IzatNotifier(sName, sSubscriptionCard) {}
+ virtual inline ~LocationUpdater() {}
+public:
+ static const char sName[];
+ virtual void handleMsg(qc_loc_fw::InPostcard * const in_card) final;
+ virtual void locationUpdate(UlpLocation& location, GpsLocationExtended& locExtended) = 0;
+};
+
+class SstpUpdater : public IzatNotifier {
+ static const char* const sLatTag;
+ static const char* const sLonTag;
+ static const char* const sUncTag;
+ static const char* const sUncConfTag;
+
+protected:
+ inline SstpUpdater() : IzatNotifier(sName, nullptr) {}
+ virtual inline ~SstpUpdater() {}
+public:
+ static const char sName[];
+ virtual void handleMsg(qc_loc_fw::InPostcard * const in_card) final;
+ void stop();
+ virtual void errReport(const char* errStr) = 0;
+ virtual void siteUpdate(const char* name, double lat, double lon,
+ float unc, int32_t uncConfidence) = 0;
+ virtual void mccUpdate(uint32_t mcc, const char* confidence) = 0;
+};
+
+} // izat_remote_api
+
+#endif //__IZATREMOTEAPIS_H__
+
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__