1e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti/* Copyright (c) 2013, The Linux Foundation. All rights reserved. 2e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * 3e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * Redistribution and use in source and binary forms, with or without 4e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * modification, are permitted provided that the following conditions are 5e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * met: 6e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * * Redistributions of source code must retain the above copyright 7e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * notice, this list of conditions and the following disclaimer. 8e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * * Redistributions in binary form must reproduce the above 9e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * copyright notice, this list of conditions and the following 10e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * disclaimer in the documentation and/or other materials provided 11e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * with the distribution. 12e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * * Neither the name of The Linux Foundation nor the names of its 13e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * contributors may be used to endorse or promote products derived 14e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * from this software without specific prior written permission. 15e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * 16e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 17e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 19e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 20e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 23e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 26e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti */ 28e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 29e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#ifndef GPS_EXTENDED_H 30e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define GPS_EXTENDED_H 31e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 32e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#ifdef __cplusplus 33e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiextern "C" { 34e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#endif /* __cplusplus */ 35e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 36e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <gps_extended_c.h> 37e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 38e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletistruct LocPosMode 39e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{ 40e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LocPositionMode mode; 41e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti GpsPositionRecurrence recurrence; 42e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti uint32_t min_interval; 43e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti uint32_t preferred_accuracy; 44e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti uint32_t preferred_time; 45e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti char credentials[14]; 46e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti char provider[8]; 47e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LocPosMode(LocPositionMode m, GpsPositionRecurrence recr, 48e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti uint32_t gap, uint32_t accu, uint32_t time, 49e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti const char* cred, const char* prov) : 50e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti mode(m), recurrence(recr), 51e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti min_interval(gap < MIN_POSSIBLE_FIX_INTERVAL ? MIN_POSSIBLE_FIX_INTERVAL : gap), 52e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti preferred_accuracy(accu), preferred_time(time) { 53e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti memset(credentials, 0, sizeof(credentials)); 54e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti memset(provider, 0, sizeof(provider)); 55e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti if (NULL != cred) { 56e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti memcpy(credentials, cred, sizeof(credentials)-1); 57e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 58e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti if (NULL != prov) { 59e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti memcpy(provider, prov, sizeof(provider)-1); 60e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 61e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 62e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 63e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti inline LocPosMode() : 64e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti mode(LOC_POSITION_MODE_MS_BASED), 65e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti recurrence(GPS_POSITION_RECURRENCE_PERIODIC), 66e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti min_interval(MIN_POSSIBLE_FIX_INTERVAL), 67e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti preferred_accuracy(50), preferred_time(120000) { 68e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti memset(credentials, 0, sizeof(credentials)); 69e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti memset(provider, 0, sizeof(provider)); 70e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 71e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 72e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti inline bool equals(const LocPosMode &anotherMode) const 73e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti { 74e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti return anotherMode.mode == mode && 75e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti anotherMode.recurrence == recurrence && 76e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti anotherMode.min_interval == min_interval && 77e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti anotherMode.preferred_accuracy == preferred_accuracy && 78e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti anotherMode.preferred_time == preferred_time && 79e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti !strncmp(anotherMode.credentials, credentials, sizeof(credentials)-1) && 80e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti !strncmp(anotherMode.provider, provider, sizeof(provider)-1); 81e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 82e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 83e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void logv() const; 84e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}; 85e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 86e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 87e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#ifdef __cplusplus 88e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} 89e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#endif /* __cplusplus */ 90e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 91e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#endif /* GPS_EXTENDED_H */ 92e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 93