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 } |