EngSrc/IEBitmapLoader.cpp
author jkauppin
Fri, 15 Oct 2010 10:18:29 +0900
changeset 3 93fff7023be8
permissions -rw-r--r--
Initial version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     1
/*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     3
* All rights reserved.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     4
* This component and the accompanying materials are made available
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     6
* which accompanies this distribution, and is available
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     8
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     9
* Initial Contributors:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    11
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    12
* Contributors: Juha Kauppinen, Mika Hokkanen
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    13
* 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    14
* Description: Photo Browser
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    15
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    16
*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    17
// Include files
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    18
#include <hal.h> 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    19
#include "IEBitmapLoader.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    20
#include "IEFileLoader.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    21
#include "IEEngineUtils.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    22
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    23
_LIT8(KMimeMbm, "image/x-epoc-mbm");
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    24
_LIT8(KMimeJpeg, "image/jpeg");
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    25
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    26
#define USE_EXIF_TN
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    27
#define USE_EXIF_TN_CROP
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    28
//#define USE_EXIF_TN_EXT_CROP
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    29
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    30
#ifdef USE_EXIF_TN
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    31
#include <iclextjpegapi.h>  // For CExtJpegDecoder
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    32
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    33
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    34
const TInt KMemoryThresholdForSuperZoom = 12*1024;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    35
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    36
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    37
// ============================ MEMBER FUNCTIONS =========================== \\
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    38
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    39
CIEBitmapLoader* CIEBitmapLoader::NewL(RFs& aFileServer, MBitmapLoaderObserver& aBitmapLoaderObserver, RCriticalSection* aCritical)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    40
{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    41
 	CIEBitmapLoader* self = new (ELeave) CIEBitmapLoader(aFileServer, aBitmapLoaderObserver, aCritical);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    42
	CleanupStack::PushL(self);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    43
	self->ConstructL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    44
	CleanupStack::Pop();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    45
	return self;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    46
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    47
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    48
CIEBitmapLoader::~CIEBitmapLoader()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    49
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    50
    DP0_IMAGIC(_L("CIEBitmapLoader::~CIEBitmapLoader++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    51
  	if(iImageDecoder)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    52
  	    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    53
  	    iImageDecoder->Cancel();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    54
		delete iImageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    55
		iImageDecoder = NULL;	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    56
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    57
  	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    58
    if (iExifBitmap)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    59
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    60
        delete iExifBitmap;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    61
        iExifBitmap = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    62
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    63
#ifdef DECODE_FROM_BUFFER    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    64
    if(iSourceData) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    65
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    66
        delete iSourceData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    67
        iSourceData = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    68
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    69
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    70
    DP0_IMAGIC(_L("CIEBitmapLoader::~CIEBitmapLoader--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    71
  	}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    72
 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    73
CIEBitmapLoader::CIEBitmapLoader(RFs& aFileServer, MBitmapLoaderObserver& aBitmapLoaderObserver, RCriticalSection* aCritical)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    74
    //:CActive(EPriorityLow),    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    75
    :CActive(EPriorityStandard),
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    76
    //:CActive(EPriorityUserInput),
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    77
    //:CActive(CActive::EPriorityHigh),
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    78
    iFileServer(aFileServer), 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    79
    iBitmapLoaderObserver(aBitmapLoaderObserver),
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    80
#ifdef DECODE_FROM_BUFFER    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    81
    iSourceData(NULL), 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    82
#endif        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    83
    iCritical(aCritical)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    84
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    85
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    86
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    87
void CIEBitmapLoader::ConstructL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    88
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    89
	CActiveScheduler::Add(this);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    90
	iExifTn = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    91
	iImageDecoder = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    92
	iImageArrayMode = EImages;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    93
	iOutputBitmap = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    94
	iExifBitmap = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    95
#ifdef GET_DECODER_UID
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    96
	decoderUid = CIEEngineUtils::GetImageDecoderUid();	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    97
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    98
	decoderUid = KNullUid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    99
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   100
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   101
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   102
void CIEBitmapLoader::CropImageL(CFbsBitmap* aOutput, CFbsBitmap* aInput) const
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   103
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   104
    const TInt KMaxScanLine = 320 * 3;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   105
    TSize inputSize = aInput->SizeInPixels();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   106
    TSize outputSize = aOutput->SizeInPixels();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   107
    TDisplayMode mode = aOutput->DisplayMode();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   108
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   109
    // need to have same display mode and output cannot be bigger
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   110
    if (mode != aInput->DisplayMode() || 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   111
        outputSize.iWidth > inputSize.iWidth ||
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   112
        outputSize.iHeight > inputSize.iHeight)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   113
        User::Leave(KErrNotSupported);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   114
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   115
    TInt len = CFbsBitmap::ScanLineLength(outputSize.iWidth, mode);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   116
    TBuf8<KMaxScanLine> buf;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   117
    if (len > KMaxScanLine)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   118
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   119
        User::Leave(KErrOverflow);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   120
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   121
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   122
    TPoint point((inputSize.iWidth - outputSize.iWidth + 1) / 2,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   123
                 (inputSize.iHeight - outputSize.iHeight + 1) / 2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   124
    for (TInt i = 0;i < outputSize.iHeight;i++, point.iY++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   125
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   126
        aInput->GetScanLine(buf, point, outputSize.iWidth, mode);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   127
        aOutput->SetScanLine(buf, i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   128
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   129
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   130
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   131
void CIEBitmapLoader::RunL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   132
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   133
    DP0_IMAGIC(_L("CIEBitmapLoader::RunL++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   134
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   135
    SetPriority(EPriorityStandard);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   136
    iThumbRes = ENotDefined;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   137
	TInt error = iStatus.Int();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   138
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   139
	DP1_IMAGIC(_L("CIEBitmapLoader::RunL - Error: %d"),error);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   140
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   141
	if(iImageDecoder)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   142
	    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   143
        delete iImageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   144
        iImageDecoder = NULL;   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   145
	    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   146
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   147
#ifdef DECODE_FROM_BUFFER    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   148
    if(iSourceData) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   149
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   150
        delete iSourceData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   151
        iSourceData = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   152
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   153
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   154
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   155
#ifdef USE_EXIF_TN
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   156
    if (iExifTn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   157
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   158
        delete iExifTn;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   159
        iExifTn = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   160
        }   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   161
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   162
	if(iUseExifTn && iImageData && error == KErrNone) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   163
	    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   164
	    iImageData->SetImageReady(EExifThumb, ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   165
	    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   166
	    // Crop exif thumbnail
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   167
	    if (iExifBitmap && iOutputBitmap)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   168
	        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   169
	        TRAP(error, CropImageL(iOutputBitmap, iExifBitmap));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   170
	        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   171
	    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   172
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   173
	if (iExifBitmap)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   174
	    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   175
	    delete iExifBitmap;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   176
	    iExifBitmap = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   177
	    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   178
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   179
    iOutputBitmap = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   180
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   181
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   182
	iBitmapLoaderObserver.BitmapsLoadedL(error);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   183
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   184
	DP0_IMAGIC(_L("CIEBitmapLoader::RunL--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   185
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   186
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   187
void CIEBitmapLoader::DoCancel()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   188
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   189
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   190
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   191
TInt CIEBitmapLoader::RunError(TInt aError)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   192
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   193
    DP1_IMAGIC(_L("CIEBitmapLoader::RunError - Error: %d"),aError);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   194
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   195
    return KErrNone;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   196
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   197
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   198
void CIEBitmapLoader::GetOneBitmapL(CImageData* aImageData, CFbsBitmap* aBitmap, TThumbSize aThumbRes)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   199
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   200
    DP0_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   201
    DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - TN res: %d"), aThumbRes);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   202
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   203
    ASSERT(iImageDecoder == NULL);    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   204
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   205
    iThumbRes = aThumbRes;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   206
    TBool thumbnailExists = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   207
    //TBool isFileJpg = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   208
    iUseExifTn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   209
    iImageData = aImageData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   210
    iOutputBitmap = aBitmap;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   211
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   212
#ifdef USE_EXIF_TN    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   213
    CExtJpegDecoder* extImageDecoder = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   214
#endif    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   215
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   216
    TFileName fileName;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   217
    if(aThumbRes == EFullSize)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   218
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   219
        if(iImageData->IsImageReady(EFullSize))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   220
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   221
            //SetPriority(EPriorityUserInput);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   222
            iImageData->GetFileName(fileName, EFullSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   223
            DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - filename: %S"), &fileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   224
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   225
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   226
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   227
            //If TN is not ready we just return
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   228
            DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - TN res: %d, not found"), aThumbRes);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   229
            thumbnailExists = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   230
            //iBitmapLoaderObserver.BitmapsLoadedL(KErrNotFound);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   231
            User::Leave(KErrNotFound);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   232
            return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   233
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   234
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   235
    else if(aThumbRes == ESize128x128)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   236
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   237
#ifdef USE_64X64_BITMAP_TN
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   238
        //isFileJpg = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   239
        iImageData->GetFileName(fileName, ESize128x128);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   240
        DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - filename: %S"), &fileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   241
        TInt error = aBitmap->Load(fileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   242
        if (error == KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   243
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   244
            SetPriority(EPriorityUserInput);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   245
            SetActive();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   246
            TRequestStatus* status = &iStatus;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   247
            User::RequestComplete(status, KErrNone);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   248
            return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   249
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   250
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   251
#ifdef USE_EXIF_TN
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   252
        else if(iImageData->IsImageReady(EFullSize))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   253
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   254
            iUseExifTn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   255
            iImageData->GetFileName(fileName, EFullSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   256
            DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - filename: %S"), &fileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   257
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   258
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   259
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   260
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   261
            //If TN is not ready we just return
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   262
            DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - TN res: %d, not found"), aThumbRes);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   263
            thumbnailExists = EFalse;     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   264
            iImageData->SetImageReady(EExifThumb, EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   265
            User::Leave(KErrNotFound);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   266
            return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   267
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   268
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   269
        if(iImageData->IsImageReady(ESize128x128))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   270
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   271
            SetPriority(EPriorityUserInput);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   272
            //isFileJpg = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   273
            iImageData->GetFileName(fileName, ESize128x128);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   274
            DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - filename: %S"), &fileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   275
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   276
#ifdef USE_EXIF_TN
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   277
        //else if(iImageData->IsImageReady((TThumbSize)(EFullSize|EExifThumb)))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   278
        else if(iImageData->IsImageReady(EExifThumb))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   279
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   280
            SetPriority(EPriorityUserInput);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   281
            iUseExifTn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   282
            iImageData->GetFileName(fileName, EFullSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   283
            DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - filename: %S"), &fileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   284
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   285
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   286
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   287
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   288
            //If TN is not ready we just return
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   289
            DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - TN res: %d, not found"), aThumbRes);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   290
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   291
            thumbnailExists = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   292
            iImageData->SetImageReady(EExifThumb, EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   293
            //iBitmapLoaderObserver.BitmapsLoadedL(KErrNotFound);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   294
            User::Leave(KErrNotFound);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   295
            return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   296
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   297
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   298
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   299
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   300
    else if(aThumbRes == ESize512x512)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   301
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   302
        if(iImageData->IsImageReady(ESize512x512))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   303
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   304
            iImageData->GetFileName(fileName, ESize512x512);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   305
            DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - filename: %S"), &fileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   306
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   307
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   308
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   309
            //If TN is not ready we just return
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   310
            DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - TN res: %d, not found"), aThumbRes);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   311
            thumbnailExists = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   312
            iImageData->SetImageReady(EExifThumb, EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   313
            User::Leave(KErrNotFound);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   314
            return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   315
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   316
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   317
    else if(aThumbRes == ESize32x32)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   318
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   319
        if(iImageData->IsImageReady(ESize32x32))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   320
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   321
            //isFileJpg = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   322
            iImageData->GetFileName(fileName, ESize32x32);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   323
            DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - filename: %S"), &fileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   324
            TInt error = aBitmap->Load(fileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   325
            if (error == KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   326
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   327
                SetPriority(EPriorityUserInput);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   328
                SetActive();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   329
                TRequestStatus* status = &iStatus;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   330
                User::RequestComplete(status, KErrNone);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   331
                return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   332
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   333
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   334
#ifdef USE_EXIF_TN
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   335
        else if(iImageData->IsImageReady(EFullSize))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   336
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   337
            iUseExifTn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   338
            iImageData->GetFileName(fileName, EFullSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   339
            DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - filename: %S"), &fileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   340
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   341
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   342
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   343
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   344
            //If TN is not ready we just return
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   345
            DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - TN res: %d, not found"), aThumbRes);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   346
            thumbnailExists = EFalse;     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   347
            iImageData->SetImageReady(EExifThumb, EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   348
            User::Leave(KErrNotFound);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   349
            return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   350
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   351
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   352
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   353
    if(thumbnailExists)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   354
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   355
        TInt error = KErrNone;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   356
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   357
#ifdef USE_EXIF_TN
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   358
        if (iUseExifTn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   359
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   360
            ASSERT(iExifTn == NULL);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   361
            TRAP(error, iExifTn = CIEEngineUtils::ReadExifThumbnailL(iFileServer, fileName));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   362
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   363
            DP0_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - create decoder"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   364
            if (error == KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   365
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   366
                DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL data size: %d"), iExifTn->Length());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   367
                TRAP(error, extImageDecoder = CExtJpegDecoder::DataNewL(iFileServer, *iExifTn, /*KMimeJpeg,*/ CImageDecoder::EOptionNone));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   368
                iImageDecoder = extImageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   369
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   370
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   371
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   372
                DP0_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - no exif thumb"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   373
                iImageData->SetImageReady(EExifThumb, EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   374
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   375
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   376
            DP2_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - Image exif thumb decoder - TN res: %d, error: %d"), aThumbRes, error);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   377
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   378
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   379
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   380
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   381
            DP0_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - create decoder"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   382
            /*CExtJpegDecoder * extImageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   383
            TRAP(error, iImageDecoder = extImageDecoder = CExtJpegDecoder::FileNewL(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   384
                    CExtJpegDecoder::EHwImplementation,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   385
                    iFileServer, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   386
                    fileName,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   387
                    CImageDecoder::EPreferFastDecode));*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   388
#ifdef DECODE_FROM_BUFFER    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   389
            if(iSourceData) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   390
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   391
                delete iSourceData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   392
                iSourceData = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   393
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   394
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   395
            RFile jpgFile;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   396
            TInt fileSize;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   397
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   398
            User::LeaveIfError(jpgFile.Open(iFileServer, fileName, EFileRead));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   399
            jpgFile.Size(fileSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   400
            iSourceData = HBufC8::NewL(fileSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   401
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   402
            TPtr8 buffer = iSourceData->Des();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   403
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   404
            jpgFile.Read(buffer, fileSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   405
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   406
            jpgFile.Close();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   407
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   408
            iImageDecoder = CImageDecoder::DataNewL(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   409
                    iFileServer, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   410
                    *iSourceData, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   411
                    //CImageDecoder::EOptionNone,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   412
                    CImageDecoder::TOptions(CImageDecoder::EPreferFastDecode|CImageDecoder::EOptionAlwaysThread),
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   413
                    KNullUid, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   414
                    KNullUid, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   415
                    decoderUid);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   416
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   417
            TRAP(error, iImageDecoder = CImageDecoder::FileNewL(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   418
                    iFileServer, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   419
                    fileName,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   420
                    //CImageDecoder::EPreferFastDecode,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   421
                    CImageDecoder::TOptions(CImageDecoder::EPreferFastDecode|CImageDecoder::EOptionAlwaysThread),
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   422
                    KNullUid,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   423
                    KNullUid,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   424
                    decoderUid));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   425
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   426
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   427
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   428
        if(error != KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   429
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   430
            DP2_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - Image Decoder - TN res: %d, error: %d"), aThumbRes, error);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   431
            delete iImageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   432
            iImageDecoder = NULL; 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   433
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   434
#ifdef USE_EXIF_TN
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   435
            if (iExifTn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   436
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   437
                delete iExifTn;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   438
                iExifTn = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   439
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   440
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   441
//            iBitmapLoaderObserver.BitmapsLoadedL(error);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   442
            User::Leave(error);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   443
            return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   444
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   445
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   446
        TFrameInfo frameInfo = iImageDecoder->FrameInfo();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   447
        if(aThumbRes == ESize128x128)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   448
            iImageDecoder->SetDecoderThreadPriority(/*EPriorityNormal*/EPriorityMuchMore);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   449
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   450
            iImageDecoder->SetDecoderThreadPriority(EPriorityLess);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   451
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   452
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   453
#ifdef _IMAGIC_DEBUG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   454
        TInt mem = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   455
        TInt ret = HAL::Get(HALData::EMemoryRAMFree, mem);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   456
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   457
        DP0_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - #1"));        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   458
        TSize frameSize = frameInfo.iFrameCoordsInPixels.Size();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   459
        //If we are loading full resolution image, we have to create smaller target bitmap 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   460
        //to save memory and to improve speed of further image processing
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   461
        if(aThumbRes == EFullSize)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   462
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   463
            TInt mem = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   464
            TInt ret = HAL::Get(HALData::EMemoryRAMFree, mem);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   465
            if(mem < KMemoryThresholdForSuperZoom*1024)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   466
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   467
                //User::Leave(KErrNoMemory);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   468
