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); |