114 { |
114 { |
115 TRACER("CGlxCacheManager::ConstructL"); |
115 TRACER("CGlxCacheManager::ConstructL"); |
116 |
116 |
117 iGarbageCollector = CGlxGarbageCollector::NewL( iCaches ); |
117 iGarbageCollector = CGlxGarbageCollector::NewL( iCaches ); |
118 iTempErrorTimer = CPeriodic::NewL(CActive::EPriorityStandard); |
118 iTempErrorTimer = CPeriodic::NewL(CActive::EPriorityStandard); |
119 iSchedulerWait = new (ELeave) CActiveSchedulerWait(); |
|
120 iMaintainCacheCallback = new ( ELeave ) |
119 iMaintainCacheCallback = new ( ELeave ) |
121 CAsyncCallBack( TCallBack( MaintainCacheL, this ), CActive::EPriorityStandard ); |
120 CAsyncCallBack( TCallBack( MaintainCacheL, this ), CActive::EPriorityStandard ); |
122 |
121 |
123 #ifdef USE_S60_TNM |
122 #ifdef USE_S60_TNM |
124 iTnEngine = CThumbnailManager::NewL( *this); |
123 iTnEngine = CThumbnailManager::NewL( *this); |
132 // |
131 // |
133 CGlxCacheManager::~CGlxCacheManager() |
132 CGlxCacheManager::~CGlxCacheManager() |
134 { |
133 { |
135 TRACER("CGlxCacheManager::Destructor"); |
134 TRACER("CGlxCacheManager::Destructor"); |
136 |
135 |
137 delete iSchedulerWait; |
|
138 iObserverList.ResetAndDestroy(); |
136 iObserverList.ResetAndDestroy(); |
139 iCaches.ResetAndDestroy(); |
137 iCaches.ResetAndDestroy(); |
140 delete iTempThumbnail; |
138 delete iTempThumbnail; |
141 iRequestedItemIds.Reset(); |
139 iRequestedItemIds.Reset(); |
142 iRequestedAttrs.Reset(); |
140 iRequestedAttrs.Reset(); |
777 HandleGarbageCollectionL(EFalse); |
775 HandleGarbageCollectionL(EFalse); |
778 CleanupStack::PopAndDestroy(path); |
776 CleanupStack::PopAndDestroy(path); |
779 iRequestOwner = list; |
777 iRequestOwner = list; |
780 CleanupStack::PopAndDestroy(attrSpecs); |
778 CleanupStack::PopAndDestroy(attrSpecs); |
781 TGlxIdSpaceId spaceId = list->IdSpaceId(iRequestedItemIndexes[0]); |
779 TGlxIdSpaceId spaceId = list->IdSpaceId(iRequestedItemIndexes[0]); |
782 HandleCollectionMediaL(spaceId, *iMPXMedia, KErrArgument); |
780 HandleCollectionMediaL(spaceId, *iMPXMedia, errInImage); |
783 CleanupStack::PopAndDestroy(imageVwrMgr); |
781 CleanupStack::PopAndDestroy(imageVwrMgr); |
784 return; |
782 return; |
785 } |
783 } |
786 |
784 |
787 if(!iReader) |
785 if(!iReader) |
788 { |
786 { |
789 TRAP(errInImage,iReader = CGlxImageReader::NewL(*this)); |
787 TRAP(errInImage, iReader = CGlxImageReader::NewL()); |
790 if(errInImage == KErrNone) |
|
791 { |
|
792 iSchedulerWait->Start(); |
|
793 } |
|
794 } |
788 } |
795 |
789 |
796 for ( TInt i = 0; i < iRequestedAttrs.Count(); i++ ) |
790 for ( TInt i = 0; i < iRequestedAttrs.Count(); i++ ) |
797 { |
791 { |
798 if ( iRequestedAttrs[i] == KMPXMediaGeneralId ) |
792 if ( iRequestedAttrs[i] == KMPXMediaGeneralId ) |
799 { |
793 { |
800 iMPXMedia->SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId, |
794 iMPXMedia->SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId, |
930 { |
924 { |
931 iMPXMedia->SetTObjectValueL(KGlxMediaGeneralSystemItem, EFalse); |
925 iMPXMedia->SetTObjectValueL(KGlxMediaGeneralSystemItem, EFalse); |
932 } |
926 } |
933 else if ( iRequestedAttrs[i] == KGlxMediaGeneralDimensions ) |
927 else if ( iRequestedAttrs[i] == KGlxMediaGeneralDimensions ) |
934 { |
928 { |
|
929 TSize dimensions = TSize(); |
935 if(errInImage == KErrNone) |
930 if(errInImage == KErrNone) |
936 { |
931 { |
937 //need to fetch the original file dimensions |
932 //need to fetch the original file dimensions |
938 TSize dimensions(iImgSz.iWidth,iImgSz.iHeight); |
933 if(errInImage == KErrNone) |
|
934 { |
|
935 dimensions = iReader->GetDimensions(); |
|
936 } |
939 iMPXMedia->SetTObjectValueL(KGlxMediaGeneralDimensions, dimensions); |
937 iMPXMedia->SetTObjectValueL(KGlxMediaGeneralDimensions, dimensions); |
940 } |
938 } |
941 else |
939 else |
942 { |
940 { |
943 TSize dimensions(0,0); |
|
944 iMPXMedia->SetTObjectValueL(KGlxMediaGeneralDimensions, dimensions); |
941 iMPXMedia->SetTObjectValueL(KGlxMediaGeneralDimensions, dimensions); |
945 } |
942 } |
946 } |
943 } |
947 else if ( iRequestedAttrs[i] == KGlxMediaGeneralFramecount ) |
944 else if ( iRequestedAttrs[i] == KGlxMediaGeneralFramecount ) |
948 { |
945 { |
949 TInt fcount = 1; |
946 TInt fcount = 1; |
|
947 if(errInImage == KErrNone) |
|
948 { |
|
949 fcount = iReader->GetFrameCount(); |
|
950 } |
|
951 GLX_DEBUG2("Imageviewer Collection framecount(%d)", fcount); |
950 iMPXMedia->SetTObjectValueL(KGlxMediaGeneralFramecount, fcount); |
952 iMPXMedia->SetTObjectValueL(KGlxMediaGeneralFramecount, fcount); |
951 } |
953 } |
952 else if ( iRequestedAttrs[i] == KMPXMediaGeneralComment ) |
954 else if ( iRequestedAttrs[i] == KMPXMediaGeneralComment ) |
953 { |
955 { |
954 iMPXMedia->SetTextValueL(KMPXMediaGeneralComment, KNullDesC); |
956 iMPXMedia->SetTextValueL(KMPXMediaGeneralComment, KNullDesC); |
1544 TUid uid; |
1546 TUid uid; |
1545 User::LeaveIfError( session.AppForDocument( aFileName, uid, aMimeType ) ); |
1547 User::LeaveIfError( session.AppForDocument( aFileName, uid, aMimeType ) ); |
1546 CleanupStack::PopAndDestroy(&session); |
1548 CleanupStack::PopAndDestroy(&session); |
1547 } |
1549 } |
1548 |
1550 |
1549 // ----------------------------------------------------------------------------- |
|
1550 // ImageSizeReady() |
|
1551 // ----------------------------------------------------------------------------- |
|
1552 // |
|
1553 void CGlxCacheManager::ImageSizeReady(TInt aError, const TSize aSz) |
|
1554 { |
|
1555 TRACER("CGlxCacheManager::ImageSizeReady"); |
|
1556 GLX_DEBUG2("CGlxCacheManager::ImageSizeReady aError=%d", aError); |
|
1557 iImgSz = TSize(); |
|
1558 if(iSchedulerWait) |
|
1559 { |
|
1560 iSchedulerWait->AsyncStop(); |
|
1561 } |
|
1562 |
|
1563 iImgSz = aSz; |
|
1564 GLX_DEBUG3("CGlxCacheManager::ImageSizeReady() iImgSz w(%d) h(%d)", |
|
1565 iImgSz.iWidth, iImgSz.iHeight); |
|
1566 } |
|
1567 |
1551 |
1568 //End of file |
1552 //End of file |