87 // CThumbnailManagerImpl::CThumbnailManagerImpl() |
94 // CThumbnailManagerImpl::CThumbnailManagerImpl() |
88 // C++ default constructor can NOT contain any code, that might leave. |
95 // C++ default constructor can NOT contain any code, that might leave. |
89 // --------------------------------------------------------------------------- |
96 // --------------------------------------------------------------------------- |
90 // |
97 // |
91 CThumbnailManagerImpl::CThumbnailManagerImpl( MThumbnailManagerObserver& |
98 CThumbnailManagerImpl::CThumbnailManagerImpl( MThumbnailManagerObserver& |
92 aObserver ): iObserver( aObserver ), iDisplayMode( |
99 aObserver ): iObserver( aObserver ), iRequestObserver( NULL ), iDisplayMode( |
93 KThumbnailDefaultDisplayMode ), iFlags( EDefaultFlags ), iQualityPreference |
100 KThumbnailDefaultDisplayMode ), iFlags( EDefaultFlags ), iQualityPreference |
94 ( EOptimizeForQuality ), iRequestId( 0 ) |
101 ( EOptimizeForQuality ), iRequestId( 0 ) |
95 { |
102 { |
96 // No implementation required |
103 // No implementation required |
|
104 TN_DEBUG1( "CThumbnailManagerImpl::CThumbnailManagerImpl()" ); |
97 } |
105 } |
98 |
106 |
99 |
107 |
100 // --------------------------------------------------------------------------- |
108 // --------------------------------------------------------------------------- |
101 // CThumbnailManagerImpl::ConstructL() |
109 // CThumbnailManagerImpl::ConstructL() |
102 // Symbian 2nd phase constructor can leave. |
110 // Symbian 2nd phase constructor can leave. |
103 // --------------------------------------------------------------------------- |
111 // --------------------------------------------------------------------------- |
104 // |
112 // |
105 void CThumbnailManagerImpl::ConstructL() |
113 void CThumbnailManagerImpl::ConstructL() |
106 { |
114 { |
|
115 TN_DEBUG1( "CThumbnailManagerImpl::ConstructL - start"); |
|
116 |
107 User::LeaveIfError( iSession.Connect()); |
117 User::LeaveIfError( iSession.Connect()); |
108 User::LeaveIfError( iFs.Connect()); |
118 User::LeaveIfError( iFs.Connect()); |
109 User::LeaveIfError( iFs.ShareProtected()); |
119 User::LeaveIfError( iFs.ShareProtected()); |
110 |
120 |
111 if ( !RFbsSession::GetSession() ) |
121 if ( !RFbsSession::GetSession() ) |
127 } |
137 } |
128 else |
138 else |
129 { |
139 { |
130 // Fbs connection was available in the beginning, no need to |
140 // Fbs connection was available in the beginning, no need to |
131 // increase the reference count |
141 // increase the reference count |
|
142 TN_DEBUG1( "CThumbnailManagerImpl::ConstructL - no need to update sessionCount"); |
132 } |
143 } |
133 } |
144 } |
134 |
145 |
135 // request processor |
146 // request processor |
136 iRequestQueue = CThumbnailRequestQueue::NewL(); |
147 iRequestQueue = CThumbnailRequestQueue::NewL(); |
|
148 |
|
149 TN_DEBUG1( "CThumbnailManagerImpl::ConstructL - end"); |
137 } |
150 } |
138 |
151 |
139 |
152 |
140 // --------------------------------------------------------------------------- |
153 // --------------------------------------------------------------------------- |
141 // CThumbnailManagerImpl::GetThumbnailL |
154 // CThumbnailManagerImpl::GetThumbnailL |
152 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
165 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
153 |
166 |
154 TInt priority = ValidatePriority(aPriority); |
167 TInt priority = ValidatePriority(aPriority); |
155 |
168 |
156 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
169 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
157 ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue ); |
170 ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue ); |
158 CleanupStack::PushL( getThumbnailActive ); |
171 CleanupStack::PushL( getThumbnailActive ); |
159 |
172 |
160 if(aObjectSource.Id() > 0) |
173 if(aObjectSource.Id() > 0) |
161 { |
174 { |
162 getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, |
175 getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, |
213 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
226 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
214 |
227 |
215 TInt priority = ValidatePriority(aPriority); |
228 TInt priority = ValidatePriority(aPriority); |
216 |
229 |
217 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
230 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
218 ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue ); |
231 ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue ); |
219 CleanupStack::PushL( getThumbnailActive ); |
232 CleanupStack::PushL( getThumbnailActive ); |
220 |
233 |
221 getThumbnailActive->GetThumbnailL( KNullDesC, aThumbnailId, iFlags, |
234 getThumbnailActive->GetThumbnailL( KNullDesC, aThumbnailId, iFlags, |
222 iQualityPreference, iSize, iDisplayMode, priority, aClientData, |
235 iQualityPreference, iSize, iDisplayMode, priority, aClientData, |
223 EFalse, KNullDesC, iThumbnailSize ); |
236 EFalse, KNullDesC, iThumbnailSize ); |
247 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
260 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
248 |
261 |
249 TInt priority = ValidatePriority(aPriority); |
262 TInt priority = ValidatePriority(aPriority); |
250 |
263 |
251 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
264 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
252 ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue ); |
265 ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue ); |
253 CleanupStack::PushL( getThumbnailActive ); |
266 CleanupStack::PushL( getThumbnailActive ); |
254 |
267 |
255 if ( aObjectSource.Uri().Length()) |
268 if ( aObjectSource.Uri().Length()) |
256 { |
269 { |
257 getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, |
270 getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, |
288 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
301 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
289 |
302 |
290 TInt priority = ValidatePriority(aPriority); |
303 TInt priority = ValidatePriority(aPriority); |
291 |
304 |
292 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
305 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
293 ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue ); |
306 ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue ); |
294 CleanupStack::PushL( getThumbnailActive ); |
307 CleanupStack::PushL( getThumbnailActive ); |
295 |
308 |
296 if ( aObjectSource.Uri().Length() && |
309 if (aObjectSource.Uri().Length() && |
297 aObjectSource.Buffer() != NULL && |
310 aObjectSource.TargetUri().Length()) |
298 aObjectSource.MimeType() != KNullDesC8) |
311 { |
299 { |
312 // from path |
|
313 getThumbnailActive->SetThumbnailL( aObjectSource.Uri(), |
|
314 aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, |
|
315 priority, aClientData, ETrue, aObjectSource.TargetUri(), iThumbnailSize, ETrue); |
|
316 } |
|
317 else if (aObjectSource.Uri().Length() && |
|
318 aObjectSource.Bitmap() != NULL) |
|
319 { |
|
320 // from bitmap |
|
321 getThumbnailActive->SetThumbnailL( aObjectSource.GetBitmapOwnership(), |
|
322 aObjectSource.Id(), KBmpMime, iFlags, iQualityPreference, iSize, iDisplayMode, |
|
323 priority, aClientData, ETrue, aObjectSource.Uri(), iThumbnailSize, ETrue); |
|
324 } |
|
325 else if (aObjectSource.Uri().Length() && |
|
326 aObjectSource.Buffer() != NULL && |
|
327 aObjectSource.MimeType() != KNullDesC8) |
|
328 { |
|
329 // from buffer |
300 getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(), aObjectSource.Id(), |
330 getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(), aObjectSource.Id(), |
301 aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, |
331 aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, |
302 priority, aClientData, EFalse, aObjectSource.Uri(), iThumbnailSize); |
332 priority, aClientData, ETrue, aObjectSource.Uri(), iThumbnailSize, ETrue); |
303 } |
333 } |
304 |
334 |
305 iRequestQueue->AddRequestL( getThumbnailActive ); |
335 iRequestQueue->AddRequestL( getThumbnailActive ); |
306 CleanupStack::Pop( getThumbnailActive ); |
336 CleanupStack::Pop( getThumbnailActive ); |
307 |
337 |
327 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
357 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
328 |
358 |
329 TInt priority = ValidatePriority(aPriority); |
359 TInt priority = ValidatePriority(aPriority); |
330 |
360 |
331 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
361 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
332 ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue ); |
362 ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue ); |
333 |
363 |
334 CleanupStack::PushL( getThumbnailActive ); |
364 CleanupStack::PushL( getThumbnailActive ); |
335 |
365 |
336 if (aObjectSource.Bitmap()) |
366 if (aObjectSource.Bitmap()) |
337 { |
367 { |
338 // from bitmap |
368 // from bitmap |
339 getThumbnailActive->SetThumbnailL( aObjectSource.GetBitmapOwnership(), |
369 getThumbnailActive->SetThumbnailL( aObjectSource.GetBitmapOwnership(), |
340 aObjectSource.Id(), KBmpMime, iFlags, iQualityPreference, |
370 aObjectSource.Id(), KBmpMime, iFlags, iQualityPreference, |
341 iSize, iDisplayMode, priority, NULL, ETrue, |
371 iSize, iDisplayMode, priority, NULL, ETrue, |
342 aObjectSource.Uri(), EUnknownThumbnailSize); |
372 aObjectSource.Uri(), EUnknownThumbnailSize, EFalse); |
343 } |
373 } |
344 else if( !aObjectSource.Buffer() ) |
374 else if( !aObjectSource.Buffer() ) |
345 { |
375 { |
346 getThumbnailActive->GetThumbnailL( aObjectSource.Id(), |
376 getThumbnailActive->GetThumbnailL( aObjectSource.Id(), |
347 aObjectSource.Uri(), iFlags, iQualityPreference, iSize, |
377 aObjectSource.Uri(), iFlags, iQualityPreference, iSize, |
352 { |
382 { |
353 // from buffer |
383 // from buffer |
354 getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(), |
384 getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(), |
355 aObjectSource.Id(), aObjectSource.MimeType(), iFlags, |
385 aObjectSource.Id(), aObjectSource.MimeType(), iFlags, |
356 iQualityPreference, iSize, iDisplayMode, priority, NULL, |
386 iQualityPreference, iSize, iDisplayMode, priority, NULL, |
357 ETrue, aObjectSource.Uri(), EUnknownThumbnailSize); |
387 ETrue, aObjectSource.Uri(), EUnknownThumbnailSize, EFalse); |
358 } |
388 } |
359 |
389 |
360 iRequestQueue->AddRequestL( getThumbnailActive ); |
390 iRequestQueue->AddRequestL( getThumbnailActive ); |
361 |
391 |
362 CleanupStack::Pop( getThumbnailActive ); |
392 CleanupStack::Pop( getThumbnailActive ); |
489 TN_DEBUG2( "CThumbnailManagerImpl::DeleteThumbnails() URI==%S ", &aObjectSource.Uri() ); |
519 TN_DEBUG2( "CThumbnailManagerImpl::DeleteThumbnails() URI==%S ", &aObjectSource.Uri() ); |
490 |
520 |
491 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
521 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
492 |
522 |
493 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
523 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
494 ( iFs, iSession, iObserver, iRequestId, CActive::EPriorityIdle, iRequestQueue ); |
524 ( iFs, iSession, iObserver, iRequestObserver, iRequestId, CActive::EPriorityIdle, |
|
525 iRequestQueue ); |
495 |
526 |
496 CleanupStack::PushL( getThumbnailActive ); |
527 CleanupStack::PushL( getThumbnailActive ); |
497 |
528 |
498 const TDesC& uri = aObjectSource.Uri(); |
529 const TDesC& uri = aObjectSource.Uri(); |
499 |
530 |
531 TN_DEBUG2( "CThumbnailManagerImpl::DeleteThumbnails() aItemId==%d ", aItemId ); |
562 TN_DEBUG2( "CThumbnailManagerImpl::DeleteThumbnails() aItemId==%d ", aItemId ); |
532 |
563 |
533 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
564 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
534 |
565 |
535 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
566 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
536 ( iFs, iSession, iObserver, iRequestId, CActive::EPriorityIdle, iRequestQueue ); |
567 ( iFs, iSession, iObserver, iRequestObserver, iRequestId, CActive::EPriorityIdle, |
|
568 iRequestQueue ); |
537 |
569 |
538 CleanupStack::PushL( getThumbnailActive ); |
570 CleanupStack::PushL( getThumbnailActive ); |
539 |
571 |
540 getThumbnailActive->DeleteThumbnails( KNullDesC, aItemId, CActive::EPriorityIdle ); |
572 getThumbnailActive->DeleteThumbnails( KNullDesC, aItemId, CActive::EPriorityIdle ); |
541 |
573 |
618 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
650 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
619 |
651 |
620 TInt priority = ValidatePriority(aPriority); |
652 TInt priority = ValidatePriority(aPriority); |
621 |
653 |
622 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
654 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
623 ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue ); |
655 ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue ); |
624 CleanupStack::PushL( getThumbnailActive ); |
656 CleanupStack::PushL( getThumbnailActive ); |
625 |
657 |
626 getThumbnailActive->UpdateThumbnailsL( aPath, aItemId, iFlags, iQualityPreference, |
658 getThumbnailActive->UpdateThumbnailsL( aPath, aItemId, iFlags, iQualityPreference, |
627 iDisplayMode, priority, aOrientation, aModified ); |
659 iDisplayMode, priority, aOrientation, aModified ); |
628 |
660 |
646 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
678 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
647 |
679 |
648 TInt priority = ValidatePriority(aPriority); |
680 TInt priority = ValidatePriority(aPriority); |
649 |
681 |
650 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
682 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
651 ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue ); |
683 ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue ); |
652 CleanupStack::PushL( getThumbnailActive ); |
684 CleanupStack::PushL( getThumbnailActive ); |
653 |
685 |
654 getThumbnailActive->RenameThumbnails( aCurrentPath, aNewPath, priority ); |
686 getThumbnailActive->RenameThumbnails( aCurrentPath, aNewPath, priority ); |
655 |
687 |
656 iRequestQueue->AddRequestL( getThumbnailActive ); |
688 iRequestQueue->AddRequestL( getThumbnailActive ); |
659 iRequestQueue->Process(); |
691 iRequestQueue->Process(); |
660 |
692 |
661 return iRequestId; |
693 return iRequestId; |
662 } |
694 } |
663 |
695 |
|
696 |
|
697 // --------------------------------------------------------------------------- |
|
698 // CThumbnailManagerImpl::SetRequestObserver() |
|
699 // Adds optional request observer |
|
700 // --------------------------------------------------------------------------- |
|
701 // |
|
702 void CThumbnailManagerImpl::SetRequestObserver( MThumbnailManagerRequestObserver& aObserver ) |
|
703 { |
|
704 iRequestObserver = NULL; |
|
705 iRequestObserver = &aObserver; |
|
706 } |
|
707 |
|
708 // --------------------------------------------------------------------------- |
|
709 // CThumbnailManagerImpl::RemoveRequestObserver() |
|
710 // Removes optional request observer |
|
711 // --------------------------------------------------------------------------- |
|
712 // |
|
713 void CThumbnailManagerImpl::RemoveRequestObserver() |
|
714 { |
|
715 if (iRequestObserver) |
|
716 { |
|
717 iRequestObserver = NULL; |
|
718 } |
|
719 } |
|
720 |
|
721 |
664 // --------------------------------------------------------------------------- |
722 // --------------------------------------------------------------------------- |
665 // CThumbnailManagerImpl::ValidatePriority() |
723 // CThumbnailManagerImpl::ValidatePriority() |
666 // Check that given priority is in range of CActive::TPriority |
724 // Check that given priority is in range of CActive::TPriority |
667 // --------------------------------------------------------------------------- |
725 // --------------------------------------------------------------------------- |
668 // |
726 // |