imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserversession.cpp
branchRCL_3
changeset 13 ffb2d5dd62e9
parent 11 85a88bc05e45
child 14 ad31f4183ddc
equal deleted inserted replaced
11:85a88bc05e45 13:ffb2d5dd62e9
   611 	        else
   611 	        else
   612 	            {
   612 	            {
   613                 User::Leave(err);
   613                 User::Leave(err);
   614                 }
   614                 }
   615 	        
   615 	        
   616 	        if(Server()->StoreForPathL(params.iFileName)->IsDiskFull())
   616 	        // disk space check only for stored sizes
       
   617 	        if ( params.iThumbnailSize != ECustomThumbnailSize && 
       
   618 	             Server()->StoreForPathL(params.iFileName)->IsDiskFull() )
   617 	            {
   619 	            {
   618 	            User::Leave( KErrDiskFull );
   620 	            User::Leave( KErrDiskFull );
   619 	            }
   621 	            }
   620 
   622 
   621             User::Leave(err);
   623             User::Leave(err);
   734         
   736         
   735         for ( TInt i( 0 ); i < count; i++ )
   737         for ( TInt i( 0 ); i < count; i++ )
   736             {           
   738             {           
   737             if( bitmapSize.iWidth < bitmapSize.iHeight )
   739             if( bitmapSize.iWidth < bitmapSize.iHeight )
   738                {
   740                {
   739                TInt height = (*missingSizes)[i].iSize.iHeight;
   741                TThumbnailSize size = (*missingSizes)[ i ].iType;
   740                (*missingSizes)[i].iSize.iHeight = (*missingSizes)[i].iSize.iWidth;
   742         
   741                (*missingSizes)[i].iSize.iWidth = height;
   743                if ( size == EFullScreenThumbnailSize ||
   742                TN_DEBUG1( "CThumbnailServerSession::RequestSetThumbnailByBitmapL() - portrait");
   744                     size == EVideoFullScreenThumbnailSize ||
       
   745                     size == EAudioFullScreenThumbnailSize ||
       
   746                     size == EImageFullScreenThumbnailSize )
       
   747                    {
       
   748                    TInt height = (*missingSizes)[i].iSize.iHeight;
       
   749                    (*missingSizes)[i].iSize.iHeight = (*missingSizes)[i].iSize.iWidth;
       
   750                    (*missingSizes)[i].iSize.iWidth = height;
       
   751                     
       
   752                    TN_DEBUG1( "CThumbnailServerSession::RequestSetThumbnailByBitmapL() - portrait");
       
   753                    }
   743                }
   754                }
   744             
   755         
   745             CThumbnailScaleTask* scaleTask = CThumbnailScaleTask::NewL( Server()->Processor(),
   756             CThumbnailScaleTask* scaleTask = CThumbnailScaleTask::NewL( Server()->Processor(),
   746                 *Server(), params.iTargetUri, bitmap, bitmapSize,
   757                     *Server(), params.iTargetUri, bitmap, bitmapSize,
   747                 (*missingSizes)[i].iSize, (*missingSizes)[i].iCrop, params.iDisplayMode,
   758                     (*missingSizes)[i].iSize, (*missingSizes)[i].iCrop, params.iDisplayMode,
   748                 KMaxPriority, KNullDesC, (*missingSizes)[i].iType, params.iModified, EFalse, EFalse,
   759                     KMaxPriority, KNullDesC, (*missingSizes)[i].iType, params.iModified, EFalse, EFalse,
   749                 reqId);
   760                     reqId);
   750             CleanupStack::PushL( scaleTask );
   761             CleanupStack::PushL( scaleTask );
   751             scaleTask->SetDoStore( ETrue );
   762             scaleTask->SetDoStore( ETrue );
   752             Server()->Processor().AddTaskL( scaleTask );
   763             Server()->Processor().AddTaskL( scaleTask );
   753             CleanupStack::Pop( scaleTask );
   764             CleanupStack::Pop( scaleTask );
   754             
   765         
   755             // completion to first task, because task processor works like stack
   766             // completion to first task, because task processor works like stack
   756             if( i == 0 )
   767             if( i == 0 )
   757                 {
   768                 {
   758                 // scaleTask is now responsible for completing the RMessage
   769                 // scaleTask is now responsible for completing the RMessage
   759                 scaleTask->SetMessageData( reqId, iMessage, iClientThread );
   770                 scaleTask->SetMessageData( reqId, iMessage, iClientThread );
   791     const TThumbnailRequestParams& params = iRequestParams();
   802     const TThumbnailRequestParams& params = iRequestParams();
   792 
   803 
   793     TN_DEBUG2( 
   804     TN_DEBUG2( 
   794         "CThumbnailServerSession::CreateGenerateTaskFromFileHandleL() -- create thumbnail generation task for %S", &params.iFileName );
   805         "CThumbnailServerSession::CreateGenerateTaskFromFileHandleL() -- create thumbnail generation task for %S", &params.iFileName );
   795     
   806     
   796     if(Server()->StoreForPathL(params.iFileName)->IsDiskFull())
   807     // disk space check only for stored sizes
       
   808     if ( params.iThumbnailSize != ECustomThumbnailSize && 
       
   809          Server()->StoreForPathL(params.iFileName)->IsDiskFull() )
   797         {
   810         {
   798         User::Leave( KErrDiskFull );
   811         User::Leave( KErrDiskFull );
   799         }
   812         }
   800     
   813     
   801     RArray < TThumbnailPersistentSize >* missingSizes = NULL;
   814     RArray < TThumbnailPersistentSize >* missingSizes = NULL;
   870         }
   883         }
   871 
   884 
   872     // Generate task is now responsible for completing the message
   885     // Generate task is now responsible for completing the message
   873     iMessage = RMessage2();
   886     iMessage = RMessage2();
   874     } 
   887     } 
       
   888 
   875 // -----------------------------------------------------------------------------
   889 // -----------------------------------------------------------------------------
   876 // CThumbnailServerSession::CreateGenerateTaskL()
   890 // CThumbnailServerSession::CreateGenerateTaskL()
   877 // Create a task to generate a new thumbnail
   891 // Create a task to generate a new thumbnail
   878 // -----------------------------------------------------------------------------
   892 // -----------------------------------------------------------------------------
   879 //
   893 //
   882     const TThumbnailRequestParams& params = iRequestParams();
   896     const TThumbnailRequestParams& params = iRequestParams();
   883 
   897 
   884     TN_DEBUG2( 
   898     TN_DEBUG2( 
   885         "CThumbnailServerSession::CreateGenerateTaskFromBufferL() -- create thumbnail generation task for %S", &params.iTargetUri );
   899         "CThumbnailServerSession::CreateGenerateTaskFromBufferL() -- create thumbnail generation task for %S", &params.iTargetUri );
   886   
   900   
   887     if(Server()->StoreForPathL(params.iTargetUri)->IsDiskFull())
   901     // disk space check only for stored sizes
       
   902     if ( params.iThumbnailSize != ECustomThumbnailSize && 
       
   903          Server()->StoreForPathL(params.iTargetUri)->IsDiskFull() )
   888         {
   904         {
   889         User::Leave( KErrDiskFull );
   905         User::Leave( KErrDiskFull );
   890         }
   906         }
   891     
   907     
   892     if(aBuffer && params.iMimeType.Des().Match( KVideoMime ) == 0 )
   908     if(aBuffer && params.iMimeType.Des().Match( KVideoMime ) == 0 )