mpengine/src/mpmpxplaybackframeworkwrapper_p.cpp
changeset 55 f3930dda3342
parent 51 560ce2306a17
child 59 cd9e40a08dda
equal deleted inserted replaced
51:560ce2306a17 55:f3930dda3342
    77 }
    77 }
    78 
    78 
    79 /*!
    79 /*!
    80  \internal
    80  \internal
    81  */
    81  */
    82 void MpMpxPlaybackFrameworkWrapperPrivate::init( TUid hostUid, MpSongData *songData )
    82 void MpMpxPlaybackFrameworkWrapperPrivate::init( quint32 clientSecureId, MpSongData *songData )
    83 {
    83 {
    84     TX_ENTRY
    84     TX_ENTRY
    85     iHostUid = hostUid;
    85     iHostUid = TUid::Uid( clientSecureId );
    86     iSongData = songData;
    86     iSongData = songData;
    87     TRAPD(err, DoInitL());
    87     TRAPD(err, DoInitL());
    88     if ( err != KErrNone ) {
    88     if ( err != KErrNone ) {
    89         TX_LOG_ARGS("Error: " << err << "; should never get here.");
    89         TX_LOG_ARGS("Error: " << err << "; should never get here.");
    90     }
    90     }
   733  */
   733  */
   734 void MpMpxPlaybackFrameworkWrapperPrivate::DoHandlePlaybackErrorL( const TInt aError )
   734 void MpMpxPlaybackFrameworkWrapperPrivate::DoHandlePlaybackErrorL( const TInt aError )
   735 {
   735 {
   736     TX_ENTRY
   736     TX_ENTRY
   737     switch ( aError ) {
   737     switch ( aError ) {
   738                 case KErrCorrupt:{
   738         case KErrNotSupported:
   739                     MMPXSource* source( iPlaybackUtility->Source() );
   739         case KErrCorrupt:{
   740                     if ( source ){
   740             MMPXSource* source( iPlaybackUtility->Source() );
   741                         CMPXCollectionPlaylist* playlist( source->PlaylistL() );
   741             if ( source ){
   742                         if ( playlist ){
   742                 CMPXCollectionPlaylist* playlist( source->PlaylistL() );
   743                             MpPlaybackData* pData = playbackData();
   743                 if ( playlist ){
   744                             pData->setCorrupted( playlist->Path().IdOfIndex( playlist->Index() ).iId2 );
   744                     MpPlaybackData* pData = playbackData();
   745                             
   745                     pData->setCorrupted( playlist->Path().IdOfIndex( playlist->Index() ).iId2 );
   746                             if ( playlist->Index() == ( playlist->Count()-1 ) ){
   746                            
   747                                 //reach the end of list, pop up corrupt notification
   747                     if ( playlist->Index() == ( playlist->Count()-1 ) ){
   748                                 emit q_ptr->corruptedStop();
   748                         //reach the end of list, pop up corrupt notification
   749                             }
   749                         emit q_ptr->corruptedStop(true);
   750                             else{
       
   751                                 //corrupted song, skip to next song
       
   752                                 skipForward();
       
   753                             }
       
   754                         }
       
   755                     }
   750                     }
   756                     break;
   751                     else{
       
   752                         //corrupted song; there is more song in the playlist
       
   753                         emit q_ptr->corruptedStop(false);
       
   754                     }
   757                 }
   755                 }
   758                 default:
   756                 else{
   759                     break;
   757                     // No playlist;single file playback.
       
   758                     emit q_ptr->corruptedStop(true);
       
   759                 }
   760             }
   760             }
       
   761             break;
       
   762         }
       
   763         default:
       
   764             break;
       
   765     }
   761     TX_EXIT
   766     TX_EXIT
   762 }
   767 }
   763 
   768 
   764 /*!
   769 /*!
   765  \internal
   770  \internal