mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp
branchRCL_3
changeset 23 4740b34b83ce
parent 19 51035f0751c2
child 30 6f9f6e99a23e
equal deleted inserted replaced
19:51035f0751c2 23:4740b34b83ce
  1476         // Check if position is not past the duration
  1476         // Check if position is not past the duration
  1477 	if ( iProperties[EPbPropertyPosition] >= iProperties[EPbPropertyDuration] )
  1477 	if ( iProperties[EPbPropertyPosition] >= iProperties[EPbPropertyDuration] )
  1478             {
  1478             {
  1479             iProperties[EPbPropertyPosition] = 0;
  1479             iProperties[EPbPropertyPosition] = 0;
  1480             }
  1480             }
       
  1481 	
       
  1482 	//check whether plugin is KMPXPlaybackPluginVersion2, if not, set saved position
       
  1483     CDesCArray* interfaces = iPluginHandler->SupportedInterfacesL( iPluginUid );
       
  1484     TBool version2InterfaceSupported = EFalse;
       
  1485     if ( interfaces->MdcaCount() )
       
  1486         {
       
  1487         TInt pos(0);            
       
  1488         version2InterfaceSupported = !interfaces->FindIsq( KMPXPlaybackPluginVersion2, pos );
       
  1489         }
       
  1490     delete interfaces;
       
  1491     
       
  1492     if ( !version2InterfaceSupported )
       
  1493         {
       
  1494         // Set position to restore saved position.
       
  1495         TRAP_IGNORE( // uPnP leaves if set position in stop state
       
  1496                 PluginL()->SetL( EPbPropertyPosition, iProperties[EPbPropertyPosition] ));
       
  1497         }
  1481 
  1498 
  1482     iAutoResumeHandler->HandleOpenFileComplete();
  1499     iAutoResumeHandler->HandleOpenFileComplete();
  1483     
  1500     
  1484     // Check if playback should not be started automatically.
  1501     // Check if playback should not be started automatically.
  1485     if ( iAccessPoint || ( iPlaylist && (!iPlaylist->AutoPlay()) ) )
  1502     if ( iAccessPoint || ( iPlaylist && (!iPlaylist->AutoPlay()) ) )
  2618 void CMPXPlaybackEngine::DoStopL(TBool aSavePlaybackInfo)
  2635 void CMPXPlaybackEngine::DoStopL(TBool aSavePlaybackInfo)
  2619     {
  2636     {
  2620     MPX_DEBUG1("==>CMPXPlaybackEngine::DoStopL()");
  2637     MPX_DEBUG1("==>CMPXPlaybackEngine::DoStopL()");
  2621     Suspend();
  2638     Suspend();
  2622     if (iState == EPbStatePaused || iState == EPbStatePlaying ||
  2639     if (iState == EPbStatePaused || iState == EPbStatePlaying ||
  2623         iState == EPbStateInitialising)
  2640         iState == EPbStateInitialising || iState == EPbStateBuffering)
  2624         {
  2641         {
  2625         if (aSavePlaybackInfo && (iState == EPbStatePaused || iState == EPbStatePlaying ))
  2642         if (aSavePlaybackInfo && (iState == EPbStatePaused || iState == EPbStatePlaying ))
  2626             {
  2643             {
  2627             TRAP_IGNORE(SavePlaybackInfoL()); // Leave when MMC eject and database already closed.
  2644             TRAP_IGNORE(SavePlaybackInfoL()); // Leave when MMC eject and database already closed.
  2628             }
  2645             }