136 iTnEngine->SetQualityPreferenceL( CThumbnailManager::EOptimizeForQuality ); |
144 iTnEngine->SetQualityPreferenceL( CThumbnailManager::EOptimizeForQuality ); |
137 iTnEngine->SetThumbnailSizeL( iSize ); |
145 iTnEngine->SetThumbnailSizeL( iSize ); |
138 TCallBack callback(CMpxTNLoader::LoadThumbnail, this); |
146 TCallBack callback(CMpxTNLoader::LoadThumbnail, this); |
139 iAsyncCallBack = new (ELeave) CAsyncCallBack( CActive::EPriorityStandard ); |
147 iAsyncCallBack = new (ELeave) CAsyncCallBack( CActive::EPriorityStandard ); |
140 iAsyncCallBack->Set(callback); |
148 iAsyncCallBack->Set(callback); |
|
149 iPauseTimer = CPeriodic::NewL( CActive::EPriorityStandard ); |
141 } |
150 } |
142 |
151 |
143 // ----------------------------------------------------------------------------- |
152 // ----------------------------------------------------------------------------- |
144 // CMpxTNLoader::FindLoading() |
153 // CMpxTNLoader::FindLoading() |
145 // ----------------------------------------------------------------------------- |
154 // ----------------------------------------------------------------------------- |
207 void CMpxTNLoader::CancelThumb( TInt aIndex ) |
216 void CMpxTNLoader::CancelThumb( TInt aIndex ) |
208 { |
217 { |
209 TInt loadingIndex = FindLoadingByIndex( aIndex ); |
218 TInt loadingIndex = FindLoadingByIndex( aIndex ); |
210 if(loadingIndex != KErrNotFound) |
219 if(loadingIndex != KErrNotFound) |
211 { |
220 { |
212 // Current thumbnail manager has bugs in thumbnail request cancelation. |
221 if( iLoading[loadingIndex]->iId != 0 ) |
213 // There is a fix coming in near future but until that we cannot cancel requests |
222 { |
214 // since after that we dont get any thumbnails from server. |
223 MPX_DEBUG2( "Cancel Thumb Request: %d", aIndex ); |
215 // if( iLoading[loadingIndex]->iId != 0 ) |
224 iTnEngine->CancelRequest( iLoading[loadingIndex]->iId ); |
216 // { |
225 } |
217 // RDebug::Print(_L("!!CANCEL REQUEST!!")); |
|
218 // iTnEngine->CancelRequest( iLoading[loadingIndex]->iId ); |
|
219 // } |
|
220 delete iLoading[loadingIndex]; |
226 delete iLoading[loadingIndex]; |
221 iLoading.Remove(loadingIndex); |
227 iLoading.Remove(loadingIndex); |
222 } |
228 } |
223 } |
229 } |
224 |
230 |
225 void CMpxTNLoader::CancelAll() |
231 void CMpxTNLoader::CancelAll() |
226 { |
232 { |
227 iLoading.ResetAndDestroy(); |
|
228 return; |
|
229 // Current thumbnail manager has bugs in thumbnail request cancelation. |
|
230 // There is a fix coming in near future but until that we cannot cancel requests |
|
231 // since after that we dont get any thumbnails from server. |
|
232 while ( iLoading.Count() > 0 ) |
233 while ( iLoading.Count() > 0 ) |
233 { |
234 { |
234 if( iLoading[0]->iId != 0 ) |
235 if( iLoading[0]->iId != 0 ) |
235 iTnEngine->CancelRequest( iLoading[0]->iId ); |
236 iTnEngine->CancelRequest( iLoading[0]->iId ); |
236 delete iLoading[0]; |
237 delete iLoading[0]; |
240 |
241 |
241 void CMpxTNLoader::SetSizeL( TThumbnailSize aSize ) |
242 void CMpxTNLoader::SetSizeL( TThumbnailSize aSize ) |
242 { |
243 { |
243 iTnEngine->SetThumbnailSizeL( aSize ); |
244 iTnEngine->SetThumbnailSizeL( aSize ); |
244 } |
245 } |
|
246 |
|
247 void CMpxTNLoader::Pause(TTimeIntervalMicroSeconds32 aDelay) |
|
248 { |
|
249 iAsyncCallBack->Cancel(); |
|
250 iPaused = ETrue; |
|
251 iPauseTimer->Cancel(); |
|
252 iPauseTimer->Start( |
|
253 aDelay, aDelay, |
|
254 TCallBack(ResumeCallback, this)); |
|
255 } |
|
256 |
|
257 void CMpxTNLoader::Resume() |
|
258 { |
|
259 iPaused = EFalse; |
|
260 if( !iAsyncCallBack->IsActive() ) |
|
261 iAsyncCallBack->CallBack(); |
|
262 iPauseTimer->Cancel(); |
|
263 } |
|
264 |
|
265 TInt CMpxTNLoader::ResumeCallback(TAny* aPtr) |
|
266 { |
|
267 CMpxTNLoader* self = (CMpxTNLoader*)aPtr; |
|
268 if( self ) |
|
269 { |
|
270 self->Resume(); |
|
271 } |
|
272 return KErrNone; |
|
273 } |