29 #include "thumbnaildataimpl.h" |
29 #include "thumbnaildataimpl.h" |
30 #include "thumbnailpanic.h" |
30 #include "thumbnailpanic.h" |
31 #include "thumbnaillog.h" |
31 #include "thumbnaillog.h" |
32 |
32 |
33 #include "thumbnailmanagerimpl.h" |
33 #include "thumbnailmanagerimpl.h" |
34 #include "OstTraceDefinitions.h" |
|
35 #ifdef OST_TRACE_COMPILER_IN_USE |
|
36 #include "thumbnailrequestactiveTraces.h" |
|
37 #endif |
|
38 |
|
39 |
34 |
40 // ======== MEMBER FUNCTIONS ======== |
35 // ======== MEMBER FUNCTIONS ======== |
41 |
36 |
42 // --------------------------------------------------------------------------- |
37 // --------------------------------------------------------------------------- |
43 // CThumbnailRequestActive::~CThumbnailRequestActive() |
38 // CThumbnailRequestActive::~CThumbnailRequestActive() |
136 // --------------------------------------------------------------------------- |
130 // --------------------------------------------------------------------------- |
137 // |
131 // |
138 void CThumbnailRequestActive::StartL() |
132 void CThumbnailRequestActive::StartL() |
139 { |
133 { |
140 TN_DEBUG3( "CThumbnailRequestActive::StartL(0x%08x) reqid = %d", this, iRequestId ); |
134 TN_DEBUG3( "CThumbnailRequestActive::StartL(0x%08x) reqid = %d", this, iRequestId ); |
141 OstTrace1( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL;iRequestId=%u", iRequestId ); |
|
142 |
135 |
143 iRequestActive = ETrue; |
136 iRequestActive = ETrue; |
144 |
137 |
145 #ifdef _DEBUG |
138 #ifdef _DEBUG |
146 TTime stop; |
139 TTime stop; |
147 stop.UniversalTime(); |
140 stop.UniversalTime(); |
148 TN_DEBUG3( "CThumbnailRequestActive::StartL() req id = %d, queuing time %d ms", |
141 TN_DEBUG3( "CThumbnailRequestActive::StartL() req id = %d, queuing time %d ms", |
149 iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 ); |
|
150 OstTraceExt2( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL - req id = %d, queuing time %d ms", |
|
151 iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 ); |
142 iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 ); |
152 #endif |
143 #endif |
153 |
144 |
154 switch (iRequestType) |
145 switch (iRequestType) |
155 { |
146 { |
164 // custom thumbnails are never stored in db |
155 // custom thumbnails are never stored in db |
165 if (iParams.iThumbnailSize == ECustomThumbnailSize && |
156 if (iParams.iThumbnailSize == ECustomThumbnailSize && |
166 iParams.iOriginalControlFlags != EThumbnailGeneratePersistentSizesOnly) |
157 iParams.iOriginalControlFlags != EThumbnailGeneratePersistentSizesOnly) |
167 { |
158 { |
168 TN_DEBUG1( "CThumbnaiRequestActive::StartL()- custom size request" ); |
159 TN_DEBUG1( "CThumbnaiRequestActive::StartL()- custom size request" ); |
169 OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL - custom size request" ); |
|
170 |
160 |
171 iFile.Close(); |
161 iFile.Close(); |
172 User::LeaveIfError( iFile.Open( iFs, iPath, EFileShareReadersOrWriters ) ); |
162 User::LeaveIfError( iFile.Open( iFs, iPath, EFileShareReadersOrWriters ) ); |
173 |
163 |
174 TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iPath ); |
164 TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iPath ); |
175 OstTraceExt1( TRACE_NORMAL, DUP3_CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL;iPath=%S", iPath ); |
|
176 |
165 |
177 CleanupClosePushL( iFile ); |
166 CleanupClosePushL( iFile ); |
178 |
167 |
179 if ( iParams.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview ) |
168 if ( iParams.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview ) |
180 { |
169 { |
213 // open file handle |
202 // open file handle |
214 iFile.Close(); |
203 iFile.Close(); |
215 User::LeaveIfError( iFile.Open( iFs, iTargetUri, EFileShareReadersOrWriters ) ); |
204 User::LeaveIfError( iFile.Open( iFs, iTargetUri, EFileShareReadersOrWriters ) ); |
216 |
205 |
217 TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iTargetUri ); |
206 TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iTargetUri ); |
218 OstTraceExt1( TRACE_NORMAL, DUP4_CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL - file handle opened;iTargetUri=%S", iTargetUri ); |
|
219 |
207 |
220 CleanupClosePushL( iFile ); |
208 CleanupClosePushL( iFile ); |
221 |
209 |
222 if ( iParams.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview ) |
210 if ( iParams.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview ) |
223 { |
211 { |
254 // open file handle |
242 // open file handle |
255 iFile.Close(); |
243 iFile.Close(); |
256 User::LeaveIfError( iFile.Open( iFs, iParams.iFileName, EFileShareReadersOrWriters ) ); |
244 User::LeaveIfError( iFile.Open( iFs, iParams.iFileName, EFileShareReadersOrWriters ) ); |
257 |
245 |
258 TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iParams.iFileName ); |
246 TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iParams.iFileName ); |
259 OstTraceExt1( TRACE_NORMAL, DUP5_CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL;iParams.iFileName=%S", iParams.iFileName ); |
|
260 |
247 |
261 CleanupClosePushL( iFile ); |
248 CleanupClosePushL( iFile ); |
262 |
249 |
263 if ( iParams.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview ) |
250 if ( iParams.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview ) |
264 { |
251 { |
291 // --------------------------------------------------------------------------- |
278 // --------------------------------------------------------------------------- |
292 // |
279 // |
293 void CThumbnailRequestActive::RunL() |
280 void CThumbnailRequestActive::RunL() |
294 { |
281 { |
295 TN_DEBUG2( "CThumbnailRequestActive::RunL() - request ID: %d", iParams.iRequestId ); |
282 TN_DEBUG2( "CThumbnailRequestActive::RunL() - request ID: %d", iParams.iRequestId ); |
296 OstTrace1( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iRequestId=%u", iParams.iRequestId ); |
|
297 |
283 |
298 if ( iParams.iControlFlags == EThumbnailPreviewThumbnail ) |
284 if ( iParams.iControlFlags == EThumbnailPreviewThumbnail ) |
299 { |
285 { |
300 iRequestCompleted = EFalse; |
286 iRequestCompleted = EFalse; |
301 iProcessingPreview = ETrue; |
287 iProcessingPreview = ETrue; |
325 #ifdef _DEBUG |
311 #ifdef _DEBUG |
326 TTime stop; |
312 TTime stop; |
327 stop.UniversalTime(); |
313 stop.UniversalTime(); |
328 TN_DEBUG3( "CThumbnailRequestActive::RunL() total execution time of req %d is %d ms", |
314 TN_DEBUG3( "CThumbnailRequestActive::RunL() total execution time of req %d is %d ms", |
329 iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 ); |
315 iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 ); |
330 OstTraceExt2( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - total execution time of req %d is %d ms", |
|
331 iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 ); |
|
332 #endif |
316 #endif |
333 } |
317 } |
334 else if (iCanceled || iRequestType == EReqRenameThumbnails) |
318 else if (iCanceled || iRequestType == EReqRenameThumbnails) |
335 { |
319 { |
336 if (iCanceled) |
320 if (iCanceled) |
351 #ifdef _DEBUG |
335 #ifdef _DEBUG |
352 TTime stop; |
336 TTime stop; |
353 stop.UniversalTime(); |
337 stop.UniversalTime(); |
354 TN_DEBUG3( "CThumbnailRequestActive::RunL() total execution time of req %d is %d ms", |
338 TN_DEBUG3( "CThumbnailRequestActive::RunL() total execution time of req %d is %d ms", |
355 iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 ); |
339 iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 ); |
356 OstTraceExt2( TRACE_NORMAL, DUP2_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - total execution time of req %d is %d ms", |
|
357 iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 ); |
|
358 #endif |
340 #endif |
359 } |
341 } |
360 else if ( iStatus.Int() == KThumbnailErrThumbnailNotFound && iParams.iFileName.Length() && |
342 else if ( iStatus.Int() == KThumbnailErrThumbnailNotFound && iParams.iFileName.Length() && |
361 !( iParams.iFlags& CThumbnailManager::EDoNotCreate )) |
343 !( iParams.iFlags& CThumbnailManager::EDoNotCreate )) |
362 { |
344 { |
363 TN_DEBUG2( "CThumbnaiRequestActive::RunL() - no thumbnail found - lets try with file handle %S", &iParams.iFileName ); |
345 TN_DEBUG2( "CThumbnaiRequestActive::RunL() - no thumbnail found - lets try with file handle %S", &iParams.iFileName ); |
364 OstTraceExt1( TRACE_NORMAL, DUP3_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - no thumbnail found - lets try with file handle;iParams.iFileName=%S", iParams.iFileName ); |
|
365 iRequestCompleted = EFalse; |
346 iRequestCompleted = EFalse; |
366 |
347 |
367 // We tried to get thumbnail using file path, but it was not found in |
348 // We tried to get thumbnail using file path, but it was not found in |
368 // the database. We need to open the file now (on the client side) and |
349 // the database. We need to open the file now (on the client side) and |
369 // use file handle. |
350 // use file handle. |
370 iFile.Close(); |
351 iFile.Close(); |
371 TInt err = iFile.Open( iFs, iParams.iFileName, EFileShareReadersOrWriters ); |
352 TInt err = iFile.Open( iFs, iParams.iFileName, EFileShareReadersOrWriters ); |
372 TN_DEBUG2( "CThumbnaiRequestActive::RunL() - file handle open err = %d", err ); |
353 TN_DEBUG2( "CThumbnaiRequestActive::RunL() - file handle open err = %d", err ); |
373 OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - file handle open err;err=%d", err ); |
|
374 User::LeaveIfError( err ); |
354 User::LeaveIfError( err ); |
375 |
355 |
376 CleanupClosePushL( iFile ); |
356 CleanupClosePushL( iFile ); |
377 |
357 |
378 TN_DEBUG2( "CThumbnaiRequestActive::RunL() - file handle opened for %S", &iParams.iFileName ); |
358 TN_DEBUG2( "CThumbnaiRequestActive::RunL() - file handle opened for %S", &iParams.iFileName ); |
379 OstTraceExt1( TRACE_NORMAL, DUP5_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iFileName=%S", iParams.iFileName ); |
|
380 |
359 |
381 iSession.RequestThumbnailL( iFile, iParams.iFileName, iParamsPckg, iStatus ); |
360 iSession.RequestThumbnailL( iFile, iParams.iFileName, iParamsPckg, iStatus ); |
382 CleanupStack::PopAndDestroy( &iFile ); |
361 CleanupStack::PopAndDestroy( &iFile ); |
383 |
362 |
384 iTimer->Start( KClientRequestTimeout, KClientRequestTimeout, |
363 iTimer->Start( KClientRequestTimeout, KClientRequestTimeout, |
394 } |
373 } |
395 //1st round thumb ready from exif (stored) |
374 //1st round thumb ready from exif (stored) |
396 else if (iParams.iOriginalControlFlags == EThumbnailGeneratePersistentSizesOnly && !iProcessingPreview) |
375 else if (iParams.iOriginalControlFlags == EThumbnailGeneratePersistentSizesOnly && !iProcessingPreview) |
397 { |
376 { |
398 TN_DEBUG1( "CThumbnaiRequestActive::RunL()- generate persistent sizes thumbnailready" ); |
377 TN_DEBUG1( "CThumbnaiRequestActive::RunL()- generate persistent sizes thumbnailready" ); |
399 OstTrace0( TRACE_NORMAL, DUP6_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - generate persistent sizes thumbnailready" ); |
|
400 iBitmapHandle = iParams.iBitmapHandle; |
378 iBitmapHandle = iParams.iBitmapHandle; |
401 |
379 |
402 TN_DEBUG2( "CThumbnaiRequestActive::RunL() - iObserver.ThumbnailReady %d", iParams.iRequestId ); |
380 TN_DEBUG2( "CThumbnaiRequestActive::RunL() - iObserver.ThumbnailReady %d", iParams.iRequestId ); |
403 OstTrace1( TRACE_NORMAL, DUP7_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iRequestId=%u", iParams.iRequestId ); |
|
404 iObserver.ThumbnailReady( iStatus.Int(), *iCallbackThumbnail, iParams.iRequestId ); |
381 iObserver.ThumbnailReady( iStatus.Int(), *iCallbackThumbnail, iParams.iRequestId ); |
405 |
382 |
406 ReleaseServerBitmap(); |
383 ReleaseServerBitmap(); |
407 |
384 |
408 iFile.Close(); |
385 iFile.Close(); |
413 #ifdef _DEBUG |
390 #ifdef _DEBUG |
414 TTime stop; |
391 TTime stop; |
415 stop.UniversalTime(); |
392 stop.UniversalTime(); |
416 TN_DEBUG3( "CThumbnailRequestActive::RunL() total execution time %d, %d ms", |
393 TN_DEBUG3( "CThumbnailRequestActive::RunL() total execution time %d, %d ms", |
417 iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 ); |
394 iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 ); |
418 OstTraceExt2( TRACE_NORMAL, DUP8_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - total execution time %d, %d ms", |
|
419 iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 ); |
|
420 |
|
421 #endif |
395 #endif |
422 } |
396 } |
423 //1st round preview ready from too low quality exif/exif not found (not-stored) |
397 //1st round preview ready from too low quality exif/exif not found (not-stored) |
424 //relauch using normal decoding |
398 //relauch using normal decoding |
425 else if (iParams.iOriginalControlFlags == EThumbnailGeneratePersistentSizesOnly && iProcessingPreview) |
399 else if (iParams.iOriginalControlFlags == EThumbnailGeneratePersistentSizesOnly && iProcessingPreview) |
426 { |
400 { |
427 TN_DEBUG1( "CThumbnaiRequestActive::RunL()- generate persistent sizes thumbnailpreviewready" ); |
401 TN_DEBUG1( "CThumbnaiRequestActive::RunL()- generate persistent sizes thumbnailpreviewready" ); |
428 OstTrace0( TRACE_NORMAL, DUP9_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - generate persistent sizes thumbnailpreviewready" ); |
|
429 iBitmapHandle = iParams.iBitmapHandle; |
402 iBitmapHandle = iParams.iBitmapHandle; |
430 |
403 |
431 TN_DEBUG2( "CThumbnaiRequestActive::RunL() - iObserver.ThumbnailPreviewReady %d", iParams.iRequestId ); |
404 TN_DEBUG2( "CThumbnaiRequestActive::RunL() - iObserver.ThumbnailPreviewReady %d", iParams.iRequestId ); |
432 OstTrace1( TRACE_NORMAL, DUP10_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iRequestId=%u", iParams.iRequestId ); |
|
433 iObserver.ThumbnailPreviewReady( *iCallbackThumbnail, iParams.iRequestId ); |
405 iObserver.ThumbnailPreviewReady( *iCallbackThumbnail, iParams.iRequestId ); |
434 |
406 |
435 iProcessingPreview = EFalse; |
407 iProcessingPreview = EFalse; |
436 |
408 |
437 ReleaseServerBitmap(); |
409 ReleaseServerBitmap(); |
474 CleanupStack::Pop( bitmap ); |
445 CleanupStack::Pop( bitmap ); |
475 |
446 |
476 // reduce bpp value (displaymode to match reqested bits per pixel) |
447 // reduce bpp value (displaymode to match reqested bits per pixel) |
477 #ifdef _DEBUG |
448 #ifdef _DEBUG |
478 TN_DEBUG2( "CThumbnailRequestActive::RunL() - displaymode is %d", bitmap->DisplayMode()); |
449 TN_DEBUG2( "CThumbnailRequestActive::RunL() - displaymode is %d", bitmap->DisplayMode()); |
479 OstTrace1( TRACE_NORMAL, DUP12_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;bitmap->DisplayMode()=%u", bitmap->DisplayMode() ); |
|
480 #endif |
450 #endif |
481 |
451 |
482 if( bitmap->DisplayMode() > iParams.iDisplayMode ) |
452 if( bitmap->DisplayMode() > iParams.iDisplayMode ) |
483 { |
453 { |
484 bitmap->SetDisplayMode( iParams.iDisplayMode ); |
454 bitmap->SetDisplayMode( iParams.iDisplayMode ); |
485 #ifdef _DEBUG |
455 #ifdef _DEBUG |
486 TN_DEBUG2( "CThumbnailRequestActive::RunL() - displaymode is now %d", bitmap->DisplayMode()); |
456 TN_DEBUG2( "CThumbnailRequestActive::RunL() - displaymode is now %d", bitmap->DisplayMode()); |
487 OstTrace1( TRACE_NORMAL, DUP13_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;bitmap->DisplayMode()=%u", bitmap->DisplayMode() ); |
|
488 #endif |
457 #endif |
489 } |
458 } |
490 |
459 |
491 iCallbackThumbnail->Set( bitmap, iClientData ); |
460 iCallbackThumbnail->Set( bitmap, iClientData ); |
492 bitmap = NULL; // Owned by iCallbackThumbnail or client now |
461 bitmap = NULL; // Owned by iCallbackThumbnail or client now |
493 } |
462 } |
494 |
463 |
495 if ( iProcessingPreview ) |
464 if ( iProcessingPreview ) |
496 { |
465 { |
497 TN_DEBUG2( "CThumbnailRequestActive::RunL() - iObserver.ThumbnailPreviewReady %d", iParams.iRequestId ); |
466 TN_DEBUG2( "CThumbnailRequestActive::RunL() - iObserver.ThumbnailPreviewReady %d", iParams.iRequestId ); |
498 OstTrace1( TRACE_NORMAL, DUP14_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - iObserver.ThumbnailPreviewReady;iParams.iRequestId=%u", iParams.iRequestId ); |
|
499 |
467 |
500 //increase priority of 2nd round (both, AO and request itself) |
468 //increase priority of 2nd round (both, AO and request itself) |
501 this->SetPriority(this->Priority() + 1); |
469 this->SetPriority(this->Priority() + 1); |
502 iParams.iPriority++; |
470 iParams.iPriority++; |
503 iObserver.ThumbnailPreviewReady( *iCallbackThumbnail, iParams.iRequestId ); |
471 iObserver.ThumbnailPreviewReady( *iCallbackThumbnail, iParams.iRequestId ); |
510 Get2ndPhaseThumbnailL(); |
478 Get2ndPhaseThumbnailL(); |
511 } |
479 } |
512 else |
480 else |
513 { |
481 { |
514 TN_DEBUG2( "CThumbnailRequestActive::RunL() - iObserver.ThumbnailReady %d", iParams.iRequestId ); |
482 TN_DEBUG2( "CThumbnailRequestActive::RunL() - iObserver.ThumbnailReady %d", iParams.iRequestId ); |
515 OstTrace1( TRACE_NORMAL, DUP15_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iRequestId=%u", iParams.iRequestId ); |
|
516 |
483 |
517 iObserver.ThumbnailReady( iStatus.Int(), * iCallbackThumbnail, iParams.iRequestId ); |
484 iObserver.ThumbnailReady( iStatus.Int(), * iCallbackThumbnail, iParams.iRequestId ); |
518 ReleaseServerBitmap(); |
485 ReleaseServerBitmap(); |
519 |
486 |
520 iFile.Close(); |
487 iFile.Close(); |
523 iRequestQueue->RequestComplete(this); |
490 iRequestQueue->RequestComplete(this); |
524 |
491 |
525 #ifdef _DEBUG |
492 #ifdef _DEBUG |
526 TTime stop; |
493 TTime stop; |
527 stop.UniversalTime(); |
494 stop.UniversalTime(); |
528 TInt tookTime = (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000; |
|
529 TN_DEBUG4( "CThumbnailRequestActive::RunL(0x%08x) total execution time of req %d is %d ms", |
495 TN_DEBUG4( "CThumbnailRequestActive::RunL(0x%08x) total execution time of req %d is %d ms", |
530 this, iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 ); |
496 this, iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 ); |
531 OstTrace1( TRACE_NORMAL, DUP16_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;this=%o", this ); |
|
532 OstTraceExt2( TRACE_NORMAL, DUP17_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iRequestId=%u;tookTime=%d", iParams.iRequestId, tookTime ); |
|
533 #endif |
497 #endif |
534 } |
498 } |
535 } |
499 } |
536 |
500 |
537 delete iBitmap; |
501 delete iBitmap; |
550 // --------------------------------------------------------------------------- |
514 // --------------------------------------------------------------------------- |
551 // |
515 // |
552 TInt CThumbnailRequestActive::RunError( TInt aError ) |
516 TInt CThumbnailRequestActive::RunError( TInt aError ) |
553 { |
517 { |
554 TN_DEBUG1( "CThumbnailRequestActive::RunError"); |
518 TN_DEBUG1( "CThumbnailRequestActive::RunError"); |
555 OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_RUNERROR, "CThumbnailRequestActive::RunError" ); |
|
556 |
519 |
557 iTimer->Cancel(); |
520 iTimer->Cancel(); |
558 |
521 |
559 // If RunL() left, the client did not get any callbacks yet. |
522 // If RunL() left, the client did not get any callbacks yet. |
560 // We need to notify it of the error now. |
523 // We need to notify it of the error now. |
588 // --------------------------------------------------------------------------- |
550 // --------------------------------------------------------------------------- |
589 // |
551 // |
590 void CThumbnailRequestActive::AsyncCancel() |
552 void CThumbnailRequestActive::AsyncCancel() |
591 { |
553 { |
592 TN_DEBUG1( "CThumbnailRequestActive::AsyncCancel"); |
554 TN_DEBUG1( "CThumbnailRequestActive::AsyncCancel"); |
593 OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_ASYNCCANCEL, "CThumbnailRequestActive::AsyncCancel" ); |
|
594 |
555 |
595 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
556 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
596 |
557 |
597 iCanceled = ETrue; |
558 iCanceled = ETrue; |
598 iSession.CancelRequest( iRequestId ); |
559 iSession.CancelRequest( iRequestId ); |
626 // --------------------------------------------------------------------------- |
586 // --------------------------------------------------------------------------- |
627 // |
587 // |
628 void CThumbnailRequestActive::HandleError() |
588 void CThumbnailRequestActive::HandleError() |
629 { |
589 { |
630 TN_DEBUG1( "CThumbnailRequestActive::HandleError"); |
590 TN_DEBUG1( "CThumbnailRequestActive::HandleError"); |
631 OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError" ); |
|
632 |
591 |
633 if ( iError ) |
592 if ( iError ) |
634 { |
593 { |
635 if( iError == KErrServerTerminated) |
594 if( iError == KErrServerTerminated) |
636 { |
595 { |
637 iSession.Close(); |
596 iSession.Close(); |
638 TInt connErr = iSession.Connect(); |
597 TInt connErr = iSession.Connect(); |
639 if (connErr != KErrNone) |
598 if (connErr != KErrNone) |
640 { |
599 { |
641 TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - session reconnect err %d", connErr ); |
600 TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - session reconnect err %d", connErr ); |
642 OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError;err=%d", connErr ); |
|
643 } |
601 } |
644 else |
602 else |
645 { |
603 { |
646 TN_DEBUG1( "CThumbnailRequestActive::HandleError() - session reconnected"); |
604 TN_DEBUG1( "CThumbnailRequestActive::HandleError() - session reconnected"); |
647 OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError - session reconnected" ); |
|
648 } |
605 } |
649 } |
606 } |
650 |
607 |
651 if (iRequestObserver && iRequestType == EReqDeleteThumbnails) |
608 if (iRequestObserver && iRequestType == EReqDeleteThumbnails) |
652 { |
609 { |
653 TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - iRequestObserver->ThumbnailRequestReady %d", iParams.iRequestId ); |
610 TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - iRequestObserver->ThumbnailRequestReady %d", iParams.iRequestId ); |
654 OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError;iParams.iRequestId=%u", iParams.iRequestId ); |
|
655 iRequestObserver->ThumbnailRequestReady(iError, ERequestDeleteThumbnails ,iParams.iRequestId); |
611 iRequestObserver->ThumbnailRequestReady(iError, ERequestDeleteThumbnails ,iParams.iRequestId); |
656 } |
612 } |
657 else |
613 else |
658 { |
614 { |
659 iCallbackThumbnail->Set( NULL, iClientData ); |
615 iCallbackThumbnail->Set( NULL, iClientData ); |
670 |
626 |
671 if(iRetry < KMaxRequestRetryCount ) |
627 if(iRetry < KMaxRequestRetryCount ) |
672 { |
628 { |
673 iRetry++; |
629 iRetry++; |
674 TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - KErrServerTerminated, retry %d", iRetry); |
630 TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - KErrServerTerminated, retry %d", iRetry); |
675 OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError - KErrServerTerminated;iRetry=%d", iRetry ); |
|
676 iError = KErrNone; |
631 iError = KErrNone; |
677 TRAPD(err, StartL()); |
632 TRAPD(err, StartL()); |
678 return; |
633 return; |
679 } |
634 } |
680 } |
635 } |
681 #endif |
636 #endif |
682 TN_DEBUG3( "CThumbnaiRequestActive::HandleError() - iObserver.ThumbnailReady req=%d err=%d", iParams.iRequestId, iError ); |
637 TN_DEBUG3( "CThumbnaiRequestActive::HandleError() - iObserver.ThumbnailReady req=%d err=%d", iParams.iRequestId, iError ); |
683 OstTrace1( TRACE_NORMAL, DUP5_CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError - iObserver.ThumbnailReady %u", iParams.iRequestId ); |
|
684 iObserver.ThumbnailReady( iError, *iCallbackThumbnail, iParams.iRequestId ); |
638 iObserver.ThumbnailReady( iError, *iCallbackThumbnail, iParams.iRequestId ); |
685 |
639 |
686 } |
640 } |
687 |
641 |
688 iError = KErrNone; |
642 iError = KErrNone; |
703 // CThumbnailRequestActive::GetThumbnailL() |
657 // CThumbnailRequestActive::GetThumbnailL() |
704 // Get a thumbnail for an object file. |
658 // Get a thumbnail for an object file. |
705 // --------------------------------------------------------------------------- |
659 // --------------------------------------------------------------------------- |
706 // |
660 // |
707 void CThumbnailRequestActive::GetThumbnailL( const RFile64& aFile, TThumbnailId aThumbnailId, |
661 void CThumbnailRequestActive::GetThumbnailL( const RFile64& aFile, TThumbnailId aThumbnailId, |
708 const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager |
662 CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager |
709 ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const |
663 ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const |
710 TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, |
664 TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, |
711 const TDesC& aTargetUri, TThumbnailSize aThumbnailSize) |
665 const TDesC& aTargetUri, TThumbnailSize aThumbnailSize) |
712 { |
666 { |
713 iRequestType = EReqGetThumbnailHandle; |
667 iRequestType = EReqGetThumbnailHandle; |
724 iClientData = aClientData; |
678 iClientData = aClientData; |
725 iParams.iControlFlags = (aGeneratePersistentSizesOnly ? |
679 iParams.iControlFlags = (aGeneratePersistentSizesOnly ? |
726 EThumbnailGeneratePersistentSizesOnly : |
680 EThumbnailGeneratePersistentSizesOnly : |
727 EThumbnailNoControlFlags); |
681 EThumbnailNoControlFlags); |
728 iParams.iOriginalControlFlags = iParams.iControlFlags; |
682 iParams.iOriginalControlFlags = iParams.iControlFlags; |
729 iParams.iMimeType = TDataType( aMimeType ); |
|
730 iParams.iBitmapHandle = 0; |
683 iParams.iBitmapHandle = 0; |
731 iParams.iSize = aSize; |
684 iParams.iSize = aSize; |
732 iParams.iDisplayMode = aDisplayMode; |
685 iParams.iDisplayMode = aDisplayMode; |
733 User::LeaveIfError( aFile.FullName( iParams.iFileName )); |
686 User::LeaveIfError( aFile.FullName( iParams.iFileName )); |
734 iParams.iRequestId = iRequestId; |
687 iParams.iRequestId = iRequestId; |
759 // CThumbnailRequestActive::GetThumbnailL() |
712 // CThumbnailRequestActive::GetThumbnailL() |
760 // Get a thumbnail opening an object file later. |
713 // Get a thumbnail opening an object file later. |
761 // --------------------------------------------------------------------------- |
714 // --------------------------------------------------------------------------- |
762 // |
715 // |
763 void CThumbnailRequestActive::GetThumbnailL( TThumbnailId aThumbnailId, |
716 void CThumbnailRequestActive::GetThumbnailL( TThumbnailId aThumbnailId, |
764 const TDesC& aPath, const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, |
717 const TDesC& aPath, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager |
765 CThumbnailManager::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const |
718 ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const |
766 TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, |
719 TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, |
767 const TDesC& aTargetUri, TThumbnailSize aThumbnailSize) |
720 const TDesC& aTargetUri, TThumbnailSize aThumbnailSize) |
768 { |
721 { |
769 iRequestType = EReqGetThumbnailHandleLater; |
722 iRequestType = EReqGetThumbnailHandleLater; |
770 |
723 |
771 iClientData = aClientData; |
724 iClientData = aClientData; |
772 iParams.iControlFlags = (aGeneratePersistentSizesOnly ? |
725 iParams.iControlFlags = (aGeneratePersistentSizesOnly ? |
773 EThumbnailGeneratePersistentSizesOnly : |
726 EThumbnailGeneratePersistentSizesOnly : |
774 EThumbnailNoControlFlags); |
727 EThumbnailNoControlFlags); |
775 iParams.iOriginalControlFlags = iParams.iControlFlags; |
728 iParams.iOriginalControlFlags = iParams.iControlFlags; |
776 iParams.iMimeType = TDataType( aMimeType ); |
|
777 iParams.iBitmapHandle = 0; |
729 iParams.iBitmapHandle = 0; |
778 iParams.iSize = aSize; |
730 iParams.iSize = aSize; |
779 iParams.iDisplayMode = aDisplayMode; |
731 iParams.iDisplayMode = aDisplayMode; |
780 iParams.iFileName = aPath; |
732 iParams.iFileName = aPath; |
781 iParams.iRequestId = iRequestId; |
733 iParams.iRequestId = iRequestId; |
804 // CThumbnailRequestActive::GetThumbnailL() |
756 // CThumbnailRequestActive::GetThumbnailL() |
805 // Get a thumbnail for an object file. |
757 // Get a thumbnail for an object file. |
806 // --------------------------------------------------------------------------- |
758 // --------------------------------------------------------------------------- |
807 // |
759 // |
808 void CThumbnailRequestActive::GetThumbnailL( const TDesC& aPath, TThumbnailId aThumbnailId, |
760 void CThumbnailRequestActive::GetThumbnailL( const TDesC& aPath, TThumbnailId aThumbnailId, |
809 const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager |
761 CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager |
810 ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const |
762 ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const |
811 TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, |
763 TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, |
812 const TDesC& aTargetUri, TThumbnailSize aThumbnailSize) |
764 const TDesC& aTargetUri, TThumbnailSize aThumbnailSize) |
813 { |
765 { |
814 iRequestType = EReqGetThumbnailPath; |
766 iRequestType = EReqGetThumbnailPath; |
816 iClientData = aClientData; |
768 iClientData = aClientData; |
817 iParams.iControlFlags = (aGeneratePersistentSizesOnly ? |
769 iParams.iControlFlags = (aGeneratePersistentSizesOnly ? |
818 EThumbnailGeneratePersistentSizesOnly : |
770 EThumbnailGeneratePersistentSizesOnly : |
819 EThumbnailNoControlFlags); |
771 EThumbnailNoControlFlags); |
820 iParams.iOriginalControlFlags = iParams.iControlFlags; |
772 iParams.iOriginalControlFlags = iParams.iControlFlags; |
821 iParams.iMimeType = TDataType( aMimeType ); |
|
822 iParams.iBitmapHandle = 0; |
773 iParams.iBitmapHandle = 0; |
823 iParams.iSize = aSize; |
774 iParams.iSize = aSize; |
824 iParams.iDisplayMode = aDisplayMode; |
775 iParams.iDisplayMode = aDisplayMode; |
825 iParams.iRequestId = iRequestId; |
776 iParams.iRequestId = iRequestId; |
826 iParams.iPriority = aPriority; |
777 iParams.iPriority = aPriority; |
945 } |
896 } |
946 else if (!iParams.iVirtualUri) |
897 else if (!iParams.iVirtualUri) |
947 { |
898 { |
948 // memory low, create thumbs using filehandle |
899 // memory low, create thumbs using filehandle |
949 TN_DEBUG1( "CThumbnaiRequestActive::SetThumbnailbyBitmap() - memory low, create thumbs using filehandle!" ); |
900 TN_DEBUG1( "CThumbnaiRequestActive::SetThumbnailbyBitmap() - memory low, create thumbs using filehandle!" ); |
950 OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_SETTHUMBNAILL, "CThumbnailRequestActive::SetThumbnailL - memory low, create thumbs using filehandle!" ); |
|
951 delete aBitmap; |
901 delete aBitmap; |
952 aBitmap = NULL; |
902 aBitmap = NULL; |
953 iParams.iPriority = aPriority - 1; |
903 iParams.iPriority = aPriority - 1; |
954 iRequestType = EReqGetThumbnailHandleLater; |
904 iRequestType = EReqGetThumbnailHandleLater; |
955 } |
905 } |
1073 // --------------------------------------------------------------------------- |
1023 // --------------------------------------------------------------------------- |
1074 // |
1024 // |
1075 void CThumbnailRequestActive::Get2ndPhaseThumbnailL() |
1025 void CThumbnailRequestActive::Get2ndPhaseThumbnailL() |
1076 { |
1026 { |
1077 TN_DEBUG2( "CThumbnailRequestActive::Get2ndPhaseThumbnailL() %d", iParams.iRequestId ); |
1027 TN_DEBUG2( "CThumbnailRequestActive::Get2ndPhaseThumbnailL() %d", iParams.iRequestId ); |
1078 OstTrace1( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_GET2NDPHASETHUMBNAILL, "CThumbnailRequestActive::Get2ndPhaseThumbnailL;iParams.iRequestId=%u", iParams.iRequestId ); |
|
1079 |
1028 |
1080 iParams.iQualityPreference = CThumbnailManager::EOptimizeForQuality; |
1029 iParams.iQualityPreference = CThumbnailManager::EOptimizeForQuality; |
1081 iParams.iControlFlags = EThumbnailNoControlFlags; |
1030 iParams.iControlFlags = EThumbnailNoControlFlags; |
1082 |
1031 |
1083 if ( iMyFileHandle.SubSessionHandle()) |
1032 if ( iMyFileHandle.SubSessionHandle()) |
1139 // --------------------------------------------------------------------------- |
1086 // --------------------------------------------------------------------------- |
1140 // |
1087 // |
1141 TInt CThumbnailRequestActive::TimerCallBack(TAny* aAny) |
1088 TInt CThumbnailRequestActive::TimerCallBack(TAny* aAny) |
1142 { |
1089 { |
1143 TN_DEBUG1( "CThumbnailRequestActive::TimerCallBack() - request timeout"); |
1090 TN_DEBUG1( "CThumbnailRequestActive::TimerCallBack() - request timeout"); |
1144 OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_TIMERCALLBACK, "CThumbnailRequestActive::TimerCallBack" ); |
|
1145 |
1091 |
1146 CThumbnailRequestActive* self = static_cast<CThumbnailRequestActive*>( aAny ); |
1092 CThumbnailRequestActive* self = static_cast<CThumbnailRequestActive*>( aAny ); |
1147 |
1093 |
1148 self->iTimer->Cancel(); |
1094 self->iTimer->Cancel(); |
1149 |
1095 |