equal
deleted
inserted
replaced
545 } |
545 } |
546 |
546 |
547 if(iGetTimePlayedSupported) |
547 if(iGetTimePlayedSupported) |
548 { |
548 { |
549 TTimeIntervalMicroSeconds timePlayed(0); |
549 TTimeIntervalMicroSeconds timePlayed(0); |
550 if(iState == EPlaying && iDataSink->DataSinkType() == KUidMmfAudioOutput) |
550 if(iState == EPlaying |
|
551 || (iState == EPrimed && iPauseCalled) |
|
552 && iDataSink->DataSinkType() == KUidMmfAudioOutput ) |
|
553 |
551 { |
554 { |
552 CMMFAudioOutput* audioOutput = STATIC_CAST(CMMFAudioOutput*,iDataSink); |
555 CMMFAudioOutput* audioOutput = STATIC_CAST(CMMFAudioOutput*,iDataSink); |
553 CMMFDevSound& devSound = audioOutput->SoundDevice(); |
556 CMMFDevSound& devSound = audioOutput->SoundDevice(); |
554 TInt err= devSound.GetTimePlayed(timePlayed); |
557 TInt err= devSound.GetTimePlayed(timePlayed); |
555 if(err == KErrNone) |
558 if(err == KErrNone) |
722 return iStartPosition; |
725 return iStartPosition; |
723 } |
726 } |
724 #ifdef _DP_DEBUG |
727 #ifdef _DP_DEBUG |
725 RDebug::Print(_L("DP::CalculateAudioOutputDuration from %d\n"),iReferenceAudioSamplesPlayed); |
728 RDebug::Print(_L("DP::CalculateAudioOutputDuration from %d\n"),iReferenceAudioSamplesPlayed); |
726 #endif |
729 #endif |
727 |
|
728 CMMFAudioOutput* audioOutput = STATIC_CAST(CMMFAudioOutput*,iDataSink); |
730 CMMFAudioOutput* audioOutput = STATIC_CAST(CMMFAudioOutput*,iDataSink); |
729 CMMFDevSound& devSound = audioOutput->SoundDevice(); |
731 CMMFDevSound& devSound = audioOutput->SoundDevice(); |
730 |
732 |
731 TTimeIntervalMicroSeconds devSoundTimePlayed(0); |
733 TTimeIntervalMicroSeconds devSoundTimePlayed(0); |
732 TInt64 timePlayed(0); |
734 TInt64 timePlayed(0); |
733 TInt err = KErrNone; |
735 TInt err = KErrNone; |
734 if(iGetTimePlayedSupported) |
736 if(iGetTimePlayedSupported) |
735 { |
737 { |
736 err= devSound.GetTimePlayed(devSoundTimePlayed); |
738 if(iDataSource->DataSourceType() == KUidMmfFormatDecode) |
|
739 { |
|
740 devSoundTimePlayed = ((CMMFFormatDecode*)iDataSource)->PositionL(); |
|
741 } |
|
742 else |
|
743 { |
|
744 err= devSound.GetTimePlayed(devSoundTimePlayed); |
|
745 } |
737 if(err == KErrNone) |
746 if(err == KErrNone) |
738 { |
747 { |
739 timePlayed = devSoundTimePlayed.Int64()-iDevSoundRepositionTime.Int64(); |
748 timePlayed = devSoundTimePlayed.Int64()-iDevSoundRepositionTime.Int64(); |
740 } |
749 } |
741 } |
750 } |