#ifdef USE_OOM            	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   469
                ROomMonitorSession oomMonitor;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   470
                oomMonitor.Connect();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   471
                TInt errorCode = oomMonitor.RequestFreeMemory( 1024*KMemoryThresholdForSuperZoom );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   472
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   473
                if ( errorCode != KErrNone )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   474
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   475
                    // try one more time 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   476
                    errorCode = oomMonitor.RequestFreeMemory( 1024*KMemoryThresholdForSuperZoom );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   477
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   478
                oomMonitor.Close();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   479
#endif                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   480
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   481
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   482
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   483
            //TSize tgtSize(1024, 1024);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   484
            //DP0_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - #3"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   485
            //TargetDecodingSize(tgtSize, frameSizue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   486
            if(frameSize.iHeight >= 1024 || frameSize.iWidth >= 1024)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   487
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   488
                frameSize.iHeight = Min(1024, iBitmapLoaderObserver.GetGleMaxRes());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   489
                frameSize.iWidth = Min(1024, iBitmapLoaderObserver.GetGleMaxRes());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   490
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   491
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   492
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   493
                frameSize.iHeight=512;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   494
                frameSize.iWidth=512;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   495
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   496
            }   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   497
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   498
        // Crop thumbnail if aspect ratio is not same as full size image
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   499
#ifdef USE_EXIF_TN
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   500
#ifdef USE_EXIF_TN_CROP
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   501
        if (iUseExifTn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   502
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   503
#ifdef USE_EXIF_TN_EXT_CROP              
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   504
            TInt cap;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   505
            TRAP(error, cap = extImageDecoder->CapabilitiesL());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   506
            if (error == KErrNone && cap & CExtJpegDecoder::ECapCropping)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   507
#endif                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   508
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   509
                TReal aspectRatio = aImageData->GetAspectRatio();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   510
                TReal thumbAspectRatio = TReal(frameSize.iWidth) / frameSize.iHeight; 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   511
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   512
                // calculate final frame size
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   513
                //if (frameSize.iWidth / frameSize.iHeight != size.iWidth / size.iHeight)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   514
                if (thumbAspectRatio != aspectRatio)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   515
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   516
                    TRect finalFrameRect;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   517
                    finalFrameRect.SetSize(frameSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   518
                    if (thumbAspectRatio < aspectRatio)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   519
                        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   520
                        TInt h = frameSize.iWidth / aspectRatio;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   521
                        h += h & 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   522
                        finalFrameRect.SetHeight(h);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   523
                        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   524
                    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   525
                        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   526
                        TInt w = frameSize.iHeight * aspectRatio;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   527
                        w += w & 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   528
                        finalFrameRect.SetWidth(w);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   529
                        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   530
                    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   531
                    finalFrameRect.Move(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   532
                            (frameSize.iWidth - finalFrameRect.Width() + 1) / 2,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   533
                            (frameSize.iHeight - finalFrameRect.Height() + 1) / 2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   534
#ifdef USE_EXIF_TN_EXT_CROP                    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   535
                    TRAP(error, extImageDecoder->SetCroppingL(finalFrameRect));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   536
#else         
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   537
                    // Create temporal bitmap
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   538
                    iExifBitmap = new CFbsBitmap;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   539
                    if (iExifBitmap == NULL)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   540
                        error = KErrGeneral;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   541
                    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   542
                        error = iExifBitmap->Create(frameSize, frameInfo.iFrameDisplayMode);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   543
                    aBitmap = iExifBitmap;                 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   544
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   545
                    // Reduce final image size
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   546
                    if (error == KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   547
                        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   548
                        frameSize.iWidth = finalFrameRect.Width();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   549
                        frameSize.iHeight = finalFrameRect.Height();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   550
                        }                    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   551
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   552
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   553
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   554
#endif        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   555
#endif        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   556
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   557
        if (error == KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   558
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   559
#ifdef USE_RGBA
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   560
            error = iOutputBitmap->Create(frameSize, EColor16MU);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   561
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   562
            error = iOutputBitmap->Create(frameSize, frameInfo.iFrameDisplayMode);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   563
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   564
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   565
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   566
        if (error == KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   567
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   568
#ifdef USE_EXIF_TN
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   569
            /*if(iUseExifTn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   570
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   571
                TRAP(error, iExifDecoder->Convert(&iStatus, *aBitmap));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   572
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   573
            else*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   574
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   575
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   576
                TRAP(error, iImageDecoder->Convert(&iStatus, *aBitmap));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   577
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   578
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   579
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   580
        if(error != KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   581
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   582
            DP2_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - Image Decoder convert - TN res: %d, error: %d"), aThumbRes, error);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   583
            delete iImageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   584
            iImageDecoder = NULL; 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   585
            //aImageData->iGridData.iCorrupted = ETrue;//mika. added 03.06. maybe not good idea????????
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   586
            User::Leave(error);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   587
            return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   588
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   589
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   590
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   591
            DP1_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL - Decoding started TN res: %d"), aThumbRes);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   592
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   593
            if(!IsActive())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   594
                SetActive();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   595
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   596
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   597
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   598
    DP0_IMAGIC(_L("CIEBitmapLoader::GetOneBitmapL--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   599
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   600
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   601
/**
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   602
Opens file and creates file pointer
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   603
@param aFileName The specified file to open
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   604
@return imageInMemoryPtr A Pointer to iImageInMemory
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   605
@leave System-wide error codes
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   606
*/  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   607
/*TPtr8 CIEBitmapLoader::LoadImageIntoMemoryLC(const TDesC& aFileName)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   608
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   609
    RFile file;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   610
    TInt fileSize = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   611
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   612
    // Open the file for decoding
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   613
    User::LeaveIfError(file.Open(iFileServer, aFileName, EFileRead));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   614
    file.Size(fileSize);    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   615
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   616
    //HBufC8* imageInMemory = HBufC8::NewMaxLC(fileSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   617
    HBufC8* imageInMemory = HBufC8::NewMaxL(fileSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   618
    TPtr8 imageInMemoryPtr = imageInMemory->Des();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   619
    if(file.SubSessionHandle())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   620
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   621
        User::LeaveIfError(file.Read(imageInMemoryPtr));    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   622
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   623
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   624
    file.Close();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   625
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   626
    return imageInMemoryPtr;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   627
    }*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   628
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   629
void CIEBitmapLoader::TargetDecodingSize(TSize aTgtSize, TSize& aSrcSize)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   630
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   631
    DP0_IMAGIC(_L("CIEBitmapLoader::TargetDecodingSize++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   632
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   633
    DP2_IMAGIC(_L("CIEBitmapLoader::TargetDecodingSize - Tgt size.iHeigth: %d, Tgt size.iWidth: %d"),aTgtSize.iHeight, aTgtSize.iWidth);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   634
    DP2_IMAGIC(_L("CIEBitmapLoader::TargetDecodingSize - Src size.iHeigth: %d, Src size.iWidth: %d"),aSrcSize.iHeight, aSrcSize.iWidth);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   635
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   636
    // up to 32 times downscale in scaler
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   637
    for (TInt i = 0;i < 5;i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   638
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   639
        if (aSrcSize.iWidth < aTgtSize.iWidth * 2 ||
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   640
            aSrcSize.iHeight < aTgtSize.iHeight * 2) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   641
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   642
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   643
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   644
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   645
            aSrcSize.iWidth >>= 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   646
            aSrcSize.iHeight >>= 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   647
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   648
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   649
    // Check that we do not create odd resolution size thumbnail
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   650
    if(aSrcSize.iHeight & 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   651
        aSrcSize.iHeight++;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   652
    if(aSrcSize.iWidth & 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   653
        aSrcSize.iWidth++;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   654
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   655
    DP2_IMAGIC(_L("CIEBitmapLoader::TargetDecodingSize - Src size.iHeigth: %d, Src size.iWidth: %d"),aSrcSize.iHeight, aSrcSize.iWidth);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   656
     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   657
    DP0_IMAGIC((_L("CIEBitmapLoader::TargetDecodingSize--")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   658
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   659
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   660
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   661
void CIEBitmapLoader::CancelFullSizeLoading()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   662
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   663
    //Cancel only if full resolution loading was on
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   664
    DP0_IMAGIC(_L("CIEBitmapLoader::CancelFullSizeLoading++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   665
    if(iThumbRes == EFullSize)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   666
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   667
        DP0_IMAGIC(_L("CIEBitmapLoader::CancelFullSizeLoading 1"));        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   668
        if(iImageDecoder)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   669
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   670
            iImageDecoder->Cancel();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   671
            delete iImageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   672
            iImageDecoder = NULL;   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   673
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   674
        DP0_IMAGIC(_L("CIEBitmapLoader::CancelFullSizeLoading 2"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   675
        if(IsActive())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   676
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   677
            Cancel();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   678
            DP0_IMAGIC(_L("CIEBitmapLoader::CancelFullSizeLoading 21"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   679
            iBitmapLoaderObserver.BitmapsLoadedL(KErrCancel);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   680
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   681
#ifdef DECODE_FROM_BUFFER    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   682
        if(iSourceData) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   683
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   684
            DP0_IMAGIC(_L("CIEBitmapLoader::CancelFullSizeLoading 3"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   685
            delete iSourceData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   686
            iSourceData = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   687
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   688
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   689
        DP0_IMAGIC(_L("CIEBitmapLoader::CancelFullSizeLoading 4"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   690
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   691
        DP0_IMAGIC(_L("CIEBitmapLoader::CancelFullSizeLoading--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   692
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   693
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   694
void CIEBitmapLoader::SetImageDataMode(TImageArrayMode aMode)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   695
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   696
    iImageArrayMode = aMode;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   697
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   698
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   699
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   700
// EOF