imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimageprovider.cpp
branchRCL_3
changeset 41 9d4d3445ce6e
parent 40 6257223ede8a
child 58 9e8b0cc88842
equal deleted inserted replaced
40:6257223ede8a 41:9d4d3445ce6e
    23 #include "thumbnailimagedecoder.h"
    23 #include "thumbnailimagedecoder.h"
    24 #include "thumbnailimagedecoderv2.h"
    24 #include "thumbnailimagedecoderv2.h"
    25 #include "thumbnailmanageruids.hrh"
    25 #include "thumbnailmanageruids.hrh"
    26 #include "thumbnaillog.h"
    26 #include "thumbnaillog.h"
    27 #include "thumbnailmanagerconstants.h"
    27 #include "thumbnailmanagerconstants.h"
    28 #include "OstTraceDefinitions.h"
       
    29 #ifdef OST_TRACE_COMPILER_IN_USE
       
    30 #include "thumbnailimageproviderTraces.h"
       
    31 #endif
       
    32 
       
    33 
    28 
    34 #ifndef IMPLEMENTATION_PROXY_ENTRY
    29 #ifndef IMPLEMENTATION_PROXY_ENTRY
    35 typedef TAny* TProxyNewLPtr;
    30 typedef TAny* TProxyNewLPtr;
    36 #define IMPLEMENTATION_PROXY_ENTRY(aUid, aFuncPtr) \
    31 #define IMPLEMENTATION_PROXY_ENTRY(aUid, aFuncPtr) \
    37 { {aUid}, static_cast<TProxyNewLPtr>(aFuncPtr) }
    32 { {aUid}, static_cast<TProxyNewLPtr>(aFuncPtr) }
    58 // ---------------------------------------------------------------------------
    53 // ---------------------------------------------------------------------------
    59 //
    54 //
    60 CThumbnailImageProvider::CThumbnailImageProvider()
    55 CThumbnailImageProvider::CThumbnailImageProvider()
    61     {
    56     {
    62     TN_DEBUG1( "CThumbnailImageProvider::CThumbnailImageProvider()" );
    57     TN_DEBUG1( "CThumbnailImageProvider::CThumbnailImageProvider()" );
    63     OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEPROVIDER_CTHUMBNAILIMAGEPROVIDER, "CThumbnailImageProvider::CThumbnailImageProvider" );
       
    64     }
    58     }
    65 
    59 
    66 
    60 
    67 // ---------------------------------------------------------------------------
    61 // ---------------------------------------------------------------------------
    68 // CThumbnailImageProvider::~CThumbnailImageProvider()
    62 // CThumbnailImageProvider::~CThumbnailImageProvider()
    70 // ---------------------------------------------------------------------------
    64 // ---------------------------------------------------------------------------
    71 //
    65 //
    72 CThumbnailImageProvider::~CThumbnailImageProvider()
    66 CThumbnailImageProvider::~CThumbnailImageProvider()
    73     {
    67     {
    74     TN_DEBUG1( "CThumbnailImageProvider::~CThumbnailImageProvider()" );
    68     TN_DEBUG1( "CThumbnailImageProvider::~CThumbnailImageProvider()" );
    75     OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEPROVIDER_CTHUMBNAILIMAGEPROVIDER, "CThumbnailImageProvider::~CThumbnailImageProvider" );
       
    76     delete iImageDecoder;
    69     delete iImageDecoder;
    77     iImageDecoder = NULL;
    70     iImageDecoder = NULL;
    78     delete iImageDecoderv2;
    71     delete iImageDecoderv2;
    79     iImageDecoderv2 = NULL;
    72     iImageDecoderv2 = NULL;
    80     REComSession::DestroyedImplementation( iDtor_ID_Key );
    73     REComSession::DestroyedImplementation( iDtor_ID_Key );
    89 void CThumbnailImageProvider::GetThumbnailL( RFs& aFs, RFile64& aFile, const
    82 void CThumbnailImageProvider::GetThumbnailL( RFs& aFs, RFile64& aFile, const
    90     TDataType& aMimeType, const CThumbnailManager::TThumbnailFlags aFlags,
    83     TDataType& aMimeType, const CThumbnailManager::TThumbnailFlags aFlags,
    91     const TDisplayMode /*aDisplayMode*/, const CThumbnailManager::TThumbnailQualityPreference aQualityPreference )
    84     const TDisplayMode /*aDisplayMode*/, const CThumbnailManager::TThumbnailQualityPreference aQualityPreference )
    92     {
    85     {
    93     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() start" );
    86     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() start" );
    94     OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEPROVIDER_GETTHUMBNAILL, "CThumbnailImageProvider::GetThumbnailL - start" );
       
    95 
    87 
    96     if ( !iImageDecoder )
    88     if ( !iImageDecoder )
    97         {
    89         {
    98         iImageDecoder = new( ELeave )CThumbnailImageDecoder( aFs );
    90         iImageDecoder = new( ELeave )CThumbnailImageDecoder( aFs );
    99         }
    91         }
   101     iMimeType = aMimeType;
    93     iMimeType = aMimeType;
   102     iFlags = aFlags;
    94     iFlags = aFlags;
   103     iQualityPreference = aQualityPreference;
    95     iQualityPreference = aQualityPreference;
   104 	//set default mode displaymode from global constants
    96 	//set default mode displaymode from global constants
   105     iDisplayMode = KStoreDisplayMode;
    97     iDisplayMode = KStoreDisplayMode;
   106 
    98     
   107 //Symbian^4 specific
       
   108     if ( KJpegMime() != iMimeType.Des8() ) 
       
   109         {
       
   110         iDisplayMode = EColor16M;
       
   111         }
       
   112 		
       
   113 //TODO currently only ARM platforms supports MAP mode
       
   114 #if !(defined(__CC_ARM) || defined(__ARMCC__))
       
   115     iDisplayMode = EColor16M;
       
   116 #endif	
       
   117 	
       
   118     iImageDecoder->CreateL( aFile, *iObserver, iQualityPreference, iMimeType, iTargetSize );
    99     iImageDecoder->CreateL( aFile, *iObserver, iQualityPreference, iMimeType, iTargetSize );
   119     iOriginalSize = iImageDecoder->OriginalSize();
   100     iOriginalSize = iImageDecoder->OriginalSize();
   120     iImageDecoder->DecodeL( iDisplayMode, iFlags );
   101     iImageDecoder->DecodeL( iDisplayMode, iFlags );
   121     
   102     
   122     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() end" );
   103     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() end" );
   123     OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEPROVIDER_GETTHUMBNAILL, "CThumbnailImageProvider::GetThumbnailL - end" );
       
   124     }
   104     }
   125 
   105 
   126 // ---------------------------------------------------------------------------
   106 // ---------------------------------------------------------------------------
   127 // CThumbnailImageProvider::GetThumbnailL()
   107 // CThumbnailImageProvider::GetThumbnailL()
   128 // Provides the thumbnail image
   108 // Provides the thumbnail image
   131 void CThumbnailImageProvider::GetThumbnailL( RFs& aFs, TDesC8* aBuffer, const
   111 void CThumbnailImageProvider::GetThumbnailL( RFs& aFs, TDesC8* aBuffer, const
   132     TDataType& aMimeType, const CThumbnailManager::TThumbnailFlags aFlags,
   112     TDataType& aMimeType, const CThumbnailManager::TThumbnailFlags aFlags,
   133     const TDisplayMode /*aDisplayMode*/, const CThumbnailManager::TThumbnailQualityPreference aQualityPreference )
   113     const TDisplayMode /*aDisplayMode*/, const CThumbnailManager::TThumbnailQualityPreference aQualityPreference )
   134     {
   114     {
   135     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() start" );
   115     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() start" );
   136     OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILIMAGEPROVIDER_GETTHUMBNAILL, "CThumbnailImageProvider::GetThumbnailL - start" );
       
   137     
   116     
   138     if ( !iImageDecoder )
   117     if ( !iImageDecoder )
   139         {
   118         {
   140         iImageDecoder = new( ELeave )CThumbnailImageDecoder( aFs );
   119         iImageDecoder = new( ELeave )CThumbnailImageDecoder( aFs );
   141         }
   120         }
   143     iMimeType = aMimeType;
   122     iMimeType = aMimeType;
   144     iFlags = aFlags;
   123     iFlags = aFlags;
   145     iQualityPreference = aQualityPreference;
   124     iQualityPreference = aQualityPreference;
   146 	//set default mode displaymode from global constants
   125 	//set default mode displaymode from global constants
   147     iDisplayMode = KStoreDisplayMode;
   126     iDisplayMode = KStoreDisplayMode;
   148 	
   127     
   149 //Symbian^4 specific
       
   150     if ( KJpegMime() != iMimeType.Des8() ) 
       
   151         {
       
   152         iDisplayMode = EColor16M;
       
   153         }
       
   154 
       
   155 //TODO currently only ARM platforms supports MAP mode
       
   156 #if !(defined(__CC_ARM) || defined(__ARMCC__))
       
   157     iDisplayMode = EColor16M;
       
   158 #endif	
       
   159 		
       
   160     iImageDecoder->CreateL( aBuffer, *iObserver, iQualityPreference, iMimeType, iTargetSize );
   128     iImageDecoder->CreateL( aBuffer, *iObserver, iQualityPreference, iMimeType, iTargetSize );
   161     iOriginalSize = iImageDecoder->OriginalSize();
   129     iOriginalSize = iImageDecoder->OriginalSize();
   162     iImageDecoder->DecodeL( iDisplayMode, iFlags );
   130     iImageDecoder->DecodeL( iDisplayMode, iFlags );
   163     
   131     
   164     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() end" );
   132     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() end" );
   165     OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILIMAGEPROVIDER_GETTHUMBNAILL, "CThumbnailImageProvider::GetThumbnailL - end" );
       
   166     }
   133     }
   167 
   134 
   168 // ---------------------------------------------------------------------------
   135 // ---------------------------------------------------------------------------
   169 // CThumbnailImageProvider::GetThumbnailL()
   136 // CThumbnailImageProvider::GetThumbnailL()
   170 // Provides the thumbnail image
   137 // Provides the thumbnail image
   171 // ---------------------------------------------------------------------------
   138 // ---------------------------------------------------------------------------
   172 //
   139 //
   173 void CThumbnailImageProvider::GetThumbnailL( RFs& aFs, TDesC8& aBuffer)
   140 void CThumbnailImageProvider::GetThumbnailL( RFs& aFs, TDesC8& aBuffer)
   174     {
   141     {
   175     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() start" );
   142     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() start" );
   176     OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILIMAGEPROVIDER_GETTHUMBNAILL, "CThumbnailImageProvider::GetThumbnailL - start" );
       
   177 
   143 
   178     if ( !iImageDecoderv2 )
   144     if ( !iImageDecoderv2 )
   179         {     
   145         {     
   180         iImageDecoderv2 = new( ELeave )CThumbnailImageDecoderv2( aFs);
   146         iImageDecoderv2 = new( ELeave )CThumbnailImageDecoderv2( aFs);
   181         }
   147         }
   183     iImageDecoderv2->CreateL(aBuffer, *iObserver);
   149     iImageDecoderv2->CreateL(aBuffer, *iObserver);
   184        
   150        
   185     iImageDecoderv2->DecodeL();
   151     iImageDecoderv2->DecodeL();
   186     
   152     
   187     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() end" );
   153     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() end" );
   188     OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILIMAGEPROVIDER_GETTHUMBNAILL, "CThumbnailImageProvider::GetThumbnailL - end" );
       
   189     }
   154     }
   190 
   155 
   191 // ---------------------------------------------------------------------------
   156 // ---------------------------------------------------------------------------
   192 // Cancel thumbnail request
   157 // Cancel thumbnail request
   193 // ---------------------------------------------------------------------------
   158 // ---------------------------------------------------------------------------