--- a/locationmanager/locationtrail/src/cpositioninfo.cpp Tue Feb 02 00:24:33 2010 +0200
+++ b/locationmanager/locationtrail/src/cpositioninfo.cpp Fri Mar 19 09:38:01 2010 +0200
@@ -52,7 +52,7 @@
// Set update interval.
iUpdateOptions.SetUpdateInterval( TTimeIntervalMicroSeconds(KFirstInterval) );
// Set time out level.
- iUpdateOptions.SetUpdateTimeOut( TTimeIntervalMicroSeconds(KUpdateTimeOut) );
+ iUpdateOptions.SetUpdateTimeOut( TTimeIntervalMicroSeconds(KFirstTimeOut) );
// Positions which have time stamp below KMaxAge can be reused
iUpdateOptions.SetMaxUpdateAge( TTimeIntervalMicroSeconds(KMaxAge) );
// Disables location framework to send partial position data
@@ -72,7 +72,7 @@
// CPositionInfo::~CPositionInfo
// --------------------------------------------------------------------------
//
-CPositionInfo::~CPositionInfo()
+EXPORT_C CPositionInfo::~CPositionInfo()
{
Cancel();
iPositioner.Close();
@@ -98,6 +98,20 @@
iTrailCaptureSetting = aCaptureSetting;
iUpdateInterval = aUpdateInterval;
+ iFirstInterval = ETrue;
+ iPositionInfo = TPositionSatelliteInfo();
+
+
+ // Set update interval.
+ iUpdateOptions.SetUpdateInterval( TTimeIntervalMicroSeconds(KFirstInterval) );
+ // Set time out level.
+ iUpdateOptions.SetUpdateTimeOut( TTimeIntervalMicroSeconds( KFirstTimeOut) );
+ // Positions which have time stamp below KMaxAge can be reused
+ iUpdateOptions.SetMaxUpdateAge( TTimeIntervalMicroSeconds(KMaxAge) );
+ // Disables location framework to send partial position data
+ iUpdateOptions.SetAcceptPartialUpdates( EFalse );
+
+
if ( aCaptureSetting == RLocationTrail::ECaptureAll )
{
@@ -147,8 +161,7 @@
//
void CPositionInfo::Stop()
{
- Cancel();
-
+ Cancel();
// Start shutdown timer...
iPositioner.Close();
iPosServer.Close();
@@ -161,17 +174,19 @@
void CPositionInfo::RunL()
{
iTrail->Position( iPositionInfo, iStatus.Int() );
+
if ( iFirstInterval && IsActive() )
{
Cancel();
- iUpdateOptions.SetUpdateInterval( iUpdateInterval );
+ LOG("CPositionInfo::RunL() - First Time");
+ iUpdateOptions.SetUpdateInterval( TTimeIntervalMicroSeconds (iUpdateInterval) );
+ iUpdateOptions.SetUpdateTimeOut( TTimeIntervalMicroSeconds(KUpdateTimeOut ) );
if ( iTrailCaptureSetting == RLocationTrail::ECaptureAll )
{
- User::LeaveIfError( iPositioner.SetUpdateOptions( iUpdateOptions ) );
+ User::LeaveIfError( iPositioner.SetUpdateOptions( iUpdateOptions ) );
iPositioner.NotifyPositionUpdate( iPositionInfo, iStatus );
}
SetActive();
-
iFirstInterval = EFalse;
}
}
@@ -182,7 +197,8 @@
//
void CPositionInfo::DoCancel()
{
- if ( !IsActive() )
+ LOG( "CPositionInfo::DoCancel()" );
+ if ( IsActive() )
{
iPositioner.CancelRequest( EPositionerNotifyPositionUpdate );
}