--- a/mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp Mon May 03 12:58:40 2010 +0300
+++ b/mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp Fri May 14 16:21:14 2010 +0300
@@ -1478,6 +1478,23 @@
{
iProperties[EPbPropertyPosition] = 0;
}
+
+ //check whether plugin is KMPXPlaybackPluginVersion2, if not, set saved position
+ CDesCArray* interfaces = iPluginHandler->SupportedInterfacesL( iPluginUid );
+ TBool version2InterfaceSupported = EFalse;
+ if ( interfaces->MdcaCount() )
+ {
+ TInt pos(0);
+ version2InterfaceSupported = !interfaces->FindIsq( KMPXPlaybackPluginVersion2, pos );
+ }
+ delete interfaces;
+
+ if ( !version2InterfaceSupported )
+ {
+ // Set position to restore saved position.
+ TRAP_IGNORE( // uPnP leaves if set position in stop state
+ PluginL()->SetL( EPbPropertyPosition, iProperties[EPbPropertyPosition] ));
+ }
iAutoResumeHandler->HandleOpenFileComplete();
@@ -1678,14 +1695,6 @@
iCallback->HandleProperty(aProperty,aValue,aError);
iCallback = NULL;
iTaskQueue->CompleteTask();
-
- // notify client the new position during the playback
- if ((EPbPropertyPosition == aProperty) && (iProgressTimer->IsActive()))
- {
- TRAP_IGNORE(iClientList->SendMsgL(
- TMPXPlaybackMessage(TMPXPlaybackMessage::EPropertyChanged,
- EPbPropertyPosition,aValue)));
- }
}
MPX_DEBUG2("<--CMPXPlaybackEngine::HandleProperty 0x%08x", this);
}
@@ -2628,7 +2637,7 @@
MPX_DEBUG1("==>CMPXPlaybackEngine::DoStopL()");
Suspend();
if (iState == EPbStatePaused || iState == EPbStatePlaying ||
- iState == EPbStateInitialising)
+ iState == EPbStateInitialising || iState == EPbStateBuffering)
{
if (aSavePlaybackInfo && (iState == EPbStatePaused || iState == EPbStatePlaying ))
{