Merge "Send status report msg through ULP"

This commit is contained in:
Linux Build Service Account 2013-10-24 21:38:13 -07:00 committed by Gerrit - the friendly Code Review server
commit 0561631818
5 changed files with 18 additions and 7 deletions

View file

@ -54,6 +54,9 @@ public:
void* svExt) { void* svExt) {
return false; return false;
} }
inline virtual bool reportStatus(GpsStatusValue status) {
return false;
}
inline virtual void setAdapter(LocAdapterBase* adapter) {} inline virtual void setAdapter(LocAdapterBase* adapter) {}
inline virtual void setCapabilities(unsigned long capabilities) {} inline virtual void setCapabilities(unsigned long capabilities) {}
}; };

View file

@ -173,10 +173,16 @@ void LocEngAdapter::setInSession(bool inSession)
} }
} }
inline void LocInternalAdapter::reportStatus(GpsStatusValue status)
{
sendMsg(new LocEngReportStatus(mLocEngAdapter, status));
}
void LocEngAdapter::reportStatus(GpsStatusValue status) void LocEngAdapter::reportStatus(GpsStatusValue status)
{ {
sendMsg(new LocEngReportStatus(mOwner, status)); if (!mUlp->reportStatus(status)) {
mInternalAdapter->reportStatus(status);
}
} }
inline inline

View file

@ -58,6 +58,7 @@ public:
virtual void reportSv(GpsSvStatus &svStatus, virtual void reportSv(GpsSvStatus &svStatus,
GpsLocationExtended &locationExtended, GpsLocationExtended &locationExtended,
void* svExt); void* svExt);
virtual void reportStatus(GpsStatusValue status);
virtual void setPositionModeInt(LocPosMode& posMode); virtual void setPositionModeInt(LocPosMode& posMode);
virtual void startFixInt(); virtual void startFixInt();
virtual void stopFixInt(); virtual void stopFixInt();

View file

@ -821,15 +821,16 @@ void LocEngReportSv::send() const {
} }
// case LOC_ENG_MSG_REPORT_STATUS: // case LOC_ENG_MSG_REPORT_STATUS:
LocEngReportStatus::LocEngReportStatus(void* locEng, LocEngReportStatus::LocEngReportStatus(LocAdapterBase* adapter,
GpsStatusValue engineStatus) : GpsStatusValue engineStatus) :
LocMsg(), mLocEng(locEng), mStatus(engineStatus) LocMsg(), mAdapter(adapter), mStatus(engineStatus)
{ {
locallog(); locallog();
} }
inline void LocEngReportStatus::proc() const inline void LocEngReportStatus::proc() const
{ {
loc_eng_data_s_type* locEng = (loc_eng_data_s_type*) mLocEng; LocEngAdapter* adapter = (LocEngAdapter*)mAdapter;
loc_eng_data_s_type* locEng = (loc_eng_data_s_type*)adapter->getOwner();
loc_eng_report_status(*locEng, mStatus); loc_eng_report_status(*locEng, mStatus);
update_aiding_data_for_deletion(*locEng); update_aiding_data_for_deletion(*locEng);

View file

@ -119,9 +119,9 @@ struct LocEngReportSv : public LocMsg {
}; };
struct LocEngReportStatus : public LocMsg { struct LocEngReportStatus : public LocMsg {
void* mLocEng; LocAdapterBase* mAdapter;
const GpsStatusValue mStatus; const GpsStatusValue mStatus;
LocEngReportStatus(void* locEng, LocEngReportStatus(LocAdapterBase* adapter,
GpsStatusValue engineStatus); GpsStatusValue engineStatus);
virtual void proc() const; virtual void proc() const;
void locallog() const; void locallog() const;