Fixes loc_ext and AFW concurrency issues
Part of changes so that loc_ext stack gets its own QMI_LOC client. CRs-Fixed: 565281 Change-Id: I7dda3cd8e90e699f11391ea621a785f775978e41
This commit is contained in:
parent
673b23822f
commit
e9d4048168
5 changed files with 13 additions and 10 deletions
|
@ -67,12 +67,15 @@ void LocInternalAdapter::setUlpProxy(UlpProxyBase* ulp) {
|
||||||
}
|
}
|
||||||
|
|
||||||
LocEngAdapter::LocEngAdapter(LOC_API_ADAPTER_EVENT_MASK_T mask,
|
LocEngAdapter::LocEngAdapter(LOC_API_ADAPTER_EVENT_MASK_T mask,
|
||||||
void* owner,
|
void* owner, ContextBase* context,
|
||||||
MsgTask::tCreate tCreator) :
|
MsgTask::tCreate tCreator) :
|
||||||
LocAdapterBase(mask,
|
LocAdapterBase(mask,
|
||||||
LocDualContext::getLocFgContext(
|
//Get the AFW context if VzW context has not already been intialized in
|
||||||
tCreator,
|
//loc_ext
|
||||||
LocDualContext::mLocationHalName)),
|
context == NULL?
|
||||||
|
LocDualContext::getLocFgContext(tCreator,
|
||||||
|
LocDualContext::mLocationHalName)
|
||||||
|
:context),
|
||||||
mOwner(owner), mInternalAdapter(new LocInternalAdapter(this)),
|
mOwner(owner), mInternalAdapter(new LocInternalAdapter(this)),
|
||||||
mUlp(new UlpProxyBase()), mNavigating(false),
|
mUlp(new UlpProxyBase()), mNavigating(false),
|
||||||
mAgpsEnabled(false)
|
mAgpsEnabled(false)
|
||||||
|
|
|
@ -78,7 +78,7 @@ public:
|
||||||
bool mAgpsEnabled;
|
bool mAgpsEnabled;
|
||||||
|
|
||||||
LocEngAdapter(LOC_API_ADAPTER_EVENT_MASK_T mask,
|
LocEngAdapter(LOC_API_ADAPTER_EVENT_MASK_T mask,
|
||||||
void* owner,
|
void* owner,ContextBase* context,
|
||||||
MsgTask::tCreate tCreator);
|
MsgTask::tCreate tCreator);
|
||||||
virtual ~LocEngAdapter();
|
virtual ~LocEngAdapter();
|
||||||
|
|
||||||
|
|
|
@ -274,7 +274,7 @@ static int loc_init(GpsCallbacks* callbacks)
|
||||||
gps_loc_cb = callbacks->location_cb;
|
gps_loc_cb = callbacks->location_cb;
|
||||||
gps_sv_cb = callbacks->sv_status_cb;
|
gps_sv_cb = callbacks->sv_status_cb;
|
||||||
|
|
||||||
retVal = loc_eng_init(loc_afw_data, &clientCallbacks, event);
|
retVal = loc_eng_init(loc_afw_data, &clientCallbacks, event, NULL);
|
||||||
loc_afw_data.adapter->requestUlp(gps_conf.CAPABILITIES);
|
loc_afw_data.adapter->requestUlp(gps_conf.CAPABILITIES);
|
||||||
loc_afw_data.adapter->mAgpsEnabled = !loc_afw_data.adapter->hasAgpsExt();
|
loc_afw_data.adapter->mAgpsEnabled = !loc_afw_data.adapter->hasAgpsExt();
|
||||||
|
|
||||||
|
|
|
@ -1455,7 +1455,7 @@ SIDE EFFECTS
|
||||||
|
|
||||||
===========================================================================*/
|
===========================================================================*/
|
||||||
int loc_eng_init(loc_eng_data_s_type &loc_eng_data, LocCallbacks* callbacks,
|
int loc_eng_init(loc_eng_data_s_type &loc_eng_data, LocCallbacks* callbacks,
|
||||||
LOC_API_ADAPTER_EVENT_MASK_T event)
|
LOC_API_ADAPTER_EVENT_MASK_T event, ContextBase* context)
|
||||||
|
|
||||||
{
|
{
|
||||||
int ret_val = 0;
|
int ret_val = 0;
|
||||||
|
@ -1507,12 +1507,11 @@ int loc_eng_init(loc_eng_data_s_type &loc_eng_data, LocCallbacks* callbacks,
|
||||||
}
|
}
|
||||||
|
|
||||||
loc_eng_data.adapter =
|
loc_eng_data.adapter =
|
||||||
new LocEngAdapter(event, &loc_eng_data,
|
new LocEngAdapter(event, &loc_eng_data, context,
|
||||||
(MsgTask::tCreate)callbacks->create_thread_cb);
|
(MsgTask::tCreate)callbacks->create_thread_cb);
|
||||||
|
|
||||||
LOC_LOGD("loc_eng_init created client, id = %p\n",
|
LOC_LOGD("loc_eng_init created client, id = %p\n",
|
||||||
loc_eng_data.adapter);
|
loc_eng_data.adapter);
|
||||||
|
|
||||||
loc_eng_data.adapter->sendMsg(new LocEngInit(&loc_eng_data));
|
loc_eng_data.adapter->sendMsg(new LocEngInit(&loc_eng_data));
|
||||||
|
|
||||||
EXIT_LOG(%d, ret_val);
|
EXIT_LOG(%d, ret_val);
|
||||||
|
|
|
@ -178,7 +178,8 @@ extern loc_sap_cfg_s_type sap_conf;
|
||||||
|
|
||||||
int loc_eng_init(loc_eng_data_s_type &loc_eng_data,
|
int loc_eng_init(loc_eng_data_s_type &loc_eng_data,
|
||||||
LocCallbacks* callbacks,
|
LocCallbacks* callbacks,
|
||||||
LOC_API_ADAPTER_EVENT_MASK_T event);
|
LOC_API_ADAPTER_EVENT_MASK_T event,
|
||||||
|
ContextBase* context);
|
||||||
int loc_eng_start(loc_eng_data_s_type &loc_eng_data);
|
int loc_eng_start(loc_eng_data_s_type &loc_eng_data);
|
||||||
int loc_eng_stop(loc_eng_data_s_type &loc_eng_data);
|
int loc_eng_stop(loc_eng_data_s_type &loc_eng_data);
|
||||||
void loc_eng_cleanup(loc_eng_data_s_type &loc_eng_data);
|
void loc_eng_cleanup(loc_eng_data_s_type &loc_eng_data);
|
||||||
|
|
Loading…
Reference in a new issue