1129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel/* Copyright (c) 2009-2014, The Linux Foundation. All rights reserved. 2129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * 3129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * Redistribution and use in source and binary forms, with or without 4129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * modification, are permitted provided that the following conditions are 5129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * met: 6129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * * Redistributions of source code must retain the above copyright 7129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * notice, this list of conditions and the following disclaimer. 8129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * * Redistributions in binary form must reproduce the above 9129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * copyright notice, this list of conditions and the following 10129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * disclaimer in the documentation and/or other materials provided 11129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * with the distribution. 12129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * * Neither the name of The Linux Foundation, nor the names of its 13129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * contributors may be used to endorse or promote products derived 14129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * from this software without specific prior written permission. 15129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * 16129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 17129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 19129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 20129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 23129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 26129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel * 28129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel */ 29129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 30129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel#define LOG_NDDEBUG 0 31129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel#define LOG_TAG "LocSvc_eng" 32129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 33129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel#include <loc_eng.h> 34129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel#include <MsgTask.h> 35129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel#include <platform_lib_includes.h> 36129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 37129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudelusing namespace loc_core; 38129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 39129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudelstruct LocEngRequestXtraServer : public LocMsg { 40129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel LocEngAdapter* mAdapter; 41129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel inline LocEngRequestXtraServer(LocEngAdapter* adapter) : 42129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel LocMsg(), mAdapter(adapter) 43129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel { 44129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel locallog(); 45129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel } 46129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel inline virtual void proc() const { 47129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel mAdapter->requestXtraServer(); 48129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel } 49129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel inline void locallog() const { 50129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel LOC_LOGV("LocEngRequestXtraServer"); 51129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel } 52129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel inline virtual void log() const { 53129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel locallog(); 54129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel } 55129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel}; 56129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 57129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudelstruct LocEngInjectXtraData : public LocMsg { 58129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel LocEngAdapter* mAdapter; 59129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel char* mData; 60129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel const int mLen; 61129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel inline LocEngInjectXtraData(LocEngAdapter* adapter, 62129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel char* data, int len): 63129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel LocMsg(), mAdapter(adapter), 64129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel mData(new char[len]), mLen(len) 65129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel { 66129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel memcpy((void*)mData, (void*)data, len); 67129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel locallog(); 68129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel } 69129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel inline ~LocEngInjectXtraData() 70129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel { 71129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel delete[] mData; 72129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel } 73129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel inline virtual void proc() const { 74129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel mAdapter->setXtraData(mData, mLen); 75129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel } 76129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel inline void locallog() const { 77129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel LOC_LOGV("length: %d\n data: %p", mLen, mData); 78129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel } 79129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel inline virtual void log() const { 80129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel locallog(); 81129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel } 82129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel}; 83129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 84129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudelstruct LocEngSetXtraVersionCheck : public LocMsg { 85129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel LocEngAdapter *mAdapter; 86129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel int mCheck; 87129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel inline LocEngSetXtraVersionCheck(LocEngAdapter* adapter, 88129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel int check): 89129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel mAdapter(adapter), mCheck(check) {} 90129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel inline virtual void proc() const { 91129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel locallog(); 92129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel mAdapter->setXtraVersionCheck(mCheck); 93129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel } 94129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel inline void locallog() const { 95129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel LOC_LOGD("%s:%d]: mCheck: %d", 96129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel __func__, __LINE__, mCheck); 97129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel } 98129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel inline virtual void log() const { 99129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel locallog(); 100129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel } 101129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel}; 102129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 103129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel/*=========================================================================== 104129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelFUNCTION loc_eng_xtra_init 105129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 106129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelDESCRIPTION 107129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel Initialize XTRA module. 108129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 109129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelDEPENDENCIES 110129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel N/A 111129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 112129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelRETURN VALUE 113129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 0: success 114129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 115129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelSIDE EFFECTS 116129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel N/A 117129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 118129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel===========================================================================*/ 119129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudelint loc_eng_xtra_init (loc_eng_data_s_type &loc_eng_data, 120129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel GpsXtraExtCallbacks* callbacks) 121129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel{ 122129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel int ret_val = -1; 123129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel loc_eng_xtra_data_s_type *xtra_module_data_ptr; 124129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel ENTRY_LOG(); 125129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 126129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel if(!loc_eng_data.adapter->mSupportsTimeInjection 127129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel || loc_eng_data.adapter->hasNativeXtraClient()) { 128129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel LOC_LOGD("XTRA is already supported. disable it here.\n"); 129129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel EXIT_LOG(%d, 1); // return 1 denote failure 130129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel return 1; 131129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel } 132129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 133129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel if(callbacks == NULL) { 134129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel LOC_LOGE("loc_eng_xtra_init: failed, cb is NULL"); 135129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel } else { 136129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel xtra_module_data_ptr = &loc_eng_data.xtra_module_data; 137129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel xtra_module_data_ptr->download_request_cb = callbacks->download_request_cb; 138129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel xtra_module_data_ptr->report_xtra_server_cb = callbacks->report_xtra_server_cb; 139129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 140129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel ret_val = 0; 141129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel } 142129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel EXIT_LOG(%d, ret_val); 143129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel return ret_val; 144129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel} 145129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 146129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel/*=========================================================================== 147129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelFUNCTION loc_eng_xtra_inject_data 148129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 149129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelDESCRIPTION 150129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel Injects XTRA file into the engine but buffers the data if engine is busy. 151129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 152129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelDEPENDENCIES 153129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel N/A 154129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 155129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelRETURN VALUE 156129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 0 157129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 158129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelSIDE EFFECTS 159129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel N/A 160129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 161129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel===========================================================================*/ 162129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudelint loc_eng_xtra_inject_data(loc_eng_data_s_type &loc_eng_data, 163129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel char* data, int length) 164129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel{ 165129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel ENTRY_LOG(); 166129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel LocEngAdapter* adapter = loc_eng_data.adapter; 167129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel adapter->sendMsg(new LocEngInjectXtraData(adapter, data, length)); 168129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel EXIT_LOG(%d, 0); 169129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel return 0; 170129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel} 171129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel/*=========================================================================== 172129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelFUNCTION loc_eng_xtra_request_server 173129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 174129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelDESCRIPTION 175129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel Request the Xtra server url from the modem 176129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 177129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelDEPENDENCIES 178129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel N/A 179129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 180129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelRETURN VALUE 181129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 0 182129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 183129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelSIDE EFFECTS 184129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel N/A 185129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 186129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel===========================================================================*/ 187129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudelint loc_eng_xtra_request_server(loc_eng_data_s_type &loc_eng_data) 188129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel{ 189129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel ENTRY_LOG(); 190129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel LocEngAdapter* adapter = loc_eng_data.adapter; 191129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel adapter->sendMsg(new LocEngRequestXtraServer(adapter)); 192129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel EXIT_LOG(%d, 0); 193129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel return 0; 194129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel} 195129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel/*=========================================================================== 196129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelFUNCTION loc_eng_xtra_version_check 197129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 198129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelDESCRIPTION 199129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel Injects the enable/disable value for checking XTRA version 200129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel that is specified in gps.conf 201129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 202129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelDEPENDENCIES 203129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel N/A 204129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 205129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelRETURN VALUE 206129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel none 207129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 208129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry StrudelSIDE EFFECTS 209129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel N/A 210129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel 211129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel===========================================================================*/ 212129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudelvoid loc_eng_xtra_version_check(loc_eng_data_s_type &loc_eng_data, 213129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel int check) 214129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel{ 215129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel ENTRY_LOG(); 216129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel LocEngAdapter *adapter = loc_eng_data.adapter; 217129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel adapter->sendMsg(new LocEngSetXtraVersionCheck(adapter, check)); 218129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel EXIT_LOG(%d, 0); 219129edaf7d0025e2828a8bee025f7b1bac7a68da6Thierry Strudel} 220