An extension of original API for working with GPS devices.

Revision:
1:c1122f8eec82
Parent:
0:792e9343fd39
Child:
3:47aaf0ebde35
--- a/GPSProviderImplBase.h	Thu Oct 30 14:42:27 2014 +0000
+++ b/GPSProviderImplBase.h	Fri Oct 31 13:34:59 2014 +0000
@@ -22,9 +22,32 @@
 class GPSProviderImplBase {
 public:
     virtual bool setPowerMode(GPSProvider::PowerMode_t power) = 0;
-    virtual void reset(void) = 0;
-    virtual void start(void) = 0;
-    virtual void stop(void)  = 0;
+    virtual void reset(void)   = 0;
+    virtual void start(void)   = 0;
+    virtual void stop(void)    = 0;
+    virtual void process(void) = 0;
+    virtual void lpmGetImmediateLocation(void) = 0;
+
+    virtual bool haveDeviceInfo(void) const {
+        return (deviceInfo != NULL);
+    }
+    virtual const char *getDeviceInfo(void) const {
+        return deviceInfo;
+    }
+    virtual bool locationAvailable(void) const {
+        return lastLocation.valid;
+    }
+    virtual const GPSProvider::LocationUpdateParams_t *getLastLocation(void) const {
+        return (lastLocation.valid) ? &lastLocation : NULL;
+    }
+    virtual void onLocationUpdate(GPSProvider::LocationUpdateCallback_t callback) {
+        locationCallback = callback;
+    }
+
+protected:
+    GPSProvider::LocationUpdateParams_t    lastLocation;
+    const char                            *deviceInfo;
+    GPSProvider::LocationUpdateCallback_t  locationCallback;
 };
 
 #endif /* __GPS_PROVIDER_INSTANCE_BASE_H__ */