imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailaudioprovider.cpp
branchRCL_3
changeset 28 ff2fb7658ff7
parent 24 f0aa341a25bf
child 38 2b4b06654caa
equal deleted inserted replaced
24:f0aa341a25bf 28:ff2fb7658ff7
    93     metaDataUtil->OpenFileL(aFile, wantedFields, aMimeType.Des8());
    93     metaDataUtil->OpenFileL(aFile, wantedFields, aMimeType.Des8());
    94     const CMetaDataFieldContainer& metaCont = metaDataUtil->MetaDataFieldsL();
    94     const CMetaDataFieldContainer& metaCont = metaDataUtil->MetaDataFieldsL();
    95     TPtrC8 ptr = metaCont.Field8( EMetaDataJpeg );
    95     TPtrC8 ptr = metaCont.Field8( EMetaDataJpeg );
    96     HBufC8* data = ptr.AllocL();
    96     HBufC8* data = ptr.AllocL();
    97     
    97     
       
    98     CleanupStack::PopAndDestroy(&wantedFields);
       
    99     CleanupStack::PopAndDestroy(metaDataUtil);
    98     CleanupStack::PushL( data );
   100     CleanupStack::PushL( data );
    99     
   101     
   100     if(data->Length() == 0)
   102     if(data->Length() == 0)
   101       {
   103       {
   102       User::Leave( KErrNotFound );            
   104       User::Leave( KErrNotFound );            
   109     
   111     
   110     iMimeType = TDataType(KJpegMime);
   112     iMimeType = TDataType(KJpegMime);
   111     iFlags = aFlags;
   113     iFlags = aFlags;
   112 	//set default mode displaymode from global constants
   114 	//set default mode displaymode from global constants
   113     iDisplayMode = KStoreDisplayMode;
   115     iDisplayMode = KStoreDisplayMode;
   114     
   116     TRAPD( err, iImageDecoderv3->CreateL( data, *iObserver, iFlags, iMimeType, iTargetSize ) );
   115     iImageDecoderv3->CreateL( data, *iObserver, iFlags, iMimeType, iTargetSize );
   117     if (err == KErrNone)
   116     
   118         {
   117     CleanupStack::Pop( data );
   119         CleanupStack::Pop( data );
   118     CleanupStack::PopAndDestroy(&wantedFields);
   120         }
   119     CleanupStack::PopAndDestroy(metaDataUtil);
   121     else
       
   122         {
       
   123         // this is because data buffer is already released in CreateDecoderL
       
   124         // and we must prevent automatic PopAndDestroy
       
   125         CleanupStack::Pop( data );
       
   126         User::Leave(err);
       
   127         } 
   120     
   128     
   121     iOriginalSize = iImageDecoderv3->OriginalSize();
   129     iOriginalSize = iImageDecoderv3->OriginalSize();
   122     iImageDecoderv3->DecodeL( iDisplayMode );
   130     iImageDecoderv3->DecodeL( iDisplayMode );
   123     }
   131     }
   124 
   132