////////////////////////////////////////////////////////////// // Sets the interval for getting the regular notification // // the time interval set is in milli seconds // ////////////////////////////////////////////////////////////// int CQMLBackendAO::setUpdateInterval(int aMilliSec) { #if !defined QT_NO_DEBUG qDebug() << "CQMLBackendAO::setUpdateInterval\n" ; #endif int minimumUpdateInterval = 0; TInt64 mUpdateInterval = 0 ; if (mRequester) minimumUpdateInterval = mRequester->minimumUpdateInterval(); else minimumUpdateInterval = mRequesterSatellite->minimumUpdateInterval(); if (minimumUpdateInterval < 0) minimumUpdateInterval = 100; // if the current requesttype is regular updates // then set the updateinterval otherwise ignore //if(mRequestType != REQ_REG_UPDATE) // return; TPositionUpdateOptions aPosOption; TInt error = mPositioner.GetUpdateOptions(aPosOption); // TTimeIntervalMicroSeconds is converted seconds TInt currentUpdateInterval = aPosOption.UpdateInterval().Int64() / 1000; // If msec is not 0 and is less than the value returned by minimumUpdateInterval(), // the interval will be set to the minimum interval. // if (aMilliSec != 0 && aMilliSec <= minimumUpdateInterval) { // workaround, not accepting zero as value, see QTMOBILITY-995 if (aMilliSec <= minimumUpdateInterval) { mUpdateInterval = minimumUpdateInterval; } else { mUpdateInterval = aMilliSec; } // if the same value is being set then just ignore it. if (currentUpdateInterval == mUpdateInterval) { return mUpdateInterval; } // will set Either zero, minimum or +ve value // seconds converted to TTimeIntervalMicroSeconds aPosOption.SetUpdateInterval(TTimeIntervalMicroSeconds(mUpdateInterval * 1000)); // set the timeout to the smaller of 150% of interval or update interval + 10 seconds TInt64 mUpdateTimeout = (mUpdateInterval * 3) / 2; if (mUpdateTimeout > mUpdateInterval + 10000) mUpdateTimeout = mUpdateInterval + 10000; if (aMilliSec > 0) aPosOption.SetUpdateTimeOut(TTimeIntervalMicroSeconds(mUpdateTimeout * 1000)); error = mPositioner.SetUpdateOptions(aPosOption); return mUpdateInterval; }
EXPORT_C TBool Compare_ModuleUpdateOptions(TPositionUpdateOptions& aModUpdateOptsSideA, TPositionUpdateOptions& aModUpdateOptsSideB) { // Compare base class items. if(aModUpdateOptsSideA.PositionClassSize() != aModUpdateOptsSideB.PositionClassSize()) { return EFalse; } if(aModUpdateOptsSideA.PositionClassType() != aModUpdateOptsSideB.PositionClassType()) { return EFalse; } // Compare interval option. if(aModUpdateOptsSideA.UpdateInterval() != aModUpdateOptsSideB.UpdateInterval()) { return EFalse; } // Compare timeout option. if(aModUpdateOptsSideA.UpdateTimeOut() != aModUpdateOptsSideB.UpdateTimeOut()) { return EFalse; } // Compare maxage option. if(aModUpdateOptsSideA.MaxUpdateAge() != aModUpdateOptsSideB.MaxUpdateAge()) { return EFalse; } // Compare partial update option. if(aModUpdateOptsSideA.AcceptPartialUpdates() != aModUpdateOptsSideB.AcceptPartialUpdates()) { return EFalse; } return ETrue; }