imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp
changeset 25 cb86b71cae0a
parent 22 a67f74060682
child 30 b67379558a75
equal deleted inserted replaced
22:a67f74060682 25:cb86b71cae0a
   122     CThumbnailTask::StartL();
   122     CThumbnailTask::StartL();
   123     
   123     
   124 #ifdef _DEBUG
   124 #ifdef _DEBUG
   125     aStart.UniversalTime();
   125     aStart.UniversalTime();
   126 #endif
   126 #endif
   127 
   127    
   128       
       
   129     TParsePtrC parse(iFilename);
   128     TParsePtrC parse(iFilename);
   130     TPtrC ext(parse.Ext());
   129     TPtrC ext(parse.Ext());
   131     TBuf8< KMaxDataTypeLength > mimeType;                
   130     TBuf8< KMaxDataTypeLength > mimeType;                
   132     if  (ext.CompareF(KNonEmbeddedArtExt)== 0) 
   131     if  (ext.CompareF(KNonEmbeddedArtExt)== 0) 
   133         {       
   132         {       
   355                     TN_DEBUG2( "*iMissingSizes)[ i ].iWidth == %d", (*iMissingSizes)[ i ].iSize.iWidth );
   354                     TN_DEBUG2( "*iMissingSizes)[ i ].iWidth == %d", (*iMissingSizes)[ i ].iSize.iWidth );
   356                     TN_DEBUG2( "*iMissingSizes)[ i ].iHeight == %d", (*iMissingSizes)[ i ].iSize.iHeight );
   355                     TN_DEBUG2( "*iMissingSizes)[ i ].iHeight == %d", (*iMissingSizes)[ i ].iSize.iHeight );
   357                     }
   356                     }
   358                 }
   357                 }
   359             
   358             
   360             CThumbnailScaleTask* scaleTask = CThumbnailScaleTask::NewL( iProcessor, iServer, iFilename,
   359             CThumbnailScaleTask* complTask = CThumbnailScaleTask::NewL( iProcessor, iServer, iFilename,
   361                 aBitmap, iOriginalSize, (*iMissingSizes)[ i ].iSize, (*iMissingSizes)[ i ].iCrop, iDisplayMode,
   360                 aBitmap, iOriginalSize, (*iMissingSizes)[ i ].iSize, (*iMissingSizes)[ i ].iCrop, iDisplayMode,
   362                 KMaxPriority, iTargetUri, (*iMissingSizes)[ i ].iType, iModified, iScaledBitmapToPool, iEXIF,
   361                 KMaxPriority, iTargetUri, (*iMissingSizes)[ i ].iType, iModified, iScaledBitmapToPool, iEXIF,
   363                 iRequestId);
   362                 iRequestId);
   364             CleanupStack::PushL( scaleTask );
   363             CleanupStack::PushL( complTask );
   365             
   364             
   366             TInt err1 = KErrNone;
   365             TInt err1 = KErrNone;
   367             TInt err2 = KErrNone;
   366             TInt err2 = KErrNone;
       
   367             
   368             if(iFilename != KNullDesC)
   368             if(iFilename != KNullDesC)
   369                 {
   369                 {
   370                 TRAP(err1, iServer.StoreForPathL(iFilename));
   370                 TRAP(err1, iServer.StoreForPathL(iFilename));
   371                 }
   371                 }
   372             if(iTargetUri != KNullDesC)
   372             
       
   373             if(iTargetUri != KNullDesC )
   373                 {
   374                 {
   374                 TRAP(err2, iServer.StoreForPathL(iTargetUri));
   375                 TRAP(err2, iServer.StoreForPathL(iTargetUri));
   375                 }
   376                 }
   376             // if trying to access Z drive, don't try to store
   377             // if trying to access Z drive, don't try to store
   377             // don't want to store custom sizes
   378             // don't want to store custom sizes
   378             if( err1 == KErrAccessDenied || err2 == KErrAccessDenied ||
   379             if( err1 == KErrAccessDenied || err2 == KErrAccessDenied ||
   379                     (*iMissingSizes)[ i ].iType == ECustomThumbnailSize || 
   380                     (*iMissingSizes)[ i ].iType == ECustomThumbnailSize || 
   380                     (*iMissingSizes)[ i ].iType == EUnknownThumbnailSize )
   381                     (*iMissingSizes)[ i ].iType == EUnknownThumbnailSize )
   381                 {
   382                 {
   382                 scaleTask->SetDoStore( EFalse );
   383                 complTask->SetDoStore( EFalse );
   383                 TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CreateScaleTasksL() - do not store", this );
   384                 TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CreateScaleTasksL() - do not store", this );
   384                 }
   385                 }
   385             else
   386             else
   386                 {
   387                 {
   387                 scaleTask->SetDoStore( ETrue );
   388                 if(iFilename != KNullDesC)
   388                 }
   389                     {
   389             
   390                     complTask->SetDoStore(iServer.IsPublicPath( iFilename ));
   390             iProcessor.AddTaskL( scaleTask );
   391                     }
   391             CleanupStack::Pop( scaleTask );
   392                 
       
   393                 if(iTargetUri != KNullDesC)
       
   394                     {
       
   395                     complTask->SetDoStore(iServer.IsPublicPath( iTargetUri ));
       
   396                     }
       
   397                 }
       
   398             
       
   399             iProcessor.AddTaskL( complTask );
       
   400             CleanupStack::Pop( complTask );
   392             
   401             
   393             // completion to first task, because task processor works like stack
   402             // completion to first task, because task processor works like stack
   394             if( i == 0 )
   403             if( i == 0 )
   395                 {
   404                 {
   396                 // compTask is now responsible for completing the RMessage
   405                 // compTask is now responsible for completing the RMessage
   397                 scaleTask->SetMessageData( iRequestId, iMessage, iClientThread );
   406                 complTask->SetMessageData( iRequestId, iMessage, iClientThread );
   398                 ResetMessageData();
   407                 ResetMessageData();
   399                 }
   408                 }
   400             }
   409             }
   401         }
   410         }
   402     else
   411     else
   439             complTask->SetDoStore( EFalse );
   448             complTask->SetDoStore( EFalse );
   440             TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CreateScaleTasksL() - do not store", this );
   449             TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CreateScaleTasksL() - do not store", this );
   441             }
   450             }
   442         else
   451         else
   443             {
   452             {
   444             complTask->SetDoStore( ETrue );
   453             if(iFilename != KNullDesC)
       
   454                 {
       
   455                 complTask->SetDoStore(iServer.IsPublicPath( iFilename ));
       
   456                 }
       
   457              
       
   458              if(iTargetUri != KNullDesC)
       
   459                 {
       
   460                 complTask->SetDoStore(iServer.IsPublicPath( iTargetUri ));
       
   461                 }
   445             }
   462             }
   446         
   463         
   447         iProcessor.AddTaskL( complTask );
   464         iProcessor.AddTaskL( complTask );
   448         CleanupStack::Pop( complTask );
   465         CleanupStack::Pop( complTask );
   449         
   466