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 // --------------------------------------------------------------------------- |