--- a/imagehandling_plat/thumbnailmanager_api/tsrc/Bmarm/ThumbnailManagerTestU.DEF Tue Jul 06 14:37:18 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- LibEntryL__FR13CTestModuleIf @ 1 NONAME R3UNUSED ; LibEntryL(CTestModuleIf &)
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandling_plat/thumbnailmanager_api/tsrc/Bmarm/ThumbnailManagerTestu.def Thu Jul 08 15:45:05 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+ LibEntryL__FR13CTestModuleIf @ 1 NONAME R3UNUSED ; LibEntryL(CTestModuleIf &)
+
--- a/imagehandling_plat/thumbnailmanager_api/tsrc/Bwins/ThumbnailManagerTestU.DEF Tue Jul 06 14:37:18 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- ?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * __cdecl LibEntryL(class CTestModuleIf &)
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandling_plat/thumbnailmanager_api/tsrc/Bwins/ThumbnailManagerTestu.def Thu Jul 08 15:45:05 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+ ?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * __cdecl LibEntryL(class CTestModuleIf &)
+
--- a/imagehandling_plat/thumbnailmanager_api/tsrc/EABI/ThumbnailManagerTestU.def Tue Jul 06 14:37:18 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EXPORTS
- _Z9LibEntryLR13CTestModuleIf @ 1 NONAME
- _ZTI16CThumbnailCenRep @ 2 NONAME ; #<TI>#
- _ZTV16CThumbnailCenRep @ 3 NONAME ; #<VT>#
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandling_plat/thumbnailmanager_api/tsrc/eabi/ThumbnailManagerTestu.def Thu Jul 08 15:45:05 2010 +0300
@@ -0,0 +1,5 @@
+EXPORTS
+ _Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+ _ZTI16CThumbnailCenRep @ 2 NONAME ; #<TI>#
+ _ZTV16CThumbnailCenRep @ 3 NONAME ; #<VT>#
+
--- a/imagehandlinglib/BWINS/IHLU.DEF Tue Jul 06 14:37:18 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-EXPORTS
- ?CopyBitmapL@IHLBitmapUtil@@SAPAVCFbsBitmap@@ABV2@@Z @ 1 NONAME ; class CFbsBitmap * IHLBitmapUtil::CopyBitmapL(class CFbsBitmap const &)
- ?CopyBitmapL@IHLBitmapUtil@@SAPAVCFbsBitmap@@ABV2@ABVTRect@@@Z @ 2 NONAME ; class CFbsBitmap * IHLBitmapUtil::CopyBitmapL(class CFbsBitmap const &, class TRect const &)
- ?CopyBitmapLC@IHLBitmapUtil@@SAPAVCFbsBitmap@@ABV2@@Z @ 3 NONAME ; class CFbsBitmap * IHLBitmapUtil::CopyBitmapLC(class CFbsBitmap const &)
- ?CopyBitmapLC@IHLBitmapUtil@@SAPAVCFbsBitmap@@ABV2@ABVTRect@@@Z @ 4 NONAME ; class CFbsBitmap * IHLBitmapUtil::CopyBitmapLC(class CFbsBitmap const &, class TRect const &)
- ?CreateBitmapProcessorL@IHLProcessorFactory@@SAPAVMIHLBitmapProcessor@@K@Z @ 5 NONAME ; class MIHLBitmapProcessor * IHLProcessorFactory::CreateBitmapProcessorL(unsigned long)
- ?CreateImageViewerL@IHLViewerFactory@@SAPAVMIHLImageViewer@@ABVTSize@@AAVMIHLImage@@AAVMIHLBitmap@@AAVMIHLViewerObserver@@K@Z @ 6 NONAME ; class MIHLImageViewer * IHLViewerFactory::CreateImageViewerL(class TSize const &, class MIHLImage &, class MIHLBitmap &, class MIHLViewerObserver &, unsigned long)
- ?CreateL@IHLBitmap@@SAPAVMIHLBitmap@@XZ @ 7 NONAME ; class MIHLBitmap * IHLBitmap::CreateL(void)
- ?CreateL@IHLScaler@@SAPAVMIHLScaler@@K@Z @ 8 NONAME ; class MIHLScaler * IHLScaler::CreateL(unsigned long)
- ?DuplicateBitmapL@IHLBitmapUtil@@SAPAVCFbsBitmap@@ABV2@@Z @ 9 NONAME ; class CFbsBitmap * IHLBitmapUtil::DuplicateBitmapL(class CFbsBitmap const &)
- ?DuplicateBitmapLC@IHLBitmapUtil@@SAPAVCFbsBitmap@@ABV2@@Z @ 10 NONAME ; class CFbsBitmap * IHLBitmapUtil::DuplicateBitmapLC(class CFbsBitmap const &)
- ?OpenFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFile@@@Z @ 11 NONAME ; class MIHLFileImage * IHLImageFactory::OpenFileImageL(class RFile &)
- ?OpenFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFile@@H@Z @ 12 NONAME ; class MIHLFileImage * IHLImageFactory::OpenFileImageL(class RFile &, int)
- ?OpenFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFs@@ABVTDesC16@@@Z @ 13 NONAME ; class MIHLFileImage * IHLImageFactory::OpenFileImageL(class RFs &, class TDesC16 const &)
- ?OpenFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFs@@ABVTDesC16@@H@Z @ 14 NONAME ; class MIHLFileImage * IHLImageFactory::OpenFileImageL(class RFs &, class TDesC16 const &, int)
- ?ScaleBitmap@IHLBitmapUtil@@SAHABVCFbsBitmap@@AAV2@K@Z @ 15 NONAME ; int IHLBitmapUtil::ScaleBitmap(class CFbsBitmap const &, class CFbsBitmap &, unsigned long)
- ?ScaleBitmap@IHLBitmapUtil@@SAHABVCFbsBitmap@@ABVTRect@@AAV2@1K@Z @ 16 NONAME ; int IHLBitmapUtil::ScaleBitmap(class CFbsBitmap const &, class TRect const &, class CFbsBitmap &, class TRect const &, unsigned long)
- ?OpenFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFile@@HK@Z @ 17 NONAME ; class MIHLFileImage * IHLImageFactory::OpenFileImageL(class RFile &, int, unsigned long)
- ?OpenFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFs@@ABVTDesC16@@HK@Z @ 18 NONAME ; class MIHLFileImage * IHLImageFactory::OpenFileImageL(class RFs &, class TDesC16 const &, int, unsigned long)
- ?OpenBufferedFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFs@@ABVTDesC8@@@Z @ 19 NONAME ; class MIHLFileImage * IHLImageFactory::OpenBufferedFileImageL(class RFs &, class TDesC8 const &)
- ?OpenBufferedFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFs@@ABVTDesC8@@H@Z @ 20 NONAME ; class MIHLFileImage * IHLImageFactory::OpenBufferedFileImageL(class RFs &, class TDesC8 const &, int)
- ?OpenBufferedFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFs@@ABVTDesC8@@HK@Z @ 21 NONAME ; class MIHLFileImage * IHLImageFactory::OpenBufferedFileImageL(class RFs &, class TDesC8 const &, int, unsigned long)
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandlinglib/BWINS/IHLu.def Thu Jul 08 15:45:05 2010 +0300
@@ -0,0 +1,23 @@
+EXPORTS
+ ?CopyBitmapL@IHLBitmapUtil@@SAPAVCFbsBitmap@@ABV2@@Z @ 1 NONAME ; class CFbsBitmap * IHLBitmapUtil::CopyBitmapL(class CFbsBitmap const &)
+ ?CopyBitmapL@IHLBitmapUtil@@SAPAVCFbsBitmap@@ABV2@ABVTRect@@@Z @ 2 NONAME ; class CFbsBitmap * IHLBitmapUtil::CopyBitmapL(class CFbsBitmap const &, class TRect const &)
+ ?CopyBitmapLC@IHLBitmapUtil@@SAPAVCFbsBitmap@@ABV2@@Z @ 3 NONAME ; class CFbsBitmap * IHLBitmapUtil::CopyBitmapLC(class CFbsBitmap const &)
+ ?CopyBitmapLC@IHLBitmapUtil@@SAPAVCFbsBitmap@@ABV2@ABVTRect@@@Z @ 4 NONAME ; class CFbsBitmap * IHLBitmapUtil::CopyBitmapLC(class CFbsBitmap const &, class TRect const &)
+ ?CreateBitmapProcessorL@IHLProcessorFactory@@SAPAVMIHLBitmapProcessor@@K@Z @ 5 NONAME ; class MIHLBitmapProcessor * IHLProcessorFactory::CreateBitmapProcessorL(unsigned long)
+ ?CreateImageViewerL@IHLViewerFactory@@SAPAVMIHLImageViewer@@ABVTSize@@AAVMIHLImage@@AAVMIHLBitmap@@AAVMIHLViewerObserver@@K@Z @ 6 NONAME ; class MIHLImageViewer * IHLViewerFactory::CreateImageViewerL(class TSize const &, class MIHLImage &, class MIHLBitmap &, class MIHLViewerObserver &, unsigned long)
+ ?CreateL@IHLBitmap@@SAPAVMIHLBitmap@@XZ @ 7 NONAME ; class MIHLBitmap * IHLBitmap::CreateL(void)
+ ?CreateL@IHLScaler@@SAPAVMIHLScaler@@K@Z @ 8 NONAME ; class MIHLScaler * IHLScaler::CreateL(unsigned long)
+ ?DuplicateBitmapL@IHLBitmapUtil@@SAPAVCFbsBitmap@@ABV2@@Z @ 9 NONAME ; class CFbsBitmap * IHLBitmapUtil::DuplicateBitmapL(class CFbsBitmap const &)
+ ?DuplicateBitmapLC@IHLBitmapUtil@@SAPAVCFbsBitmap@@ABV2@@Z @ 10 NONAME ; class CFbsBitmap * IHLBitmapUtil::DuplicateBitmapLC(class CFbsBitmap const &)
+ ?OpenFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFile@@@Z @ 11 NONAME ; class MIHLFileImage * IHLImageFactory::OpenFileImageL(class RFile &)
+ ?OpenFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFile@@H@Z @ 12 NONAME ; class MIHLFileImage * IHLImageFactory::OpenFileImageL(class RFile &, int)
+ ?OpenFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFs@@ABVTDesC16@@@Z @ 13 NONAME ; class MIHLFileImage * IHLImageFactory::OpenFileImageL(class RFs &, class TDesC16 const &)
+ ?OpenFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFs@@ABVTDesC16@@H@Z @ 14 NONAME ; class MIHLFileImage * IHLImageFactory::OpenFileImageL(class RFs &, class TDesC16 const &, int)
+ ?ScaleBitmap@IHLBitmapUtil@@SAHABVCFbsBitmap@@AAV2@K@Z @ 15 NONAME ; int IHLBitmapUtil::ScaleBitmap(class CFbsBitmap const &, class CFbsBitmap &, unsigned long)
+ ?ScaleBitmap@IHLBitmapUtil@@SAHABVCFbsBitmap@@ABVTRect@@AAV2@1K@Z @ 16 NONAME ; int IHLBitmapUtil::ScaleBitmap(class CFbsBitmap const &, class TRect const &, class CFbsBitmap &, class TRect const &, unsigned long)
+ ?OpenFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFile@@HK@Z @ 17 NONAME ; class MIHLFileImage * IHLImageFactory::OpenFileImageL(class RFile &, int, unsigned long)
+ ?OpenFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFs@@ABVTDesC16@@HK@Z @ 18 NONAME ; class MIHLFileImage * IHLImageFactory::OpenFileImageL(class RFs &, class TDesC16 const &, int, unsigned long)
+ ?OpenBufferedFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFs@@ABVTDesC8@@@Z @ 19 NONAME ; class MIHLFileImage * IHLImageFactory::OpenBufferedFileImageL(class RFs &, class TDesC8 const &)
+ ?OpenBufferedFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFs@@ABVTDesC8@@H@Z @ 20 NONAME ; class MIHLFileImage * IHLImageFactory::OpenBufferedFileImageL(class RFs &, class TDesC8 const &, int)
+ ?OpenBufferedFileImageL@IHLImageFactory@@SAPAVMIHLFileImage@@AAVRFs@@ABVTDesC8@@HK@Z @ 21 NONAME ; class MIHLFileImage * IHLImageFactory::OpenBufferedFileImageL(class RFs &, class TDesC8 const &, int, unsigned long)
+
--- a/imagehandlinglib/EABI/IHLU.DEF Tue Jul 06 14:37:18 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-EXPORTS
- _ZN13IHLBitmapUtil11CopyBitmapLERK10CFbsBitmap @ 1 NONAME
- _ZN13IHLBitmapUtil11CopyBitmapLERK10CFbsBitmapRK5TRect @ 2 NONAME
- _ZN13IHLBitmapUtil11ScaleBitmapERK10CFbsBitmapRK5TRectRS0_S5_m @ 3 NONAME
- _ZN13IHLBitmapUtil11ScaleBitmapERK10CFbsBitmapRS0_m @ 4 NONAME
- _ZN13IHLBitmapUtil12CopyBitmapLCERK10CFbsBitmap @ 5 NONAME
- _ZN13IHLBitmapUtil12CopyBitmapLCERK10CFbsBitmapRK5TRect @ 6 NONAME
- _ZN13IHLBitmapUtil16DuplicateBitmapLERK10CFbsBitmap @ 7 NONAME
- _ZN13IHLBitmapUtil17DuplicateBitmapLCERK10CFbsBitmap @ 8 NONAME
- _ZN15IHLImageFactory14OpenFileImageLER3RFsRK7TDesC16 @ 9 NONAME
- _ZN15IHLImageFactory14OpenFileImageLER3RFsRK7TDesC16i @ 10 NONAME
- _ZN15IHLImageFactory14OpenFileImageLER5RFile @ 11 NONAME
- _ZN15IHLImageFactory14OpenFileImageLER5RFilei @ 12 NONAME
- _ZN16IHLViewerFactory18CreateImageViewerLERK5TSizeR9MIHLImageR10MIHLBitmapR18MIHLViewerObserverm @ 13 NONAME
- _ZN19IHLProcessorFactory22CreateBitmapProcessorLEm @ 14 NONAME
- _ZN9IHLBitmap7CreateLEv @ 15 NONAME
- _ZN9IHLScaler7CreateLEm @ 16 NONAME
- _ZN15IHLImageFactory14OpenFileImageLER3RFsRK7TDesC16im @ 17 NONAME
- _ZN15IHLImageFactory14OpenFileImageLER5RFileim @ 18 NONAME
- _ZN15IHLImageFactory22OpenBufferedFileImageLER3RFsRK6TDesC8 @ 19 NONAME
- _ZN15IHLImageFactory22OpenBufferedFileImageLER3RFsRK6TDesC8i @ 20 NONAME
- _ZN15IHLImageFactory22OpenBufferedFileImageLER3RFsRK6TDesC8im @ 21 NONAME
-
--- a/imagehandlinglib/Src/IHLDebugPrint.h Tue Jul 06 14:37:18 2010 +0300
+++ b/imagehandlinglib/Src/IHLDebugPrint.h Thu Jul 08 15:45:05 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)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandlinglib/eabi/IHLu.def Thu Jul 08 15:45:05 2010 +0300
@@ -0,0 +1,23 @@
+EXPORTS
+ _ZN13IHLBitmapUtil11CopyBitmapLERK10CFbsBitmap @ 1 NONAME
+ _ZN13IHLBitmapUtil11CopyBitmapLERK10CFbsBitmapRK5TRect @ 2 NONAME
+ _ZN13IHLBitmapUtil11ScaleBitmapERK10CFbsBitmapRK5TRectRS0_S5_m @ 3 NONAME
+ _ZN13IHLBitmapUtil11ScaleBitmapERK10CFbsBitmapRS0_m @ 4 NONAME
+ _ZN13IHLBitmapUtil12CopyBitmapLCERK10CFbsBitmap @ 5 NONAME
+ _ZN13IHLBitmapUtil12CopyBitmapLCERK10CFbsBitmapRK5TRect @ 6 NONAME
+ _ZN13IHLBitmapUtil16DuplicateBitmapLERK10CFbsBitmap @ 7 NONAME
+ _ZN13IHLBitmapUtil17DuplicateBitmapLCERK10CFbsBitmap @ 8 NONAME
+ _ZN15IHLImageFactory14OpenFileImageLER3RFsRK7TDesC16 @ 9 NONAME
+ _ZN15IHLImageFactory14OpenFileImageLER3RFsRK7TDesC16i @ 10 NONAME
+ _ZN15IHLImageFactory14OpenFileImageLER5RFile @ 11 NONAME
+ _ZN15IHLImageFactory14OpenFileImageLER5RFilei @ 12 NONAME
+ _ZN16IHLViewerFactory18CreateImageViewerLERK5TSizeR9MIHLImageR10MIHLBitmapR18MIHLViewerObserverm @ 13 NONAME
+ _ZN19IHLProcessorFactory22CreateBitmapProcessorLEm @ 14 NONAME
+ _ZN9IHLBitmap7CreateLEv @ 15 NONAME
+ _ZN9IHLScaler7CreateLEm @ 16 NONAME
+ _ZN15IHLImageFactory14OpenFileImageLER3RFsRK7TDesC16im @ 17 NONAME
+ _ZN15IHLImageFactory14OpenFileImageLER5RFileim @ 18 NONAME
+ _ZN15IHLImageFactory22OpenBufferedFileImageLER3RFsRK6TDesC8 @ 19 NONAME
+ _ZN15IHLImageFactory22OpenBufferedFileImageLER3RFsRK6TDesC8i @ 20 NONAME
+ _ZN15IHLImageFactory22OpenBufferedFileImageLER3RFsRK6TDesC8im @ 21 NONAME
+
--- a/imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailaudioprovider.cpp Tue Jul 06 14:37:18 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailaudioprovider.cpp Thu Jul 08 15:45:05 2010 +0300
@@ -152,6 +152,7 @@
{
TN_DEBUG1( "CThumbnailAudioProvider::GetThumbnailL() - buffer no mime" );
__ASSERT_DEBUG((EFalse), User::Panic(_L("CThumbnailAudioProvider::GetThumbnailL"), KErrNotSupported));
+ User::Leave( KErrNotSupported );
}
// ---------------------------------------------------------------------------
--- a/imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailimagedecoderv3.cpp Tue Jul 06 14:37:18 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailimagedecoderv3.cpp Thu Jul 08 15:45:05 2010 +0300
@@ -216,7 +216,7 @@
iDecoder = NULL;
CImageDecoder::TOptions options = ( CImageDecoder::TOptions )(
- CImageDecoder::EOptionNoDither | CImageDecoder::EPreferFastDecode | CImageDecoder::EOptionAlwaysThread );
+ CImageDecoder::EOptionNoDither );
TRAPD( decErr, iDecoder = CExtJpegDecoder::DataNewL(
CExtJpegDecoder::EHwImplementation, iFs, *iBuffer, options ));
--- a/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoder.cpp Tue Jul 06 14:37:18 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoder.cpp Thu Jul 08 15:45:05 2010 +0300
@@ -377,12 +377,12 @@
if ( aFlags == CThumbnailManager::EOptimizeForQuality )
{
options = ( CImageDecoder::TOptions )( CImageDecoder
- ::EOptionNoDither | CImageDecoder::EOptionAlwaysThread );
+ ::EOptionNoDither );
}
else
{
options = ( CImageDecoder::TOptions )( CImageDecoder
- ::EOptionNoDither | CImageDecoder::EPreferFastDecode | CImageDecoder::EOptionAlwaysThread );
+ ::EOptionNoDither | CImageDecoder::EPreferFastDecode );
}
if ( IsSvg())
@@ -576,12 +576,12 @@
CImageDecoder::TOptions options;
if ( aFlags == CThumbnailManager::EOptimizeForQuality )
{
- options = ( CImageDecoder::TOptions )( CImageDecoder::EOptionNoDither | CImageDecoder::EOptionAlwaysThread );
+ options = ( CImageDecoder::TOptions )( CImageDecoder::EOptionNoDither );
}
else
{
options = ( CImageDecoder::TOptions )( CImageDecoder::EOptionNoDither |
- CImageDecoder::EPreferFastDecode | CImageDecoder::EOptionAlwaysThread );
+ CImageDecoder::EPreferFastDecode );
}
TRAPD( err, iDecoder = CExtJpegDecoder::DataNewL( iFs, * iExifThumbImage, options ));
--- a/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoderv2.cpp Tue Jul 06 14:37:18 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoderv2.cpp Thu Jul 08 15:45:05 2010 +0300
@@ -170,7 +170,7 @@
iDecoder = NULL;
CImageDecoder::TOptions options = ( CImageDecoder::TOptions )(
- CImageDecoder::EOptionNoDither | CImageDecoder::EPreferFastDecode | CImageDecoder::EOptionAlwaysThread );
+ CImageDecoder::EOptionNoDither );
TRAPD( decErr, iDecoder = CExtJpegDecoder::DataNewL(
CExtJpegDecoder::EHwImplementation, iFs, *iBuffer, options ));
--- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/inc/thumbagprocessor.h Tue Jul 06 14:37:18 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/inc/thumbagprocessor.h Thu Jul 08 15:45:05 2010 +0300
@@ -62,7 +62,8 @@
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;
@@ -166,7 +167,9 @@
* @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<TItemId>& aIDArray, const RPointerArray<HBufC>& aObjectUriArray, TBool aPresent );
+ void AddToQueueL( TObserverNotificationType aType, TThumbnailGenerationItemType aItemType,
+ const RArray<TItemId>& aIDArray, const RPointerArray<HBufC>& aObjectUriArray,
+ TBool aPresent );
/**
* Calls Thumbnail Manager to create thumbnails
--- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp Tue Jul 06 14:37:18 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp Thu Jul 08 15:45:05 2010 +0300
@@ -1288,6 +1288,52 @@
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<iGenerationQueue.Count() || itemIndex == KErrNotFound;i++)
+ {
+ if(iGenerationQueue[i].iItemAction == EGenerationItemActionDelete)
+ {
+ itemIndex = i;
+ }
+ }
+
+ if(itemIndex >= 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 )
@@ -1313,54 +1359,6 @@
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<iGenerationQueue.Count() || itemIndex == KErrNotFound;i++)
- {
- if(iGenerationQueue[i].iItemAction == EGenerationItemActionDelete)
- {
- itemIndex = i;
- }
- }
-
- if(itemIndex >= 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");
@@ -1687,8 +1685,9 @@
}
//check if forced run needs to continue
- if ( iModifyItemCount || iUnknownItemCount > 0 )
+ if ( iModifyItemCount > 0 || iUnknownItemCount > 0 || iDeleteItemCount > 0 )
{
+ TN_DEBUG1( "CThumbAGProcessor::ActivateAO() - iModifyItemCount > 0 || iUnknownItemCount > 0 || iDeleteItemCount > 0");
SetForceRun( ETrue );
}
else
--- a/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/test_qtnmwrapper.cpp Tue Jul 06 14:37:18 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/test_qtnmwrapper.cpp Thu Jul 08 15:45:05 2010 +0300
@@ -470,7 +470,25 @@
return QTest::qExec(&tc, c, v);
}
#else
- QTEST_MAIN(TestThumbnailManager)
+ int main (int argc, char* argv[])
+ {
+ for ( int i=0;i<argc; i++){
+ if (strcmp(argv[i], "-o")==0 && i+1 <argc ){
+ //let's make sure that folder specified after -o exists
+ QDir file( QString::fromLatin1( argv[i+1] ));
+ QString s = file.absolutePath ();
+ s = s.left( s.lastIndexOf(file.dirName()) );
+ if ( !file.exists(s) ){
+ file.mkpath(s);
+ }
+ }
+ }
+
+ QApplication app(argc, argv);
+ QTEST_DISABLE_KEYPAD_NAVIGATION
+ TestThumbnailManager tc;
+ return QTest::qExec(&tc, argc, argv);
+ }
#endif
#include "test_qtnmwrapper.moc"
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailfetchedchecker.h Tue Jul 06 14:37:18 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailfetchedchecker.h Thu Jul 08 15:45:05 2010 +0300
@@ -18,6 +18,7 @@
#define THUMBNAILFETCHEDCHECKER_H
#include <e32base.h>
+#include <thumbnailmanager.h>
NONSHARABLE_CLASS( CThumbnailFetchedChecker ): public CBase
{
@@ -25,8 +26,10 @@
static CThumbnailFetchedChecker* NewL();
virtual ~CThumbnailFetchedChecker();
public:
- TInt LastFetchResult( const TDesC& aUri );
- void SetFetchResult( const TDesC& aUri, TInt aError );
+ 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 );
void Reset();
private:
CThumbnailFetchedChecker();
@@ -34,13 +37,15 @@
NONSHARABLE_CLASS( CEntry ) : public CBase
{
public:
- static CEntry* NewL( const TDesC& aUri, TInt aError );
- static TInt FindCB( const TDesC* aUri, const CEntry& aEntry );
+ 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 TInt InsertCB( const CEntry& aEntry1, const CEntry& aEntry2 );
CEntry();
virtual ~CEntry();
public:
HBufC* iUri;
+ TInt32 iSize;
TInt iError;
};
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailstore.h Tue Jul 06 14:37:18 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailstore.h Thu Jul 08 15:45:05 2010 +0300
@@ -208,9 +208,10 @@
* @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 );
+ static CThumbnailStore* NewL( RFs& aFs, TInt aDrive, TDesC& aImei, CThumbnailServer* aServer, const TBool aReadOnly );
/**
* Destructor
@@ -358,6 +359,11 @@
* @contains indication whether file modified
*/
TBool CheckModifiedByPathL( const TDesC& aPath, const TInt64 aModified, TBool& modifiedChanged);
+
+ /**
+ * @return TBool is store write protected
+ */
+ TBool IsReadOnly();
private:
/**
@@ -366,9 +372,10 @@
* @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);
+ CThumbnailStore( RFs& aFs, TInt aDrive, TDesC& aImei, CThumbnailServer* aServer, const TBool aReadOnly);
/**
* Symbian 2nd phase constructor can leave.
@@ -648,6 +655,11 @@
* How long previous flush took ms
*/
TInt iPreviousFlushDelay;
+
+ /**
+ * is store write protected
+ */
+ TBool iReadOnly;
};
// End of File
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailfetchedchecker.cpp Tue Jul 06 14:37:18 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailfetchedchecker.cpp Thu Jul 08 15:45:05 2010 +0300
@@ -16,6 +16,7 @@
*/
#include "thumbnailfetchedchecker.h"
+#include "thumbnaillog.h"
const int KMaxStoredEntries = 100;
@@ -49,13 +50,28 @@
// CThumbnailFetchedChecker::LastFetchResult()
// -----------------------------------------------------------------------------
//
-TInt CThumbnailFetchedChecker::LastFetchResult( const TDesC& aUri )
+TInt CThumbnailFetchedChecker::LastFetchResult( const TDesC& aUri, const TThumbnailSize aThumbnailSize )
{
- TInt i = iNotFetched.FindInOrder( aUri, CEntry::FindCB );
- if ( i >= 0 && i < iNotFetched.Count() )
+ TN_DEBUG3( "CThumbnailFetchedChecker::LastFetchResult(aUri=%S aThumbnailSize=%d)", &aUri, aThumbnailSize);
+
+ CEntry* entry = NULL;
+ TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, KErrNone ) );
+ if ( !err && entry )
{
- return iNotFetched[ i ]->iError;
+ TInt ret = iNotFetched.FindInOrder( entry, CEntry::FindCB );
+ if ( ret != KErrNotFound )
+ {
+ TN_DEBUG1( "CThumbnailFetchedChecker::LastFetchResult() -> error found");
+ entry = NULL;
+ delete entry;
+
+ return iNotFetched[ ret ]->iError;
+ }
}
+
+ delete entry;
+ entry = NULL;
+
return KErrNone;
}
@@ -63,31 +79,43 @@
// CThumbnailFetchedChecker::SetFetchResult()
// -----------------------------------------------------------------------------
//
-void CThumbnailFetchedChecker::SetFetchResult( const TDesC& aUri, TInt aError )
+void CThumbnailFetchedChecker::SetFetchResult( const TDesC& aUri, const TThumbnailSize aThumbnailSize, TInt aError )
{
+ TN_DEBUG4( "CThumbnailFetchedChecker::SetFetchResult(aUri=%S aThumbnailSize=%d aError=%d)", &aUri, aThumbnailSize, aError);
if ( aError == KErrNone )
{
- // Do not store successful results
- TInt i = iNotFetched.FindInOrder( aUri, CEntry::FindCB );
- if ( i >= 0 && i < iNotFetched.Count() )
+ // Remove successful results from store
+ CEntry* entry = NULL;
+ TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, aError ) );
+ if ( !err && entry )
{
- delete iNotFetched[ i ];
- iNotFetched.Remove( i );
+ 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.Remove( i );
+ }
}
+ entry = NULL;
+ delete entry;
}
else
{
+
// Add or update
CEntry* entry = NULL;
- TRAPD( err, entry = CEntry::NewL( aUri, aError ) );
+ TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, aError ) );
if ( !err && entry )
{
err = iNotFetched.Find( entry );
if ( err != KErrNotFound )
{
- TInt i = iNotFetched.FindInOrder( aUri, CEntry::FindCB );
- if ( i >= 0 && i < iNotFetched.Count() )
+ // update existing fetch result
+ TInt i = iNotFetched.FindInOrder( entry, CEntry::FindCB );
+ if ( i >= 0 )
{
+ TN_DEBUG1( "CThumbnailFetchedChecker::LastFetchResult() -> Update fetched tn error" );
iNotFetched[ i ]->iError = aError;
}
}
@@ -95,9 +123,11 @@
{
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
}
}
@@ -110,25 +140,76 @@
}
// -----------------------------------------------------------------------------
+// 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.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::New()
+// CThumbnailFetchedChecker::CEntry::NewL()
// -----------------------------------------------------------------------------
//
CThumbnailFetchedChecker::CEntry* CThumbnailFetchedChecker::CEntry::NewL(
- const TDesC& aUri, TInt aError )
+ const TDesC& aUri, const TThumbnailSize aThumbnailSize, 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.Alloc();
+ self->iUri = aUri.AllocL();
+ self->iSize = aThumbnailSize;
self->iError = aError;
if ( !self->iUri )
{
@@ -144,8 +225,28 @@
// -----------------------------------------------------------------------------
//
TInt CThumbnailFetchedChecker::CEntry::FindCB(
- const TDesC* aUri, const CThumbnailFetchedChecker::CEntry& aEntry )
+ const CThumbnailFetchedChecker::CEntry& aEntry, const CThumbnailFetchedChecker::CEntry& aEntry1 )
{
+ 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 ) );
}
@@ -157,7 +258,16 @@
const CThumbnailFetchedChecker::CEntry& aEntry1,
const CThumbnailFetchedChecker::CEntry& aEntry2 )
{
- return aEntry1.iUri->CompareF( *( aEntry2.iUri ) );
+ 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;
+ }
}
// -----------------------------------------------------------------------------
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp Tue Jul 06 14:37:18 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp Thu Jul 08 15:45:05 2010 +0300
@@ -494,14 +494,14 @@
iServer.StoreForPathL( iFilename )->StoreThumbnailL(
iFilename, tempBitmap, aOriginalSize, EFalse, iThumbnailSize, iModified, !iVirtualUri, ETrue );
//remove result from fetched checker
- iServer.FetchedChecker().SetFetchResult( iFilename, KErrNone );
+ iServer.FetchedChecker().SetFetchResult( iFilename, iThumbnailSize, KErrNone );
}
else if(iTargetUri != KNullDesC)
{
iServer.StoreForPathL( iTargetUri )->StoreThumbnailL(
iTargetUri, tempBitmap, aOriginalSize, EFalse, iThumbnailSize, iModified, !iVirtualUri, ETrue );
//remove result from fetched checker
- iServer.FetchedChecker().SetFetchResult( iTargetUri, KErrNone );
+ iServer.FetchedChecker().SetFetchResult( iTargetUri, iThumbnailSize, KErrNone );
}
CleanupStack::PopAndDestroy( tempBitmap );
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp Tue Jul 06 14:37:18 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp Thu Jul 08 15:45:05 2010 +0300
@@ -570,7 +570,7 @@
if( iFetchedChecker )
{
- iFetchedChecker->SetFetchResult( aPath, KErrNone );
+ iFetchedChecker->SetFetchResult( aPath, aThumbnailSize, KErrNone );
}
}
@@ -585,7 +585,7 @@
TN_DEBUG3( "CThumbnailServer::FetchThumbnailL(aPath=%S aThumbnailSize=%d)", &aPath, aThumbnailSize );
if( iFetchedChecker )
{
- TInt err( iFetchedChecker->LastFetchResult( aPath ) );
+ TInt err( iFetchedChecker->LastFetchResult( aPath, aThumbnailSize ) );
if ( err == KErrNone ) // To avoid useless sql gets that fails for sure
{
// custom sizes are not stored to db, skip fetching
@@ -597,7 +597,7 @@
TRAP( err, StoreForPathL( aPath )->FetchThumbnailL( aPath, aThumbnail, aData, aThumbnailSize, aOriginalSize) );
if ( err != KErrNone )
{
- iFetchedChecker->SetFetchResult( aPath, err );
+ iFetchedChecker->SetFetchResult( aPath, aThumbnailSize, err );
}
}
User::LeaveIfError( err );
@@ -666,7 +666,7 @@
if( iFetchedChecker )
{
- iFetchedChecker->SetFetchResult( aPath, KErrNone );
+ iFetchedChecker->DeleteFetchResult( aPath );
}
}
@@ -944,7 +944,7 @@
}
else
{
- if(iFormatting)
+ if( iFormatting )
{
TN_DEBUG1( "CThumbnailServer::StoreForDriveL() - FORMATTING! - ABORT");
User::Leave( KErrNotSupported );
@@ -953,17 +953,31 @@
TVolumeInfo volumeInfo;
TInt err = iFs.Volume( volumeInfo, aDrive );
- if ( err || volumeInfo.iDrive.iDriveAtt& KDriveAttRom ||
- volumeInfo.iDrive.iDriveAtt& KDriveAttRemote ||
- volumeInfo.iDrive.iMediaAtt& KMediaAttWriteProtected ||
- volumeInfo.iDrive.iMediaAtt& KMediaAttLocked )
+ if ( err )
+ {
+ // Locked
+ TN_DEBUG2( "CThumbnailServer::StoreForDriveL() - err %d", err);
+ User::Leave( err);
+ }
+ else if( volumeInfo.iDrive.iMediaAtt& KMediaAttLocked )
{
- // We don't support ROM disks or remote mounts. Media
- // must be read-write and not locked.
- User::Leave( KErrAccessDenied);
+ TN_DEBUG1( "CThumbnailServer::StoreForDriveL() - locked");
+ User::Leave( KErrAccessDenied );
}
-
- res = CThumbnailStore::NewL( iFs, aDrive, iImei, this );
+ else if ( volumeInfo.iDrive.iDriveAtt& KDriveAttRom ||
+ volumeInfo.iDrive.iDriveAtt& KDriveAttRemote ||
+ volumeInfo.iDrive.iMediaAtt& KMediaAttWriteProtected )
+ {
+ // 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 );
+ }
+ else
+ {
+ TN_DEBUG1( "CThumbnailServer::StoreForDriveL() - normal");
+ res = CThumbnailStore::NewL( iFs, aDrive, iImei, this, EFalse );
+ }
+
CleanupStack::PushL( res );
iStores.InsertL( aDrive, res );
res->SetPersistentSizes(iPersistentSizes);
@@ -1295,7 +1309,7 @@
if( iFetchedChecker )
{
- iFetchedChecker->SetFetchResult( aPath, KErrNone );
+ iFetchedChecker->DeleteFetchResult( aPath );
}
// need to create new thumbs
@@ -1327,8 +1341,7 @@
if( iFetchedChecker )
{
- iFetchedChecker->SetFetchResult( aNewPath, iFetchedChecker->LastFetchResult(aCurrentPath) );
- iFetchedChecker->SetFetchResult( aCurrentPath, KErrNone );
+ iFetchedChecker->RenameFetchResultL( aNewPath, aCurrentPath );
}
}
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailstore.cpp Tue Jul 06 14:37:18 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailstore.cpp Thu Jul 08 15:45:05 2010 +0300
@@ -166,9 +166,9 @@
// Two-phased constructor.
// ---------------------------------------------------------------------------
//
-CThumbnailStore* CThumbnailStore::NewL( RFs& aFs, TInt aDrive, TDesC& aImei, CThumbnailServer* aServer )
+CThumbnailStore* CThumbnailStore::NewL( RFs& aFs, TInt aDrive, TDesC& aImei, CThumbnailServer* aServer, const TBool aReadOnly )
{
- CThumbnailStore* self = new( ELeave )CThumbnailStore( aFs, aDrive, aImei, aServer );
+ CThumbnailStore* self = new( ELeave )CThumbnailStore( aFs, aDrive, aImei, aServer, aReadOnly );
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop( self );
@@ -222,9 +222,9 @@
// C++ default constructor can NOT contain any code, that might leave.
// ---------------------------------------------------------------------------
//
-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)
+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)
{
// no implementation required
}
@@ -241,31 +241,39 @@
#ifdef _DEBUG
iThumbCounter = 0;
#endif
-
- 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 );
+ 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 );
+ CleanupStack::PopAndDestroy( databasePath );
+
+ TN_DEBUG2( "CThumbnailStore::ConstructL() drive: %d", iDrive );
- TN_DEBUG2( "CThumbnailStore::ConstructL() drive: %d", iDrive );
+ OpenDatabaseL();
- OpenDatabaseL();
+ // to monitor device activity
+ iActivityManager = CTMActivityManager::NewL( this, KStoreMaintenanceIdle);
+ iActivityManager->Start();
- // to monitor device activity
- iActivityManager = CTMActivityManager::NewL( this, KStoreMaintenanceIdle);
- iActivityManager->Start();
-
- iDeleteThumbs = ETrue;
- iCheckFilesExist = ETrue;
- iLastCheckedRowID = -1;
+ iDeleteThumbs = ETrue;
+ iCheckFilesExist = ETrue;
+ }
+ else
+ {
+ TN_DEBUG1( "CThumbnailStore::ConstructL() - read only, dymmy mode..." );
+ iDeleteThumbs = EFalse;
+ iCheckFilesExist = EFalse;
+ iLastCheckedRowID = -1;
+ }
}
// ---------------------------------------------------------------------------
@@ -1121,6 +1129,12 @@
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;
@@ -1272,6 +1286,12 @@
{
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 ));
@@ -1319,17 +1339,20 @@
CleanupStack::PushL( data );
CImageEncoder* encoder = NULL;
- TRAPD( decErr, encoder = CExtJpegEncoder::DataNewL( CExtJpegEncoder::EHwImplementation, data, CImageEncoder::EOptionAlwaysThread ) );
+
+ CImageEncoder::TOptions options = ( CImageEncoder::TOptions )( CImageEncoder::EOptionAlwaysThread );
+
+ TRAPD( decErr, encoder = CExtJpegEncoder::DataNewL( CExtJpegEncoder::EHwImplementation, data, options ) );
if ( decErr != KErrNone )
{
TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( public ) - HW CExtJpegEncoder failed %d", decErr);
- TRAPD( decErr, encoder = CExtJpegEncoder::DataNewL( CExtJpegEncoder::ESwImplementation, data, CImageEncoder::EOptionAlwaysThread ) );
+ TRAPD( decErr, encoder = CExtJpegEncoder::DataNewL( CExtJpegEncoder::ESwImplementation, data, options ) );
if ( decErr != KErrNone )
{
TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( public ) - SW CExtJpegEncoder failed %d", decErr);
- TRAPD( decErr, encoder = CImageEncoder::DataNewL( data, KJpegMime(), CImageEncoder::EOptionAlwaysThread ) );
+ TRAPD( decErr, encoder = CImageEncoder::DataNewL( data, KJpegMime(), options ) );
if ( decErr != KErrNone )
{
TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( public ) - CImageEncoder failed %d", decErr);
@@ -1362,7 +1385,7 @@
// Set some format specific data
imageData->iSampleScheme = TJpegImageData::EColor444;
- imageData->iQualityFactor = 75;
+ imageData->iQualityFactor = 80;
// imageData - ownership passed to frameImageData after AppendImageData
User::LeaveIfError(frameImageData->AppendImageData(imageData));
@@ -1432,6 +1455,12 @@
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() );
@@ -1528,6 +1557,12 @@
{
TN_DEBUG2( "CThumbnailStore::GetMissingSizesL() aSourceType == %d", aSourceType );
+ if(iReadOnly)
+ {
+ TN_DEBUG1( "CThumbnailStore::GetMissingSizesL() read only, skip..." );
+ return;
+ }
+
User::LeaveIfError( CheckDbState() );
HBufC* path = aPath.AllocLC();
@@ -1637,6 +1672,12 @@
{
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();
@@ -1761,6 +1802,12 @@
{
TN_DEBUG2( "CThumbnailStore::DeleteThumbnailsL(%S)", &aPath );
+ if(iReadOnly)
+ {
+ TN_DEBUG1( "CThumbnailStore::DeleteThumbnailsL() read only, skip..." );
+ return;
+ }
+
#ifdef _DEBUG
TTime aStart, aStop;
aStart.UniversalTime();
@@ -1960,6 +2007,12 @@
{
TN_DEBUG2( "CThumbnailStore::RenameThumbnailsL(%S)", &aCurrentPath );
+ if(iReadOnly)
+ {
+ TN_DEBUG1( "CThumbnailStore::RenameThumbnailsL() read only, skip..." );
+ return;
+ }
+
#ifdef _DEBUG
TTime aStart, aStop;
aStart.UniversalTime();
@@ -2049,6 +2102,12 @@
StopAutoFlush();
+ if(iReadOnly)
+ {
+ TN_DEBUG1( "CThumbnailStore::FlushCacheTable() read only, skip..." );
+ return;
+ }
+
if(iBatchItemCount <= 0 || CheckDbState() != KErrNone)
{
// cache empty or db unusable
@@ -2190,6 +2249,12 @@
{
TN_DEBUG1( "CThumbnailStore::StartAutoFlush()" );
+ if(iReadOnly)
+ {
+ TN_DEBUG1( "CThumbnailStore::StartAutoFlush() read only, skip..." );
+ return;
+ }
+
TInt err = KErrNone;
if( iAutoFlushTimer )
@@ -2371,6 +2436,13 @@
{
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();
@@ -2450,6 +2522,16 @@
return ret;
}
+
+// -----------------------------------------------------------------------------
+// IsReadOnly()
+// -----------------------------------------------------------------------------
+//
+TBool CThumbnailStore::IsReadOnly()
+ {
+ return iReadOnly;
+ }
+
// -----------------------------------------------------------------------------
// PrepareBlacklistedItemsForRetryL()
// -----------------------------------------------------------------------------
@@ -2480,6 +2562,12 @@
TInt CThumbnailStore::DeleteMarkedL()
{
TN_DEBUG1( "CThumbnailStore::DeleteMarkedL()" );
+
+ if(iReadOnly)
+ {
+ TN_DEBUG1( "CThumbnailStore::DeleteMarkedL() read only, skip..." );
+ return KErrAccessDenied;
+ }
#ifdef _DEBUG
TTime aStart, aStop;
@@ -2571,6 +2659,12 @@
TInt CThumbnailStore::FileExistenceCheckL()
{
TN_DEBUG1( "CThumbnailStore::FileExistenceCheckL()" );
+
+ if(iReadOnly)
+ {
+ TN_DEBUG1( "CThumbnailStore::FileExistenceCheckL() read only, skip..." );
+ return ETrue;
+ }
#ifdef _DEBUG
TTime aStart, aStop;
@@ -2693,7 +2787,7 @@
//
TInt CThumbnailStore::CheckDbState()
{
- if (iUnrecoverable)
+ if (iUnrecoverable && !iReadOnly)
{
TN_DEBUG1( "CThumbnailStore::CheckDbState() - database in unrecoverable state" );
__ASSERT_DEBUG( !iUnrecoverable, ThumbnailPanic( EThumbnailDatabaseUnrecoverable ));
@@ -2723,6 +2817,11 @@
TBool CThumbnailStore::IsDiskFull()
{
+ if(iReadOnly)
+ {
+ TN_DEBUG1( "CThumbnailStore::IsDiskFull() read only, skip..." );
+ return EFalse;
+ }
return iDiskFull;
}
@@ -2734,6 +2833,12 @@
{
TN_DEBUG2( "CThumbnailStore::ActivityChanged() aActive == %d", aActive);
+ if( iReadOnly )
+ {
+ TN_DEBUG1( "CThumbnailStore::ActivityChanged() read only, skip..." );
+ return;
+ }
+
if( aActive )
{
iIdle = EFalse;