imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailmanagerimpl.cpp
branchRCL_3
changeset 21 ad31f4183ddc
parent 13 ee674526fac5
child 28 ff2fb7658ff7
equal deleted inserted replaced
20:ffb2d5dd62e9 21:ad31f4183ddc
    87 // CThumbnailManagerImpl::CThumbnailManagerImpl()
    87 // CThumbnailManagerImpl::CThumbnailManagerImpl()
    88 // C++ default constructor can NOT contain any code, that might leave.
    88 // C++ default constructor can NOT contain any code, that might leave.
    89 // ---------------------------------------------------------------------------
    89 // ---------------------------------------------------------------------------
    90 //
    90 //
    91 CThumbnailManagerImpl::CThumbnailManagerImpl( MThumbnailManagerObserver&
    91 CThumbnailManagerImpl::CThumbnailManagerImpl( MThumbnailManagerObserver&
    92     aObserver ): iObserver( aObserver ), iDisplayMode(
    92     aObserver ): iObserver( aObserver ), iRequestObserver( NULL ), iDisplayMode(
    93     KThumbnailDefaultDisplayMode ), iFlags( EDefaultFlags ), iQualityPreference
    93     KThumbnailDefaultDisplayMode ), iFlags( EDefaultFlags ), iQualityPreference
    94     ( EOptimizeForQuality ), iRequestId( 0 )
    94     ( EOptimizeForQuality ), iRequestId( 0 )
    95     {
    95     {
    96     // No implementation required
    96     // No implementation required
    97     }
    97     }
   152     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   152     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   153 
   153 
   154     TInt priority = ValidatePriority(aPriority);
   154     TInt priority = ValidatePriority(aPriority);
   155     
   155     
   156     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   156     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   157         ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue );
   157         ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue );
   158     CleanupStack::PushL( getThumbnailActive );
   158     CleanupStack::PushL( getThumbnailActive );
   159     
   159     
   160     if(aObjectSource.Id() > 0)
   160     if(aObjectSource.Id() > 0)
   161         {
   161         {
   162         getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags,
   162         getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags,
   213     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   213     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   214 
   214 
   215     TInt priority = ValidatePriority(aPriority);
   215     TInt priority = ValidatePriority(aPriority);
   216     
   216     
   217     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   217     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   218         ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue );
   218         ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue );
   219     CleanupStack::PushL( getThumbnailActive );
   219     CleanupStack::PushL( getThumbnailActive );
   220     
   220     
   221     getThumbnailActive->GetThumbnailL( KNullDesC, aThumbnailId, iFlags,
   221     getThumbnailActive->GetThumbnailL( KNullDesC, aThumbnailId, iFlags,
   222                        iQualityPreference, iSize, iDisplayMode, priority, aClientData,
   222                        iQualityPreference, iSize, iDisplayMode, priority, aClientData,
   223                        EFalse, KNullDesC, iThumbnailSize );
   223                        EFalse, KNullDesC, iThumbnailSize );
   247     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   247     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   248 
   248 
   249     TInt priority = ValidatePriority(aPriority);
   249     TInt priority = ValidatePriority(aPriority);
   250     
   250     
   251     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   251     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   252         ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue );
   252         ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue );
   253     CleanupStack::PushL( getThumbnailActive );
   253     CleanupStack::PushL( getThumbnailActive );
   254 
   254 
   255     if ( aObjectSource.Uri().Length())
   255     if ( aObjectSource.Uri().Length())
   256         {
   256         {
   257         getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags,
   257         getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags,
   288     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   288     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   289 
   289 
   290     TInt priority = ValidatePriority(aPriority);
   290     TInt priority = ValidatePriority(aPriority);
   291     
   291     
   292     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   292     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   293         ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue );
   293         ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue );
   294     CleanupStack::PushL( getThumbnailActive );
   294     CleanupStack::PushL( getThumbnailActive );
   295     
   295     
   296     if ( aObjectSource.Uri().Length() &&
   296     if (aObjectSource.Uri().Length() &&
   297          aObjectSource.Buffer() != NULL &&
   297         aObjectSource.Bitmap() != NULL)
   298          aObjectSource.MimeType() != KNullDesC8)
   298         {
   299         {
   299         // from bitmap
       
   300         getThumbnailActive->SetThumbnailL( aObjectSource.GetBitmapOwnership(),
       
   301                      aObjectSource.Id(), KBmpMime, iFlags, iQualityPreference,
       
   302                      iSize, iDisplayMode, priority, aClientData, ETrue,
       
   303                      aObjectSource.Uri(), iThumbnailSize, ETrue);
       
   304         } 
       
   305     else if (aObjectSource.Uri().Length() &&
       
   306              aObjectSource.Buffer() != NULL &&
       
   307              aObjectSource.MimeType() != KNullDesC8)
       
   308         {
       
   309         // from buffer
   300         getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(), aObjectSource.Id(),
   310         getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(), aObjectSource.Id(),
   301             aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode,
   311             aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode,
   302             priority, aClientData, EFalse, aObjectSource.Uri(), iThumbnailSize);
   312             priority, aClientData, ETrue, aObjectSource.Uri(), iThumbnailSize, ETrue);
   303         }
   313         }
   304     
   314     
   305     iRequestQueue->AddRequestL( getThumbnailActive );
   315     iRequestQueue->AddRequestL( getThumbnailActive );
   306     CleanupStack::Pop( getThumbnailActive );
   316     CleanupStack::Pop( getThumbnailActive );
   307 
   317 
   327 		__ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   337 		__ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   328 
   338 
   329 		TInt priority = ValidatePriority(aPriority);
   339 		TInt priority = ValidatePriority(aPriority);
   330 		
   340 		
   331 		CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   341 		CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   332 			( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue );
   342 			( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue );
   333 		
   343 		
   334 		CleanupStack::PushL( getThumbnailActive );
   344 		CleanupStack::PushL( getThumbnailActive );
   335 		
   345 		
   336 		if (aObjectSource.Bitmap())
   346 		if (aObjectSource.Bitmap())
   337 			{
   347 			{
   338 			// from bitmap
   348 			// from bitmap
   339 			getThumbnailActive->SetThumbnailL( aObjectSource.GetBitmapOwnership(),
   349 			getThumbnailActive->SetThumbnailL( aObjectSource.GetBitmapOwnership(),
   340 						 aObjectSource.Id(), KBmpMime, iFlags, iQualityPreference,
   350 						 aObjectSource.Id(), KBmpMime, iFlags, iQualityPreference,
   341 						 iSize, iDisplayMode, priority, NULL, ETrue,
   351 						 iSize, iDisplayMode, priority, NULL, ETrue,
   342 						 aObjectSource.Uri(), EUnknownThumbnailSize);
   352 						 aObjectSource.Uri(), EUnknownThumbnailSize, EFalse);
   343 			}
   353 			}
   344 		else if( !aObjectSource.Buffer() )
   354 		else if( !aObjectSource.Buffer() )
   345 			{        
   355 			{        
   346 			getThumbnailActive->GetThumbnailL( aObjectSource.Id(), 
   356 			getThumbnailActive->GetThumbnailL( aObjectSource.Id(), 
   347 						 aObjectSource.Uri(), iFlags, iQualityPreference, iSize,
   357 						 aObjectSource.Uri(), iFlags, iQualityPreference, iSize,
   352 			{
   362 			{
   353 			// from buffer
   363 			// from buffer
   354 			getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(),
   364 			getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(),
   355 						 aObjectSource.Id(), aObjectSource.MimeType(), iFlags,
   365 						 aObjectSource.Id(), aObjectSource.MimeType(), iFlags,
   356 						 iQualityPreference, iSize, iDisplayMode, priority, NULL,
   366 						 iQualityPreference, iSize, iDisplayMode, priority, NULL,
   357 						 ETrue, aObjectSource.Uri(), EUnknownThumbnailSize);
   367 						 ETrue, aObjectSource.Uri(), EUnknownThumbnailSize, EFalse);
   358 			}
   368 			}
   359 		
   369 		
   360 		iRequestQueue->AddRequestL( getThumbnailActive );
   370 		iRequestQueue->AddRequestL( getThumbnailActive );
   361 		
   371 		
   362 		CleanupStack::Pop( getThumbnailActive );
   372 		CleanupStack::Pop( getThumbnailActive );
   489 		TN_DEBUG2( "CThumbnailManagerImpl::DeleteThumbnails() URI==%S ", &aObjectSource.Uri() );
   499 		TN_DEBUG2( "CThumbnailManagerImpl::DeleteThumbnails() URI==%S ", &aObjectSource.Uri() );
   490 
   500 
   491 		__ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   501 		__ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   492 		
   502 		
   493 		CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   503 		CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   494 			( iFs, iSession, iObserver, iRequestId, CActive::EPriorityIdle, iRequestQueue );
   504 			( iFs, iSession, iObserver, iRequestObserver, iRequestId, CActive::EPriorityIdle, 
       
   505 			  iRequestQueue );
   495 
   506 
   496 		CleanupStack::PushL( getThumbnailActive );
   507 		CleanupStack::PushL( getThumbnailActive );
   497 		
   508 		
   498 		const TDesC& uri = aObjectSource.Uri();
   509 		const TDesC& uri = aObjectSource.Uri();
   499 		
   510 		
   531 		TN_DEBUG2( "CThumbnailManagerImpl::DeleteThumbnails() aItemId==%d ", aItemId );
   542 		TN_DEBUG2( "CThumbnailManagerImpl::DeleteThumbnails() aItemId==%d ", aItemId );
   532 		
   543 		
   533 		__ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   544 		__ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   534 		
   545 		
   535 		CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   546 		CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   536 			( iFs, iSession, iObserver, iRequestId, CActive::EPriorityIdle, iRequestQueue );
   547 			( iFs, iSession, iObserver, iRequestObserver, iRequestId, CActive::EPriorityIdle, 
       
   548 			  iRequestQueue );
   537 		
   549 		
   538 		CleanupStack::PushL( getThumbnailActive );
   550 		CleanupStack::PushL( getThumbnailActive );
   539 		
   551 		
   540 		getThumbnailActive->DeleteThumbnails( KNullDesC, aItemId, CActive::EPriorityIdle );
   552 		getThumbnailActive->DeleteThumbnails( KNullDesC, aItemId, CActive::EPriorityIdle );
   541 		
   553 		
   618     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   630     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   619     
   631     
   620     TInt priority = ValidatePriority(aPriority);
   632     TInt priority = ValidatePriority(aPriority);
   621     
   633     
   622     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   634     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   623         ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue );
   635         ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue );
   624     CleanupStack::PushL( getThumbnailActive );
   636     CleanupStack::PushL( getThumbnailActive );
   625     
   637     
   626     getThumbnailActive->UpdateThumbnailsL( aPath, aItemId, iFlags, iQualityPreference,
   638     getThumbnailActive->UpdateThumbnailsL( aPath, aItemId, iFlags, iQualityPreference,
   627             iDisplayMode, priority, aOrientation, aModified );
   639             iDisplayMode, priority, aOrientation, aModified );
   628     
   640     
   646     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   658     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
   647     
   659     
   648     TInt priority = ValidatePriority(aPriority);
   660     TInt priority = ValidatePriority(aPriority);
   649     
   661     
   650     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   662     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
   651         ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue );
   663         ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue );
   652     CleanupStack::PushL( getThumbnailActive );
   664     CleanupStack::PushL( getThumbnailActive );
   653     
   665     
   654     getThumbnailActive->RenameThumbnails( aCurrentPath, aNewPath, priority );
   666     getThumbnailActive->RenameThumbnails( aCurrentPath, aNewPath, priority );
   655     
   667     
   656     iRequestQueue->AddRequestL( getThumbnailActive );
   668     iRequestQueue->AddRequestL( getThumbnailActive );
   659     iRequestQueue->Process();
   671     iRequestQueue->Process();
   660     
   672     
   661     return iRequestId;
   673     return iRequestId;
   662     }
   674     }
   663 
   675 
       
   676 
       
   677 // ---------------------------------------------------------------------------
       
   678 // CThumbnailManagerImpl::SetRequestObserver()
       
   679 // Adds optional request observer
       
   680 // ---------------------------------------------------------------------------
       
   681 //
       
   682 void CThumbnailManagerImpl::SetRequestObserver( MThumbnailManagerRequestObserver& aObserver )
       
   683     {
       
   684     iRequestObserver = NULL;
       
   685     iRequestObserver = &aObserver;
       
   686     }
       
   687 
       
   688 // ---------------------------------------------------------------------------
       
   689 // CThumbnailManagerImpl::RemoveRequestObserver()
       
   690 // Removes optional request observer
       
   691 // ---------------------------------------------------------------------------
       
   692 //
       
   693 void CThumbnailManagerImpl::RemoveRequestObserver()
       
   694     {
       
   695     if (iRequestObserver)
       
   696         {
       
   697         iRequestObserver = NULL;
       
   698         }
       
   699     }
       
   700 
       
   701 
   664 // ---------------------------------------------------------------------------
   702 // ---------------------------------------------------------------------------
   665 // CThumbnailManagerImpl::ValidatePriority()
   703 // CThumbnailManagerImpl::ValidatePriority()
   666 // Check that given priority is in range of CActive::TPriority 
   704 // Check that given priority is in range of CActive::TPriority 
   667 // ---------------------------------------------------------------------------
   705 // ---------------------------------------------------------------------------
   668 //
   706 //