diff -r 2eb3b066cc7d -r bea5e7625e42 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioPlayController.cpp --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioPlayController.cpp Tue May 25 13:16:00 2010 +0300 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioPlayController.cpp Wed Jun 09 10:15:38 2010 +0300 @@ -1352,6 +1352,21 @@ {// we got preempted during a seek // we're already seeking to a position. When we get there we'll come here again, but handle it below DP0(_L("CAdvancedAudioPlayController::DoPauseL got a preemption during seek")); + + // if we are seeking, we need to flush the devsound buffers regardless of loop play + DP0(_L("CAdvancedAudioPlayController::DoPauseL AudioOutput->StopL()")); + iAudioOutput->StopL(); + + if (iPlayingForInitPos) + { + iState = EInitialized; + } + else + { + iState = EPaused; + } + iPlayingForPauseSeek = EFalse; + iPlayingForInitPos = EFalse; return; }