videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/src/VCXMyVideosCollectionPluginTester.cpp
changeset 36 8aed59de29f9
parent 35 3738fe97f027
child 41 229f037ce963
equal deleted inserted replaced
35:3738fe97f027 36:8aed59de29f9
  2522     CMPXMedia* media = NULL;
  2522     CMPXMedia* media = NULL;
  2523 
  2523 
  2524     TInt realIndex = GetMediaIndexInCollectionL( aDrive, aIndex );
  2524     TInt realIndex = GetMediaIndexInCollectionL( aDrive, aIndex );
  2525 
  2525 
  2526     media = (*iCollectionMediaArray)[realIndex];
  2526     media = (*iCollectionMediaArray)[realIndex];
       
  2527 
  2527     return media;
  2528     return media;
  2528     }
  2529     }
  2529 
  2530 
  2530 // -----------------------------------------------------------------------------
  2531 // -----------------------------------------------------------------------------
  2531 // CVCXMyVideosCollectionPluginTester::GetIndexOfMediaWithNameL
  2532 // CVCXMyVideosCollectionPluginTester::GetIndexOfMediaWithNameL
  3105 // CVCXMyVideosCollectionPluginTester::EnsureMediaFilesAreNotInUseL
  3106 // CVCXMyVideosCollectionPluginTester::EnsureMediaFilesAreNotInUseL
  3106 // -----------------------------------------------------------------------------
  3107 // -----------------------------------------------------------------------------
  3107 //
  3108 //
  3108 void CVCXMyVideosCollectionPluginTester::EnsureMediaFilesAreNotInUseL()
  3109 void CVCXMyVideosCollectionPluginTester::EnsureMediaFilesAreNotInUseL()
  3109     {
  3110     {
  3110     if( iMediaArray->Count() <= 0 ) return; 
  3111     CMPXMediaArray* iSourceMedias;
       
  3112     
       
  3113     if( !iUseCopiedMedias )
       
  3114         {
       
  3115         if( !iMediaArray )
       
  3116             {
       
  3117             User::Leave( KErrNotReady );
       
  3118             }
       
  3119         iSourceMedias = iMediaArray;
       
  3120         }
       
  3121     else
       
  3122         {
       
  3123         if( !iMediaArrayCopy )
       
  3124             {
       
  3125             User::Leave( KErrNotReady );
       
  3126             }
       
  3127         iSourceMedias = iMediaArrayCopy;
       
  3128         }
       
  3129     
       
  3130     if( iSourceMedias->Count() <= 0 ) return; 
  3111     
  3131     
  3112     TInt retries = 200;
  3132     TInt retries = 200;
  3113     RFile64 file;
  3133     RFile64 file;
  3114     TInt error( KErrInUse );
  3134     TInt error( KErrNone );
  3115     
       
  3116     const TInt KEnsureMediasNotInUseID = 1234567;
       
  3117     
  3135     
  3118     TBool filesLocked( ETrue );
  3136     TBool filesLocked( ETrue );
  3119     // Check all files that they are not in use, retry few times.
  3137     // Check all files that they are not in use, retry few times.
  3120     while( --retries >= 0 && filesLocked ) 
  3138     while( --retries >= 0 && filesLocked ) 
  3121         {
  3139         {
  3122         filesLocked = EFalse;
  3140         filesLocked = EFalse;
  3123         
  3141         
  3124         for( TInt i=0; i<iMediaArray->Count(); i++ )
  3142         for( TInt i=0; i<iSourceMedias->Count(); i++ )
  3125             {
  3143             {
  3126             CMPXMedia* media = (*iMediaArray)[i];
  3144             CMPXMedia* media = (*iSourceMedias)[i];
  3127             
  3145             
  3128             if( media->IsSupported( KMPXMediaGeneralUri ) )
  3146             if( media->IsSupported( KMPXMediaGeneralUri ) )
  3129                 {
  3147                 {
  3130                 const TDesC& localFilePath = media->ValueText( KMPXMediaGeneralUri );
  3148                 const TDesC& localFilePath = media->ValueText( KMPXMediaGeneralUri );
  3131 
  3149 
  3132                 error = file.Open( iFs, localFilePath, EFileShareExclusive );
  3150                 TInt err = file.Open( iFs, localFilePath, EFileShareExclusive );
  3133                 if( error == KErrInUse || error == KErrLocked )
  3151                 if( err == KErrInUse || err == KErrLocked )
  3134                     {
  3152                     {
       
  3153                     error = err;
  3135                     filesLocked = ETrue;
  3154                     filesLocked = ETrue;
  3136                     User::After( 1000000 * 5 ); // Wait
  3155                     User::After( 1000000 * 5 ); // Wait
  3137                     break;
  3156                     break;
  3138                     }
  3157                     }
  3139                 file.Close();
  3158                 file.Close();
  3140                 }
  3159                 }
  3141             }
  3160             }
       
  3161         
       
  3162             if(!filesLocked)
       
  3163                 {
       
  3164                 error = KErrNone;
       
  3165                 }
  3142         }
  3166         }
  3143 
  3167 
  3144     if( error != KErrNone && error != KErrNotFound && error != KErrBadName )
  3168     if( error != KErrNone && error != KErrNotFound && error != KErrBadName )
  3145         {
  3169         {
  3146         VCXLOGLO2("CVCXMyVideosCollectionPluginTester::EnsureMediaFilesAreNotInUseL: error: %d", error);
  3170         VCXLOGLO2("CVCXMyVideosCollectionPluginTester::EnsureMediaFilesAreNotInUseL: error: %d", error);