mtpdataproviders/mtpimagedp/src/cmtpimagedpobjectpropertymgr.cpp
changeset 22 a5c0bb5018eb
parent 20 6e82ae192c3a
child 25 48a2e0d8a4ce
equal deleted inserted replaced
20:6e82ae192c3a 22:a5c0bb5018eb
   435         
   435         
   436     case EMTPObjectPropCodeParentObject:
   436     case EMTPObjectPropCodeParentObject:
   437         aValue = iObjectInfo->Uint(CMTPObjectMetaData::EParentHandle);
   437         aValue = iObjectInfo->Uint(CMTPObjectMetaData::EParentHandle);
   438         break;        
   438         break;        
   439        
   439        
   440     case EMTPObjectPropCodeRepresentativeSampleSize: 
   440     case EMTPObjectPropCodeRepresentativeSampleSize:
   441         aValue = MTPImageDpUtilits::GetThumbnailSize(*iObjectInfo);
   441         {
   442         if (aValue == 0)
   442         __FLOG_VA((_L16("Query smaple size from MdS - URI:%S"), &iObjectInfo->DesC(CMTPObjectMetaData::ESuid)));
   443             {
   443         ClearThumnailCache();                                
   444             __FLOG_VA((_L16("Query smaple size from MdS - URI:%S"), &iObjectInfo->DesC(CMTPObjectMetaData::ESuid)));
   444         /**
   445             ClearThumnailCache();                                
   445          * try to query thumbnail from TNM, and then store thumbnail to cache
       
   446          */
       
   447         TEntry fileEntry;
       
   448         TInt err = iFs.Entry(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), fileEntry);
       
   449         if (err == KErrNone)
       
   450             {
       
   451             if(fileEntry.FileSize() > KFileSizeMax || !alwaysCreate)
       
   452                 {
       
   453                 iDataProvider.ThumbnailManager().GetThumbMgr()->SetFlagsL(CThumbnailManager::EDoNotCreate);
       
   454                 }
       
   455             else
       
   456                 {
       
   457                 iDataProvider.ThumbnailManager().GetThumbMgr()->SetFlagsL(CThumbnailManager::EDefaultFlags);
       
   458                 }
       
   459             
   446             /**
   460             /**
   447              * try to query thumbnail from TNM, and then store thumbnail to cache
   461              * trap the leave to avoid return general error when PC get object property list
   448              */
   462              */
   449             TEntry fileEntry;
   463             TRAP(err, iDataProvider.ThumbnailManager().GetThumbnailL(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), iThumbnailCache.iThumbnailData, err));
   450             TInt err = iFs.Entry(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), fileEntry);
       
   451             if (err == KErrNone)
   464             if (err == KErrNone)
   452                 {
   465                 {
   453                 if(fileEntry.FileSize() > KFileSizeMax || !alwaysCreate)
   466                 iThumbnailCache.iObjectHandle = iObjectInfo->Uint(CMTPObjectMetaData::EHandle);                        
   454                     {
   467                 if (iThumbnailCache.iThumbnailData != NULL)
   455                     iDataProvider.ThumbnailManager().GetThumbMgr()->SetFlagsL(CThumbnailManager::EDoNotCreate);
   468                     {
   456                     }
   469                     aValue = static_cast<TUint32>(iThumbnailCache.iThumbnailData->Size());
   457                 else
   470                     }
   458                     {
   471                                             
   459                     iDataProvider.ThumbnailManager().GetThumbMgr()->SetFlagsL(CThumbnailManager::EDefaultFlags);
   472                 if (aValue <= 0)
   460                     }
   473                     {
   461                 
   474                     //trigger initiator to re-query thumbnail again if the thumbnail size of response is zero
   462                 /**
   475                     aValue = KThumbCompressedSize;
   463                  * trap the leave to avoid return general error when PC get object property list
   476                     }
   464                  */
   477                 }
   465                 TRAP(err, iDataProvider.ThumbnailManager().GetThumbnailL(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), iThumbnailCache.iThumbnailData, err));
   478             }
   466                 if (err == KErrNone)
   479         }
   467                     {
       
   468                     iThumbnailCache.iObjectHandle = iObjectInfo->Uint(CMTPObjectMetaData::EHandle);                        
       
   469                     if (iThumbnailCache.iThumbnailData != NULL)
       
   470                         {
       
   471                         aValue = static_cast<TUint32>(iThumbnailCache.iThumbnailData->Size());
       
   472                         }
       
   473                                                 
       
   474                     if (aValue > 0)
       
   475                         {
       
   476                         //update metadata column
       
   477                         MTPImageDpUtilits::UpdateObjectThumbnailSizeL(iFramework, *iObjectInfo, aValue);
       
   478                         }
       
   479                     else
       
   480                         {
       
   481                         //trigger initiator to re-query thumbnail again if the thumbnail size of response is zero
       
   482                         aValue = KThumbCompressedSize;
       
   483                         }
       
   484 
       
   485                     __FLOG_VA((_L16("Cache miss:GetThumbnailSize - URI:%S, Size:%u"), &iObjectInfo->DesC(CMTPObjectMetaData::ESuid), aValue));
       
   486                     }
       
   487                 }
       
   488             }	    
       
   489         break;       
   480         break;       
   490        
   481        
   491     case EMTPObjectPropCodeRepresentativeSampleHeight:
   482     case EMTPObjectPropCodeRepresentativeSampleHeight:
   492         aValue = KThumbHeigth;
   483         aValue = KThumbHeigth;
   493         break;
   484         break;
   616                  * trap the leave to avoid return general error when PC get object property list
   607                  * trap the leave to avoid return general error when PC get object property list
   617                  */
   608                  */
   618                 TRAP(err, iDataProvider.ThumbnailManager().GetThumbnailL(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), iThumbnailCache.iThumbnailData, err));
   609                 TRAP(err, iDataProvider.ThumbnailManager().GetThumbnailL(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), iThumbnailCache.iThumbnailData, err));
   619                 if (err == KErrNone)
   610                 if (err == KErrNone)
   620                     {
   611                     {
   621                     TInt size = MTPImageDpUtilits::GetThumbnailSize(*iObjectInfo);
       
   622                     iThumbnailCache.iObjectHandle = iObjectInfo->Uint(CMTPObjectMetaData::EHandle);                        
   612                     iThumbnailCache.iObjectHandle = iObjectInfo->Uint(CMTPObjectMetaData::EHandle);                        
   623                     if (iThumbnailCache.iThumbnailData != NULL)
   613                     if (iThumbnailCache.iThumbnailData != NULL)
   624                         {
   614                         {
   625                         aValue.SetByDesL(*iThumbnailCache.iThumbnailData);
   615                         aValue.SetByDesL(*iThumbnailCache.iThumbnailData);
   626                         if (size == 0)
       
   627                             {
       
   628                             //update metadata column
       
   629                             MTPImageDpUtilits::UpdateObjectThumbnailSizeL(iFramework, *iObjectInfo, iThumbnailCache.iThumbnailData->Size());
       
   630                             __FLOG_VA((_L16("Cache miss:GetThumbnailSize - URI:%S, Size:%u"), &iObjectInfo->DesC(CMTPObjectMetaData::ESuid), size));
       
   631                             }
       
   632                         }                                
   616                         }                                
   633                     }
   617                     }
   634                 }
   618                 }
   635             }
   619             }
   636         }
   620         }