96 ESharableSessions ), |
96 ESharableSessions ), |
97 iTimer( NULL ), |
97 iTimer( NULL ), |
98 iSessionReady( EFalse ), |
98 iSessionReady( EFalse ), |
99 iTagId( 0 ), |
99 iTagId( 0 ), |
100 iLocManStopDelay( 0 ), |
100 iLocManStopDelay( 0 ), |
|
101 iLocManStopRemapDelay( 0 ), |
101 iCaptureSetting( RLocationTrail::EOff ), |
102 iCaptureSetting( RLocationTrail::EOff ), |
102 iRemoveLocation( EFalse ) |
103 iRemoveLocation( EFalse ) |
103 { |
104 { |
104 } |
105 } |
105 |
106 |
131 |
132 |
132 iTrackLog->AddGpxObserver( this ); |
133 iTrackLog->AddGpxObserver( this ); |
133 |
134 |
134 CRepository* repository = CRepository::NewLC( KRepositoryUid ); |
135 CRepository* repository = CRepository::NewLC( KRepositoryUid ); |
135 TInt err = repository->Get( KLocationTrailShutdownTimer, iLocManStopDelay ); |
136 TInt err = repository->Get( KLocationTrailShutdownTimer, iLocManStopDelay ); |
136 CleanupStack::PopAndDestroy( repository ); |
|
137 |
137 |
138 LOG1("CLocationManagerServer::ConstructL, iLocManStopDelay:%d", iLocManStopDelay); |
138 LOG1("CLocationManagerServer::ConstructL, iLocManStopDelay:%d", iLocManStopDelay); |
139 |
139 |
140 if ( err != KErrNone ) |
140 if ( err != KErrNone ) |
141 { |
141 { |
142 LOG1("CLocationManagerServer::ConstructL, iLocManStopDelay err:%d", err); |
142 LOG1("CLocationManagerServer::ConstructL, iLocManStopDelay err:%d", err); |
143 iLocManStopDelay = KLocationTrailShutdownDelay; |
143 iLocManStopDelay = KLocationTrailShutdownDelay; |
144 } |
144 } |
|
145 |
|
146 err = repository->Get( KLocationTrailRemapShutdownTimer, iLocManStopRemapDelay ); |
|
147 CleanupStack::PopAndDestroy( repository ); |
|
148 |
|
149 LOG1("CLocationManagerServer::ConstructL, iLocManStopRemapDelay:%d", iLocManStopRemapDelay); |
|
150 |
|
151 if ( err != KErrNone ) |
|
152 { |
|
153 LOG1("CLocationManagerServer::ConstructL, iLocManStopRemapDelay err:%d", err); |
|
154 iLocManStopRemapDelay = KLocationTrailRemapShutdownDelay; |
|
155 } |
145 |
156 |
146 LOG ("CLocationManagerServer::ConstructL() end"); |
157 LOG ("CLocationManagerServer::ConstructL() end"); |
147 } |
158 } |
148 |
159 |
149 // -------------------------------------------------------------------------- |
160 // -------------------------------------------------------------------------- |
293 // CLocationManagerServer::StartGPSPositioningL |
304 // CLocationManagerServer::StartGPSPositioningL |
294 // -------------------------------------------------------------------------- |
305 // -------------------------------------------------------------------------- |
295 // |
306 // |
296 void CLocationManagerServer::StartGPSPositioningL( RLocationTrail::TTrailCaptureSetting aCaptureSetting ) |
307 void CLocationManagerServer::StartGPSPositioningL( RLocationTrail::TTrailCaptureSetting aCaptureSetting ) |
297 { |
308 { |
|
309 LOG( "CLocationManagerServer::StartGPSPositioningL" ); |
298 if ( aCaptureSetting == RLocationTrail::EOff ) |
310 if ( aCaptureSetting == RLocationTrail::EOff ) |
299 { |
311 { |
300 return; |
312 return; |
301 } |
313 } |
302 |
314 |
321 // CLocationManagerServer::StopGPSPositioning |
334 // CLocationManagerServer::StopGPSPositioning |
322 // -------------------------------------------------------------------------- |
335 // -------------------------------------------------------------------------- |
323 // |
336 // |
324 void CLocationManagerServer::StopGPSPositioningL() |
337 void CLocationManagerServer::StopGPSPositioningL() |
325 { |
338 { |
|
339 LOG( "CLocationManagerServer::StopGPSPositioningL()" ); |
326 iCaptureSetting = RLocationTrail::EOff; |
340 iCaptureSetting = RLocationTrail::EOff; |
327 |
341 |
328 RLocationTrail::TTrailState state; |
342 RLocationTrail::TTrailState state; |
329 GetLocationTrailState( state ); |
343 GetLocationTrailState( state ); |
330 if( state == RLocationTrail::ETrailStarted || state == RLocationTrail::ETrailStarting ) |
344 |
331 { |
345 |
332 iLocationRecord->Stop(); |
346 if( state != RLocationTrail::ETrailStopped && state != RLocationTrail::ETrailStopping ) |
|
347 { |
|
348 TRAPD( error, iTimer = CPeriodic::NewL( CActive::EPriorityHigh ) ); |
|
349 |
|
350 if ( error != KErrNone ) |
|
351 { |
|
352 // If timer can't be created we stop the location trail immediately. |
|
353 iLocationRecord->Stop(); |
|
354 StopTrackLogL(); |
|
355 return; |
|
356 } |
|
357 |
|
358 iLocationRecord->SetStateToStopping(); |
|
359 iTimer->Start( iLocManStopDelay * 1000000, 0, TCallBack( CheckForRemappingCallback, this ) ); |
333 } |
360 } |
334 else if ( state != RLocationTrail::ETrailStopped && state != RLocationTrail::ETrailStopping ) |
|
335 { |
|
336 if ( iLocationRecord->RemappingNeeded() ) |
|
337 { |
|
338 TRAPD( error, iTimer = CPeriodic::NewL( CActive::EPriorityStandard ) ); |
|
339 if ( error != KErrNone ) |
|
340 { |
|
341 // If timer can't be created we stop the location trail immediately. |
|
342 iLocationRecord->Stop(); |
|
343 StopTrackLogL(); |
|
344 return; |
|
345 } |
|
346 iLocationRecord->SetStateToStopping(); |
|
347 iTimer->Start( iLocManStopDelay * 1000000, 0, TCallBack( PositioningStopTimeout, this ) ); |
|
348 } |
|
349 else |
|
350 { |
|
351 iLocationRecord->Stop(); |
|
352 } |
|
353 } |
|
354 |
361 |
355 // Always stop tracklog. |
362 // Always stop tracklog. |
356 StopTrackLogL(); |
363 StopTrackLogL(); |
357 } |
364 } |
358 |
365 |
360 // CLocationUtilityServer::StopRecording |
367 // CLocationUtilityServer::StopRecording |
361 // -------------------------------------------------------------------------- |
368 // -------------------------------------------------------------------------- |
362 // |
369 // |
363 void CLocationManagerServer::StopRecording() |
370 void CLocationManagerServer::StopRecording() |
364 { |
371 { |
|
372 LOG( "CLocationManagerServer::StopRecording()" ); |
365 iLocationRecord->Stop(); |
373 iLocationRecord->Stop(); |
366 delete iTimer; |
374 delete iTimer; |
367 iTimer = NULL; |
375 iTimer = NULL; |
368 } |
376 } |
369 |
377 |
371 // CLocationUtilityServer::PositioningStopTimeout |
379 // CLocationUtilityServer::PositioningStopTimeout |
372 // -------------------------------------------------------------------------- |
380 // -------------------------------------------------------------------------- |
373 // |
381 // |
374 TInt CLocationManagerServer::PositioningStopTimeout( TAny* aAny ) |
382 TInt CLocationManagerServer::PositioningStopTimeout( TAny* aAny ) |
375 { |
383 { |
|
384 LOG( "CLocationManagerServer::PositioningStopTimeout" ); |
376 CLocationManagerServer* self = STATIC_CAST( CLocationManagerServer*, aAny ); |
385 CLocationManagerServer* self = STATIC_CAST( CLocationManagerServer*, aAny ); |
377 self->StopRecording(); |
386 self->StopRecording(); |
378 |
387 |
379 return KErrNone; |
388 return KErrNone; |
380 } |
389 } |
|
390 |
|
391 // -------------------------------------------------------------------------- |
|
392 // CLocationUtilityServer::PositioningStopTimeout |
|
393 // -------------------------------------------------------------------------- |
|
394 // |
|
395 TInt CLocationManagerServer::CheckForRemappingCallback( TAny* aAny ) |
|
396 { |
|
397 LOG( "CLocationManagerServer::CheckForRemappingCallback" ); |
|
398 CLocationManagerServer* self = STATIC_CAST( CLocationManagerServer*, aAny ); |
|
399 |
|
400 self->iTimer->Cancel(); |
|
401 |
|
402 if ( self->iLocationRecord->RemappingNeeded() ) |
|
403 { |
|
404 self->iTimer->Start( self->iLocManStopRemapDelay * 1000000, 0, TCallBack( PositioningStopTimeout, self ) ); |
|
405 } |
|
406 else |
|
407 { |
|
408 self->StopRecording(); |
|
409 } |
|
410 |
|
411 return KErrNone; |
|
412 } |
381 |
413 |
382 // -------------------------------------------------------------------------- |
414 // -------------------------------------------------------------------------- |
383 // CLocationManagerServer::GetLocationTrailState |
415 // CLocationManagerServer::GetLocationTrailState |
384 // -------------------------------------------------------------------------- |
416 // -------------------------------------------------------------------------- |
385 // |
417 // |
441 // CLocationManagerServer::GetLocationByTimeL |
473 // CLocationManagerServer::GetLocationByTimeL |
442 // -------------------------------------------------------------------------- |
474 // -------------------------------------------------------------------------- |
443 // |
475 // |
444 void CLocationManagerServer::GetLocationByTimeL( const TTime& aTimeStamp, |
476 void CLocationManagerServer::GetLocationByTimeL( const TTime& aTimeStamp, |
445 TLocationData& aLocationData, |
477 TLocationData& aLocationData, |
446 TLocTrailState& aState ) |
478 TLocTrailState& aState ) __SOFTFP |
447 { |
479 { |
448 iLocationRecord->GetLocationByTimeL( aTimeStamp, |
480 iLocationRecord->GetLocationByTimeL( aTimeStamp, |
449 aLocationData, |
481 aLocationData, |
450 aState ); |
482 aState ); |
451 } |
483 } |
495 |
527 |
496 // -------------------------------------------------------------------------- |
528 // -------------------------------------------------------------------------- |
497 // CLocationManagerServer::GetCurrentCellId |
529 // CLocationManagerServer::GetCurrentCellId |
498 // -------------------------------------------------------------------------- |
530 // -------------------------------------------------------------------------- |
499 // |
531 // |
500 void CLocationManagerServer::GetCurrentNetworkInfo( CTelephony::TNetworkInfoV1& aNetworkInfo ) |
532 void CLocationManagerServer::GetCurrentNetworkInfo( CTelephony::TNetworkInfoV1& aNetworkInfo ) __SOFTFP |
501 { |
533 { |
502 iLocationRecord->GetNetworkInfo( aNetworkInfo ); |
534 iLocationRecord->GetNetworkInfo( aNetworkInfo ); |
503 } |
535 } |
504 |
536 |
505 // -------------------------------------------------------------------------- |
537 // -------------------------------------------------------------------------- |
506 // CLocationManagerServer::LocationTrailStateChange |
538 // CLocationManagerServer::LocationTrailStateChange |
507 // -------------------------------------------------------------------------- |
539 // -------------------------------------------------------------------------- |
508 // |
540 // |
509 void CLocationManagerServer::LocationTrailStateChange() |
541 void CLocationManagerServer::LocationTrailStateChange() __SOFTFP |
510 { |
542 { |
511 LOG( "CLocationManagerServer::LocationTrailStateChange(), begin" ); |
543 LOG( "CLocationManagerServer::LocationTrailStateChange(), begin" ); |
512 |
544 |
513 for ( TInt i = iNotifReqs.Count(); --i >= 0; ) |
545 for ( TInt i = iNotifReqs.Count(); --i >= 0; ) |
514 { |
546 { |
527 // CLocationManagerServer::CurrentLocation |
559 // CLocationManagerServer::CurrentLocation |
528 // -------------------------------------------------------------------------- |
560 // -------------------------------------------------------------------------- |
529 // |
561 // |
530 void CLocationManagerServer::CurrentLocation( const TPositionSatelliteInfo& aSatelliteInfo, |
562 void CLocationManagerServer::CurrentLocation( const TPositionSatelliteInfo& aSatelliteInfo, |
531 const CTelephony::TNetworkInfoV1& aNetworkInfo, |
563 const CTelephony::TNetworkInfoV1& aNetworkInfo, |
532 const TInt aError ) |
564 const TInt aError ) __SOFTFP |
533 { |
565 { |
534 LOG( "CLocationManagerServer::CurrentLocation(), begin" ); |
566 LOG( "CLocationManagerServer::CurrentLocation(), begin" ); |
535 const TInt KParamLocationData = 0; |
567 const TInt KParamLocationData = 0; |
536 |
568 |
537 TLocationData locationData; |
569 TLocationData locationData; |
574 iLocationReqs.Reset(); |
606 iLocationReqs.Reset(); |
575 |
607 |
576 LOG( "CLocationManagerServer::CurrentLocation(), end" ); |
608 LOG( "CLocationManagerServer::CurrentLocation(), end" ); |
577 } |
609 } |
578 |
610 |
579 void CLocationManagerServer::GPSSignalQualityChanged( const TPositionSatelliteInfo& aSatelliteInfo ) |
611 void CLocationManagerServer::GPSSignalQualityChanged( const TPositionSatelliteInfo& aSatelliteInfo ) __SOFTFP |
580 { |
612 { |
581 LOG( "CLocationManagerServer::GPSSignalQualityChanged" ); |
613 LOG( "CLocationManagerServer::GPSSignalQualityChanged" ); |
582 const TInt KFixParam = 0; |
614 const TInt KFixParam = 0; |
583 const TInt KPositionInfoParam = 1; |
615 const TInt KPositionInfoParam = 1; |
584 const TInt KEventTypeParam = 2; |
616 const TInt KEventTypeParam = 2; |
649 |
681 |
650 LOG( "CLocationManagerServer::CancelTrackLogNotificationRequest(), end" ); |
682 LOG( "CLocationManagerServer::CancelTrackLogNotificationRequest(), end" ); |
651 } |
683 } |
652 |
684 |
653 void CLocationManagerServer::CreateLocationObjectL( const TLocationData& aLocationData, |
685 void CLocationManagerServer::CreateLocationObjectL( const TLocationData& aLocationData, |
654 const TUint& aObjectId ) |
686 const TUint& aObjectId ) __SOFTFP |
655 { |
687 { |
656 if ( !IsSessionReady() ) |
688 if ( !IsSessionReady() ) |
657 { |
689 { |
658 User::Leave( KErrNotReady ); |
690 User::Leave( KErrNotReady ); |
659 } |
691 } |
1010 { |
1042 { |
1011 aRec = iTrackLog->IsRecording(); |
1043 aRec = iTrackLog->IsRecording(); |
1012 } |
1044 } |
1013 |
1045 |
1014 void CLocationManagerServer::GpxFileCreated( const TDesC& aFileName, TItemId aTagId, |
1046 void CLocationManagerServer::GpxFileCreated( const TDesC& aFileName, TItemId aTagId, |
1015 TReal32 aLength, TTime aStart, TTime aEnd ) |
1047 TReal32 aLength, TTime aStart, TTime aEnd ) __SOFTFP |
1016 { |
1048 { |
1017 TRAP_IGNORE( CreateTrackLogL( aTagId, aFileName, aLength, aStart, aEnd ) ); |
1049 TRAP_IGNORE( CreateTrackLogL( aTagId, aFileName, aLength, aStart, aEnd ) ); |
1018 } |
1050 } |
1019 |
1051 |
1020 TItemId CLocationManagerServer::CreateTrackLogTagL() |
1052 TItemId CLocationManagerServer::CreateTrackLogTagL() |