mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataprovider.cpp
branchRCL_3
changeset 15 d240f0a77280
parent 14 05b0d2323768
child 17 780c925249c1
equal deleted inserted replaced
14:05b0d2323768 15:d240f0a77280
   239 void CMediaMtpDataProvider::SessionClosedL( const TMTPNotificationParamsSessionChange& aSession )
   239 void CMediaMtpDataProvider::SessionClosedL( const TMTPNotificationParamsSessionChange& aSession )
   240     {
   240     {
   241     iIsSessionOpen = EFalse;
   241     iIsSessionOpen = EFalse;
   242     TInt count = iActiveProcessors.Count();
   242     TInt count = iActiveProcessors.Count();
   243     PRINT1( _L( "MM MTP => CMediaMtpDataProvider::SessionClosedL, total processor count = %d" ), count );
   243     PRINT1( _L( "MM MTP => CMediaMtpDataProvider::SessionClosedL, total processor count = %d" ), count );
   244     for( TInt i = 0; i < count; i++ )
   244     while ( count-- )
   245         {
   245         {
   246         MMmRequestProcessor* processor = iActiveProcessors[i];
   246         MMmRequestProcessor* processor = iActiveProcessors[count];
   247 
   247 
   248         // replaced for the Request() is invalid sometimes
   248         // replaced for the Request() is invalid sometimes
   249         // TUint32 sessionId( processor->Request().Uint32( TMTPTypeRequest::ERequestSessionID ) );
   249         // TUint32 sessionId( processor->Request().Uint32( TMTPTypeRequest::ERequestSessionID ) );
   250         TUint32 sessionId = processor->SessionId();
   250         TUint32 sessionId = processor->SessionId();
   251 
   251 
   253                 && ( processor->Connection().ConnectionId()
   253                 && ( processor->Connection().ConnectionId()
   254                 == aSession.iConnection.ConnectionId() ) )
   254                 == aSession.iConnection.ConnectionId() ) )
   255             {
   255             {
   256             processor->UsbDisconnect(); // Rollback
   256             processor->UsbDisconnect(); // Rollback
   257 
   257 
   258             iActiveProcessors.Remove( i );
   258             iActiveProcessors.Remove( count );
   259             if ( i == iActiveProcessor )
   259             if ( count == iActiveProcessor )
   260                 {
   260                 {
   261                 iActiveProcessorRemoved = ETrue;
   261                 iActiveProcessorRemoved = ETrue;
       
   262                 iActiveProcessor = -1;  // update iActiveProcessor
   262                 }
   263                 }
   263             else
   264             else
   264                 {
   265                 {
   265                 processor->Release();
   266                 processor->Release();
   266                 }
   267                 }