# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1286970836 -10800 # Node ID 9e8b0cc88842bd71ea8685b9834a2cf5fcb83796 # Parent 60bb012f11575a7f506bb0f8d18fbd94878a48a7 Revision: 201039 Kit: 201041 diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandling_plat/thumbnailmanager_api/inc/thumbnailmanager.h --- a/imagehandling_plat/thumbnailmanager_api/inc/thumbnailmanager.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandling_plat/thumbnailmanager_api/inc/thumbnailmanager.h Wed Oct 13 14:53:56 2010 +0300 @@ -47,9 +47,6 @@ EGridThumbnailSize, EListThumbnailSize, EFullScreenThumbnailSize, -EContactGridThumbnailSize, -EContactListThumbnailSize, -EContactFullScreenThumbnailSize, EThumbnailSizeCount //last item, don't remove } TThumbnailSize; /** diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandling_plat/thumbnailmanager_api/inc/thumbnailobjectsource.h --- a/imagehandling_plat/thumbnailmanager_api/inc/thumbnailobjectsource.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandling_plat/thumbnailmanager_api/inc/thumbnailobjectsource.h Wed Oct 13 14:53:56 2010 +0300 @@ -134,45 +134,6 @@ */ void ConstructL( const RFile64& aFile, const TDesC& aMimeType ); - /** - * Symbian 2nd phase constructor can leave. - * - * @since S60 v5.0 - * @param aURI URI. - * @param aMimeType MimeType. - * @param aThumbnailId ThumbnailId - */ - void ConstructL( const TDesC& aUri, const TDesC& aMimeType, TThumbnailId aThumbnailId ); - - /** - * Symbian 2nd phase constructor can leave. - * - * @since S60 v5.0 - * @param aBitmap Bitmap. - * @param aURI URI. - */ - void ConstructL( CFbsBitmap* aBitmap, const TDesC& aUri ); - - /** - * Symbian 2nd phase constructor can leave. - * - * @since S60 v5.0 - * @param aBuffer Buffer. - * @param aMimeType MIME type. Optional, but should be specified if known. - * @param aURI URI. - */ - void ConstructL( TDesC8* aBuffer, const TDesC& aMimeType, const TDesC& aUri ); - - /** - * Symbian 2nd phase constructor can leave. - * - * @since Symbian^3 - * @param aUri Object URI or a full path to a file in the file system. - * @param aTargetUri For linking the thumbnail to a different URI. - * @param aMimeType MIME type. Optional, but should be specified if known. - */ - void ConstructL( const TDesC& aUri, const TDesC& aTargetUri, const TDesC& aMimeType ); - private: // data @@ -199,19 +160,25 @@ /** * Bitmap */ + CFbsBitmap* iBitmap; // own /** * ThumbnailId - */ - TThumbnailId iThumbnailId; //own + */ - /** - * Uri - */ - HBufC* iTargetUri; // own + TThumbnailId iThumbnailId; //own public: + /** + * Symbian 2nd phase constructor can leave. + * + * @since S60 v5.0 + * @param aURI URI. + * @param aMimeType MimeType. + * @param aThumbnailId ThumbnailId + */ + void ConstructL( const TDesC& aUri, const TDesC& aMimeType, TThumbnailId aThumbnailId ); /** * Construct a new CThumbnailObjectSource referring to a buffer @@ -244,8 +211,7 @@ * @since S60 v5.0 * @return New CThumbnailObjectSource instance. */ - IMPORT_C static CThumbnailObjectSource* NewL( TDesC8* aBuffer, TDesC& aMimeType, - const TDesC& aUri ); + IMPORT_C static CThumbnailObjectSource* NewL( TDesC8* aBuffer, TDesC& aMimeType, const TDesC& aUri ); /** * Construct a new CThumbnailObjectSource referring to a buffer @@ -257,8 +223,7 @@ * @since S60 v5.0 * @return New CThumbnailObjectSource instance. */ - IMPORT_C static CThumbnailObjectSource* NewLC( TDesC8* aBuffer, TDesC& aMimeType, - const TDesC& aUri); + IMPORT_C static CThumbnailObjectSource* NewLC( TDesC8* aBuffer, TDesC& aMimeType, const TDesC& aUri); /** * Construct a new CThumbnailObjectSource referring to an URI. @@ -268,7 +233,7 @@ * @return New CThumbnailObjectSource instance. */ IMPORT_C static CThumbnailObjectSource* NewL( const TDesC& aUri, - TThumbnailId aThumbnailId = 0, const TDesC& aMimeType = KNullDesC ); + TThumbnailId aThumbnailId = 0, const TDesC& aMimeType = KNullDesC ); /** * Construct a new CThumbnailObjectSource referring to an URI. @@ -278,8 +243,9 @@ * @return New CThumbnailObjectSource instance. */ IMPORT_C static CThumbnailObjectSource* NewLC( const TDesC& aUri, - TThumbnailId aThumbnailId = 0, const TDesC& aMimeType = KNullDesC ); - + TThumbnailId aThumbnailId = 0, const TDesC& aMimeType = KNullDesC ); + + /** * Returns source buffer. * @@ -310,8 +276,30 @@ * * @since S60 v5.0 * @return ThumbnailId - */ - IMPORT_C TThumbnailId Id(); + */ + + IMPORT_C TThumbnailId Id(); + + /** + * Symbian 2nd phase constructor can leave. + * + * @since S60 v5.0 + * @param aBitmap Bitmap. + * @param aURI URI. + */ + void ConstructL( CFbsBitmap* aBitmap, const TDesC& + aUri ); + + /** + * Symbian 2nd phase constructor can leave. + * + * @since S60 v5.0 + * @param aBuffer Buffer. + * @param aMimeType MIME type. Optional, but should be specified if known. + * @param aURI URI. + */ + void ConstructL( TDesC8* aBuffer, const TDesC& + aMimeType, const TDesC& aUri ); /** * Returns source bitmap. @@ -329,36 +317,6 @@ * @return bitmap */ IMPORT_C CFbsBitmap* GetBitmapOwnership(); - - /** - * Construct a new CThumbnailObjectSource referring to an URI. - * @param aUri Object URI or a full path to a file in the file system. - * @param aTargetUri For linking the thumbnail to a different URI. - * @param aMimeType MIME type. Optional, but should be specified if known. - * @since Symbian^3 - * @return New CThumbnailObjectSource instance. - */ - IMPORT_C static CThumbnailObjectSource* NewL( const TDesC& aUri, - const TDesC& aTargetUri, const TDesC& aMimeType ); - - /** - * Construct a new CThumbnailObjectSource referring to an URI. - * @param aUri Object URI or a full path to a file in the file system. - * @param aTargetUri For linking the thumbnail to a different URI. - * @param aMimeType MIME type. - * @since Symbian^3 - * @return New CThumbnailObjectSource instance. - */ - IMPORT_C static CThumbnailObjectSource* NewLC( const TDesC& aUri, - const TDesC& aTargetUri, const TDesC& aMimeType ); - - /** - * Returns target uri. - * - * @since Symbian^3 - * @return uri - */ - IMPORT_C const TDesC& TargetUri(); }; #endif // THUMBNAILOBJECTSOURCE_H diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandling_plat/thumbnailmanager_api/tsrc/conf/ThumbnailManagerTest.cfg --- a/imagehandling_plat/thumbnailmanager_api/tsrc/conf/ThumbnailManagerTest.cfg Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandling_plat/thumbnailmanager_api/tsrc/conf/ThumbnailManagerTest.cfg Wed Oct 13 14:53:56 2010 +0300 @@ -15,7 +15,6 @@ * */ - [StifSettings] TestThreadStackSize= 32768 TestThreadMinHeap= 4096 @@ -88,9 +87,6 @@ EGridThumbnailSize = 11 EListThumbnailSize = 12 EFullScreenThumbnailSize = 13 -EContactGridThumbnailSize = 14 -EContactListThumbnailSize = 15 -EContactFullScreenThumbnailSize = 16 // Custom sizes KCustomSizeX 111 @@ -609,128 +605,12 @@ pause KTestDelay [Endtest] -// --------------------------------------------------------------------------- -// Create MP3 thumbnail with PNG album art -// --------------------------------------------------------------------------- -[Test] -title Create MP3 thumbnail with PNG album art -create ThumbnailManagerTest tn -tn CreateInstanceL -tn SetDisplayModeL EColor16M - -// using path -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\mp3_png.mp3 -tn DeleteThumbnails -tn SetThumbnailEnumSizeL EImageGridThumbnailSize -tn GetThumbnailL -waittestclass tn -tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M -tn DeleteThumbnails -tn SetThumbnailEnumSizeL EImageFullScreenThumbnailSize -tn GetThumbnailL -waittestclass tn -tn CheckThumbnailCenrepL EImageFullScreenThumbnailSize EColor16M -tn DeleteThumbnails -tn SetThumbnailEnumSizeL ECustomThumbnailSize -tn SetThumbnailSizeL KCustomSizeX KCustomSizeY -tn GetThumbnailL -waittestclass tn -tn CheckThumbnailL KCustomSizeX KCustomSizeY EColor16M -tn DeleteThumbnails -tn DeleteSourceInstance - -tn DeleteInstance -delete tn -pause KTestDelay -[Endtest] // --------------------------------------------------------------------------- -// Create thumbnail preview from JPG with EXIF +// Thumbs from buffer // --------------------------------------------------------------------------- [Test] -title Create thumbnail preview from JPG with EXIF -create ThumbnailManagerTest tn -tn CreateInstanceL -tn SetDisplayModeL EColor16M - -// jpg with exif -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\RGB_VGA.jpg -tn DeleteThumbnails -tn SetThumbnailEnumSizeL EImageGridThumbnailSize -tn SetQualityPreferenceL EOptimizeForQualityWithPreview -tn GetThumbnailL -waittestclass tn -tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M -tn DeleteThumbnails -tn DeleteSourceInstance - -// png with exif -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\exif.png -tn DeleteThumbnails -tn SetThumbnailEnumSizeL EImageGridThumbnailSize -tn SetQualityPreferenceL EOptimizeForQualityWithPreview -tn GetThumbnailL -waittestclass tn -tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M -tn DeleteThumbnails -tn DeleteSourceInstance - -// no exif -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\no_exif.jpg -tn DeleteThumbnails -tn SetThumbnailEnumSizeL EImageGridThumbnailSize -tn SetQualityPreferenceL EOptimizeForQualityWithPreview -tn GetThumbnailL -waittestclass tn -tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M -tn DeleteThumbnails -tn DeleteSourceInstance - -tn DeleteInstance -delete tn -pause KTestDelay -[Endtest] - -// --------------------------------------------------------------------------- -// Create thumbnail from WMA PNG & empty album arts -// --------------------------------------------------------------------------- -[Test] -title Create thumbnail from WMA PNG & empty album arts -create ThumbnailManagerTest tn -tn CreateInstanceL -tn SetDisplayModeL EColor16M - -// try to create thumbnail from PNG -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\wma_png.wma -tn DeleteThumbnails -tn SetThumbnailEnumSizeL EAudioFullScreenThumbnailSize -tn GetThumbnailL -allownextresult KErrNotFound -waittestclass tn -tn DeleteThumbnails -tn DeleteSourceInstance - -// try to create thumbnail without album art -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\wma_empty.wma -tn DeleteThumbnails -tn SetThumbnailEnumSizeL EAudioFullScreenThumbnailSize -tn GetThumbnailL -allownextresult KErrNotFound -waittestclass tn -tn DeleteThumbnails -tn DeleteSourceInstance - -tn DeleteInstance -delete tn -pause KTestDelay -[Endtest] - - -// --------------------------------------------------------------------------- -// Create thumbs from buffer -// --------------------------------------------------------------------------- -[Test] -title Create thumbs from buffer +title Thumbs from buffer create ThumbnailManagerTest tn tn CreateInstanceL tn SetDisplayModeL EColor16M @@ -821,77 +701,6 @@ [Endtest] // --------------------------------------------------------------------------- -// Create thumbs from CFbsBitmap -// --------------------------------------------------------------------------- -[Test] -title Create thumbs from CFbsBitmap -create ThumbnailManagerTest tn -tn CreateInstanceL -tn SetDisplayModeL EColor16M - -tn SetFlagsL EDefaultFlags -tn CreateSourceInstanceBitmapL \data\ThumbnailManagerTest\TestMBM.mbm \data\ThumbnailManagerTest\camera.jpg -tn DeleteThumbnails -tn CreateThumbnails -waittestclass tn - -pause KTenSecondDelay - -tn DeleteSourceInstance - -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\camera.jpg -tn SetFlagsL EDoNotCreate -tn SetThumbnailEnumSizeL EImageGridThumbnailSize -tn GetThumbnailL -waittestclass tn -tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M -tn SetThumbnailEnumSizeL EImageFullScreenThumbnailSize -tn GetThumbnailL -waittestclass tn -tn CheckThumbnailCenrepL EImageFullScreenThumbnailSize EColor16M -tn DeleteThumbnails -tn DeleteSourceInstance - -tn DeleteInstance -delete tn -pause KTestDelay -[Endtest] - - -// --------------------------------------------------------------------------- -// Create image/audio/video thumbs -// --------------------------------------------------------------------------- -[Test] -title Create image/audio/video thumbs -create ThumbnailManagerTest tn -tn CreateInstanceL -tn SetDisplayModeL EColor16M - -// try to create thumbnail from image -tn CreateThumbnailsByUrlL \data\ThumbnailManagerTest\RGB_VGA.jpg -waittestclass tn -tn DeleteThumbnails -tn DeleteSourceInstance - -// try to create thumbnail from music -tn CreateThumbnailsByUrlL \data\ThumbnailManagerTest\mp3_png.mp3 -waittestclass tn -tn DeleteThumbnails -tn DeleteSourceInstance - -// try to create thumbnail from video -tn CreateThumbnailsByUrlL \data\ThumbnailManagerTest\Videoclip.mp4 -waittestclass tn -tn DeleteThumbnails -tn DeleteSourceInstance - -tn DeleteInstance -delete tn -pause KTestDelay -[Endtest] - - -// --------------------------------------------------------------------------- // Create thumbnails for each persistent size // --------------------------------------------------------------------------- [Test] @@ -1025,6 +834,80 @@ pause KTestDelay [Endtest] + +// --------------------------------------------------------------------------- +// Thumbnail from missing or unsupported file +// --------------------------------------------------------------------------- +[Test] +title Thumbnail from missing or unsupported file +create ThumbnailManagerTest tn +tn CreateInstanceL +tn SetThumbnailEnumSizeL ECustomThumbnailSize +tn SetThumbnailSizeL KCustomSizeX KCustomSizeY + +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\does_not_exist.jpg +tn GetThumbnailL +allownextresult KErrNotFound +waittestclass tn +tn DeleteSourceInstance + +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\Unsupported.txt +tn GetThumbnailL +allownextresult KErrNotSupported +waittestclass tn +tn DeleteSourceInstance + +tn CreateSourceInstanceHandleL \data\ThumbnailManagerTest\Unsupported.txt +tn GetThumbnailL +allownextresult KErrNotSupported +waittestclass tn +tn DeleteSourceInstance + +tn CreateSourceInstanceBufferL \data\ThumbnailManagerTest\Unsupported.txt plain/text +tn GetThumbnailL +allownextresult KErrNotSupported +waittestclass tn +tn DeleteSourceInstance + +tn DeleteInstance +delete tn +pause KTestDelay +[Endtest] + +// --------------------------------------------------------------------------- +// Thumbnail from corrupt file +// --------------------------------------------------------------------------- +[Test] +title Thumbnail from corrupt file +create ThumbnailManagerTest tn +tn CreateInstanceL +tn SetThumbnailEnumSizeL ECustomThumbnailSize +tn SetThumbnailSizeL KCustomSizeX KCustomSizeY + +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\not_jpg.jpg +tn GetThumbnailL +allownextresult KErrNotFound +waittestclass tn +tn DeleteSourceInstance + +tn CreateSourceInstanceBufferL \data\ThumbnailManagerTest\not_jpg.jpg image/jpeg +tn GetThumbnailL +allownextresult KErrNotFound +waittestclass tn +tn DeleteSourceInstance + +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\not_3gp.3gp +tn GetThumbnailL +allownextresult KErrNotSupported +waittestclass tn +tn DeleteSourceInstance + +tn DeleteInstance +delete tn +pause KTestDelay +[Endtest] + + // --------------------------------------------------------------------------- // Custom size thumbs // --------------------------------------------------------------------------- @@ -1714,79 +1597,28 @@ // --------------------------------------------------------------------------- -// Thumbnail from missing or unsupported file +// Create thumbnail with id // --------------------------------------------------------------------------- [Test] -title Thumbnail from missing or unsupported file +title Create thumbnail with id create ThumbnailManagerTest tn tn CreateInstanceL -tn SetThumbnailEnumSizeL ECustomThumbnailSize -tn SetThumbnailSizeL KCustomSizeX KCustomSizeY +tn SetDisplayModeL EColor16M -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\does_not_exist.jpg +tn SetThumbnailEnumSizeL EImageGridThumbnailSize +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\RGB_VGA.jpg 99999 tn GetThumbnailL -allownextresult KErrNotFound waittestclass tn -tn DeleteSourceInstance +tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M +tn DeleteThumbnails -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\Unsupported.txt -tn GetThumbnailL -allownextresult KErrNotSupported -waittestclass tn tn DeleteSourceInstance - -tn CreateSourceInstanceHandleL \data\ThumbnailManagerTest\Unsupported.txt -tn GetThumbnailL -allownextresult KErrNotSupported -waittestclass tn -tn DeleteSourceInstance - -tn CreateSourceInstanceBufferL \data\ThumbnailManagerTest\Unsupported.txt plain/text -tn GetThumbnailL -allownextresult KErrNotSupported -waittestclass tn -tn DeleteSourceInstance - tn DeleteInstance delete tn pause KTestDelay [Endtest] // --------------------------------------------------------------------------- -// Thumbnail from corrupt file -// --------------------------------------------------------------------------- -[Test] -title Thumbnail from corrupt file -create ThumbnailManagerTest tn -tn CreateInstanceL -tn SetThumbnailEnumSizeL ECustomThumbnailSize -tn SetThumbnailSizeL KCustomSizeX KCustomSizeY - -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\not_jpg.jpg -tn GetThumbnailL -allownextresult KErrNotFound -waittestclass tn -tn DeleteSourceInstance - -tn CreateSourceInstanceBufferL \data\ThumbnailManagerTest\not_jpg.jpg image/jpeg -tn GetThumbnailL -allownextresult KErrNotFound -waittestclass tn -tn DeleteSourceInstance - -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\not_3gp.3gp -tn GetThumbnailL -allownextresult KErrNotSupported -waittestclass tn -tn DeleteSourceInstance - -tn DeleteInstance -delete tn -pause KTestDelay -[Endtest] - - -// --------------------------------------------------------------------------- // Set thumbnail from buffer // --------------------------------------------------------------------------- [Test] @@ -1844,47 +1676,72 @@ [Endtest] // --------------------------------------------------------------------------- -// Set thumbnail from path +// Import thumbnail // --------------------------------------------------------------------------- [Test] -title Set thumbnail from path +title Import thumbnail create ThumbnailManagerTest tn tn CreateInstanceL tn SetDisplayModeL EColor16M -// normal uri tn SetFlagsL EDefaultFlags -tn CreateSourceInstancePathTargetL \data\ThumbnailManagerTest\RGB_VGA.jpg \data\ThumbnailManagerTest\target.jpg image/jpeg 0 0 -tn SetThumbnailL - +tn SetThumbnailEnumSizeL EImageGridThumbnailSize +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\RGB_VGA.jpg +tn DeleteThumbnails +tn ImportThumbnailL \data\ThumbnailManagerTest\imported.jpg waittestclass tn +tn DeleteSourceInstance -tn DeleteSourceInstance -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\target.jpg -tn SetThumbnailEnumSizeL EImageGridThumbnailSize tn SetFlagsL EDoNotCreate +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\imported.jpg tn GetThumbnailL - waittestclass tn tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M tn DeleteThumbnails tn DeleteSourceInstance -// virtual uri tn SetFlagsL EDefaultFlags -tn CreateSourceInstancePathTargetL \data\ThumbnailManagerTest\RGB_VGA.jpg \data\ThumbnailManagerTest\target.vcf contact/x-vcard 0 1 -tn SetThumbnailL +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\RGB_400x300.bmp +tn DeleteThumbnails +tn ImportThumbnailL \data\ThumbnailManagerTest\imported.bmp +waittestclass tn +tn DeleteSourceInstance +tn SetFlagsL EDoNotCreate +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\imported.bmp +tn GetThumbnailL waittestclass tn +tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M +tn DeleteThumbnails +tn DeleteSourceInstance +tn SetFlagsL EDefaultFlags +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\WIDE_800x400.gif +tn DeleteThumbnails +tn ImportThumbnailL \data\ThumbnailManagerTest\imported.gif +waittestclass tn tn DeleteSourceInstance -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\target.vcf -tn SetThumbnailEnumSizeL EContactGridThumbnailSize + tn SetFlagsL EDoNotCreate +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\imported.gif tn GetThumbnailL - waittestclass tn -tn CheckThumbnailCenrepL EContactGridThumbnailSize EColor16M +tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M +tn DeleteThumbnails +tn DeleteSourceInstance + +tn SetFlagsL EDefaultFlags +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\video.3gp +tn DeleteThumbnails +tn ImportThumbnailL \data\ThumbnailManagerTest\imported.3gp +waittestclass tn +tn DeleteSourceInstance + +tn SetFlagsL EDoNotCreate +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\imported.3gp +tn GetThumbnailL +waittestclass tn +tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M tn DeleteThumbnails tn DeleteSourceInstance @@ -1933,7 +1790,19 @@ tn GetThumbnailL allownextresult KErrNotFound waittestclass tn +tn DeleteThumbnails +tn DeleteSourceInstance +// delete thumbnail which is not in database yet +tn SetThumbnailEnumSizeL EImageGridThumbnailSize +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\RGB_VGA.jpg +tn CreateThumbnails +tn DeleteThumbnails +tn DeleteSourceInstance + +tn SetThumbnailEnumSizeL EImageGridThumbnailSize +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\Videoclip.mp4 +tn CreateThumbnails tn DeleteThumbnails tn DeleteSourceInstance @@ -1942,116 +1811,11 @@ pause KTestDelay [Endtest] - // --------------------------------------------------------------------------- -// Run multiple tests +// Delete thumbnail when requests are pending // --------------------------------------------------------------------------- [Test] -title Run misc multiple tests -create ThumbnailManagerTest tn -tn CreateInstanceL -tn SetDisplayModeL EColor16M - -// using path -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\RGB_VGA.jpg -tn DeleteThumbnails -tn SetThumbnailEnumSizeL EImageGridThumbnailSize -tn GetThumbnailL -waittestclass tn -tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M -tn DeleteThumbnails -tn SetThumbnailEnumSizeL EImageFullScreenThumbnailSize -tn GetThumbnailL -waittestclass tn -tn CheckThumbnailCenrepL EImageFullScreenThumbnailSize EColor16M -tn DeleteThumbnails -tn SetThumbnailEnumSizeL ECustomThumbnailSize -tn SetThumbnailSizeL KCustomSizeX KCustomSizeY -tn GetThumbnailL -waittestclass tn -tn CheckThumbnailL KCustomSizeX KCustomSizeY EColor16M -tn DeleteThumbnails -tn DeleteSourceInstance - -// mp3 using handle -tn CreateSourceInstanceHandleL \data\ThumbnailManagerTest\mp3.mp3 -tn DeleteThumbnails -tn SetThumbnailEnumSizeL EAudioGridThumbnailSize -tn GetThumbnailL -waittestclass tn -tn CheckThumbnailCenrepL EAudioGridThumbnailSize EColor16M -tn DeleteThumbnails -tn SetThumbnailEnumSizeL EAudioFullScreenThumbnailSize -tn GetThumbnailL -waittestclass tn -tn CheckThumbnailCenrepL EAudioFullScreenThumbnailSize EColor16M -tn DeleteThumbnails -tn SetThumbnailEnumSizeL ECustomThumbnailSize -tn SetThumbnailSizeL KCustomSizeX KCustomSizeY -tn GetThumbnailL -waittestclass tn -tn CheckThumbnailL KCustomSizeX KCustomSizeY EColor16M -tn DeleteThumbnails -tn DeleteSourceInstance - -// corrupted file -tn SetThumbnailEnumSizeL ECustomThumbnailSize -tn SetThumbnailSizeL KCustomSizeX KCustomSizeY -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\not_jpg.jpg -tn GetThumbnailL -allownextresult KErrNotFound -waittestclass tn -tn DeleteSourceInstance -tn CreateSourceInstanceBufferL \data\ThumbnailManagerTest\not_jpg.jpg image/jpeg -tn GetThumbnailL -allownextresult KErrNotFound -waittestclass tn -tn DeleteSourceInstance -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\not_3gp.3gp -tn GetThumbnailL -allownextresult KErrNotSupported -waittestclass tn -tn DeleteSourceInstance - -// delete one thumbnail -tn SetThumbnailEnumSizeL EImageGridThumbnailSize -tn CreateSourceInstancePathL \data\ThumbnailManagerTest\RGB_VGA.jpg -tn DeleteThumbnails -tn GetThumbnailL -waittestclass tn -tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M -tn DeleteThumbnails -pause KTenSecondDelay -tn SetFlagsL EDoNotCreate -tn GetThumbnailL -allownextresult KErrNotFound -waittestclass tn - -// delete all persistent thumbnails created -tn SetFlagsL EDefaultFlags -tn CreateThumbnails -waittestclass tn -pause KTenSecondDelay -tn DeleteThumbnails -pause KTenSecondDelay -tn SetFlagsL EDoNotCreate -tn GetThumbnailL -allownextresult KErrNotFound -waittestclass tn -tn DeleteThumbnails -tn DeleteSourceInstance - -tn DeleteInstance -delete tn -pause KTestDelay -[Endtest] - - -// --------------------------------------------------------------------------- -// Delete engine when requests are pending -// --------------------------------------------------------------------------- -[Test] -title Delete engine when requests are pending +title Delete thumbnail when requests are pending create ThumbnailManagerTest tn tn CreateInstanceL @@ -2266,3 +2030,319 @@ pause KTestDelay [Endtest] +// --------------------------------------------------------------------------- +// Create thumbnails using CFbsBitmap +// --------------------------------------------------------------------------- +[Test] +title Create thumbnails using CFbsBitmap +create ThumbnailManagerTest tn +tn CreateInstanceL +tn SetDisplayModeL EColor16M + +tn SetFlagsL EDefaultFlags +tn CreateSourceInstanceBitmapL \data\ThumbnailManagerTest\TestMBM.mbm \data\ThumbnailManagerTest\camera.jpg +tn DeleteThumbnails +tn CreateThumbnails +waittestclass tn + +pause KTenSecondDelay + +tn DeleteSourceInstance + +tn SetThumbnailEnumSizeL EImageGridThumbnailSize +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\camera.jpg +tn SetFlagsL EDoNotCreate +tn GetThumbnailL +waittestclass tn +tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M +tn SetThumbnailEnumSizeL EImageFullScreenThumbnailSize +tn GetThumbnailL +waittestclass tn +tn CheckThumbnailCenrepL EImageFullScreenThumbnailSize EColor16M +tn DeleteThumbnails +tn DeleteSourceInstance + +tn DeleteInstance +delete tn +pause KTestDelay +[Endtest] + +// --------------------------------------------------------------------------- +// Load MP3 thumbnail with PNG album art +// --------------------------------------------------------------------------- +[Test] +title Create MP3 PNG album art thumbnail +create ThumbnailManagerTest tn +tn CreateInstanceL +tn SetDisplayModeL EColor16M + +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\mp3_png.mp3 +tn DeleteThumbnails +tn SetThumbnailEnumSizeL EAudioFullScreenThumbnailSize +tn GetThumbnailL +waittestclass tn +tn CheckThumbnailCenrepL EAudioFullScreenThumbnailSize EColor16M +tn DeleteThumbnails +tn DeleteSourceInstance + +tn DeleteInstance +delete tn +pause KTestDelay +[Endtest] + + +// --------------------------------------------------------------------------- +// Test WMA png & empty album arts +// --------------------------------------------------------------------------- +[Test] +title Test WMA png & empty album arts +create ThumbnailManagerTest tn +tn CreateInstanceL +tn SetDisplayModeL EColor16M + +// try to create thumbnail from PNG +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\wma_png.wma +tn DeleteThumbnails +tn SetThumbnailEnumSizeL EAudioFullScreenThumbnailSize +tn GetThumbnailL +allownextresult KErrNotFound +waittestclass tn +tn DeleteThumbnails +tn DeleteSourceInstance + +// try to create thumbnail without album art +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\wma_empty.wma +tn DeleteThumbnails +tn SetThumbnailEnumSizeL EAudioFullScreenThumbnailSize +tn GetThumbnailL +allownextresult KErrNotFound +waittestclass tn +tn DeleteThumbnails +tn DeleteSourceInstance + +tn DeleteInstance +delete tn +pause KTestDelay +[Endtest] + +// --------------------------------------------------------------------------- +// Create thumbnail preview with EXIF +// --------------------------------------------------------------------------- +[Test] +title Create thumbnail preview with EXIF +create ThumbnailManagerTest tn +tn CreateInstanceL +tn SetDisplayModeL EColor16M + +// jpg with exif +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\RGB_VGA.jpg +tn DeleteThumbnails +tn SetThumbnailEnumSizeL EImageGridThumbnailSize +tn SetQualityPreferenceL EOptimizeForQualityWithPreview +tn GetThumbnailL +waittestclass tn +tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M +tn DeleteThumbnails +tn DeleteSourceInstance + +// png with exif +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\exif.png +tn DeleteThumbnails +tn SetThumbnailEnumSizeL EImageGridThumbnailSize +tn SetQualityPreferenceL EOptimizeForQualityWithPreview +tn GetThumbnailL +waittestclass tn +tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M +tn DeleteThumbnails +tn DeleteSourceInstance + +// no exif +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\no_exif.jpg +tn DeleteThumbnails +tn SetThumbnailEnumSizeL EImageGridThumbnailSize +tn SetQualityPreferenceL EOptimizeForQualityWithPreview +tn GetThumbnailL +waittestclass tn +tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M +tn DeleteThumbnails +tn DeleteSourceInstance + +tn DeleteInstance +delete tn +pause KTestDelay +[Endtest] + +// --------------------------------------------------------------------------- +// Create thumbnails by Url +// --------------------------------------------------------------------------- +[Test] +title Create thumbnails by Url +create ThumbnailManagerTest tn +tn CreateInstanceL +tn SetDisplayModeL EColor16M + +// try to create thumbnail from image +tn CreateThumbnailsByUrlL \data\ThumbnailManagerTest\RGB_VGA.jpg +waittestclass tn +tn DeleteThumbnails +tn DeleteSourceInstance + +// try to create thumbnail from music +tn CreateThumbnailsByUrlL \data\ThumbnailManagerTest\mp3_png.mp3 +waittestclass tn +tn DeleteThumbnails +tn DeleteSourceInstance + +// try to create thumbnail from video +tn CreateThumbnailsByUrlL \data\ThumbnailManagerTest\Videoclip.mp4 +waittestclass tn +tn DeleteThumbnails +tn DeleteSourceInstance + +tn DeleteInstance +delete tn +pause KTestDelay +[Endtest] + +// --------------------------------------------------------------------------- +// Get thumbnails +// --------------------------------------------------------------------------- +[Test] +title Get thumbnails +create ThumbnailManagerTest tn +tn CreateInstanceL +tn SetDisplayModeL EColor16M + +// Get thumbnail with url +tn SetThumbnailEnumSizeL EImageGridThumbnailSize +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\RGB_VGA.jpg +tn DeleteThumbnails +tn CreateThumbnails +waittestclass tn + +pause KTenSecondDelay + +tn GetThumbnailL +waittestclass tn +tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M +tn DeleteThumbnails +tn DeleteSourceInstance + +// Get thumbnail with EDoNotCreate flag on +tn SetThumbnailEnumSizeL EImageGridThumbnailSize +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\RGB_VGA.jpg +tn SetFlagsL EDoNotCreate +tn DeleteThumbnails +tn GetThumbnailL +allownextresult KErrNotFound +waittestclass tn +tn DeleteThumbnails + +tn DeleteSourceInstance +tn DeleteInstance +delete tn +pause KTestDelay +[Endtest] + +// --------------------------------------------------------------------------- +// Run multiple tests +// --------------------------------------------------------------------------- +[Test] +title Run multiple tests +create ThumbnailManagerTest tn +tn CreateInstanceL +tn SetDisplayModeL EColor16M + +// using path +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\RGB_VGA.jpg +tn DeleteThumbnails +tn SetThumbnailEnumSizeL EImageGridThumbnailSize +tn GetThumbnailL +waittestclass tn +tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M +tn DeleteThumbnails +tn SetThumbnailEnumSizeL EImageFullScreenThumbnailSize +tn GetThumbnailL +waittestclass tn +tn CheckThumbnailCenrepL EImageFullScreenThumbnailSize EColor16M +tn DeleteThumbnails +tn SetThumbnailEnumSizeL ECustomThumbnailSize +tn SetThumbnailSizeL KCustomSizeX KCustomSizeY +tn GetThumbnailL +waittestclass tn +tn CheckThumbnailL KCustomSizeX KCustomSizeY EColor16M +tn DeleteThumbnails +tn DeleteSourceInstance + +// mp3 using handle +tn CreateSourceInstanceHandleL \data\ThumbnailManagerTest\mp3.mp3 +tn DeleteThumbnails +tn SetThumbnailEnumSizeL EAudioGridThumbnailSize +tn GetThumbnailL +waittestclass tn +tn CheckThumbnailCenrepL EAudioGridThumbnailSize EColor16M +tn DeleteThumbnails +tn SetThumbnailEnumSizeL EAudioFullScreenThumbnailSize +tn GetThumbnailL +waittestclass tn +tn CheckThumbnailCenrepL EAudioFullScreenThumbnailSize EColor16M +tn DeleteThumbnails +tn SetThumbnailEnumSizeL ECustomThumbnailSize +tn SetThumbnailSizeL KCustomSizeX KCustomSizeY +tn GetThumbnailL +waittestclass tn +tn CheckThumbnailL KCustomSizeX KCustomSizeY EColor16M +tn DeleteThumbnails +tn DeleteSourceInstance + +// corrupted file +tn SetThumbnailEnumSizeL ECustomThumbnailSize +tn SetThumbnailSizeL KCustomSizeX KCustomSizeY +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\not_jpg.jpg +tn GetThumbnailL +allownextresult KErrNotFound +waittestclass tn +tn DeleteSourceInstance +tn CreateSourceInstanceBufferL \data\ThumbnailManagerTest\not_jpg.jpg image/jpeg +tn GetThumbnailL +allownextresult KErrNotFound +waittestclass tn +tn DeleteSourceInstance +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\not_3gp.3gp +tn GetThumbnailL +allownextresult KErrNotSupported +waittestclass tn +tn DeleteSourceInstance + +// delete one thumbnail +tn SetThumbnailEnumSizeL EImageGridThumbnailSize +tn CreateSourceInstancePathL \data\ThumbnailManagerTest\RGB_VGA.jpg +tn DeleteThumbnails +tn GetThumbnailL +waittestclass tn +tn CheckThumbnailCenrepL EImageGridThumbnailSize EColor16M +tn DeleteThumbnails +pause KTenSecondDelay +tn SetFlagsL EDoNotCreate +tn GetThumbnailL +allownextresult KErrNotFound +waittestclass tn + +// delete all persistent thumbnails created +tn SetFlagsL EDefaultFlags +tn CreateThumbnails +waittestclass tn +pause KTenSecondDelay +tn DeleteThumbnails +pause KTenSecondDelay +tn SetFlagsL EDoNotCreate +tn GetThumbnailL +allownextresult KErrNotFound +waittestclass tn +tn DeleteThumbnails +tn DeleteSourceInstance + +tn DeleteInstance +delete tn +pause KTestDelay +[Endtest] \ No newline at end of file diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandling_plat/thumbnailmanager_api/tsrc/group/ThumbnailManagerTest.pkg --- a/imagehandling_plat/thumbnailmanager_api/tsrc/group/ThumbnailManagerTest.pkg Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandling_plat/thumbnailmanager_api/tsrc/group/ThumbnailManagerTest.pkg Wed Oct 13 14:53:56 2010 +0300 @@ -46,9 +46,4 @@ "..\data\mmc\ThumbnailManagerTest\TestMBM.mbm" - "e:\testing\data\ThumbnailManagerTest\TestMBM.mbm" "..\data\mmc\ThumbnailManagerTest\mp3.mp3" - "e:\testing\data\ThumbnailManagerTest\mp3.mp3" "..\data\mmc\ThumbnailManagerTest\camera.jpg" - "e:\testing\data\ThumbnailManagerTest\camera.jpg" -"..\data\mmc\ThumbnailManagerTest\mp3_png.mp3" - "e:\testing\data\ThumbnailManagerTest\mp3_png.mp3" -"..\data\mmc\ThumbnailManagerTest\no_exif.jpg" - "e:\testing\data\ThumbnailManagerTest\no_exif.jpg" -"..\data\mmc\ThumbnailManagerTest\wma.wma" - "e:\testing\data\ThumbnailManagerTest\wma.wma" -"..\data\mmc\ThumbnailManagerTest\wma_empty.wma" - "e:\testing\data\ThumbnailManagerTest\wma_empty.wma" -"..\data\mmc\ThumbnailManagerTest\wma_png.wma" - "e:\testing\data\ThumbnailManagerTest\wma_png.wma" -"..\data\mmc\ThumbnailManagerTest\exif.jpg" - "e:\testing\data\ThumbnailManagerTest\exif.jpg" + diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandling_plat/thumbnailmanager_api/tsrc/inc/ThumbnailManagerTest.h --- a/imagehandling_plat/thumbnailmanager_api/tsrc/inc/ThumbnailManagerTest.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandling_plat/thumbnailmanager_api/tsrc/inc/ThumbnailManagerTest.h Wed Oct 13 14:53:56 2010 +0300 @@ -117,7 +117,6 @@ virtual TInt DeleteInstance( CStifItemParser& aItem ); virtual TInt CreateSourceInstancePathL( CStifItemParser& aItem ); - virtual TInt CreateSourceInstancePathTargetL( CStifItemParser& aItem ); virtual TInt CreateSourceInstanceHandleL( CStifItemParser& aItem ); virtual TInt CreateSourceInstanceBufferL( CStifItemParser& aItem ); virtual TInt CreateSourceInstanceBitmapL( CStifItemParser& aItem ); diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandling_plat/thumbnailmanager_api/tsrc/inc/thumbnailcenrep.h --- a/imagehandling_plat/thumbnailmanager_api/tsrc/inc/thumbnailcenrep.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandling_plat/thumbnailmanager_api/tsrc/inc/thumbnailcenrep.h Wed Oct 13 14:53:56 2010 +0300 @@ -142,7 +142,7 @@ }; public: - enum { EUnknownSourceType, EImage, EVideo, EAudio, EContact }; + enum { EUnknownSourceType, EImage, EVideo, EAudio }; enum { EUnknownSizeType, EGrid, EList, EFullscreen }; public: @@ -205,10 +205,7 @@ TBool iVideoFullscreen; TBool iAudioGrid; TBool iAudioList; - TBool iAudioFullscreen; - TBool iContactGrid; - TBool iContactList; - TBool iContactFullscreen; + TBool iAudioFullscreen; }; #endif // THUMBNAILCENREP_H diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandling_plat/thumbnailmanager_api/tsrc/src/ThumbnailManagerTestBlocks.cpp --- a/imagehandling_plat/thumbnailmanager_api/tsrc/src/ThumbnailManagerTestBlocks.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandling_plat/thumbnailmanager_api/tsrc/src/ThumbnailManagerTestBlocks.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -67,7 +67,6 @@ ENTRY( "CheckThumbnailSizeL", CThumbnailManagerTest::CheckThumbnailSizeL ), ENTRY( "SetThumbnailEnumSizeL", CThumbnailManagerTest::SetThumbnailEnumSizeL ), ENTRY( "CreateSourceInstancePathL", CThumbnailManagerTest::CreateSourceInstancePathL ), - ENTRY( "CreateSourceInstancePathTargetL", CThumbnailManagerTest::CreateSourceInstancePathTargetL ), ENTRY( "CreateSourceInstanceHandleL", CThumbnailManagerTest::CreateSourceInstanceHandleL ), ENTRY( "CreateSourceInstanceBufferL", CThumbnailManagerTest::CreateSourceInstanceBufferL ), ENTRY( "CreateSourceInstanceBitmapL", CThumbnailManagerTest::CreateSourceInstanceBitmapL ), @@ -301,53 +300,6 @@ return KErrNone; } -TInt CThumbnailManagerTest::CreateSourceInstancePathTargetL( CStifItemParser& aItem ) - { - _LIT( KPanicTxt, "CreateSrcPathTarget" ); - __ASSERT_ALWAYS( !iObjectSource, User::Panic( KPanicTxt, 0 )); - - TPtrC path; - User::LeaveIfError( aItem.GetNextString( path )); - - TPtrC target; - User::LeaveIfError( aItem.GetNextString( target )); - - TPtrC mimeType; - User::LeaveIfError( aItem.GetNextString( mimeType )); - - TInt virtual1 = 0; - aItem.GetNextInt( virtual1 ); - - TInt virtual2 = 0; - aItem.GetNextInt( virtual2 ); - - TFileName filePath( iDataPath ); - filePath.Append( path ); - filePath.ZeroTerminate(); - - if (virtual1) - { - filePath.Delete(2,1); - } - - TFileName targetPath( iDataPath ); - targetPath.Append( target ); - targetPath.ZeroTerminate(); - - if (virtual2) - { - targetPath.Delete(2,1); - } - - iLog->Log( _L( "CreateSourceInstancePathTargetL - path = %S, target = %S" ), &filePath ); - - delete iObjectSource; - iObjectSource = NULL; - - iObjectSource = CThumbnailObjectSource::NewL( filePath, targetPath, mimeType ); - return KErrNone; - } - TInt CThumbnailManagerTest::CreateSourceInstanceHandleL( CStifItemParser& aItem ) { _LIT( KPanicTxt, "CreateSrcHandle" ); @@ -821,7 +773,48 @@ return KErrNone; } + +/* +TInt CThumbnailManagerTest::GetThumbnailsByUrlL( CStifItemParser& aItem ) + { + _LIT( KPanicTxt, "CreateSrcPath" ); + __ASSERT_ALWAYS( !iObjectSource, User::Panic( KPanicTxt, 0 )); + + TPtrC path; + User::LeaveIfError( aItem.GetNextString( path )); + + TInt id = 0; + aItem.GetNextInt( id ); + TFileName filePath( iDataPath ); + filePath.Append( path ); + filePath.ZeroTerminate(); + + iLog->Log( _L( "CreateSourceInstancePathL - path = %S" ), &filePath ); + + delete iObjectSource; + iObjectSource = NULL; + + iObjectSource = CThumbnailObjectSource::NewL( filePath, id ); + + id = iEngine->GetThumbnailL( *iObjectSource ); + if (id < 0) + { + iLog->Log( _L( "GetThumbnails - error %d" ), id ); + return id; + } + else + { + iPreviousRequestId = id; + iLog->Log( _L( "GetThumbnails - request id %d" ), iPreviousRequestId ); + } + + iCreateThumbnails = ETrue; + + return KErrNone; + } + +*/ TInt CThumbnailManagerTest::CreateThumbnails( CStifItemParser& aItem ) { @@ -851,6 +844,7 @@ return KErrNone; } + TInt CThumbnailManagerTest::UpdatePathL( CStifItemParser& aItem ) { _LIT( KPanicTxt, "UpdatePath" ); diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandling_plat/thumbnailmanager_api/tsrc/src/thumbnailcenrep.cpp --- a/imagehandling_plat/thumbnailmanager_api/tsrc/src/thumbnailcenrep.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandling_plat/thumbnailmanager_api/tsrc/src/thumbnailcenrep.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -42,12 +42,6 @@ const TUint32 KSizeAudioListHeight = 0x15; const TUint32 KSizeAudioFullscreenWidth = 0x16; const TUint32 KSizeAudioFullscreenHeight = 0x17; -const TUint32 KSizeContactListWidth = 0x18; -const TUint32 KSizeContactListHeight = 0x19; -const TUint32 KSizeContactGridWidth = 0x20; -const TUint32 KSizeContactGridHeight = 0x21; -const TUint32 KSizeContactFullscreenWidth = 0x22; -const TUint32 KSizeContactFullscreenHeight = 0x23; const TUint32 KAutoCreateImageGrid = 0x100; const TUint32 KAutoCreateImageList = 0x101; @@ -58,9 +52,6 @@ const TUint32 KAutoCreateAudioGrid = 0x106; const TUint32 KAutoCreateAudioList = 0x107; const TUint32 KAutoCreateAudioFullscreen = 0x108; -const TUint32 KAutoCreateContactGrid = 0x109; -const TUint32 KAutoCreateContactList = 0x110; -const TUint32 KAutoCreateContactFullscreen = 0x111; // --------------------------------------------------------------------------- @@ -103,11 +94,6 @@ case EAudioFullScreenThumbnailSize: iSourceType = EAudio; break; - case EContactGridThumbnailSize: - case EContactListThumbnailSize: - case EContactFullScreenThumbnailSize: - iSourceType = EContact; - break; default: iSourceType = EUnknownSourceType; } @@ -121,8 +107,7 @@ TThumbnailAutoCreate::TThumbnailAutoCreate() : iImageGrid(EFalse), iImageList(EFalse), iImageFullscreen(EFalse), iVideoGrid(EFalse), iVideoList(EFalse), iVideoFullscreen(EFalse), - iAudioGrid(EFalse), iAudioList(EFalse), iAudioFullscreen(EFalse), - iContactGrid(EFalse), iContactList(EFalse), iContactFullscreen(EFalse) + iAudioGrid(EFalse), iAudioList(EFalse), iAudioFullscreen(EFalse) { // No implementation required } @@ -245,27 +230,6 @@ iPersistentSizes.AppendL( TThumbnailPersistentSize( EAudioFullScreenThumbnailSize, TSize( xSize, ySize ), flags, static_cast (raw_mode), format, autoCreate )); - - User::LeaveIfError( iRepository->Get( KSizeContactGridWidth, xSize )); - User::LeaveIfError( iRepository->Get( KSizeContactGridHeight, ySize )); - User::LeaveIfError( iRepository->Get( KAutoCreateContactGrid, autoCreate )); - - iPersistentSizes.AppendL( TThumbnailPersistentSize( EContactGridThumbnailSize, TSize( xSize, ySize ), - KGridAndListThumbnailCropped, static_cast (raw_mode), format, autoCreate )); - - User::LeaveIfError( iRepository->Get( KSizeContactListWidth, xSize )); - User::LeaveIfError( iRepository->Get( KSizeContactListHeight, ySize )); - User::LeaveIfError( iRepository->Get( KAutoCreateContactList, autoCreate )); - - iPersistentSizes.AppendL( TThumbnailPersistentSize( EContactListThumbnailSize, TSize( xSize, ySize ), - KGridAndListThumbnailCropped, static_cast (raw_mode), format, autoCreate )); - - User::LeaveIfError( iRepository->Get( KSizeContactFullscreenWidth, xSize )); - User::LeaveIfError( iRepository->Get( KSizeContactFullscreenHeight, ySize )); - User::LeaveIfError( iRepository->Get( KAutoCreateContactFullscreen, autoCreate )); - - iPersistentSizes.AppendL( TThumbnailPersistentSize( EContactFullScreenThumbnailSize, TSize( xSize, ySize ), - flags, static_cast (raw_mode), format, autoCreate )); iAutoCreate = new (ELeave) TThumbnailAutoCreate(); @@ -278,9 +242,6 @@ User::LeaveIfError( iRepository->Get( KAutoCreateAudioGrid, iAutoCreate->iAudioGrid )); User::LeaveIfError( iRepository->Get( KAutoCreateAudioList, iAutoCreate->iAudioList )); User::LeaveIfError( iRepository->Get( KAutoCreateAudioFullscreen, iAutoCreate->iAudioFullscreen )); - User::LeaveIfError( iRepository->Get( KAutoCreateContactGrid, iAutoCreate->iContactGrid )); - User::LeaveIfError( iRepository->Get( KAutoCreateContactList, iAutoCreate->iContactList )); - User::LeaveIfError( iRepository->Get( KAutoCreateContactFullscreen, iAutoCreate->iContactFullscreen )); } // --------------------------------------------------------------------------- diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlinglib/Src/IHLDebugPrint.h --- a/imagehandlinglib/Src/IHLDebugPrint.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlinglib/Src/IHLDebugPrint.h Wed Oct 13 14:53:56 2010 +0300 @@ -59,7 +59,7 @@ /** * Macro for defining debug-only literal strings (empty release version) */ - #define IHL_DEBUG_STRING(name, s) const TIHLEmptyDebugString name = {} + #define IHL_DEBUG_STRING(name, s) const TIHLEmptyDebugString name /** * Output to debugger output (empty) diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/conf/102830B0.txt Binary file imagehandlingutilities/thumbnailmanager/conf/102830B0.txt has changed diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/conf/thumbnailmanager.confml Binary file imagehandlingutilities/thumbnailmanager/conf/thumbnailmanager.confml has changed diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/conf/thumbnailmanager_102830B0.crml Binary file imagehandlingutilities/thumbnailmanager/conf/thumbnailmanager_102830B0.crml has changed diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/inc/thumbnailmanagerconstants.h --- a/imagehandlingutilities/thumbnailmanager/inc/thumbnailmanagerconstants.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/inc/thumbnailmanagerconstants.h Wed Oct 13 14:53:56 2010 +0300 @@ -149,52 +149,43 @@ const TInt KImeiBufferSize = CTelephony::KPhoneSerialNumberSize; const TInt KCheckValue = 123456; -_LIT8( KJpegMime, "image/jpeg" ); _LIT( KJpegExt, ".jpeg" ); -_LIT8( KJpeg2000Mime, "image/jp2" ); _LIT( KJpeg2000Ext, ".jp2" ); -_LIT8( KJpgMime, "image/jpeg" ); _LIT( KJpgExt, ".jpg" ); -_LIT8( KGifMime, "image/gif" ); _LIT( KGifExt, ".gif" ); -_LIT8( KPngMime, "image/png" ); _LIT( KPngExt, ".png" ); -_LIT8( KSvgMime, "image/svg+xml" ); _LIT( KSvgExt, ".svg" ); -_LIT8( KMpgMime1, "video/mpeg"); _LIT( KMpgExt1, ".mpg" ); -_LIT8( KMpeg4Mime, "video/mpeg4" ); _LIT( KMpeg4Ext,".mpeg4" ); -_LIT8( KMp4Mime, "video/mp4" ); _LIT( KMp4Ext, ".mp4" ); _LIT( KM4vExt, ".m4v" ); -_LIT8( KAviMime, "video/x-msvideo" ); _LIT( KAviExt, ".avi" ); -_LIT8( KMp3Mime, "audio/mpeg" ); _LIT( KMp3Ext, ".mp3" ); -_LIT8( KNonEmbeddArtMime, "audio/mpeg" ); _LIT( KNonEmbeddArtExt, ".alb" ); -_LIT8( KM4aMime, "audio/mp4" ); _LIT( KM4aExt, ".m4a" ); -_LIT8( KAacMime, "audio/aac" ); _LIT( KAacExt, ".aac" ); -_LIT8( KWmaMime, "audio/x-ms-wma" ); _LIT( KWmaExt, ".wma" ); -_LIT8( KBmpMime, "image/bmp" ); _LIT( KBmpExt, ".bmp" ); -_LIT8( KAudio3gppMime, "audio/3gpp" ); -_LIT8( KVideo3gppMime, "video/3gpp" ); _LIT( K3gpExt, ".3gp" ); _LIT( K3gppExt, ".3gpp" ); -_LIT8( KAudioAmrMime, "audio/AMR" ); _LIT( KAmrExt, ".amr" ); -_LIT8( KVideoWmvMime, "video/x-ms-wmv" ); _LIT( KWmvExt, ".wmv" ); -_LIT8( KRealAudioMime, "audio/vnd.rn-realaudio" ); _LIT( KRealAudioExt, ".ra" ); -_LIT8( KPmRealAudioPluginMime, "audio/x-pn-realaudio-plugin" ); _LIT( KPmRealAudioPluginExt, ".rpm" ); -_LIT8( KPmRealVideoPluginMime, "video/x-pn-realvideo" ); _LIT( KPmRealVideoPluginExt, ".rm" ); -_LIT8( KPmRealVbVideoPluginMime, "video/x-pn-realvideo" ); _LIT( KPmRealVbVideoPluginExt, ".rmvb" ); -_LIT8( KPmRealAudioMime, "audio/x-pn-realaudio" ); _LIT( KPmRealAudioExt, ".ra" ); -_LIT8( KRealVideoMime, "video/vnd.rn-realvideo" ); _LIT( KRealVideoExt, ".rv" ); -_LIT8( KFlashVideoMime, "video/x-flv" ); _LIT( KFlashVideoExt, ".flv" ); -_LIT8( KMatroskaVideoMime, "video/x-matroska" ); _LIT( KMatroskaVideoExt, ".mkv" ); -_LIT8( KContactMime, "contact/x-vcard" ); _LIT( KContactExt, ".vcf" ); - -_LIT( KNonEmbeddedArtExt, ".alb" ); - -_LIT8( KAlbumArtMime, "audio/albumart" ); _LIT( KAlbumArtExt, ".maa" ); - +_LIT8( KJpegMime, "image/jpeg" ); _LIT( KJpegExt, ".jpeg" ); +_LIT8( KJpeg2000Mime, "image/jp2" ); _LIT( KJpeg2000Ext, ".jp2" ); +_LIT8( KJpgMime, "image/jpeg" ); _LIT( KJpgExt, ".jpg" ); +_LIT8( KGifMime, "image/gif" ); _LIT( KGifExt, ".gif" ); +_LIT8( KPngMime, "image/png" ); _LIT( KPngExt, ".png" ); +_LIT8( KSvgMime, "image/svg+xml" ); _LIT( KSvgExt, ".svg" ); +_LIT8( KMpgMime1, "video/mpeg"); _LIT( KMpgExt1, ".mpg" ); +_LIT8( KMpeg4Mime, "video/mpeg4" ); _LIT( KMpeg4Ext,".mpeg4" ); +_LIT8( KMp4Mime, "video/mp4" ); _LIT( KMp4Ext, ".mp4" ); +_LIT8( KAviMime, "video/x-msvideo" ); _LIT( KAviExt, ".avi" ); +_LIT8( KMp3Mime, "audio/mpeg" ); _LIT( KMp3Ext, ".mp3" ); +_LIT8( KNonEmbeddArtMime, "audio/mpeg" ); _LIT( KNonEmbeddArtExt, ".alb" ); +_LIT8( KM4aMime, "audio/mp4" ); _LIT( KM4aExt, ".m4a" ); +_LIT8( KAacMime, "audio/aac" ); _LIT( KAacExt, ".aac" ); +_LIT8( KWmaMime, "audio/x-ms-wma" ); _LIT( KWmaExt, ".wma" ); +_LIT8( KBmpMime, "image/bmp" ); _LIT( KBmpExt, ".bmp" ); +_LIT8( KAudio3gppMime, "audio/3gpp" ); +_LIT8( KVideo3gppMime, "video/3gpp" ); _LIT( K3gpExt, ".3gp" ); _LIT( K3gppExt, ".3gpp" ); +_LIT8( KAudioAmrMime, "audio/AMR" ); _LIT( KAmrExt, ".amr" ); +_LIT8( KVideoWmvMime, "video/x-ms-wmv" ); _LIT( KWmvExt, ".wmv" ); +_LIT8( KRealAudioMime, "audio/vnd.rn-realaudio" ); _LIT( KRealAudioExt, ".ra" ); +_LIT8( KPmRealAudioPluginMime, "audio/x-pn-realaudio-plugin" ); _LIT( KPmRealAudioPluginExt, ".rpm" ); +_LIT8( KPmRealVideoPluginMime, "video/x-pn-realvideo" ); _LIT( KPmRealVideoPluginExt, ".rm" ); +_LIT8( KPmRealVbVideoPluginMime, "video/x-pn-realvideo" ); _LIT( KPmRealVbVideoPluginExt, ".rmvb" ); +_LIT8( KPmRealAudioMime, "audio/x-pn-realaudio" ); _LIT( KPmRealAudioExt, ".ra" ); +_LIT8( KRealVideoMime, "video/vnd.rn-realvideo" ); _LIT( KRealVideoExt, ".rv" ); +_LIT8( KFlashVideoMime, "video/x-flv" ); _LIT( KFlashVideoExt, ".flv" ); +_LIT8( KMatroskaVideoMime, "video/x-matroska" ); _LIT( KMatroskaVideoExt, ".mkv" ); _LIT( KImageMime, "image/*" ); _LIT( KVideoMime, "video/*" ); _LIT( KAudioMime, "audio/*" ); +_LIT( KM4vExt, ".m4v" ); +_LIT( KNonEmbeddedArtExt, ".alb" ); _LIT( KPrivateFolder, ":\\private\\"); _LIT( KSysFolder, ":\\sys\\"); -_LIT( KDrv, ":"); -_LIT( KBackSlash, "\\"); - -const TInt KExtLength = 4; - /** * Control flags set by the server for handling specific situations * (for example for distinguishing between preview thumbnails and @@ -325,16 +316,6 @@ * Overwrite old thumbs (SetThumbnailL) */ TBool iOverwrite; - - /** - * URI is virtual - */ - TBool iVirtualUri; - - /** - * Target differs from source - */ - TBool iImport; }; diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/inc/thumbnailmanagerprivatecrkeys.h --- a/imagehandlingutilities/thumbnailmanager/inc/thumbnailmanagerprivatecrkeys.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/inc/thumbnailmanagerprivatecrkeys.h Wed Oct 13 14:53:56 2010 +0300 @@ -44,12 +44,6 @@ const TUint32 KSizeAudioListHeight = 0x15; const TUint32 KSizeAudioFullscreenWidth = 0x16; const TUint32 KSizeAudioFullscreenHeight = 0x17; -const TUint32 KSizeContactListWidth = 0x18; -const TUint32 KSizeContactListHeight = 0x19; -const TUint32 KSizeContactGridWidth = 0x20; -const TUint32 KSizeContactGridHeight = 0x21; -const TUint32 KSizeContactFullscreenWidth = 0x22; -const TUint32 KSizeContactFullscreenHeight = 0x23; const TUint32 KAutoCreateImageGrid = 0x100; const TUint32 KAutoCreateImageList = 0x101; @@ -60,9 +54,6 @@ const TUint32 KAutoCreateAudioGrid = 0x106; const TUint32 KAutoCreateAudioList = 0x107; const TUint32 KAutoCreateAudioFullscreen = 0x108; -const TUint32 KAutoCreateContactGrid = 0x109; -const TUint32 KAutoCreateContactList = 0x110; -const TUint32 KAutoCreateContactFullscreen = 0x111; const TUint32 KColorDepthGrid = 0x200; const TUint32 KColorDepthList = 0x201; diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailaudioprovider.cpp --- a/imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailaudioprovider.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailaudioprovider.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -69,7 +69,6 @@ { TN_DEBUG1( "CThumbnailAudioProvider::~CThumbnailAudioProvider()" ); delete iImageDecoderv3; - iImageDecoderv3 = NULL; REComSession::DestroyedImplementation( iDtor_ID_Key ); } @@ -153,7 +152,6 @@ { TN_DEBUG1( "CThumbnailAudioProvider::GetThumbnailL() - buffer no mime" ); __ASSERT_DEBUG((EFalse), User::Panic(_L("CThumbnailAudioProvider::GetThumbnailL"), KErrNotSupported)); - User::Leave( KErrNotSupported ); } // --------------------------------------------------------------------------- diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailimagedecoderv3.cpp --- a/imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailimagedecoderv3.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailimagedecoderv3.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -216,7 +216,7 @@ iDecoder = NULL; CImageDecoder::TOptions options = ( CImageDecoder::TOptions )( - CImageDecoder::EOptionNoDither ); + CImageDecoder::EOptionNoDither | CImageDecoder::EPreferFastDecode | CImageDecoder::EOptionAlwaysThread ); TRAPD( decErr, iDecoder = CExtJpegDecoder::DataNewL( CExtJpegDecoder::EHwImplementation, iFs, *iBuffer, options )); diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoder.cpp --- a/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoder.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoder.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -377,12 +377,12 @@ if ( aFlags == CThumbnailManager::EOptimizeForQuality ) { options = ( CImageDecoder::TOptions )( CImageDecoder - ::EOptionNoDither ); + ::EOptionNoDither | CImageDecoder::EOptionAlwaysThread ); } else { options = ( CImageDecoder::TOptions )( CImageDecoder - ::EOptionNoDither | CImageDecoder::EPreferFastDecode ); + ::EOptionNoDither | CImageDecoder::EPreferFastDecode | CImageDecoder::EOptionAlwaysThread ); } if ( IsSvg()) @@ -576,12 +576,12 @@ CImageDecoder::TOptions options; if ( aFlags == CThumbnailManager::EOptimizeForQuality ) { - options = ( CImageDecoder::TOptions )( CImageDecoder::EOptionNoDither ); + options = ( CImageDecoder::TOptions )( CImageDecoder::EOptionNoDither | CImageDecoder::EOptionAlwaysThread ); } else { options = ( CImageDecoder::TOptions )( CImageDecoder::EOptionNoDither | - CImageDecoder::EPreferFastDecode ); + CImageDecoder::EPreferFastDecode | CImageDecoder::EOptionAlwaysThread ); } TRAPD( err, iDecoder = CExtJpegDecoder::DataNewL( iFs, * iExifThumbImage, options )); diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoderv2.cpp --- a/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoderv2.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoderv2.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -170,7 +170,7 @@ iDecoder = NULL; CImageDecoder::TOptions options = ( CImageDecoder::TOptions )( - CImageDecoder::EOptionNoDither ); + CImageDecoder::EOptionNoDither | CImageDecoder::EPreferFastDecode | CImageDecoder::EOptionAlwaysThread ); TRAPD( decErr, iDecoder = CExtJpegDecoder::DataNewL( CExtJpegDecoder::EHwImplementation, iFs, *iBuffer, options )); diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimageprovider.cpp --- a/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimageprovider.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimageprovider.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -67,9 +67,7 @@ { TN_DEBUG1( "CThumbnailImageProvider::~CThumbnailImageProvider()" ); delete iImageDecoder; - iImageDecoder = NULL; delete iImageDecoderv2; - iImageDecoderv2 = NULL; REComSession::DestroyedImplementation( iDtor_ID_Key ); } diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/ThumbnailManager_0x102830AB_v9.20.8_SA_S60.50_Euro1.sis Binary file imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/ThumbnailManager_0x102830AB_v9.20.8_SA_S60.50_Euro1.sis has changed diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/package.pkg --- a/imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/package.pkg Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/package.pkg Wed Oct 13 14:53:56 2010 +0300 @@ -17,7 +17,7 @@ &EN ; Header -#{"Thumbnail Manager"},(0x102830AB), 9, 20, 9, TYPE=SA, RU +#{"Thumbnail Manager"},(0x102830AB), 9, 20, 8, TYPE=SA, RU ; Localised Vendor name %{"Nokia"} diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/stub.pkg --- a/imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/stub.pkg Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/stub.pkg Wed Oct 13 14:53:56 2010 +0300 @@ -17,7 +17,7 @@ &EN ; Header -#{"ThumbnailManager"},(0x102830AB), 9, 20, 9, TYPE=SA +#{"ThumbnailManager"},(0x102830AB), 9, 20, 8, TYPE=SA ; Localised Vendor name %{"Nokia"} diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/thumbnailmanager_stub.sis Binary file imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/thumbnailmanager_stub.sis has changed diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/sis/thumbnailmanagercenrep/package.pkg --- a/imagehandlingutilities/thumbnailmanager/sis/thumbnailmanagercenrep/package.pkg Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/sis/thumbnailmanagercenrep/package.pkg Wed Oct 13 14:53:56 2010 +0300 @@ -17,7 +17,7 @@ &EN ; Header -#{"Thumbnail Manager Cenrep"},(0x10202BE9), 9, 20, 9, TYPE=SP +#{"Thumbnail Manager Cenrep"},(0x10202BE9), 9, 20, 8, TYPE=SP ; Localised Vendor name %{"Symbian Software Ltd."} diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbagdaemon/inc/thumbagprocessor.h --- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/inc/thumbagprocessor.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/inc/thumbagprocessor.h Wed Oct 13 14:53:56 2010 +0300 @@ -62,8 +62,7 @@ struct TThumbnailGenerationItem { - inline TThumbnailGenerationItem(): iItemId( KErrNotFound ), iItemType(EGenerationItemTypeUnknown), - iItemAction(EGenerationItemActionAdd), iPlaceholder(EFalse), iUri(NULL){} + inline TThumbnailGenerationItem(): iItemId( KErrNotFound ), iItemType(EGenerationItemTypeUnknown), iItemAction(EGenerationItemActionAdd), iPlaceholder(EFalse), iUri(NULL){} inline ~TThumbnailGenerationItem(){delete iUri; iUri = NULL;} TItemId iItemId; @@ -167,9 +166,7 @@ * @param aIDArray IDs for thumbnail creation * @param aForce pass ETrue if processor is forced to run without waiting harvesting complete */ - void AddToQueueL( TObserverNotificationType aType, TThumbnailGenerationItemType aItemType, - const RArray& aIDArray, const RPointerArray& aObjectUriArray, - TBool aPresent ); + void AddToQueueL( TObserverNotificationType aType, TThumbnailGenerationItemType aItemType, const RArray& aIDArray, const RPointerArray& aObjectUriArray, TBool aPresent ); /** * Calls Thumbnail Manager to create thumbnails @@ -448,6 +445,9 @@ //Observer foreground generation CTMRPropertyObserver* iForegroundGenerationObserver; + //Observer itemsLeft + CTMRPropertyObserver* iItemsLeftObserver; + //Previously notified amount of items in processing queues (add/modify) TInt iPreviousItemsLeft; TBool iPreviousDaemonProcessing; diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagaudioobserver.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagaudioobserver.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagaudioobserver.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -309,17 +309,17 @@ // set observing conditions CMdELogicCondition* addCondition = CMdELogicCondition::NewLC( ELogicConditionOperatorAnd ); addCondition->AddObjectConditionL( audioDef ); + CleanupStack::Pop( addCondition ); CMdELogicCondition* modifyCondition = CMdELogicCondition::NewLC( ELogicConditionOperatorAnd ); modifyCondition->AddObjectConditionL( audioDef ); + CleanupStack::Pop( modifyCondition ); // add observer iMdESession->AddObjectObserverL( *this, addCondition, ENotifyAdd ); // modify observer iMdESession->AddObjectObserverL( *this, modifyCondition, ENotifyModify ); - - CleanupStack::Pop( 2, addCondition ); TN_DEBUG1( "CThumbAGAudioObserver::AddObserversL() - end" ); } diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagcameraobserver.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagcameraobserver.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagcameraobserver.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -147,10 +147,7 @@ iShutdown = ETrue; delete iMDSShutdownObserver; - iMDSShutdownObserver = NULL; - delete iShutdownObserver; - iShutdownObserver = NULL; if(iReconnect) { @@ -304,17 +301,17 @@ // set observing conditions CMdELogicCondition* addCondition = CMdELogicCondition::NewLC( ELogicConditionOperatorAnd ); addCondition->AddPropertyConditionL( originPropDef, TMdEUintEqual(MdeConstants::Object::ECamera)); + CleanupStack::Pop( addCondition ); CMdELogicCondition* modifyCondition = CMdELogicCondition::NewLC( ELogicConditionOperatorAnd ); modifyCondition->AddPropertyConditionL( originPropDef, TMdEUintEqual(MdeConstants::Object::ECamera)); + CleanupStack::Pop( modifyCondition ); // add observer iMdESession->AddObjectObserverL( *this, addCondition, ENotifyAdd ); // modify observer iMdESession->AddObjectObserverL( *this, modifyCondition, ENotifyModify ); - - CleanupStack::Pop( 2, addCondition ); TN_DEBUG1( "CThumbAGCameraObserver::AddObserversL() - end" ); } diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagdaemon.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagdaemon.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagdaemon.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -194,10 +194,7 @@ iAudioObserver = NULL; delete iMDSShutdownObserver; - iMDSShutdownObserver = NULL; - delete iShutdownObserver; - iShutdownObserver = NULL; if(iReconnect) { @@ -270,7 +267,6 @@ // comes here if server gets shut down delete server; - server = NULL; CleanupStack::PopAndDestroy( scheduler ); } @@ -542,8 +538,6 @@ TInt ret = rep->Get( KEnableDaemon, val ); delete rep; - rep = NULL; - TN_DEBUG3( "CThumbAGDaemon::DaemonEnabledL() - val == %d, ret == %d", val, ret ); return val; } @@ -585,7 +579,6 @@ { TRAP( result, CThumbAGDaemon::ThreadFunctionL()); delete cleanup; - cleanup = NULL; } if ( result != KErrNone ) diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagimageobserver.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagimageobserver.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagimageobserver.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -147,10 +147,7 @@ iShutdown = ETrue; delete iMDSShutdownObserver; - iMDSShutdownObserver = NULL; - delete iShutdownObserver; - iShutdownObserver = NULL; if(iReconnect) { @@ -291,22 +288,20 @@ // set observing conditions CMdELogicCondition* addCondition = CMdELogicCondition::NewLC( ELogicConditionOperatorAnd ); addCondition->AddObjectConditionL( imageDef ); - - addCondition->AddPropertyConditionL( originPropDef, TMdEUintNotEqual(MdeConstants::Object::ECamera)); + addCondition->AddPropertyConditionL( originPropDef, TMdEUintNotEqual(MdeConstants::Object::ECamera)); + CleanupStack::Pop( addCondition ); CMdELogicCondition* modifyCondition = CMdELogicCondition::NewLC( ELogicConditionOperatorAnd ); - modifyCondition->AddObjectConditionL( imageDef ); - - modifyCondition->AddPropertyConditionL( originPropDef, TMdEUintNotEqual(MdeConstants::Object::ECamera)); - + modifyCondition->AddObjectConditionL( imageDef ); + addCondition->AddPropertyConditionL( originPropDef, TMdEUintNotEqual(MdeConstants::Object::ECamera)); + CleanupStack::Pop( modifyCondition ); + // add observers iMdESession->AddObjectObserverL( *this, addCondition, ENotifyAdd ); // modify observer iMdESession->AddObjectObserverL( *this, modifyCondition, ENotifyModify ); - - CleanupStack::Pop( 2, addCondition ); - + TN_DEBUG1( "CThumbAGImageObserver::AddObserversL() - end" ); } diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -105,6 +105,9 @@ //start foreground generation observer iForegroundGenerationObserver = CTMRPropertyObserver::NewL( *this, KTAGDPSNotification, KForceBackgroundGeneration, ETrue ); + //itemsLeft observer + iItemsLeftObserver = CTMRPropertyObserver::NewL( *this, KTAGDPSNotification, KItemsleft, EFalse ); + TN_DEBUG1( "CThumbAGProcessor::ConstructL() - end" ); } @@ -182,6 +185,12 @@ iForegroundGenerationObserver = NULL; } + if(iItemsLeftObserver) + { + delete iItemsLeftObserver; + iItemsLeftObserver = NULL; + } + if(iFormatObserver) { delete iFormatObserver; @@ -958,43 +967,39 @@ CMdEObjectDef& objDef = iDefNamespace->GetObjectDefL( MdeConstants::Object::KBaseObject ); iQuery = iMdESession->NewObjectQueryL( *iDefNamespace, objDef, this ); - - if(iQuery) - { - iQuery->SetResultMode( EQueryResultModeItem ); + iQuery->SetResultMode( EQueryResultModeItem ); - CMdELogicCondition& rootCondition = iQuery->Conditions(); - rootCondition.SetOperator( ELogicConditionOperatorAnd ); + CMdELogicCondition& rootCondition = iQuery->Conditions(); + rootCondition.SetOperator( ELogicConditionOperatorAnd ); - // add IDs - CleanupClosePushL( iQueryQueue ); - rootCondition.AddObjectConditionL( iQueryQueue ); - CleanupStack::Pop( &iQueryQueue ); + // add IDs + CleanupClosePushL( iQueryQueue ); + rootCondition.AddObjectConditionL( iQueryQueue ); + CleanupStack::Pop( &iQueryQueue ); - // add object type conditions - if (!(iModify || iUnknown)) - { - CMdELogicCondition& objDefCondition = rootCondition.AddLogicConditionL( ELogicConditionOperatorOr ); + // add object type conditions + if (!(iModify || iUnknown)) + { + CMdELogicCondition& objDefCondition = rootCondition.AddLogicConditionL( ELogicConditionOperatorOr ); - if (iAutoImage) - { - CMdEObjectDef& imageDef = iDefNamespace->GetObjectDefL( MdeConstants::Image::KImageObject ); - objDefCondition.AddObjectConditionL( imageDef ); - } - if (iAutoVideo) - { - CMdEObjectDef& videoDef = iDefNamespace->GetObjectDefL( MdeConstants::Video::KVideoObject ); - objDefCondition.AddObjectConditionL( videoDef ); - } - if (iAutoAudio) - { - CMdEObjectDef& audioDef = iDefNamespace->GetObjectDefL( MdeConstants::Audio::KAudioObject ); - objDefCondition.AddObjectConditionL( audioDef ); - } - } + if (iAutoImage) + { + CMdEObjectDef& imageDef = iDefNamespace->GetObjectDefL( MdeConstants::Image::KImageObject ); + objDefCondition.AddObjectConditionL( imageDef ); + } + if (iAutoVideo) + { + CMdEObjectDef& videoDef = iDefNamespace->GetObjectDefL( MdeConstants::Video::KVideoObject ); + objDefCondition.AddObjectConditionL( videoDef ); + } + if (iAutoAudio) + { + CMdEObjectDef& audioDef = iDefNamespace->GetObjectDefL( MdeConstants::Audio::KAudioObject ); + objDefCondition.AddObjectConditionL( audioDef ); + } + } - iQuery->FindL(); - } + iQuery->FindL(); TN_DEBUG1( "CThumbAGProcessor::QueryL() - end" ); } @@ -1040,28 +1045,25 @@ CMdEObjectDef& objDef = iDefNamespace->GetObjectDefL( MdeConstants::Object::KBaseObject); iQueryPlaceholders = iMdESession->NewObjectQueryL( *iDefNamespace, objDef, this ); - if(iQueryPlaceholders) - { - iQueryPlaceholders->SetResultMode( EQueryResultModeItem ); - - CMdELogicCondition& rootCondition = iQueryPlaceholders->Conditions(); - rootCondition.SetOperator( ELogicConditionOperatorOr ); - - CMdEObjectCondition& imagePHObjectCondition = rootCondition.AddObjectConditionL(imageObjDef); - imagePHObjectCondition.SetPlaceholderOnly( ETrue ); - imagePHObjectCondition.SetNotPresent( aPresent ); - - CMdEObjectCondition& videoPHObjectCondition = rootCondition.AddObjectConditionL(videoObjDef); - videoPHObjectCondition.SetPlaceholderOnly( ETrue ); - videoPHObjectCondition.SetNotPresent( aPresent ); - - CMdEObjectCondition& audioPHObjectCondition = rootCondition.AddObjectConditionL(audioObjDef); - audioPHObjectCondition.SetPlaceholderOnly( ETrue ); - audioPHObjectCondition.SetNotPresent( aPresent ); - - iQueryPlaceholders->FindL(KMaxTInt, KMaxQueryBatchSize); - } - + iQueryPlaceholders->SetResultMode( EQueryResultModeItem ); + + CMdELogicCondition& rootCondition = iQueryPlaceholders->Conditions(); + rootCondition.SetOperator( ELogicConditionOperatorOr ); + + CMdEObjectCondition& imagePHObjectCondition = rootCondition.AddObjectConditionL(imageObjDef); + imagePHObjectCondition.SetPlaceholderOnly( ETrue ); + imagePHObjectCondition.SetNotPresent( aPresent ); + + CMdEObjectCondition& videoPHObjectCondition = rootCondition.AddObjectConditionL(videoObjDef); + videoPHObjectCondition.SetPlaceholderOnly( ETrue ); + videoPHObjectCondition.SetNotPresent( aPresent ); + + CMdEObjectCondition& audioPHObjectCondition = rootCondition.AddObjectConditionL(audioObjDef); + audioPHObjectCondition.SetPlaceholderOnly( ETrue ); + audioPHObjectCondition.SetNotPresent( aPresent ); + + iQueryPlaceholders->FindL(KMaxTInt, KMaxQueryBatchSize); + TN_DEBUG1( "CThumbAGProcessor::QueryPlaceholdersL - end" ); } @@ -1295,52 +1297,6 @@ QueryL( EGenerationItemActionResolveType ); } - else if ( iDeleteItemCount > 0 ) - { - TN_DEBUG1( "void CThumbAGProcessor::RunL() delete thumbnails"); - // delete thumbs by URI - __ASSERT_DEBUG((iTMSession), User::Panic(_L("CThumbAGProcessor::RunL() !iTMSession "), KErrBadHandle)); - if(iTMSession) - { - TInt itemIndex(KErrNotFound); - - for(TInt i=0;i= 0) - { - if(!iGenerationQueue[itemIndex].iUri) - { - //URI is invalid - TN_DEBUG1( "void CThumbAGProcessor::RunL() unable to delete URI inbalid"); - iGenerationQueue.Remove( itemIndex ); - ActivateAO(); - return; - } - - TN_DEBUG2( "void CThumbAGProcessor::RunL() delete %S", iGenerationQueue[itemIndex].iUri); - CThumbnailObjectSource* source = NULL; - TRAPD(err, source = CThumbnailObjectSource::NewL( *iGenerationQueue[itemIndex].iUri, KNullDesC)); - - if(err == KErrNone) - { - iTMSession->DeleteThumbnails( *source ); - } - delete source; - - delete iGenerationQueue[itemIndex].iUri; - iGenerationQueue[itemIndex].iUri = NULL; - iGenerationQueue.Remove( itemIndex ); - - iActiveCount++; - } - } - } // no items in query queue, start new // select queue to process, priority by type else if ( iModifyItemCount > 0 ) @@ -1366,6 +1322,54 @@ QueryL( EGenerationItemActionAdd ); } + else if ( iDeleteItemCount > 0 ) + { + TN_DEBUG1( "void CThumbAGProcessor::RunL() delete thumbnails"); + i2ndRound = EFalse; + iUnknown = EFalse; + // delete thumbs by URI + __ASSERT_DEBUG((iTMSession), User::Panic(_L("CThumbAGProcessor::RunL() !iTMSession "), KErrBadHandle)); + if(iTMSession) + { + TInt itemIndex(KErrNotFound); + + for(TInt i=0;i= 0) + { + if(!iGenerationQueue[itemIndex].iUri) + { + //URI is invalid + TN_DEBUG1( "void CThumbAGProcessor::RunL() unable to delete URI inbalid"); + iGenerationQueue.Remove( itemIndex ); + ActivateAO(); + return; + } + + TN_DEBUG2( "void CThumbAGProcessor::RunL() delete %S", iGenerationQueue[itemIndex].iUri); + CThumbnailObjectSource* source = NULL; + TRAPD(err, source = CThumbnailObjectSource::NewL( *iGenerationQueue[itemIndex].iUri, KNullDesC)); + + if(err == KErrNone) + { + iTMSession->DeleteThumbnails( *source ); + } + delete source; + + delete iGenerationQueue[itemIndex].iUri; + iGenerationQueue[itemIndex].iUri = NULL; + iGenerationQueue.Remove( itemIndex ); + + iActiveCount++; + } + } + } else if( i2ndAddItemCount > 0) { TN_DEBUG1( "void CThumbAGProcessor::RunL() update 2nd round thumbnails"); @@ -1692,7 +1696,7 @@ } //check if forced run needs to continue - if ( (iModifyItemCount > 0 || iDeleteItemCount > 0 || iUnknownItemCount > 0) && !iMountTimer->IsActive()) + if ( ( iModifyItemCount || iUnknownItemCount > 0 ) && !iMountTimer->IsActive()) { TN_DEBUG1( "CThumbAGProcessor::ActivateAO() - forced run"); SetForceRun( ETrue ); @@ -1885,9 +1889,11 @@ CMdELogicCondition& rootCondition = iQueryAllItems->Conditions(); rootCondition.SetOperator( ELogicConditionOperatorOr ); - rootCondition.AddObjectConditionL(imageObjDef); - rootCondition.AddObjectConditionL(videoObjDef); - rootCondition.AddObjectConditionL(audioObjDef); + CMdEObjectCondition& imageObjectCondition = rootCondition.AddObjectConditionL(imageObjDef); + + CMdEObjectCondition& videoObjectCondition = rootCondition.AddObjectConditionL(videoObjDef); + + CMdEObjectCondition& audioObjectCondition = rootCondition.AddObjectConditionL(audioObjDef); iQueryAllItems->FindL(KMaxTInt, KMaxQueryBatchSize); @@ -2052,6 +2058,15 @@ iForegroundRun = EFalse; } } + else if(aPropertyKey == KItemsleft && aKeyCategory == KTAGDPSNotification ) + { + if( aError == KErrNone && aValue != iPreviousItemsLeft) + { + TN_DEBUG1( "CThumbAGProcessor::RPropertyNotification() - itemsLeft changed outside Daemon" ); + iPreviousItemsLeft = aValue; + ActivateAO(); + } + } } // --------------------------------------------------------------------------- diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagvideoobserver.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagvideoobserver.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagvideoobserver.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -301,22 +301,20 @@ // set observing conditions CMdELogicCondition* addCondition = CMdELogicCondition::NewLC( ELogicConditionOperatorAnd ); - addCondition->AddObjectConditionL( videoDef ); - - addCondition->AddPropertyConditionL( originPropDef, TMdEUintNotEqual(MdeConstants::Object::ECamera)); + addCondition->AddObjectConditionL( videoDef ); + addCondition->AddPropertyConditionL( originPropDef, TMdEUintNotEqual(MdeConstants::Object::ECamera)); + CleanupStack::Pop( addCondition ); CMdELogicCondition* modifyCondition = CMdELogicCondition::NewLC( ELogicConditionOperatorAnd ); - modifyCondition->AddObjectConditionL( videoDef ); - - modifyCondition->AddPropertyConditionL( originPropDef, TMdEUintNotEqual(MdeConstants::Object::ECamera)); + modifyCondition->AddObjectConditionL( videoDef ); + addCondition->AddPropertyConditionL( originPropDef, TMdEUintNotEqual(MdeConstants::Object::ECamera)); + CleanupStack::Pop( modifyCondition ); // add observer iMdESession->AddObjectObserverL( *this, addCondition, ENotifyAdd ); // modify observer iMdESession->AddObjectObserverL( *this, modifyCondition, ENotifyModify ); - - CleanupStack::Pop( 2, addCondition ); TN_DEBUG1( "CThumbAGVideoObserver::AddObserversL() - end" ); } diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailclient/bwins/thumbnailmanageru.def --- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/bwins/thumbnailmanageru.def Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/bwins/thumbnailmanageru.def Wed Oct 13 14:53:56 2010 +0300 @@ -19,7 +19,4 @@ ?Uri@CThumbnailObjectSource@@QAEABVTDesC16@@XZ @ 18 NONAME ; class TDesC16 const & CThumbnailObjectSource::Uri(void) ?Bitmap@CThumbnailObjectSource@@QAEPAVCFbsBitmap@@XZ @ 19 NONAME ; class CFbsBitmap * CThumbnailObjectSource::Bitmap(void) ?GetBitmapOwnership@CThumbnailObjectSource@@QAEPAVCFbsBitmap@@XZ @ 20 NONAME ; class CFbsBitmap * CThumbnailObjectSource::GetBitmapOwnership(void) - ?NewLC@CThumbnailObjectSource@@SAPAV1@ABVTDesC16@@00@Z @ 21 NONAME ; class CThumbnailObjectSource * CThumbnailObjectSource::NewLC(class TDesC16 const &, class TDesC16 const &, class TDesC16 const &) - ?TargetUri@CThumbnailObjectSource@@QAEABVTDesC16@@XZ @ 22 NONAME ; class TDesC16 const & CThumbnailObjectSource::TargetUri(void) - ?NewL@CThumbnailObjectSource@@SAPAV1@ABVTDesC16@@00@Z @ 23 NONAME ; class CThumbnailObjectSource * CThumbnailObjectSource::NewL(class TDesC16 const &, class TDesC16 const &, class TDesC16 const &) diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailclient/eabi/thumbnailmanageru.def --- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/eabi/thumbnailmanageru.def Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/eabi/thumbnailmanageru.def Wed Oct 13 14:53:56 2010 +0300 @@ -21,7 +21,4 @@ _ZN22CThumbnailObjectSource6BitmapEv @ 20 NONAME _ZTI22CThumbnailRequestQueue @ 21 NONAME _ZTV22CThumbnailRequestQueue @ 22 NONAME - _ZN22CThumbnailObjectSource4NewLERK7TDesC16S2_S2_ @ 23 NONAME - _ZN22CThumbnailObjectSource5NewLCERK7TDesC16S2_S2_ @ 24 NONAME - _ZN22CThumbnailObjectSource9TargetUriEv @ 25 NONAME diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailrequestactive.h --- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailrequestactive.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailrequestactive.h Wed Oct 13 14:53:56 2010 +0300 @@ -41,8 +41,7 @@ EReqUpdateThumbnails = 4, EReqGetThumbnailHandleLater = 5, EReqDeleteThumbnails = 6, - EReqRenameThumbnails = 7, - EReqSetThumbnailPath = 8 + EReqRenameThumbnails = 7 }; /** @@ -95,7 +94,7 @@ * ThumbnailReady callback. * @param aTargetUri Target URI to which the imported thumbnail is linked. */ - void GetThumbnailL( const RFile64& aFile, TThumbnailId aThumbnailId, const TDesC8& aMimeType, + void GetThumbnailL( const RFile64& aFile, TThumbnailId aThumbnailId, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri = KNullDesC, @@ -117,7 +116,7 @@ * ThumbnailReady callback. * @param aTargetUri Target URI to which the imported thumbnail is linked. */ - void GetThumbnailL( TThumbnailId aThumbnailId, const TDesC& aPath, const TDesC8& aMimeType, + void GetThumbnailL( TThumbnailId aThumbnailId, const TDesC& aPath, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri = KNullDesC, @@ -142,7 +141,7 @@ * @param aThumbnailSize Relative thumbnail size */ void GetThumbnailL( const TDesC& aPath, TThumbnailId aThumbnailId, - const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, + CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, @@ -239,32 +238,6 @@ const TInt aPriority ); /** - * Set thumbnail from file path. - * - * @param aPath Path to file from which the thumbnail is to be created. - * @param aFile File from which the thumbnail is to be created. - * @param aFlags Flags that control the creation of thumbnail. - * @param aQualityPreference Quality preference value - * @param aSize Requested size of the thumbnail. - * @param aDisplayMode Display mode. - * @param aPriority Priority of the request. - * @param aClientData Pointer to arbitrary client data. - * This pointer is not used by the API for - * anything other than returning it in the - * ThumbnailReady callback. - * @param aGeneratePersistentSizesOnly - * @param aOverwrite Overwrite old existing thumbs - * @param aTargetUri Target URI to which the imported thumbnail is linked. - * @param aThumbnailSize Relative thumbnail size - */ - void SetThumbnailL( const TDesC& aPath, const TDesC8& aMimeType, - CThumbnailManager::TThumbnailFlags aFlags, - CThumbnailManager::TThumbnailQualityPreference aQualityPreference, - const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, - TAny* aClientData, TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri, - TThumbnailSize aThumbnailSize, TBool aOverwrite); - - /** * Start active request. * * @since S60 v5.0 @@ -393,11 +366,6 @@ * @since S60 v5.0 */ static TInt TimerCallBack(TAny* aAny); - - /** - * Checks if URI is virtual. - */ - TBool IsVirtualUri( const TDesC& aPath ); private: // data diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnaildataimpl.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnaildataimpl.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnaildataimpl.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -41,7 +41,6 @@ CThumbnailDataImpl::~CThumbnailDataImpl() { delete iBitmap; - iBitmap = NULL; iClientData = NULL; } diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailmanagerimpl.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailmanagerimpl.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailmanagerimpl.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -172,21 +172,21 @@ if(aObjectSource.Id() > 0) { - getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), - aObjectSource.MimeType(),iFlags, iQualityPreference, iSize, iDisplayMode, - priority, aClientData, aGeneratePersistentSizesOnly, KNullDesC, iThumbnailSize); + getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, + iQualityPreference, iSize, iDisplayMode, priority, aClientData, aGeneratePersistentSizesOnly, + KNullDesC, iThumbnailSize); } else if ( aObjectSource.Uri().Length()) { - getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), - aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, - priority, aClientData, aGeneratePersistentSizesOnly, KNullDesC, iThumbnailSize ); + getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, + iQualityPreference, iSize, iDisplayMode, priority, aClientData, aGeneratePersistentSizesOnly, + KNullDesC, iThumbnailSize ); } else { - getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), - aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, - priority, aClientData, aGeneratePersistentSizesOnly, KNullDesC, iThumbnailSize ); + getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), iFlags, + iQualityPreference, iSize, iDisplayMode, priority, aClientData, aGeneratePersistentSizesOnly, + KNullDesC, iThumbnailSize ); } iRequestQueue->AddRequestL( getThumbnailActive ); @@ -231,9 +231,9 @@ ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue ); CleanupStack::PushL( getThumbnailActive ); - getThumbnailActive->GetThumbnailL( KNullDesC, aThumbnailId, KNullDesC8, - iFlags, iQualityPreference, iSize, iDisplayMode, priority, aClientData, - EFalse, KNullDesC, iThumbnailSize ); + getThumbnailActive->GetThumbnailL( KNullDesC, aThumbnailId, iFlags, + iQualityPreference, iSize, iDisplayMode, priority, aClientData, + EFalse, KNullDesC, iThumbnailSize ); iRequestQueue->AddRequestL( getThumbnailActive ); CleanupStack::Pop( getThumbnailActive ); @@ -267,15 +267,15 @@ if ( aObjectSource.Uri().Length()) { - getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), - aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, - priority, aClientData, EFalse, aTargetUri, iThumbnailSize ); + getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, + iQualityPreference, iSize, iDisplayMode, priority, aClientData, + EFalse, aTargetUri, iThumbnailSize ); } else { getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), - aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, - priority, aClientData, EFalse, aTargetUri, iThumbnailSize ); + iFlags, iQualityPreference, iSize, iDisplayMode, priority, aClientData, + EFalse, aTargetUri, iThumbnailSize ); } iRequestQueue->AddRequestL( getThumbnailActive ); @@ -307,20 +307,13 @@ CleanupStack::PushL( getThumbnailActive ); if (aObjectSource.Uri().Length() && - aObjectSource.TargetUri().Length()) - { - // from path - getThumbnailActive->SetThumbnailL( aObjectSource.Uri(), - aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, - priority, aClientData, ETrue, aObjectSource.TargetUri(), iThumbnailSize, ETrue); - } - else if (aObjectSource.Uri().Length() && - aObjectSource.Bitmap() != NULL) + aObjectSource.Bitmap() != NULL) { // from bitmap getThumbnailActive->SetThumbnailL( aObjectSource.GetBitmapOwnership(), - aObjectSource.Id(), KBmpMime, iFlags, iQualityPreference, iSize, iDisplayMode, - priority, aClientData, ETrue, aObjectSource.Uri(), iThumbnailSize, ETrue); + aObjectSource.Id(), KBmpMime, iFlags, iQualityPreference, + iSize, iDisplayMode, priority, aClientData, ETrue, + aObjectSource.Uri(), iThumbnailSize, ETrue); } else if (aObjectSource.Uri().Length() && aObjectSource.Buffer() != NULL && @@ -374,9 +367,9 @@ else if( !aObjectSource.Buffer() ) { getThumbnailActive->GetThumbnailL( aObjectSource.Id(), - aObjectSource.Uri(), aObjectSource.MimeType(), iFlags, - iQualityPreference, iSize, iDisplayMode, priority, NULL, - ETrue, aObjectSource.Uri(), EUnknownThumbnailSize); + aObjectSource.Uri(), iFlags, iQualityPreference, iSize, + iDisplayMode, priority, NULL, ETrue, aObjectSource.Uri(), + EUnknownThumbnailSize); } else { diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailobjectsource.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailobjectsource.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailobjectsource.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -24,7 +24,6 @@ // --------------------------------------------------------------------------- // CThumbnailObjectSource::NewL() -// CThumbnailObjectSource::NewLC() // Two-phased constructor. // --------------------------------------------------------------------------- // @@ -37,6 +36,12 @@ return self; } + +// --------------------------------------------------------------------------- +// CThumbnailObjectSource::NewLC() +// Two-phased constructor. +// --------------------------------------------------------------------------- +// EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewLC( const TDesC& aUri, const TDesC& aMimeType ) { @@ -46,6 +51,11 @@ return self; } +// --------------------------------------------------------------------------- +// CThumbnailObjectSource::NewL() +// Two-phased constructor. +// --------------------------------------------------------------------------- +// EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewL( const RFile64& aFile, const TDesC& aMimeType ) { @@ -55,6 +65,12 @@ return self; } + +// --------------------------------------------------------------------------- +// CThumbnailObjectSource::NewLC() +// Two-phased constructor. +// --------------------------------------------------------------------------- +// EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewLC( const RFile64& aFile, const TDesC& aMimeType ) { @@ -64,16 +80,15 @@ return self; } -EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewL( CFbsBitmap* aBitmap, - const TDesC& aUri ) + +EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewL( CFbsBitmap* aBitmap, const TDesC& aUri ) { CThumbnailObjectSource* self = CThumbnailObjectSource::NewLC( aBitmap, aUri ); CleanupStack::Pop( self ); return self; } -EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewLC( CFbsBitmap* aBitmap, - const TDesC& aUri ) +EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewLC( CFbsBitmap* aBitmap, const TDesC& aUri ) { CThumbnailObjectSource* self = new( ELeave )CThumbnailObjectSource(); CleanupStack::PushL( self ); @@ -81,60 +96,21 @@ return self; } -EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewL( TDesC8* aBuffer, - TDesC& aMimeType, const TDesC& aUri) +EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewL( TDesC8* aBuffer, TDesC& aMimeType, const TDesC& aUri) { - CThumbnailObjectSource* self = CThumbnailObjectSource::NewLC( aBuffer, - aMimeType, aUri ); + CThumbnailObjectSource* self = CThumbnailObjectSource::NewLC( aBuffer, aMimeType, aUri ); CleanupStack::Pop( self ); return self; } -EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewLC( TDesC8* aBuffer, - TDesC& aMimeType, const TDesC& aUri) +EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewLC( TDesC8* aBuffer, TDesC& aMimeType, const TDesC& aUri) { CThumbnailObjectSource* self = new( ELeave )CThumbnailObjectSource(); CleanupStack::PushL( self ); self->ConstructL( aBuffer, aMimeType, aUri ); return self; } - -EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewL( const TDesC& - aUri, const TThumbnailId aThumbnailId, const TDesC& aMimeType ) - { - CThumbnailObjectSource* self = CThumbnailObjectSource::NewLC( aUri, - aThumbnailId, aMimeType ); - CleanupStack::Pop( self ); - return self; - } - -EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewLC( const TDesC& aUri, - const TThumbnailId aThumbnailId, const TDesC& aMimeType ) - { - CThumbnailObjectSource* self = new( ELeave )CThumbnailObjectSource(); - CleanupStack::PushL( self ); - self->ConstructL( aUri, aMimeType, aThumbnailId ); - return self; - } - -EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewL( const TDesC& aUri, - const TDesC& aTargetUri, const TDesC& aMimeType ) - { - CThumbnailObjectSource* self = CThumbnailObjectSource::NewLC( aUri, aTargetUri, - aMimeType ); - CleanupStack::Pop( self ); - return self; - } - -EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewLC( const TDesC& aUri, - const TDesC& aTargetUri, const TDesC& aMimeType ) - { - CThumbnailObjectSource* self = new( ELeave )CThumbnailObjectSource(); - CleanupStack::PushL( self ); - self->ConstructL( aUri, aTargetUri, aMimeType ); - return self; - } - + // --------------------------------------------------------------------------- // CThumbnailObjectSource::CThumbnailObjectSource() @@ -158,11 +134,15 @@ iUri = aUri.AllocL(); iMimeType = HBufC8::NewL( aMimeType.Length() ); iMimeType->Des().Copy( aMimeType ); - iThumbnailId = 0; iBitmap = NULL; - iTargetUri = NULL; } + +// --------------------------------------------------------------------------- +// CThumbnailObjectSource::ConstructL() +// Symbian 2nd phase constructor can leave. +// --------------------------------------------------------------------------- +// void CThumbnailObjectSource::ConstructL( const RFile64& aFile, const TDesC& aMimeType ) { @@ -171,18 +151,26 @@ iMimeType->Des().Copy( aMimeType ); iThumbnailId = 0; iBitmap = NULL; - iTargetUri = NULL; } -void CThumbnailObjectSource::ConstructL( CFbsBitmap* aBitmap, const TDesC& - aUri ) +// --------------------------------------------------------------------------- +// CThumbnailObjectSource::ConstructL() +// Symbian 2nd phase constructor can leave. +// --------------------------------------------------------------------------- +// +void CThumbnailObjectSource::ConstructL( CFbsBitmap* aBitmap, const TDesC& + aUri ) { iBitmap = aBitmap; iUri = aUri.AllocL(); iThumbnailId = 0; - iTargetUri = NULL; } +// --------------------------------------------------------------------------- +// CThumbnailObjectSource::ConstructL() +// Symbian 2nd phase constructor can leave. +// --------------------------------------------------------------------------- +// void CThumbnailObjectSource::ConstructL( TDesC8* aBuffer, const TDesC& aMimeType, const TDesC& aUri ) { @@ -192,9 +180,13 @@ iUri = aUri.AllocL(); iThumbnailId = 0; iBitmap = NULL; - iTargetUri = NULL; } +// --------------------------------------------------------------------------- +// CThumbnailObjectSource::ConstructL() +// Symbian 2nd phase constructor can leave. +// --------------------------------------------------------------------------- +// void CThumbnailObjectSource::ConstructL( const TDesC& aUri, const TDesC& aMimeType, TThumbnailId aThumbnailId ) { @@ -202,18 +194,6 @@ iMimeType = HBufC8::NewL( aMimeType.Length() ); iMimeType->Des().Copy( aMimeType ); iThumbnailId = aThumbnailId; - iTargetUri = NULL; - } - -void CThumbnailObjectSource::ConstructL( const TDesC& aUri, const TDesC& - aTargetUri, const TDesC& aMimeType ) - { - iUri = aUri.AllocL(); - iTargetUri = aTargetUri.AllocL(); - iMimeType = HBufC8::NewL( aMimeType.Length() ); - iMimeType->Des().Copy( aMimeType ); - iThumbnailId = 0; - iBitmap = NULL; } @@ -239,11 +219,12 @@ // CThumbnailObjectSourceImpl::FileHandle() // --------------------------------------------------------------------------- // -EXPORT_C RFile64& CThumbnailObjectSource::FileHandle() +EXPORT_C RFile64& CThumbnailObjectSource::FileHandle() { return iFile; } + // --------------------------------------------------------------------------- // CThumbnailObjectSourceImpl::Uri() // --------------------------------------------------------------------------- @@ -290,15 +271,35 @@ return KNullDesC8; } -// --------------------------------------------------------------------------- -// CThumbnailObjectSourceImpl::Id() -// --------------------------------------------------------------------------- -// EXPORT_C TThumbnailId CThumbnailObjectSource::Id() { return iThumbnailId; } +EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewL( const TDesC& +aUri, const TThumbnailId aThumbnailId, const TDesC& aMimeType ) +{ +CThumbnailObjectSource* self = CThumbnailObjectSource::NewLC( aUri, + aThumbnailId, aMimeType ); +CleanupStack::Pop( self ); +return self; + } + + +// --------------------------------------------------------------------------- +// CThumbnailObjectSource::NewLC() +// Two-phased constructor. +// --------------------------------------------------------------------------- +// +EXPORT_C CThumbnailObjectSource* CThumbnailObjectSource::NewLC( const TDesC& aUri, + const TThumbnailId aThumbnailId, const TDesC& aMimeType ) + { + CThumbnailObjectSource* self = new( ELeave )CThumbnailObjectSource(); + CleanupStack::PushL( self ); + self->ConstructL( aUri, aMimeType, aThumbnailId ); + return self; + } + // --------------------------------------------------------------------------- // CThumbnailObjectSourceImpl::Bitmap() // --------------------------------------------------------------------------- @@ -319,18 +320,4 @@ return temp; } -// --------------------------------------------------------------------------- -// CThumbnailObjectSourceImpl::TargetUri() -// --------------------------------------------------------------------------- -// -EXPORT_C const TDesC& CThumbnailObjectSource::TargetUri() - { - if ( iTargetUri ) - { - return * iTargetUri; - } - return KNullDesC; - } - - // End of file diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestactive.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestactive.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestactive.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -47,7 +47,6 @@ { iTimer->Cancel(); } - delete iTimer; iTimer = NULL; @@ -164,14 +163,6 @@ TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iPath ); CleanupClosePushL( iFile ); - - if ( iParams.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview ) - { - // We may need the file handle later for the 2nd phase thumbnail - iMyFileHandle.Close(); - User::LeaveIfError( iMyFileHandle.Duplicate( iFile )); - } - iSession.RequestThumbnailL( iFile, iPath, iParamsPckg, iStatus ); CleanupStack::PopAndDestroy( &iFile ); } @@ -206,14 +197,6 @@ TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iTargetUri ); CleanupClosePushL( iFile ); - - if ( iParams.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview ) - { - // We may need the file handle later for the 2nd phase thumbnail - iMyFileHandle.Close(); - User::LeaveIfError( iMyFileHandle.Duplicate( iFile )); - } - iSession.RequestThumbnailL( iFile, iTargetUri, iParamsPckg, iStatus ); CleanupStack::PopAndDestroy( &iFile ); break; @@ -237,29 +220,6 @@ iSession.RenameThumbnails( iParamsPckg, iStatus ); break; } - case EReqSetThumbnailPath: - { - // open file handle - iFile.Close(); - User::LeaveIfError( iFile.Open( iFs, iParams.iFileName, EFileShareReadersOrWriters ) ); - - TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iParams.iFileName ); - - CleanupClosePushL( iFile ); - - if ( iParams.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview ) - { - // We may need the file handle later for the 2nd phase thumbnail - iMyFileHandle.Close(); - User::LeaveIfError( iMyFileHandle.Duplicate( iFile )); - } - - iSession.RequestThumbnailL( iFile, iTargetUri, iParamsPckg, iStatus ); - CleanupStack::PopAndDestroy( &iFile ); - - break; - } - default: { break; @@ -634,7 +594,7 @@ } } #endif - TN_DEBUG3( "CThumbnaiRequestActive::HandleError() - iObserver.ThumbnailReady req=%d err=%d", iParams.iRequestId, iError ); + TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - iObserver.ThumbnailReady %d", iParams.iRequestId ); iObserver.ThumbnailReady( iError, *iCallbackThumbnail, iParams.iRequestId ); } @@ -659,7 +619,7 @@ // --------------------------------------------------------------------------- // void CThumbnailRequestActive::GetThumbnailL( const RFile64& aFile, TThumbnailId aThumbnailId, - const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager + CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri, TThumbnailSize aThumbnailSize) @@ -680,7 +640,6 @@ EThumbnailGeneratePersistentSizesOnly : EThumbnailNoControlFlags); iParams.iOriginalControlFlags = iParams.iControlFlags; - iParams.iMimeType = TDataType( aMimeType ); iParams.iBitmapHandle = 0; iParams.iSize = aSize; iParams.iDisplayMode = aDisplayMode; @@ -692,20 +651,10 @@ iParams.iThumbnailSize = aThumbnailSize; iParams.iThumbnailId = aThumbnailId; iParams.iOverwrite = EFalse; - iParams.iImport = EFalse; User::LeaveIfError( iFile.Duplicate( aFile )); iTargetUri = aTargetUri; - - if (iParams.iFileName.Length() && IsVirtualUri(iParams.iFileName)) - { - iParams.iVirtualUri = ETrue; - } - else - { - iParams.iVirtualUri = EFalse; - } } @@ -715,8 +664,8 @@ // --------------------------------------------------------------------------- // void CThumbnailRequestActive::GetThumbnailL( TThumbnailId aThumbnailId, - const TDesC& aPath, const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, - CThumbnailManager::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const + const TDesC& aPath, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager + ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri, TThumbnailSize aThumbnailSize) { @@ -727,7 +676,6 @@ EThumbnailGeneratePersistentSizesOnly : EThumbnailNoControlFlags); iParams.iOriginalControlFlags = iParams.iControlFlags; - iParams.iMimeType = TDataType( aMimeType ); iParams.iBitmapHandle = 0; iParams.iSize = aSize; iParams.iDisplayMode = aDisplayMode; @@ -739,18 +687,8 @@ iParams.iThumbnailSize = aThumbnailSize; iParams.iThumbnailId = aThumbnailId; iParams.iOverwrite = EFalse; - iParams.iImport = EFalse; iTargetUri = aTargetUri; - - if (iPath.Length() && IsVirtualUri(iPath)) - { - iParams.iVirtualUri = ETrue; - } - else - { - iParams.iVirtualUri = EFalse; - } } @@ -760,7 +698,7 @@ // --------------------------------------------------------------------------- // void CThumbnailRequestActive::GetThumbnailL( const TDesC& aPath, TThumbnailId aThumbnailId, - const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager + CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri, TThumbnailSize aThumbnailSize) @@ -772,7 +710,6 @@ EThumbnailGeneratePersistentSizesOnly : EThumbnailNoControlFlags); iParams.iOriginalControlFlags = iParams.iControlFlags; - iParams.iMimeType = TDataType( aMimeType ); iParams.iBitmapHandle = 0; iParams.iSize = aSize; iParams.iDisplayMode = aDisplayMode; @@ -784,19 +721,9 @@ iParams.iThumbnailId = aThumbnailId; iParams.iFileName = aPath; iParams.iOverwrite = EFalse; - iParams.iImport = EFalse; iPath = aPath; iTargetUri = aTargetUri; - - if (iPath.Length() && IsVirtualUri(iPath)) - { - iParams.iVirtualUri = ETrue; - } - else - { - iParams.iVirtualUri = EFalse; - } } // --------------------------------------------------------------------------- @@ -830,18 +757,8 @@ iParams.iQualityPreference = aQualityPreference; iParams.iThumbnailId = aThumbnailId; iParams.iOverwrite = aOverwrite; - iParams.iImport = EFalse; iTargetUri = aTargetUri; - - if (iTargetUri.Length() && IsVirtualUri(iTargetUri)) - { - iParams.iVirtualUri = ETrue; - } - else - { - iParams.iVirtualUri = EFalse; - } } // --------------------------------------------------------------------------- @@ -872,19 +789,9 @@ iParams.iThumbnailId = aThumbnailId; iParams.iFileName = aTargetUri; iParams.iOverwrite = aOverwrite; - iParams.iImport = EFalse; iTargetUri = aTargetUri; - if (iTargetUri.Length() && IsVirtualUri(iTargetUri)) - { - iParams.iVirtualUri = ETrue; - } - else - { - iParams.iVirtualUri = EFalse; - } - TInt memoryFree( 0 ); HAL::Get( HALData::EMemoryRAMFree, memoryFree ); @@ -897,7 +804,7 @@ iParams.iMimeType = TDataType( aMimeType ); iRequestType = EReqSetThumbnailBitmap; } - else if (!iParams.iVirtualUri) + else { // memory low, create thumbs using filehandle TN_DEBUG1( "CThumbnaiRequestActive::SetThumbnailbyBitmap() - memory low, create thumbs using filehandle!" ); @@ -906,10 +813,6 @@ iParams.iPriority = aPriority - 1; iRequestType = EReqGetThumbnailHandleLater; } - else - { - User::Leave(KErrNoMemory); - } } // --------------------------------------------------------------------------- @@ -935,8 +838,6 @@ iParams.iQualityPreference = aQualityPreference; iParams.iThumbnailId = aThumbnailId; iParams.iOverwrite = EFalse; - iParams.iVirtualUri = EFalse; - iParams.iImport = EFalse; iPath = aPath; iOrientation = aOrientation; @@ -977,51 +878,6 @@ } // --------------------------------------------------------------------------- -// CThumbnailRequestActive::SetThumbnailL() -// Set thumbnail from file path. -// --------------------------------------------------------------------------- -// -void CThumbnailRequestActive::SetThumbnailL( const TDesC& aPath, const TDesC8& aMimeType, - CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager - ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const - TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, - TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri, - TThumbnailSize aThumbnailSize, TBool aOverwrite) - { - iRequestType = EReqSetThumbnailPath; - - iClientData = aClientData; - iParams.iControlFlags = (aGeneratePersistentSizesOnly ? - EThumbnailGeneratePersistentSizesOnly : - EThumbnailNoControlFlags); - iParams.iOriginalControlFlags = iParams.iControlFlags; - iParams.iMimeType = TDataType( aMimeType ); - iParams.iBitmapHandle = 0; - iParams.iSize = aSize; - iParams.iDisplayMode = aDisplayMode; - iParams.iFileName = aPath; - iParams.iRequestId = iRequestId; - iParams.iPriority = aPriority; - iParams.iFlags = aFlags; - iParams.iQualityPreference = aQualityPreference; - iParams.iThumbnailSize = aThumbnailSize; - iParams.iOverwrite = aOverwrite; - - iTargetUri = aTargetUri; - - if (iTargetUri.Length() && IsVirtualUri(iTargetUri)) - { - iParams.iVirtualUri = ETrue; - } - else - { - iParams.iVirtualUri = EFalse; - } - - iParams.iImport = ETrue; - } - -// --------------------------------------------------------------------------- // Request 2nd phase thumbnail // --------------------------------------------------------------------------- // @@ -1114,26 +970,4 @@ return KErrNone; } -// --------------------------------------------------------------------------- -// CThumbnailRequestActive::IsVirtualUri() -// Checks if URI is virtual. -// --------------------------------------------------------------------------- -// -TBool CThumbnailRequestActive::IsVirtualUri( const TDesC& aPath ) - { - TInt pos = aPath.Find(KBackSlash); - - // normal URI - if ( pos == 2 ) - { - return EFalse; - } - // virtual URI - else - { - TN_DEBUG1( "CThumbnailRequestActive::IsVirtualUri() - yes"); - return ETrue; - } - } - // End of file diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestqueue.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestqueue.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestqueue.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -163,7 +163,6 @@ // delete completed task TN_DEBUG3( "CThumbnailRequestQueue::RemoveCompleted() - deleted id = %d (0x%08x)", request->RequestId(), request); delete request; - request = NULL; iRequests.Remove( i ); } } @@ -204,7 +203,6 @@ else { delete request; - request = NULL; iRequests.Remove( i ); TN_DEBUG2( "CThumbnailRequestQueue::CancelRequest() - removed request ID: %d", aRequestId); diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailcenrep.h --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailcenrep.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailcenrep.h Wed Oct 13 14:53:56 2010 +0300 @@ -142,7 +142,7 @@ }; public: - enum TThumbnailSourceType { EUnknownSourceType, EImage, EVideo, EAudio, EContact }; + enum TThumbnailSourceType { EUnknownSourceType, EImage, EVideo, EAudio }; enum TThumbnailSizeType { EUnknownSizeType, EGrid, EList, EFullscreen }; public: @@ -203,10 +203,7 @@ TBool iVideoFullscreen; TBool iAudioGrid; TBool iAudioList; - TBool iAudioFullscreen; - TBool iContactGrid; - TBool iContactList; - TBool iContactFullscreen; + TBool iAudioFullscreen; }; #endif // THUMBNAILCENREP_H diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailfetchedchecker.h --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailfetchedchecker.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailfetchedchecker.h Wed Oct 13 14:53:56 2010 +0300 @@ -18,7 +18,6 @@ #define THUMBNAILFETCHEDCHECKER_H #include -#include NONSHARABLE_CLASS( CThumbnailFetchedChecker ): public CBase { @@ -26,10 +25,8 @@ static CThumbnailFetchedChecker* NewL(); virtual ~CThumbnailFetchedChecker(); public: - TInt LastFetchResult( const TDesC& aUri, const TThumbnailSize aThumbnailSize ); - void SetFetchResult( const TDesC& aUri, const TThumbnailSize aThumbnailSize, TInt aError ); - void DeleteFetchResult( const TDesC& aUri ); - void RenameFetchResultL( const TDesC& aNewUri, const TDesC& aOldUri ); + TInt LastFetchResult( const TDesC& aUri ); + void SetFetchResult( const TDesC& aUri, TInt aError ); void Reset(); private: CThumbnailFetchedChecker(); @@ -37,15 +34,13 @@ NONSHARABLE_CLASS( CEntry ) : public CBase { public: - static CEntry* NewL( const TDesC& aUri, const TThumbnailSize aThumbnailSize, TInt aError ); - static TInt FindCB( const CEntry& aEntry1, const CEntry& aEntry ); - static TInt FindCBUri( const TDesC* aUri, const CEntry& aEntry ); + static CEntry* NewL( const TDesC& aUri, TInt aError ); + static TInt FindCB( const TDesC* aUri, const CEntry& aEntry ); static TInt InsertCB( const CEntry& aEntry1, const CEntry& aEntry2 ); CEntry(); virtual ~CEntry(); public: HBufC* iUri; - TInt32 iSize; TInt iError; }; diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailgeneratetask.h --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailgeneratetask.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailgeneratetask.h Wed Oct 13 14:53:56 2010 +0300 @@ -33,7 +33,7 @@ * @since S60 v5.0 */ class CThumbnailGenerateTask: public CThumbnailTask, - public MThumbnailProviderObserver + public MThumbnailProviderObserver { public: @@ -56,8 +56,7 @@ TDisplayMode aDisplayMode, TInt aPriority, RArray < TThumbnailPersistentSize >* aMissingSizes, const TDesC& aTargetUri, TThumbnailSize aThumbnailSize, const TInt64 aModified, - const CThumbnailManager::TThumbnailQualityPreference aQualityPreference, - TBool aImportVirtual ); + const CThumbnailManager::TThumbnailQualityPreference aQualityPreference ); /** * Destructor. @@ -234,9 +233,6 @@ TBool iPortrait; TInt iBitmapHandle; - - // virtual uri - TBool iVirtualUri; }; #endif // THUMBNAILGENERATETASK_H diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailscaletask.h --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailscaletask.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailscaletask.h Wed Oct 13 14:53:56 2010 +0300 @@ -59,7 +59,7 @@ TDisplayMode aDisplayMode, TInt aPriority, const TDesC& aTargetUri, const TThumbnailSize aThumbnailSize, const TInt64 aModified, const TBool aBitmapToPool, const TBool aEXIF, - const TThumbnailServerRequestId aRequestId, const TBool aImportVirtual); + const TThumbnailServerRequestId aRequestId); /** * Destructor @@ -131,7 +131,7 @@ aDisplayMode, TInt aPriority, const TDesC& aTargetUri, const TThumbnailSize aThumbnailSize, const TInt64 aModified, const TBool aBitmapToPool, const TBool aEXIF, - const TThumbnailServerRequestId aRequestId, const TBool aImportVirtual); + const TThumbnailServerRequestId aRequestId); /** * Symbian 2nd phase constructor can leave. @@ -278,9 +278,6 @@ * Is origin EXIF. */ TBool iEXIF; - - // virtual uri - TBool iVirtualUri; }; #endif // THUMBNAILSCALETASK_H diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailserver.h --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailserver.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailserver.h Wed Oct 13 14:53:56 2010 +0300 @@ -63,7 +63,7 @@ while ( item ) { - delete *item; + delete * item; item = iter.NextValue(); } aHashMap.Close(); @@ -168,8 +168,9 @@ */ void StoreThumbnailL( const TDesC& aPath, CFbsBitmap* aBitmap, const TSize& aOriginalSize, const TBool aCropped, const TThumbnailSize aThumbnailSize, - const TInt64 aModified, const TBool aThumbFromPath, - const TBool aCheckExist); + const TInt64 aModified, + const TBool aThumbFromPath = ETrue, + const TBool aCheckExist = ETrue); /** * Fetch thumbnail image. diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailsql.h --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailsql.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailsql.h Wed Oct 13 14:53:56 2010 +0300 @@ -210,6 +210,6 @@ _LIT8( KThumbnailSelectAllPaths, "SELECT ThumbnailInfo.RowID,Path FROM ThumbnailInfo " "WHERE NOT EXISTS (SELECT Path FROM ThumbnailDeleted " "WHERE ThumbnailInfo.Path = ThumbnailDeleted.Path) " - "AND ThumbFromPath = 1 AND ThumbnailInfo.RowID > :RowID ORDER BY ThumbnailInfo.RowID ASC LIMIT :Limit;" ); + "AND ThumbnailInfo.RowID > :RowID ORDER BY ThumbnailInfo.RowID ASC LIMIT :Limit;" ); #endif // THUMBNAILSQL_H diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailstore.h --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailstore.h Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailstore.h Wed Oct 13 14:53:56 2010 +0300 @@ -208,10 +208,9 @@ * @param aFs File server. * @param aDrive Drive the store used for * @param aCenter Pointer to cenrep data handler - * @param aReadOnly flag is store write protected * @return New CThumbnailStore instance. */ - static CThumbnailStore* NewL( RFs& aFs, TInt aDrive, TDesC& aImei, CThumbnailServer* aServer, const TBool aReadOnly ); + static CThumbnailStore* NewL( RFs& aFs, TInt aDrive, TDesC& aImei, CThumbnailServer* aServer ); /** * Destructor @@ -233,7 +232,9 @@ */ void StoreThumbnailL( const TDesC& aPath, CFbsBitmap* aThumbnail, const TSize& aOriginalSize, TBool aCropped, const TThumbnailSize aThumbnailSize, - const TInt64 aModified, const TBool aThumbFromPath, TBool aBlackListed); + const TInt64 aModified, + const TBool aThumbFromPath = ETrue, + TBool aBlackListed = EFalse ); /** * Fetches thumbnail image. @@ -359,11 +360,6 @@ * @contains indication whether file modified */ TBool CheckModifiedByPathL( const TDesC& aPath, const TInt64 aModified, TBool& modifiedChanged); - - /** - * @return TBool is store write protected - */ - TBool IsReadOnly(); private: /** @@ -372,10 +368,9 @@ * @since S60 v5.0 * @param aFs File server. * @param aDrive Drive the store used for - * @param aReadOnly set flag if store is write protected * @return New CThumbnailStore instance. */ - CThumbnailStore( RFs& aFs, TInt aDrive, TDesC& aImei, CThumbnailServer* aServer, const TBool aReadOnly); + CThumbnailStore( RFs& aFs, TInt aDrive, TDesC& aImei, CThumbnailServer* aServer); /** * Symbian 2nd phase constructor can leave. @@ -447,7 +442,7 @@ void StoreThumbnailL( const TDesC& aPath, const TDes8& aData, const TSize& aSize, const TSize& aOriginalSize, const TThumbnailFormat& aFormat, TInt aFlags, const TThumbnailSize& aThumbnailSize, const TInt64 aModified, - const TBool aThumbFromPath); + const TBool aThumbFromPath = ETrue); /** * Finds possible existing duplicate thumbnail. @@ -655,11 +650,6 @@ * How long previous flush took ms */ TInt iPreviousFlushDelay; - - /** - * is store write protected - */ - TBool iReadOnly; }; // End of File diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailcenrep.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailcenrep.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailcenrep.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -67,11 +67,6 @@ case EAudioFullScreenThumbnailSize: iSourceType = EAudio; break; - case EContactGridThumbnailSize: - case EContactListThumbnailSize: - case EContactFullScreenThumbnailSize: - iSourceType = EContact; - break; default: iSourceType = EUnknownSourceType; } @@ -85,8 +80,7 @@ TThumbnailAutoCreate::TThumbnailAutoCreate() : iImageGrid(EFalse), iImageList(EFalse), iImageFullscreen(EFalse), iVideoGrid(EFalse), iVideoList(EFalse), iVideoFullscreen(EFalse), - iAudioGrid(EFalse), iAudioList(EFalse), iAudioFullscreen(EFalse), - iContactGrid(EFalse), iContactList(EFalse), iContactFullscreen(EFalse) + iAudioGrid(EFalse), iAudioList(EFalse), iAudioFullscreen(EFalse) { // No implementation required } @@ -113,9 +107,7 @@ { iPersistentSizes.Close(); delete iAutoCreate; - iAutoCreate = NULL; delete iRepository; - iRepository = NULL; } // --------------------------------------------------------------------------- @@ -211,57 +203,6 @@ iPersistentSizes.AppendL( TThumbnailPersistentSize( EAudioFullScreenThumbnailSize, TSize( xSize, ySize ), flags, static_cast (raw_mode), format, autoCreate, TThumbnailPersistentSize::EFullscreen )); - -// Contact TN, set default values if not found - if(iRepository->Get( KSizeContactGridWidth, xSize ) != KErrNone) - { - xSize = 54; - } - if( iRepository->Get( KSizeContactGridHeight, ySize ) != KErrNone) - { - ySize = 54; - } - - if( iRepository->Get( KAutoCreateContactGrid, autoCreate ) != KErrNone) - { - autoCreate = 1; - } - - iPersistentSizes.AppendL( TThumbnailPersistentSize( EContactGridThumbnailSize, TSize( xSize, ySize ), - KGridAndListThumbnailCropped, static_cast (raw_mode), format, autoCreate, TThumbnailPersistentSize::EGrid )); - - if( iRepository->Get( KSizeContactListWidth, xSize ) != KErrNone) - { - xSize = 64; - } - if( iRepository->Get( KSizeContactListHeight, ySize ) != KErrNone) - { - ySize = 64; - } - if( iRepository->Get( KAutoCreateContactList, autoCreate ) != KErrNone) - { - autoCreate = 1; - } - - iPersistentSizes.AppendL( TThumbnailPersistentSize( EContactListThumbnailSize, TSize( xSize, ySize ), - KGridAndListThumbnailCropped, static_cast (raw_mode), format, autoCreate, TThumbnailPersistentSize::EList )); - - if( iRepository->Get( KSizeContactFullscreenWidth, xSize ) != KErrNone) - { - xSize = 250; - } - if( iRepository->Get( KSizeContactFullscreenHeight, ySize ) != KErrNone) - { - ySize = 250; - } - if( iRepository->Get( KAutoCreateContactFullscreen, autoCreate) != KErrNone) - { - autoCreate = 1; - } - - iPersistentSizes.AppendL( TThumbnailPersistentSize( EContactFullScreenThumbnailSize, TSize( xSize, ySize ), - flags, static_cast (raw_mode), format, autoCreate, TThumbnailPersistentSize::EFullscreen )); - iAutoCreate = new (ELeave) TThumbnailAutoCreate(); @@ -274,19 +215,6 @@ User::LeaveIfError( iRepository->Get( KAutoCreateAudioGrid, iAutoCreate->iAudioGrid )); User::LeaveIfError( iRepository->Get( KAutoCreateAudioList, iAutoCreate->iAudioList )); User::LeaveIfError( iRepository->Get( KAutoCreateAudioFullscreen, iAutoCreate->iAudioFullscreen )); - - if( iRepository->Get( KAutoCreateContactGrid, iAutoCreate->iContactGrid ) != KErrNone ) - { - iAutoCreate->iContactGrid = 1; - } - if( iRepository->Get( KAutoCreateContactList, iAutoCreate->iContactList ) != KErrNone ) - { - iAutoCreate->iContactList = 1; - } - if( iRepository->Get( KAutoCreateContactFullscreen, iAutoCreate->iContactFullscreen ) != KErrNone ) - { - iAutoCreate->iContactFullscreen = 1; - } } // --------------------------------------------------------------------------- diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailfetchedchecker.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailfetchedchecker.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailfetchedchecker.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -16,7 +16,6 @@ */ #include "thumbnailfetchedchecker.h" -#include "thumbnaillog.h" const int KMaxStoredEntries = 100; @@ -50,27 +49,13 @@ // CThumbnailFetchedChecker::LastFetchResult() // ----------------------------------------------------------------------------- // -TInt CThumbnailFetchedChecker::LastFetchResult( const TDesC& aUri, const TThumbnailSize aThumbnailSize ) +TInt CThumbnailFetchedChecker::LastFetchResult( const TDesC& aUri ) { - TN_DEBUG3( "CThumbnailFetchedChecker::LastFetchResult(aUri=%S aThumbnailSize=%d)", &aUri, aThumbnailSize); - - CEntry* entry = NULL; - TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, KErrNone ) ); - if ( !err && entry ) + TInt i = iNotFetched.FindInOrder( aUri, CEntry::FindCB ); + if ( i >= 0 && i < iNotFetched.Count() ) { - TInt ret = iNotFetched.FindInOrder( entry, CEntry::FindCB ); - if ( ret != KErrNotFound ) - { - TN_DEBUG1( "CThumbnailFetchedChecker::LastFetchResult() -> error found"); - delete entry; - entry = NULL; - return iNotFetched[ ret ]->iError; - } + return iNotFetched[ i ]->iError; } - - delete entry; - entry = NULL; - return KErrNone; } @@ -78,44 +63,31 @@ // CThumbnailFetchedChecker::SetFetchResult() // ----------------------------------------------------------------------------- // -void CThumbnailFetchedChecker::SetFetchResult( const TDesC& aUri, const TThumbnailSize aThumbnailSize, TInt aError ) +void CThumbnailFetchedChecker::SetFetchResult( const TDesC& aUri, TInt aError ) { - TN_DEBUG4( "CThumbnailFetchedChecker::SetFetchResult(aUri=%S aThumbnailSize=%d aError=%d)", &aUri, aThumbnailSize, aError); if ( aError == KErrNone ) { - // Remove successful results from store - CEntry* entry = NULL; - TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, aError ) ); - if ( !err && entry ) + // Do not store successful results + TInt i = iNotFetched.FindInOrder( aUri, CEntry::FindCB ); + if ( i >= 0 && i < iNotFetched.Count() ) { - TInt i = iNotFetched.FindInOrder( entry, CEntry::FindCB ); - if ( i >= 0 ) - { - TN_DEBUG2( "CThumbnailFetchedChecker::LastFetchResult() -> Remove successful results from store %d", iNotFetched.Count() ); - delete iNotFetched[ i ]; - iNotFetched[ i ] = NULL; - iNotFetched.Remove( i ); - } + delete iNotFetched[ i ]; + iNotFetched.Remove( i ); } - entry = NULL; - delete entry; } else { - // Add or update CEntry* entry = NULL; - TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, aError ) ); + TRAPD( err, entry = CEntry::NewL( aUri, aError ) ); if ( !err && entry ) { err = iNotFetched.Find( entry ); if ( err != KErrNotFound ) { - // update existing fetch result - TInt i = iNotFetched.FindInOrder( entry, CEntry::FindCB ); - if ( i >= 0 ) + TInt i = iNotFetched.FindInOrder( aUri, CEntry::FindCB ); + if ( i >= 0 && i < iNotFetched.Count() ) { - TN_DEBUG1( "CThumbnailFetchedChecker::LastFetchResult() -> Update fetched tn error" ); iNotFetched[ i ]->iError = aError; } } @@ -123,11 +95,9 @@ { if( iNotFetched.Count() < KMaxStoredEntries ) { - // insert new fetch result TInt err = iNotFetched.InsertInOrder( entry, CEntry::InsertCB ); if ( err == KErrNone ) { - TN_DEBUG2( "CThumbnailFetchedChecker::LastFetchResult() -> Inserted new fetched tn error %d", iNotFetched.Count()); entry = NULL; // owned by array now } } @@ -140,77 +110,25 @@ } // ----------------------------------------------------------------------------- -// CThumbnailFetchedChecker::DeleteFetchResult() -// ----------------------------------------------------------------------------- -// -void CThumbnailFetchedChecker::DeleteFetchResult( const TDesC& aUri ) - { - TN_DEBUG2( "CThumbnailFetchedChecker::DeleteFetchResult(%S)", &aUri); - // delete all entries of passed uri - TInt ret; - do - { - ret = iNotFetched.FindInOrder( aUri, CEntry::FindCBUri ); - if ( ret >= 0 ) - { - TN_DEBUG1( "CThumbnailFetchedChecker::DeleteFetchResult() -> Deteled URI from fetched list" ); - delete iNotFetched[ ret ]; - iNotFetched[ ret ] = NULL; - iNotFetched.Remove( ret ); - } - } - while(ret != KErrNotFound ); - - } - -// ----------------------------------------------------------------------------- -// CThumbnailFetchedChecker::LastFetchResult() -// ----------------------------------------------------------------------------- -// -void CThumbnailFetchedChecker::RenameFetchResultL( const TDesC& aNewUri, const TDesC& aOldUri ) - { - TN_DEBUG3( "CThumbnailFetchedChecker::RenameFetchResult(aNewUri=%S aOldUri=%S)", &aNewUri, &aOldUri); - // change every occurence of passed uri - TInt ret; - do - { - ret = iNotFetched.FindInOrder( aOldUri, CEntry::FindCBUri ); - if ( ret >= 0 ) - { - delete iNotFetched[ ret ]->iUri; - iNotFetched[ ret ]->iUri = NULL; - - iNotFetched[ ret ]->iUri = aNewUri.AllocL(); - TN_DEBUG1( "CThumbnailFetchedChecker::RenameeFetchResult() -> Renamed URI in fetched list" ); - } - } - while(ret != KErrNotFound ); - - } - -// ----------------------------------------------------------------------------- // CThumbnailFetchedChecker::Reset() // ----------------------------------------------------------------------------- // void CThumbnailFetchedChecker::Reset() { - TN_DEBUG1( "CThumbnailFetchedChecker::Reset()"); iNotFetched.ResetAndDestroy(); } // ----------------------------------------------------------------------------- -// CThumbnailFetchedChecker::CEntry::NewL() +// CThumbnailFetchedChecker::CEntry::New() // ----------------------------------------------------------------------------- // CThumbnailFetchedChecker::CEntry* CThumbnailFetchedChecker::CEntry::NewL( - const TDesC& aUri, const TThumbnailSize aThumbnailSize, TInt aError ) + const TDesC& aUri, TInt aError ) { - TN_DEBUG4( "CThumbnailFetchedChecker::CEntry::NewL(aUri=%S aThumbnailSize=%d aError=%d)", &aUri, aThumbnailSize, aError); CEntry* self = new (ELeave) CEntry(); if ( self ) { - self->iUri = aUri.AllocL(); - self->iSize = aThumbnailSize; + self->iUri = aUri.Alloc(); self->iError = aError; if ( !self->iUri ) { @@ -226,28 +144,8 @@ // ----------------------------------------------------------------------------- // TInt CThumbnailFetchedChecker::CEntry::FindCB( - const CThumbnailFetchedChecker::CEntry& aEntry, const CThumbnailFetchedChecker::CEntry& aEntry1 ) + const TDesC* aUri, const CThumbnailFetchedChecker::CEntry& aEntry ) { - TN_DEBUG1( "CThumbnailFetchedChecker::CEntry::FindCB"); - if( aEntry1.iSize == aEntry.iSize) - { - // return index if size and uri matches - return aEntry.iUri->CompareF( *( aEntry1.iUri ) ); - } - else - { - return KErrNotFound; - } - } - -// ----------------------------------------------------------------------------- -// CThumbnailFetchedChecker::CEntry::FindCBUri() -// ----------------------------------------------------------------------------- -// -TInt CThumbnailFetchedChecker::CEntry::FindCBUri( - const TDesC* aUri, const CThumbnailFetchedChecker::CEntry& aEntry ) - { - TN_DEBUG2( "CThumbnailFetchedChecker::CEntry::FindCBUri(aUri=%S", &aUri); return aUri->CompareF( *( aEntry.iUri ) ); } @@ -259,16 +157,7 @@ const CThumbnailFetchedChecker::CEntry& aEntry1, const CThumbnailFetchedChecker::CEntry& aEntry2 ) { - TN_DEBUG1( "CThumbnailFetchedChecker::CEntry::InsertCB"); - if( aEntry1.iSize == aEntry2.iSize) - { - // return index if size and uri matches - return aEntry1.iUri->CompareF( *( aEntry2.iUri ) ); - } - else - { - return KErrNotFound; - } + return aEntry1.iUri->CompareF( *( aEntry2.iUri ) ); } // ----------------------------------------------------------------------------- @@ -286,5 +175,4 @@ CThumbnailFetchedChecker::CEntry::~CEntry() { delete iUri; - iUri = NULL; } diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -43,13 +43,12 @@ const TSize& aSize, TDisplayMode aDisplayMode, TInt aPriority, RArray < TThumbnailPersistentSize >* aMissingSizes, const TDesC& aTargetUri, TThumbnailSize aThumbnailSize, const TInt64 aModified, - const CThumbnailManager::TThumbnailQualityPreference aQualityPreference, - TBool aVirtualUri ): + const CThumbnailManager::TThumbnailQualityPreference aQualityPreference ): CThumbnailTask( aProcessor, aPriority ), iServer( aServer ), iFlags( aFlags ), iSize( aSize ), iDisplayMode( aDisplayMode ), iMissingSizes( aMissingSizes ), iTargetUri( aTargetUri ), iThumbnailSize( aThumbnailSize ), iModified(aModified), - iQualityPreference( aQualityPreference ), iVirtualUri( aVirtualUri ) + iQualityPreference( aQualityPreference ) { TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CThumbnailGenerateTask()", this); @@ -95,7 +94,6 @@ { iMissingSizes->Reset(); delete iMissingSizes; - iMissingSizes = NULL; } if ( iBitmapHandle ) @@ -127,11 +125,11 @@ aStart.UniversalTime(); #endif - TBuf8< KMaxDataTypeLength > mimeType; - - if ( (!iVirtualUri && iFilename.Right(KExtLength).CompareF(KNonEmbeddedArtExt) == 0) || - (iVirtualUri && iTargetUri.Right(KExtLength).CompareF(KContactExt) == 0) ) // tparse panics with virtual URI - { + TParsePtrC parse(iFilename); + TPtrC ext(parse.Ext()); + TBuf8< KMaxDataTypeLength > mimeType; + if (ext.CompareF(KNonEmbeddedArtExt)== 0) + { mimeType.Copy( KImageMime ); } else @@ -140,7 +138,8 @@ } iProvider = iServer.ResolveProviderL(mimeType); - TN_DEBUG3( "CThumbnailGenerateTask(0x%08x) -- provider UID 0x%08x", this, iProvider->Uid()); + TN_DEBUG3( "CThumbnailGenerateTask(0x%08x) -- provider UID 0x%08x", this, + iProvider->Uid()); __ASSERT_DEBUG(( iProvider ), ThumbnailPanic( EThumbnailNullPointer )); @@ -198,7 +197,6 @@ void CThumbnailGenerateTask::DoCancel() { TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::DoCancel()", this ); - if ( iProvider ) { iProvider->CancelGetThumbnail(); @@ -330,31 +328,11 @@ // compTask is the scale task which returns the bitmap to the client CThumbnailScaleTask* complTask = NULL; - TInt err1 = KErrNone; - TInt err2 = KErrNone; - TBool isPublic = ETrue; - TBool isPublic2 = ETrue; - - if(iFilename != KNullDesC) - { - TRAP(err1, iServer.StoreForPathL(iFilename)); - - isPublic = iServer.IsPublicPath( iFilename ); - } - if(iTargetUri != KNullDesC ) - { - TRAP(err2, iServer.StoreForPathL(iTargetUri)); - - isPublic2 = iServer.IsPublicPath( iTargetUri ); - } - - // check if need to create more than one scale task if ( iMissingSizes ) { const TInt count = iMissingSizes->Count(); - // scale small thumbs first, because fullscreen encoding takes longer - for ( TInt i( count-1 ); i >= 0; i-- ) + for ( TInt i( 0 ); i < count; i++ ) { TThumbnailSize size = (*iMissingSizes)[ i ].iType; #ifdef _DEBUG @@ -366,8 +344,7 @@ if ( size == EFullScreenThumbnailSize || size == EVideoFullScreenThumbnailSize || size == EAudioFullScreenThumbnailSize || - size == EImageFullScreenThumbnailSize || - size == EContactFullScreenThumbnailSize ) + size == EImageFullScreenThumbnailSize ) { TN_DEBUG2( "*iMissingSizes)[ i ].iWidth == %d", (*iMissingSizes)[ i ].iSize.iWidth ); TN_DEBUG2( "*iMissingSizes)[ i ].iHeight == %d", (*iMissingSizes)[ i ].iSize.iHeight ); @@ -382,23 +359,41 @@ CThumbnailScaleTask* complTask = CThumbnailScaleTask::NewL( iProcessor, iServer, iFilename, aBitmap, iOriginalSize, (*iMissingSizes)[ i ].iSize, (*iMissingSizes)[ i ].iCrop, iDisplayMode, KMaxPriority, iTargetUri, (*iMissingSizes)[ i ].iType, iModified, iScaledBitmapToPool, iEXIF, - iRequestId, iVirtualUri); + iRequestId); CleanupStack::PushL( complTask ); + TInt err1 = KErrNone; + TInt err2 = KErrNone; + + if(iFilename != KNullDesC) + { + TRAP(err1, iServer.StoreForPathL(iFilename)); + } + + if(iTargetUri != KNullDesC ) + { + TRAP(err2, iServer.StoreForPathL(iTargetUri)); + } // if trying to access Z drive, don't try to store // don't want to store custom sizes - // don't store if from private directory - if( !isPublic || !isPublic2 || - err1 == KErrAccessDenied || err2 == KErrAccessDenied || - (*iMissingSizes)[ i ].iType == ECustomThumbnailSize || - (*iMissingSizes)[ i ].iType == EUnknownThumbnailSize ) + if( err1 == KErrAccessDenied || err2 == KErrAccessDenied || + (*iMissingSizes)[ i ].iType == ECustomThumbnailSize || + (*iMissingSizes)[ i ].iType == EUnknownThumbnailSize ) { complTask->SetDoStore( EFalse ); TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CreateScaleTasksL() - do not store", this ); } else { - complTask->SetDoStore( ETrue ); + if(iFilename != KNullDesC) + { + complTask->SetDoStore(iServer.IsPublicPath( iFilename )); + } + + if(iTargetUri != KNullDesC) + { + complTask->SetDoStore(iServer.IsPublicPath( iTargetUri )); + } } iProcessor.AddTaskL( complTask ); @@ -420,8 +415,7 @@ if ( iThumbnailSize == EFullScreenThumbnailSize || iThumbnailSize == EVideoFullScreenThumbnailSize || iThumbnailSize == EAudioFullScreenThumbnailSize || - iThumbnailSize == EImageFullScreenThumbnailSize || - iThumbnailSize == EContactFullScreenThumbnailSize) + iThumbnailSize == EImageFullScreenThumbnailSize ) { TInt width = iSize.iWidth; iSize.iWidth = iSize.iHeight; @@ -432,14 +426,22 @@ complTask = CThumbnailScaleTask::NewL( iProcessor, iServer, iFilename, aBitmap, iOriginalSize, iSize, iFlags& CThumbnailManager ::ECropToAspectRatio, iDisplayMode, KMaxPriority, iTargetUri, - iThumbnailSize, iModified, iScaledBitmapToPool, iEXIF, iRequestId, - iVirtualUri); + iThumbnailSize, iModified, iScaledBitmapToPool, iEXIF, iRequestId ); CleanupStack::PushL( complTask ); + TInt err1 = KErrNone; + TInt err2 = KErrNone; + if(iFilename != KNullDesC) + { + TRAP(err1, iServer.StoreForPathL(iFilename)); + } + if(iTargetUri != KNullDesC) + { + TRAP(err2, iServer.StoreForPathL(iTargetUri)); + } // if trying to access Z drive, don't try to store // don't want to store custom sizes - if( !isPublic || !isPublic2 || - err1 == KErrAccessDenied || err2 == KErrAccessDenied || + if( err1 == KErrAccessDenied || err2 == KErrAccessDenied || iThumbnailSize == ECustomThumbnailSize || iThumbnailSize == EUnknownThumbnailSize ) { @@ -448,7 +450,15 @@ } else { - complTask->SetDoStore( ETrue ); + if(iFilename != KNullDesC) + { + complTask->SetDoStore(iServer.IsPublicPath( iFilename )); + } + + if(iTargetUri != KNullDesC) + { + complTask->SetDoStore(iServer.IsPublicPath( iTargetUri )); + } } iProcessor.AddTaskL( complTask ); @@ -496,16 +506,16 @@ if(iFilename != KNullDesC) { iServer.StoreForPathL( iFilename )->StoreThumbnailL( - iFilename, tempBitmap, aOriginalSize, EFalse, iThumbnailSize, iModified, !iVirtualUri, ETrue ); + iFilename, tempBitmap, aOriginalSize, EFalse, iThumbnailSize, iModified, EFalse, ETrue ); //remove result from fetched checker - iServer.FetchedChecker().SetFetchResult( iFilename, iThumbnailSize, KErrNone ); + iServer.FetchedChecker().SetFetchResult( iFilename, KErrNone ); } else if(iTargetUri != KNullDesC) { iServer.StoreForPathL( iTargetUri )->StoreThumbnailL( - iTargetUri, tempBitmap, aOriginalSize, EFalse, iThumbnailSize, iModified, !iVirtualUri, ETrue ); + iTargetUri, tempBitmap, aOriginalSize, EFalse, iThumbnailSize, iModified, EFalse, ETrue ); //remove result from fetched checker - iServer.FetchedChecker().SetFetchResult( iTargetUri, iThumbnailSize, KErrNone ); + iServer.FetchedChecker().SetFetchResult( iTargetUri, KErrNone ); } CleanupStack::PopAndDestroy( tempBitmap ); diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailmdsquerytask.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailmdsquerytask.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailmdsquerytask.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -36,7 +36,7 @@ // CThumbnailMDSQueryTask::CThumbnailMDSQueryTask( CThumbnailTaskProcessor& aProcessor, TInt aPriority, CMdESession* aMdESession, CThumbnailServer& aServer): - CThumbnailTask( aProcessor, aPriority ), iMdESession( aMdESession ), iQuery(NULL), iServer(aServer), iUpdateToDb(ETrue) + CThumbnailTask( aProcessor, aPriority ), iMdESession( aMdESession ), iServer(aServer), iUpdateToDb(ETrue) { TN_DEBUG2( "CThumbnailMDSQueryTask(0x%08x)::CThumbnailMDSQueryTask()", this ); } @@ -55,7 +55,6 @@ { iQuery->Cancel(); delete iQuery; - iQuery = NULL; } } @@ -183,21 +182,14 @@ CMdENamespaceDef* defNamespace = &iMdESession->GetDefaultNamespaceDefL(); CMdEObjectDef& objDef = defNamespace->GetObjectDefL( MdeConstants::Object::KBaseObject ); - delete iQuery; - iQuery = NULL; + iQuery = iMdESession->NewObjectQueryL( *defNamespace, objDef, this ); + iQuery->SetResultMode( EQueryResultModeItem ); + + CMdELogicCondition& rootCondition = iQuery->Conditions(); + rootCondition.SetOperator( ELogicConditionOperatorOr ); - iQuery = iMdESession->NewObjectQueryL( *defNamespace, objDef, this ); - - if(iQuery) - { - iQuery->SetResultMode( EQueryResultModeItem ); - - CMdELogicCondition& rootCondition = iQuery->Conditions(); - rootCondition.SetOperator( ELogicConditionOperatorOr ); - - // add ID condition - rootCondition.AddObjectConditionL( aId ); - } + // add ID condition + rootCondition.AddObjectConditionL( aId ); } // --------------------------------------------------------------------------- diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailscaletask.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailscaletask.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailscaletask.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -42,15 +42,14 @@ aBitmap, const TSize& aOriginalSize, const TSize& aTargetSize, TBool aCrop, TDisplayMode aDisplayMode, TInt aPriority, const TDesC& aTargetUri, const TThumbnailSize aThumbnailSize, const TInt64 aModified, - TBool aBitmapToPool, const TBool aEXIF, const TThumbnailServerRequestId aRequestId, - const TBool aImportVirtual) + TBool aBitmapToPool, const TBool aEXIF, const TThumbnailServerRequestId aRequestId) { // We take ownership of aBitmap CleanupStack::PushL( aBitmap ); CThumbnailScaleTask* self = new( ELeave )CThumbnailScaleTask( aProcessor, aServer, aFilename, aBitmap, aOriginalSize, aTargetSize, aCrop, aDisplayMode, aPriority, aTargetUri, aThumbnailSize, aModified, - aBitmapToPool, aEXIF, aRequestId, aImportVirtual); + aBitmapToPool, aEXIF, aRequestId); CleanupStack::Pop( aBitmap ); CleanupStack::PushL( self ); self->ConstructL(); @@ -69,13 +68,12 @@ const TSize& aOriginalSize, const TSize& aTargetSize, TBool aCrop, TDisplayMode aDisplayMode, TInt aPriority, const TDesC& aTargetUri, const TThumbnailSize aThumbnailSize, const TInt64 aModified, - TBool aBitmapToPool, const TBool aEXIF, const TThumbnailServerRequestId aRequestId, - const TBool aVirtualUri): + TBool aBitmapToPool, const TBool aEXIF, const TThumbnailServerRequestId aRequestId): CThumbnailTask( aProcessor, aPriority ), iServer( aServer ), iOwnBitmap( aBitmap ), iOriginalSize( aOriginalSize ), iTargetSize(aTargetSize), iTargetSizeTN( aTargetSize ), iCrop( aCrop ), iDisplayMode( aDisplayMode ), iFilename( aFilename ), iTargetUri( aTargetUri ), iThumbnailSize(aThumbnailSize), iModified(aModified), - iBitmapToPool(aBitmapToPool), iEXIF(aEXIF), iVirtualUri( aVirtualUri ) + iBitmapToPool(aBitmapToPool), iEXIF(aEXIF) { TN_DEBUG2( "CThumbnailScaleTask(0x%08x)::CThumbnailScaleTask()", this ); @@ -121,7 +119,6 @@ // Scaled bitmap is owned by us, delete now delete iScaledBitmap; - iScaledBitmap = NULL; } @@ -241,8 +238,7 @@ if ( (iThumbnailSize == EFullScreenThumbnailSize || iThumbnailSize == EImageFullScreenThumbnailSize || iThumbnailSize == EVideoFullScreenThumbnailSize || - iThumbnailSize == EAudioFullScreenThumbnailSize || - iThumbnailSize == EContactFullScreenThumbnailSize) && + iThumbnailSize == EAudioFullScreenThumbnailSize) && iOriginalSize.iHeight < iTargetSize.iHeight && iOriginalSize.iWidth < iTargetSize.iWidth ) { @@ -352,20 +348,17 @@ if (iFilename != KNullDesC && iFilename.CompareF(iTargetUri) == 0) { // filename and target URI match, so thumb created from associated path - iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, - iThumbnailSize, iModified, !iVirtualUri, !iVirtualUri ); + iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, iThumbnailSize, iModified, ETrue ); } else { // thumb not created from associated path - iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, - iThumbnailSize, iModified, !iVirtualUri, EFalse ); + iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, iThumbnailSize, iModified, EFalse, EFalse ); } } else if (iFilename != KNullDesC) { - iServer.StoreThumbnailL( iFilename, iScaledBitmap, iOriginalSize, iCrop, - iThumbnailSize, iModified, !iVirtualUri, !iVirtualUri ); + iServer.StoreThumbnailL( iFilename, iScaledBitmap, iOriginalSize, iCrop, iThumbnailSize, iModified, ETrue ); } } diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -43,7 +43,6 @@ _LIT8( KThumbnailMimeImage, "image" ); _LIT8( KThumbnailMimeVideo, "video" ); _LIT8( KThumbnailMimeAudio, "audio" ); -_LIT8( KThumbnailMimeContact, "contact" ); const TChar KThumbnailMimeSeparatorChar = '/'; const TChar KThumbnailMimeWildCardChar = '*'; @@ -416,7 +415,6 @@ "CThumbnailServer::ThreadFunctionL() -- CActiveScheduler::Start() out" ); // Comes here if server gets shut down delete server; - server = NULL; CleanupStack::PopAndDestroy( scheduler ); } } @@ -463,7 +461,7 @@ { TN_DEBUG2( "CThumbnailServer::DropSession() - ref->iSession = 0x%08x", ref->iSession ); - delete ref->iBitmap; + delete ref->iBitmap; bpiter.RemoveCurrent(); TN_DEBUG2( "CThumbnailServer::DropSession() - deleted bitmap, left=%d", iBitmapPool.Count()); @@ -560,12 +558,12 @@ if (!aCheckExist) { StoreForPathL( aPath )->StoreThumbnailL( aPath, aBitmap, aOriginalSize, - aCropped, aThumbnailSize, aModified, aThumbFromPath, EFalse ); + aCropped, aThumbnailSize, aModified, aThumbFromPath ); } else if(BaflUtils::FileExists( iFs, aPath)) { StoreForPathL( aPath )->StoreThumbnailL( aPath, aBitmap, aOriginalSize, - aCropped, aThumbnailSize, aModified, aThumbFromPath, EFalse ); + aCropped, aThumbnailSize, aModified, aThumbFromPath ); } else { @@ -574,7 +572,7 @@ if( iFetchedChecker ) { - iFetchedChecker->SetFetchResult( aPath, aThumbnailSize, KErrNone ); + iFetchedChecker->SetFetchResult( aPath, KErrNone ); } } @@ -589,7 +587,7 @@ TN_DEBUG3( "CThumbnailServer::FetchThumbnailL(aPath=%S aThumbnailSize=%d)", &aPath, aThumbnailSize ); if( iFetchedChecker ) { - TInt err( iFetchedChecker->LastFetchResult( aPath, aThumbnailSize ) ); + TInt err( iFetchedChecker->LastFetchResult( aPath ) ); if ( err == KErrNone ) // To avoid useless sql gets that fails for sure { // custom sizes are not stored to db, skip fetching @@ -601,7 +599,7 @@ TRAP( err, StoreForPathL( aPath )->FetchThumbnailL( aPath, aThumbnail, aData, aThumbnailSize, aOriginalSize) ); if ( err != KErrNone ) { - iFetchedChecker->SetFetchResult( aPath, aThumbnailSize, err ); + iFetchedChecker->SetFetchResult( aPath, err ); } } User::LeaveIfError( err ); @@ -670,7 +668,7 @@ if( iFetchedChecker ) { - iFetchedChecker->DeleteFetchResult( aPath ); + iFetchedChecker->SetFetchResult( aPath, KErrNone ); } } @@ -856,7 +854,7 @@ if ( ref->iSession == aRequestId.iSession && ref->iRequestId == aRequestId.iRequestId ) { - delete ref->iBitmap; + delete ref->iBitmap; bpiter.RemoveCurrent(); TN_DEBUG2( "CThumbnailServer::DequeTask() - deleted bitmap, left=%d", @@ -948,7 +946,7 @@ } else { - if( iFormatting ) + if(iFormatting) { TN_DEBUG1( "CThumbnailServer::StoreForDriveL() - FORMATTING! - ABORT"); User::Leave( KErrNotSupported ); @@ -957,31 +955,17 @@ TVolumeInfo volumeInfo; TInt err = iFs.Volume( volumeInfo, aDrive ); - if ( err ) - { - // Locked - TN_DEBUG2( "CThumbnailServer::StoreForDriveL() - err %d", err); - User::Leave( err); - } - else if( volumeInfo.iDrive.iMediaAtt& KMediaAttLocked ) - { - TN_DEBUG1( "CThumbnailServer::StoreForDriveL() - locked"); - User::Leave( KErrAccessDenied ); - } - else if ( volumeInfo.iDrive.iDriveAtt& KDriveAttRom || + if ( err || volumeInfo.iDrive.iDriveAtt& KDriveAttRom || volumeInfo.iDrive.iDriveAtt& KDriveAttRemote || - volumeInfo.iDrive.iMediaAtt& KMediaAttWriteProtected ) + volumeInfo.iDrive.iMediaAtt& KMediaAttWriteProtected || + volumeInfo.iDrive.iMediaAtt& KMediaAttLocked ) { - // We support ROM disks and remote disks in read only mode. - TN_DEBUG1( "CThumbnailServer::StoreForDriveL() - rom/remote/write protected"); - res = CThumbnailStore::NewL( iFs, aDrive, iImei, this, ETrue ); + // We don't support ROM disks or remote mounts. Media + // must be read-write and not locked. + User::Leave( KErrAccessDenied); } - else - { - TN_DEBUG1( "CThumbnailServer::StoreForDriveL() - normal"); - res = CThumbnailStore::NewL( iFs, aDrive, iImei, this, EFalse ); - } - + + res = CThumbnailStore::NewL( iFs, aDrive, iImei, this ); CleanupStack::PushL( res ); iStores.InsertL( aDrive, res ); res->SetPersistentSizes(iPersistentSizes); @@ -1075,7 +1059,6 @@ if (store) { delete *store; - *store = NULL; iStores.Remove( aDrive ); } } @@ -1164,7 +1147,7 @@ // If drive-list entry is zero, drive is not available continue; } - + TInt err = iFs.Volume(volumeInfo, drive); TInt err_drive = iFs.Drive(driveInfo, drive); @@ -1279,45 +1262,62 @@ TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL()"); // 1. check path change - // 2. check timestamp change + // 2. check orientation change + // 3. check timestamp change + + TBool orientationChanged = EFalse; TBool modifiedChanged = EFalse; CThumbnailStore* store = StoreForPathL( aPath ); - TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - exist"); - - TBool exists = store->CheckModifiedByPathL(aPath, aModified, modifiedChanged); - - if(!exists) - { - TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - exists NO"); - //not found, needs to be generated - return EFalse; - } - - TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - modified ?"); + // placeholder for orientation check + orientationChanged = EFalse; - if (modifiedChanged) + if (orientationChanged) { - TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - modified YES"); - - // delete old thumbs - store->DeleteThumbnailsL(aPath, ETrue); - - if( iFetchedChecker ) - { - iFetchedChecker->DeleteFetchResult( aPath ); - } - - // need to create new thumbs + TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - orientation updated"); + + // orientation updated, no need to check further + return ETrue; } else { - TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - modified NO"); + TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - exist"); + + TBool exists = store->CheckModifiedByPathL(aPath, aModified, modifiedChanged); + + if(!exists) + { + TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - exists NO"); + //not found, needs to be generated + return EFalse; + } + + TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - modified ?"); - // not modified - return ETrue; + if (modifiedChanged) + { + TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - modified YES"); + + // delete old thumbs + store->DeleteThumbnailsL(aPath, ETrue); + + if( iFetchedChecker ) + { + iFetchedChecker->SetFetchResult( aPath, KErrNone ); + } + + // need to create new thumbs + } + else + { + TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - modified NO"); + + // not modified + return ETrue; + } } + TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - no thumbs found, create new"); @@ -1336,7 +1336,8 @@ if( iFetchedChecker ) { - iFetchedChecker->RenameFetchResultL( aNewPath, aCurrentPath ); + iFetchedChecker->SetFetchResult( aNewPath, iFetchedChecker->LastFetchResult(aCurrentPath) ); + iFetchedChecker->SetFetchResult( aCurrentPath, KErrNone ); } } @@ -1347,7 +1348,8 @@ TInt CThumbnailServer::MimeTypeFromFileExt( const TDesC& aFileName, TDataType& aMimeType ) { TBool found = ETrue; - TPtrC ext( aFileName.Right(KExtLength) ); // tparse panics with virtual URI + TParsePtrC parse( aFileName ); + TPtrC ext( parse.Ext() ); if ( ext.CompareF( KJpegExt ) == 0 || ext.CompareF( KJpgExt ) == 0) { @@ -1461,14 +1463,6 @@ { aMimeType = TDataType( KMatroskaVideoMime ); } - else if ( ext.CompareF( KContactExt ) == 0 ) - { - aMimeType = TDataType( KContactMime ); - } - else if ( ext.CompareF( KAlbumArtExt ) == 0 ) - { - aMimeType = TDataType( KAlbumArtMime ); - } else { aMimeType = TDataType( KNullDesC8 ); @@ -1506,10 +1500,6 @@ { return TThumbnailPersistentSize::EAudio; } - else if (mediaType.Compare(KThumbnailMimeContact) == 0) - { - return TThumbnailPersistentSize::EContact; - } return TThumbnailPersistentSize::EUnknownSourceType; } @@ -1539,11 +1529,6 @@ case EAudioFullScreenThumbnailSize: sourceType = TThumbnailPersistentSize::EAudio; break; - case EContactListThumbnailSize: - case EContactGridThumbnailSize: - case EContactFullScreenThumbnailSize: - sourceType = TThumbnailPersistentSize::EContact; - break; default: sourceType = TThumbnailPersistentSize::EUnknownSourceType; } @@ -1563,30 +1548,24 @@ mimeType.CompareF( KJpeg2000Mime ) == 0 || mimeType.CompareF( KGifMime ) == 0 || mimeType.CompareF( KPngMime ) == 0 || - mimeType.CompareF( KSvgMime ) == 0 || + mimeType.CompareF( KBmpMime ) == 0 || mimeType.CompareF( KMpgMime1 ) == 0 || mimeType.CompareF( KMpeg4Mime ) == 0 || mimeType.CompareF( KMp4Mime ) == 0 || mimeType.CompareF( KAviMime ) == 0 || + mimeType.CompareF( KVideo3gppMime ) == 0 || + mimeType.CompareF( KVideoWmvMime ) == 0 || + mimeType.CompareF( KRealVideoMime ) == 0 || mimeType.CompareF( KMp3Mime ) == 0 || - mimeType.CompareF( KNonEmbeddArtMime ) == 0 || - mimeType.CompareF( KM4aMime ) == 0 || mimeType.CompareF( KAacMime ) == 0 || mimeType.CompareF( KWmaMime ) == 0 || - mimeType.CompareF( KBmpMime ) == 0 || - mimeType.CompareF( KAudio3gppMime ) == 0 || - mimeType.CompareF( KVideo3gppMime ) == 0 || mimeType.CompareF( KAudioAmrMime ) == 0 || - mimeType.CompareF( KVideoWmvMime ) == 0 || mimeType.CompareF( KRealAudioMime ) == 0 || - mimeType.CompareF( KPmRealAudioPluginMime ) == 0 || + mimeType.CompareF( KM4aMime ) == 0 || + mimeType.CompareF( KFlashVideoMime ) == 0 || mimeType.CompareF( KPmRealVideoPluginMime ) == 0 || mimeType.CompareF( KPmRealVbVideoPluginMime ) == 0 || - mimeType.CompareF( KRealVideoMime ) == 0 || - mimeType.CompareF( KFlashVideoMime ) == 0 || - mimeType.CompareF( KMatroskaVideoMime ) == 0 || - mimeType.CompareF( KContactMime ) == 0 || - mimeType.CompareF( KAlbumArtMime ) == 0 ) + mimeType.CompareF( KPmRealAudioPluginMime ) == 0 ) { return ETrue; } @@ -1620,7 +1599,6 @@ "CThumbnailServer::E32Main() -- thread function out, result=%d", result ); delete cleanup; - cleanup = NULL; } if ( result != KErrNone ) { diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserversession.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserversession.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserversession.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -480,12 +480,6 @@ ModifyThumbnailSize(sourceType); } - // delete existing - if(params.iImport && params.iOverwrite) - { - Server()->DeleteThumbnailsL( params.iTargetUri); - } - // CreateThumbnails if (params.iControlFlags == EThumbnailGeneratePersistentSizesOnly) { @@ -643,19 +637,6 @@ TN_DEBUG2( "CThumbnailServerSession::RequestThumbByPathAsyncL() - thumbnail not found, err = %d", err ); - // don't try to create from virtual URI - if ( params.iVirtualUri ) - { - User::Leave(err); - } - - // disk space check only for stored sizes - if ( params.iThumbnailSize != ECustomThumbnailSize && - Server()->StoreForPathL(params.iFileName)->IsDiskFull() ) - { - User::Leave( KErrDiskFull ); - } - if ( (err == KErrNotFound || err == KErrAccessDenied) && !(params.iFlags& CThumbnailManager::EDoNotCreate) ) { @@ -663,6 +644,17 @@ // and retry the request using file handle err = KThumbnailErrThumbnailNotFound; } + else + { + User::Leave(err); + } + + // disk space check only for stored sizes + if ( params.iThumbnailSize != ECustomThumbnailSize && + Server()->StoreForPathL(params.iFileName)->IsDiskFull() ) + { + User::Leave( KErrDiskFull ); + } User::Leave(err); } @@ -810,8 +802,7 @@ TSize bitmapSize = bitmap->SizeInPixels(); - // scale small thumbs first, because fullscreen encoding takes longer - for ( TInt i( count-1 ); i >= 0; i-- ) + for ( TInt i( 0 ); i < count; i++ ) { if( bitmapSize.iWidth < bitmapSize.iHeight ) { @@ -820,8 +811,7 @@ if ( size == EFullScreenThumbnailSize || size == EVideoFullScreenThumbnailSize || size == EAudioFullScreenThumbnailSize || - size == EImageFullScreenThumbnailSize || - size == EContactFullScreenThumbnailSize ) + size == EImageFullScreenThumbnailSize ) { TInt height = (*missingSizes)[i].iSize.iHeight; (*missingSizes)[i].iSize.iHeight = (*missingSizes)[i].iSize.iWidth; @@ -835,8 +825,7 @@ *Server(), params.iTargetUri, bitmap, bitmapSize, (*missingSizes)[i].iSize, (*missingSizes)[i].iCrop, params.iDisplayMode, KMaxPriority, KNullDesC, (*missingSizes)[i].iType, params.iModified, EFalse, EFalse, - reqId, params.iVirtualUri); - + reqId); CleanupStack::PushL( scaleTask ); scaleTask->SetDoStore( ETrue ); Server()->Processor().AddTaskL( scaleTask ); @@ -884,12 +873,7 @@ "CThumbnailServerSession::CreateGenerateTaskFromFileHandleL() -- create thumbnail generation task for %S", ¶ms.iFileName ); // disk space check only for stored sizes - if ( params.iImport && - Server()->StoreForPathL(params.iTargetUri)->IsDiskFull() ) - { - User::Leave( KErrDiskFull ); - } - else if ( params.iThumbnailSize != ECustomThumbnailSize && + if ( params.iThumbnailSize != ECustomThumbnailSize && Server()->StoreForPathL(params.iFileName)->IsDiskFull() ) { User::Leave( KErrDiskFull ); @@ -907,28 +891,19 @@ TBool gridSizeOnly(EFalse); - if ( params.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview ) + if ( params.iQualityPreference == CThumbnailManager + ::EOptimizeForQualityWithPreview ) { gridSizeOnly = ETrue; } - // import vs. normal - if(params.iImport) - { - Server()->GetMissingSizesL( params.iTargetUri, sourceType, *missingSizes, gridSizeOnly); - } - else - { - Server()->GetMissingSizesL( params.iFileName, sourceType, *missingSizes, gridSizeOnly); - } + Server()->GetMissingSizesL( params.iFileName, sourceType, *missingSizes, gridSizeOnly); if ( missingSizes->Count() == 0) { // all thumbs already exist CleanupStack::PopAndDestroy( missingSizes ); delete missingSizes; - missingSizes = NULL; - if( aFile ) { aFile->Close(); @@ -973,8 +948,7 @@ CThumbnailGenerateTask* task = new( ELeave )CThumbnailGenerateTask( Server() ->Processor(), * Server(), aFile, NULL, ¶ms.iMimeType, params.iFlags, params.iSize, params.iDisplayMode, priority, missingSizes, params.iTargetUri, - params.iThumbnailSize, params.iModified, params.iQualityPreference, - params.iVirtualUri); + params.iThumbnailSize, params.iModified, params.iQualityPreference ); // do not store bitmaps to server pool when generating only if( params.iControlFlags & EThumbnailGeneratePersistentSizesOnly ) @@ -1060,8 +1034,6 @@ // all thumbs already exist CleanupStack::PopAndDestroy( missingSizes ); delete missingSizes; - missingSizes = NULL; - if ( aBuffer) { delete aBuffer; @@ -1088,8 +1060,7 @@ CThumbnailGenerateTask* task = new( ELeave )CThumbnailGenerateTask( Server() ->Processor(), * Server(), NULL, aBuffer, ¶ms.iMimeType, params.iFlags, params.iSize, params.iDisplayMode, priority, missingSizes, params.iTargetUri, - params.iThumbnailSize, params.iModified, params.iQualityPreference, - params.iVirtualUri); + params.iThumbnailSize, params.iModified, params.iQualityPreference ); // do not store bitmaps to server pool when generating only if( params.iControlFlags & EThumbnailGeneratePersistentSizesOnly ) @@ -1383,21 +1354,6 @@ params.iThumbnailSize = EAudioListThumbnailSize; } } - else if(aSourceType == TThumbnailPersistentSize::EContact) - { - if(params.iThumbnailSize == EFullScreenThumbnailSize) - { - params.iThumbnailSize = EContactFullScreenThumbnailSize; - } - else if(params.iThumbnailSize == EGridThumbnailSize) - { - params.iThumbnailSize = EContactGridThumbnailSize; - } - else if(params.iThumbnailSize == EListThumbnailSize) - { - params.iThumbnailSize = EContactListThumbnailSize; - } - } } //------------------------------------------------------------------------ @@ -1411,42 +1367,34 @@ // mime type if ( params.iMimeType.Des8() == KNullDesC8 && !Server()->SupportedMimeType(params.iMimeType) ) - { - // try parsing from file extension - if (params.iImport) - { - res = Server()->MimeTypeFromFileExt( params.iTargetUri, params.iMimeType ); - } - else - { - res = Server()->MimeTypeFromFileExt( params.iFileName, params.iMimeType ); - } - - if ( res == KErrNotFound ) - { - if( aFile ) - { - // parsed type not in the list, resolve from file - params.iMimeType = Server()->ResolveMimeTypeL(*aFile); - } - else - { - Server()->Fs().ShareProtected(); - RFile64 file; - CleanupClosePushL( file ); - - User::LeaveIfError( file.Open( Server()->Fs(), params.iFileName, EFileShareReadersOrWriters )); - TN_DEBUG2( "CThumbnailServerSession::ResolveMimeType - file handle opened for %S", ¶ms.iFileName ); - - params.iMimeType = Server()->ResolveMimeTypeL(file); - - file.Close(); - TN_DEBUG1("CThumbnailServerSession::ResolveMimeType - file handle closed"); - - CleanupStack::Pop( &file ); - } - } - } + { + // try parsing from file extension + res = Server()->MimeTypeFromFileExt( params.iFileName, params.iMimeType ); + if ( res == KErrNotFound ) + { + if( aFile ) + { + // parsed type not in the list, resolve from file + params.iMimeType = Server()->ResolveMimeTypeL(*aFile); + } + else + { + Server()->Fs().ShareProtected(); + RFile64 file; + CleanupClosePushL( file ); + + User::LeaveIfError( file.Open( Server()->Fs(), params.iFileName, EFileShareReadersOrWriters )); + TN_DEBUG2( "CThumbnailServerSession::ResolveMimeType - file handle opened for %S", ¶ms.iFileName ); + + params.iMimeType = Server()->ResolveMimeTypeL(file); + + file.Close(); + TN_DEBUG1("CThumbnailServerSession::ResolveMimeType - file handle closed"); + + CleanupStack::Pop( &file ); + } + } + } } @@ -1587,5 +1535,4 @@ } } - // End of file diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailstore.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailstore.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailstore.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -47,6 +47,7 @@ //Symbian^3 v4 _LIT( KThumbnailDatabaseName, ":[102830AB]thumbnail_v4.db" ); +_LIT( KDrv, ":"); // Allow access to database only for the server process const TSecurityPolicy KThumbnailDatabaseSecurityPolicy( TSecureId( @@ -166,9 +167,9 @@ // Two-phased constructor. // --------------------------------------------------------------------------- // -CThumbnailStore* CThumbnailStore::NewL( RFs& aFs, TInt aDrive, TDesC& aImei, CThumbnailServer* aServer, const TBool aReadOnly ) +CThumbnailStore* CThumbnailStore::NewL( RFs& aFs, TInt aDrive, TDesC& aImei, CThumbnailServer* aServer ) { - CThumbnailStore* self = new( ELeave )CThumbnailStore( aFs, aDrive, aImei, aServer, aReadOnly ); + CThumbnailStore* self = new( ELeave )CThumbnailStore( aFs, aDrive, aImei, aServer ); CleanupStack::PushL( self ); self->ConstructL(); CleanupStack::Pop( self ); @@ -222,9 +223,9 @@ // C++ default constructor can NOT contain any code, that might leave. // --------------------------------------------------------------------------- // -CThumbnailStore::CThumbnailStore( RFs& aFs, TInt aDrive, TDesC& aImei, CThumbnailServer* aServer, const TBool aReadOnly ): - iFs( aFs ), iDrive( aDrive ), iDriveChar( 0 ), iBatchItemCount(0), iImei(aImei), iServer(aServer), iDiskFullNotifier(NULL), - iDiskFull(EFalse), iActivityManager(NULL), iUnrecoverable(ETrue), iBatchFlushItemCount(KMInBatchItems), iReadOnly(aReadOnly) +CThumbnailStore::CThumbnailStore( RFs& aFs, TInt aDrive, TDesC& aImei, CThumbnailServer* aServer ): + iFs( aFs ), iDrive( aDrive ), iDriveChar( 0 ), iBatchItemCount(0), iImei(aImei), + iServer(aServer), iDiskFull(EFalse), iUnrecoverable(ETrue), iBatchFlushItemCount(KMInBatchItems) { // no implementation required } @@ -241,39 +242,31 @@ #ifdef _DEBUG iThumbCounter = 0; #endif - if(!iReadOnly) - { - HBufC* databasePath = HBufC::NewLC( KMaxFileName ); - TPtr pathPtr = databasePath->Des(); - User::LeaveIfError( RFs::DriveToChar( iDrive, iDriveChar )); - pathPtr.Append( iDriveChar ); - pathPtr.Append( KThumbnailDatabaseName ); - - //start disk space monitor - iDiskFullNotifier = CThumbnailStoreDiskSpaceNotifierAO::NewL( *this, - KDiskFullThreshold, - pathPtr ); - - CleanupStack::PopAndDestroy( databasePath ); - TN_DEBUG2( "CThumbnailStore::ConstructL() drive: %d", iDrive ); + HBufC* databasePath = HBufC::NewLC( KMaxFileName ); + TPtr pathPtr = databasePath->Des(); + User::LeaveIfError( RFs::DriveToChar( iDrive, iDriveChar )); + pathPtr.Append( iDriveChar ); + pathPtr.Append( KThumbnailDatabaseName ); - OpenDatabaseL(); + //start disk space monitor + iDiskFullNotifier = CThumbnailStoreDiskSpaceNotifierAO::NewL( *this, + KDiskFullThreshold, + pathPtr ); + + CleanupStack::PopAndDestroy( databasePath ); - // to monitor device activity - iActivityManager = CTMActivityManager::NewL( this, KStoreMaintenanceIdle); - iActivityManager->Start(); + TN_DEBUG2( "CThumbnailStore::ConstructL() drive: %d", iDrive ); - iDeleteThumbs = ETrue; - iCheckFilesExist = ETrue; - } - else - { - TN_DEBUG1( "CThumbnailStore::ConstructL() - read only, dymmy mode..." ); - iDeleteThumbs = EFalse; - iCheckFilesExist = EFalse; - iLastCheckedRowID = -1; - } + OpenDatabaseL(); + + // to monitor device activity + iActivityManager = CTMActivityManager::NewL( this, KStoreMaintenanceIdle); + iActivityManager->Start(); + + iDeleteThumbs = ETrue; + iCheckFilesExist = ETrue; + iLastCheckedRowID = -1; } // --------------------------------------------------------------------------- @@ -332,7 +325,16 @@ checkError = CheckVersion(); if(checkError == KErrNone) { +#ifdef _DEBUG + TN_DEBUG1( "CThumbnailStore::OpenDatabaseL() start CheckRowIDs"); + TTime aStart, aStop; + aStart.UniversalTime(); +#endif checkError = CheckRowIDs(); +#ifdef _DEBUG + aStop.UniversalTime(); + TN_DEBUG2( "CThumbnailStore::OpenDatabaseL() CheckRowIDs took %d ms", (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000); +#endif } } @@ -1075,12 +1077,6 @@ const TThumbnailSize& aThumbnailSize, const TInt64 aModified, const TBool aThumbFromPath ) { TN_DEBUG1( "CThumbnailStore::StoreThumbnailL( private ) in" ); - - if(iReadOnly) - { - TN_DEBUG1( "CThumbnailStore::StoreThumbnailL() read only, skip..." ); - return; - } #ifdef _DEBUG TTime aStart, aStop; @@ -1232,12 +1228,6 @@ { TSize thumbSize = aThumbnail->SizeInPixels(); TN_DEBUG4( "CThumbnailStore::StoreThumbnailL( public ) aThumbnailSize = %d, aThumbnailSize(%d,%d) IN", aThumbnailSize, thumbSize.iWidth, thumbSize.iHeight ); - - if(iReadOnly) - { - TN_DEBUG1( "CThumbnailStore::StoreThumbnailL() read only, skip..." ); - return; - } __ASSERT_DEBUG(( aThumbnail ), ThumbnailPanic( EThumbnailNullPointer )); @@ -1276,10 +1266,8 @@ flags |= KThumbnailDbFlagBlacklisted; } - if( (aThumbnailSize == EImageFullScreenThumbnailSize || - aThumbnailSize == EVideoFullScreenThumbnailSize || - aThumbnailSize == EAudioFullScreenThumbnailSize || - aThumbnailSize == EContactFullScreenThumbnailSize) && !aBlackListed ) + if( (aThumbnailSize == EImageFullScreenThumbnailSize || aThumbnailSize == EVideoFullScreenThumbnailSize || + aThumbnailSize == EAudioFullScreenThumbnailSize) && !aBlackListed ) { TN_DEBUG1( "CThumbnailStore::StoreThumbnailL( public ) - encode jpg" ); @@ -1287,20 +1275,17 @@ CleanupStack::PushL( data ); CImageEncoder* encoder = NULL; - - CImageEncoder::TOptions options = ( CImageEncoder::TOptions )( CImageEncoder::EOptionAlwaysThread ); - - TRAPD( decErr, encoder = CExtJpegEncoder::DataNewL( CExtJpegEncoder::EHwImplementation, data, options ) ); + TRAPD( decErr, encoder = CExtJpegEncoder::DataNewL( CExtJpegEncoder::EHwImplementation, data, CImageEncoder::EOptionAlwaysThread ) ); if ( decErr != KErrNone ) { TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( public ) - HW CExtJpegEncoder failed %d", decErr); - TRAPD( decErr, encoder = CExtJpegEncoder::DataNewL( CExtJpegEncoder::ESwImplementation, data, options ) ); + TRAPD( decErr, encoder = CExtJpegEncoder::DataNewL( CExtJpegEncoder::ESwImplementation, data, CImageEncoder::EOptionAlwaysThread ) ); if ( decErr != KErrNone ) { TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( public ) - SW CExtJpegEncoder failed %d", decErr); - TRAPD( decErr, encoder = CImageEncoder::DataNewL( data, KJpegMime(), options ) ); + TRAPD( decErr, encoder = CImageEncoder::DataNewL( data, KJpegMime(), CImageEncoder::EOptionAlwaysThread ) ); if ( decErr != KErrNone ) { TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( public ) - CImageEncoder failed %d", decErr); @@ -1333,7 +1318,7 @@ // Set some format specific data imageData->iSampleScheme = TJpegImageData::EColor444; - imageData->iQualityFactor = 80; + imageData->iQualityFactor = 75; // imageData - ownership passed to frameImageData after AppendImageData User::LeaveIfError(frameImageData->AppendImageData(imageData)); @@ -1382,7 +1367,7 @@ StoreThumbnailL( *path, buf->Ptr( 0 ), aThumbnail->SizeInPixels(), aOriginalSize, EThumbnailFormatFbsBitmap, flags, - aThumbnailSize, aModified, aThumbFromPath); + aThumbnailSize, aModified); CleanupStack::PopAndDestroy( buf ); } @@ -1403,12 +1388,6 @@ TBool CThumbnailStore::FindDuplicateL( const TDesC& aPath, const TThumbnailSize& aThumbnailSize ) { TN_DEBUG1( "CThumbnailStore::FindDuplicateL()" ); - - if(iReadOnly) - { - TN_DEBUG1( "CThumbnailStore::FindDuplicateL() read only, skip..." ); - return EFalse; - } User::LeaveIfError( CheckDbState() ); @@ -1505,12 +1484,6 @@ { TN_DEBUG2( "CThumbnailStore::GetMissingSizesL() aSourceType == %d", aSourceType ); - if(iReadOnly) - { - TN_DEBUG1( "CThumbnailStore::GetMissingSizesL() read only, skip..." ); - return; - } - User::LeaveIfError( CheckDbState() ); HBufC* path = aPath.AllocLC(); @@ -1620,12 +1593,6 @@ { TN_DEBUG3( "CThumbnailStore::FetchThumbnailL(%S) aThumbnailSize==%d", &aPath, aThumbnailSize ); - if(iReadOnly) - { - TN_DEBUG1( "CThumbnailStore::FetchThumbnailL() read only, skip..." ); - User::Leave( KErrNotFound ); - } - User::LeaveIfError( CheckDbState() ); HBufC* path = aPath.AllocLC(); @@ -1750,12 +1717,6 @@ { TN_DEBUG2( "CThumbnailStore::DeleteThumbnailsL(%S)", &aPath ); - if(iReadOnly) - { - TN_DEBUG1( "CThumbnailStore::DeleteThumbnailsL() read only, skip..." ); - return; - } - #ifdef _DEBUG TTime aStart, aStop; aStart.UniversalTime(); @@ -1955,12 +1916,6 @@ { TN_DEBUG2( "CThumbnailStore::RenameThumbnailsL(%S)", &aCurrentPath ); - if(iReadOnly) - { - TN_DEBUG1( "CThumbnailStore::RenameThumbnailsL() read only, skip..." ); - return; - } - #ifdef _DEBUG TTime aStart, aStop; aStart.UniversalTime(); @@ -2050,12 +2005,6 @@ StopAutoFlush(); - if(iReadOnly) - { - TN_DEBUG1( "CThumbnailStore::FlushCacheTable() read only, skip..." ); - return; - } - if(iBatchItemCount <= 0 || CheckDbState() != KErrNone) { // cache empty or db unusable @@ -2197,12 +2146,6 @@ { TN_DEBUG1( "CThumbnailStore::StartAutoFlush()" ); - if(iReadOnly) - { - TN_DEBUG1( "CThumbnailStore::StartAutoFlush() read only, skip..." ); - return; - } - TInt err = KErrNone; if( iAutoFlushTimer ) @@ -2384,13 +2327,6 @@ { TN_DEBUG2( "CThumbnailStore::CheckModifiedByPathL() %S", &aPath); - if(iReadOnly) - { - TN_DEBUG1( "CThumbnailStore::CheckModifiedByPathL() read only, skip..." ); - modifiedChanged = EFalse; - return ETrue; - } - User::LeaveIfError( CheckDbState() ); HBufC* path = aPath.AllocLC(); @@ -2470,16 +2406,6 @@ return ret; } - -// ----------------------------------------------------------------------------- -// IsReadOnly() -// ----------------------------------------------------------------------------- -// -TBool CThumbnailStore::IsReadOnly() - { - return iReadOnly; - } - // ----------------------------------------------------------------------------- // PrepareBlacklistedItemsForRetryL() // ----------------------------------------------------------------------------- @@ -2510,12 +2436,6 @@ TInt CThumbnailStore::DeleteMarkedL() { TN_DEBUG1( "CThumbnailStore::DeleteMarkedL()" ); - - if(iReadOnly) - { - TN_DEBUG1( "CThumbnailStore::DeleteMarkedL() read only, skip..." ); - return KErrAccessDenied; - } #ifdef _DEBUG TTime aStart, aStop; @@ -2607,12 +2527,6 @@ TInt CThumbnailStore::FileExistenceCheckL() { TN_DEBUG1( "CThumbnailStore::FileExistenceCheckL()" ); - - if(iReadOnly) - { - TN_DEBUG1( "CThumbnailStore::FileExistenceCheckL() read only, skip..." ); - return ETrue; - } #ifdef _DEBUG TTime aStart, aStop; @@ -2711,21 +2625,11 @@ void CThumbnailStore::StripDriveLetterL( TDes& aPath ) { TInt pos = aPath.Find(KDrv); - TInt pos2 = aPath.Find(KBackSlash); // if URI contains drive letter if ( pos == 1 ) { - // normal URI - if ( pos2 == 2 ) - { - aPath.Delete(0,pos+1); - } - // virtual URI - else - { - aPath.Replace(0,2,KBackSlash); - } + aPath.Delete(0,pos+1); } } @@ -2735,7 +2639,7 @@ // TInt CThumbnailStore::CheckDbState() { - if (iUnrecoverable && !iReadOnly) + if (iUnrecoverable) { TN_DEBUG1( "CThumbnailStore::CheckDbState() - database in unrecoverable state" ); __ASSERT_DEBUG( !iUnrecoverable, ThumbnailPanic( EThumbnailDatabaseUnrecoverable )); @@ -2765,11 +2669,6 @@ TBool CThumbnailStore::IsDiskFull() { - if(iReadOnly) - { - TN_DEBUG1( "CThumbnailStore::IsDiskFull() read only, skip..." ); - return EFalse; - } return iDiskFull; } @@ -2781,12 +2680,6 @@ { TN_DEBUG2( "CThumbnailStore::ActivityChanged() aActive == %d", aActive); - if( iReadOnly ) - { - TN_DEBUG1( "CThumbnailStore::ActivityChanged() read only, skip..." ); - return; - } - if( aActive ) { iIdle = EFalse; diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailtask.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailtask.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailtask.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -49,6 +49,7 @@ // CThumbnailTask::~CThumbnailTask() { + TN_DEBUG1( "CThumbnailTask::~CThumbnailTask()" ); Cancel(); CancelMessage(); @@ -231,6 +232,7 @@ // void CThumbnailTask::CancelMessage() { + TN_DEBUG1( "CThumbnailTask::CancelMessage()"); if ( ClientThreadAlive() ) { iMessage.Complete( KErrCancel ); diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/tmgetimei.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/tmgetimei.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/tmgetimei.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -45,7 +45,6 @@ Cancel(); delete iTelephony; - iTelephony = NULL; } TBuf CTMGetImei::GetIMEI() diff -r 60bb012f1157 -r 9e8b0cc88842 imagehandlingutilities/thumbnailmanager/tmiadrestart/src/tmiadrestart.cpp --- a/imagehandlingutilities/thumbnailmanager/tmiadrestart/src/tmiadrestart.cpp Wed Sep 15 12:32:44 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/tmiadrestart/src/tmiadrestart.cpp Wed Oct 13 14:53:56 2010 +0300 @@ -150,7 +150,6 @@ TRAP(err, MainL()); delete cleanup; - cleanup = NULL; __UHEAP_MARKEND; return err; }