IEBgps/src/IETNGenerator.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
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    18
#include <ImageConversion.h> //CImageDecoder
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    19
#include <FBS.H> //CFbsBitmap
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    20
#include <BAUTILS.H>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    21
//#include <IEBGPSTrace.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    22
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    23
#include "IETNGenerator.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    24
#include "IEBgpServerSession.h" 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    25
#include <hal.h> 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    26
#include "ImagicConsts.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    27
#include "ieengineutils.h" 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    28
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    29
_LIT8(KMimeJpeg, "image/jpeg");
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    30
_LIT8(KMimePng, "image/png");
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    31
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    32
#define DO_NOT_USE_SCALING
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    33
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    34
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    35
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    36
CIETNGeneratorAO* CIETNGeneratorAO::NewL(RFs& aFileServer, MIEThumbNailObserver &aObserver)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    37
{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    38
	CIETNGeneratorAO* self = new (ELeave) CIETNGeneratorAO(aFileServer, aObserver);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    39
	CleanupStack::PushL(self);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    40
	self->ConstructL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    41
	CleanupStack::Pop();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    42
	return self;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    43
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    44
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    45
CIETNGeneratorAO::~CIETNGeneratorAO()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    46
{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    47
    DP0_IMAGIC((_L("CIETNGeneratorAO::~CIETNGeneratorAO ++")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    48
 	if(IsActive())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    49
		Cancel();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    50
 	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    51
	 CancelOutStaningRequests();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    52
	 DeleteObjects();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    53
	 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    54
	 DP0_IMAGIC((_L("CIETNGeneratorAO::~CIETNGeneratorAO --")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    55
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    56
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    57
//EPriorityIdle, EPriorityLow, EPriorityStandard, EPriorityUserInput, EPriorityHigh
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    58
CIETNGeneratorAO::CIETNGeneratorAO(RFs& aFileServer, MIEThumbNailObserver &aObserver)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    59
: iFileServer(aFileServer),
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    60
  iThumbnailObserver(aObserver),
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    61
  CActive(EPriorityStandard)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    62
{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    63
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    64
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    65
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    66
void CIETNGeneratorAO::ConstructL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    67
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    68
    DP0_IMAGIC((_L("CIETNGeneratorAO::ConstructL ++")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    69
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    70
	CActiveScheduler::Add(this);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    71
	iError = KErrNone;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    72
	decoderUid = CIEEngineUtils::GetImageDecoderUid();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    73
	//i512x512TnBitmap = new (ELeave) CFbsBitmap();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    74
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    75
	DP0_IMAGIC((_L("CIETNGeneratorAO::ConstructL --")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    76
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    77
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    78
void CIETNGeneratorAO::RunL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    79
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    80
    DP0_IMAGIC((_L("CIETNGeneratorAO::RunL ++")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    81
    iError = iStatus.Int();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    82
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    83
#ifdef _IMAGIC_DEBUG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    84
    TInt mem = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    85
	TInt ret = HAL::Get(HALData::EMemoryRAMFree, mem);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    86
	DP1_IMAGIC(_L("CIETNGeneratorAO::RunL - mem: %d"),mem);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    87
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    88
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    89
	if(iError != KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    90
	    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    91
	    DeleteObjects();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    92
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    93
        iConvertStatus = ENone;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    94
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    95
        // inform to higher layer... and delete thumbnails we tried to create
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    96
        DP1_IMAGIC(_L("CIETNGeneratorAO::RunL - Something wrong %d"), iError);      
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    97
        iThumbnailObserver.ThumbNailGenerationCompleted(iError);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    98
	    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    99
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   100
	switch (iConvertStatus)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   101
	    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   102
	    case EDecoding:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   103
	        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   104
	        DP0_IMAGIC((_L("CIETNGeneratorAO::RunL - EDecoding")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   105
	        TRAPD(err, DecodeL()); // TODO handle errors
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   106
	        if (err != KErrNone) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   107
	            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   108
	            DP1_IMAGIC((_L("CIETNGeneratorAO::RunL - EDecoding error: %d")), err);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   109
	            iThumbnailObserver.ThumbNailGenerationCompleted(err); //ASSERT(0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   110
	            iConvertStatus = ENone;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   111
	            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   112
	        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   113
	            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   114
#ifdef DO_NOT_USE_SCALING
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   115
	            iConvertStatus = EEncoding;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   116
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   117
	            iConvertStatus = EScaling;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   118
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   119
                SetActive();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   120
	            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   121
	        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   122
	        break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   123
		
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   124
	    case EScaling:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   125
	        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   126
	        DP0_IMAGIC((_L("CIETNGeneratorAO::RunL - EScaling")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   127
	        TRAPD(err, ScaleL());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   128
            if (err != KErrNone) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   129
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   130
                DP1_IMAGIC((_L("CIETNGeneratorAO::RunL - EScaling error: %d")), err);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   131
                iThumbnailObserver.ThumbNailGenerationCompleted(err); //ASSERT(0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   132
                iConvertStatus = ENone;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   133
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   134
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   135
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   136
                iConvertStatus = EEncoding;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   137
                SetActive();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   138
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   139
	        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   140
	        break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   141
        	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   142
	    case EEncoding:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   143
	        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   144
	        DP0_IMAGIC((_L("CIETNGeneratorAO::RunL - EEncoding")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   145
	        TRAPD(err, EncodeL()); // TODO handle errors
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   146
	        if (err != KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   147
	            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   148
	            DP1_IMAGIC((_L("CIETNGeneratorAO::RunL - EEncoding error: %d")), err);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   149
                iThumbnailObserver.ThumbNailGenerationCompleted(err); //ASSERT(0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   150
                iConvertStatus = ENone;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   151
	            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   152
	        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   153
	            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   154
	            iConvertStatus = EReady;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   155
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   156
#ifdef USE_BITMAPS_TNS
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   157
	            if(!IsJPEG(iThumbnailSize))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   158
	                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   159
	                //When saving TN as bitmap we need to complete request immeadtely 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   160
	                //because bitmap saving is handled by CFbsBitmap class instead of image encoder
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   161
	                SetActive();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   162
	                TRequestStatus* status = &iStatus;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   163
	                User::RequestComplete( status, KErrNone );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   164
	                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   165
	            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   166
	                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   167
	                SetActive();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   168
	                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   169
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   170
	            SetActive();        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   171
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   172
	            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   173
	        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   174
	        break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   175
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   176
	    case EReady:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   177
	        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   178
	        DP0_IMAGIC((_L("CIETNGeneratorAO::RunL - EReady")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   179
   		
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   180
	        // use same image for generating smaller thumbnails
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   181
	        if (IsLargeThumbnail(iThumbnailSize))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   182
	            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   183
                /*DP0_IMAGIC((_L("CIETNGeneratorAO::RunL - EScaling")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   184
                TRAPD(err, ScaleL());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   185
                if (err != KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   186
                    ASSERT(0);// TODO handle errors   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   187
                iConvertStatus = EEncoding;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   188
                SetActive();*/ 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   189
   		    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   190
   		
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   191
	        if( iImageEncoder )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   192
	            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   193
	            delete iImageEncoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   194
	            iImageEncoder = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   195
	            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   196
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   197
	        if( iBitmap )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   198
	            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   199
	            iBitmap->Reset();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   200
	            delete iBitmap;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   201
	            iBitmap = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   202
	            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   203
	        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   204
#ifdef DECODE_FROM_BUFFER    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   205
	        if(iSourceData) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   206
	            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   207
	            delete iSourceData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   208
	            iSourceData = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   209
	            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   210
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   211
	        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   212
	        iConvertStatus = ENone;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   213
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   214
#ifndef USE_BITMAPS_TNS
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   215
	        WriteExifData(iThumbnailFileName, iResolutionSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   216
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   217
	        if(IsJPEG(iThumbnailSize))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   218
	            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   219
	            TRAPD(err, WriteExifDataL(iThumbnailFileName, iThumbnailSize));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   220
	            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   221
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   222
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   223
            iFileServer.SetModified(iThumbnailFileName, iSourceTime);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   224
            iThumbnailObserver.ThumbNailGenerationCompleted(KErrNone);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   225
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   226
	        break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   227
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   228
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   229
    DP0_IMAGIC(_L("CIETNGeneratorAO::RunL --"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   230
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   231
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   232
TBool CIETNGeneratorAO::IsJPEG(const TSize& aResolution) const
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   233
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   234
#ifdef USE_64X64_BITMAP_TN
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   235
    return (aResolution.iWidth >= 512 || aResolution.iHeight >= 512);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   236
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   237
    return (aResolution.iWidth >= 128 || aResolution.iHeight >= 128);    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   238
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   239
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   240
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   241
TBool CIETNGeneratorAO::IsLargeThumbnail(const TSize& aResolution) const
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   242
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   243
    return (aResolution.iHeight >= 512);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   244
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   245
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   246
void CIETNGeneratorAO::ScaleL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   247
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   248
    DP0_IMAGIC((_L("CIETNGeneratorAO::Scale++")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   249
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   250
    if ( iImageDecoder )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   251
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   252
        delete iImageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   253
        iImageDecoder = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   254
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   255
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   256
    if (iBitmapScaler )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   257
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   258
        delete iImageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   259
        iImageDecoder = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   260
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   261
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   262
    iBitmapScaler = CBitmapScaler::NewL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   263
    iBitmapScaler->UseLowMemoryAlgorithm(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   264
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   265
    TSize tgtBitmapize;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   266
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   267
    // If we want to create high resolution thumbnail, we use 512x512 resolution
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   268
    // for low resolution TN we use size set in iResolutionSize
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   269
    if(IsLargeThumbnail(iThumbnailSize))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   270
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   271
        tgtBitmapize.iWidth = 512;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   272
        tgtBitmapize.iHeight = 512;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   273
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   274
        if(iSourceSize.iWidth > iSourceSize.iHeight)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   275
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   276
            // If we have wide panorama, use higher resolution to width
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   277
            if((iSourceSize.iWidth / iSourceSize.iHeight) > 1.6)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   278
                tgtBitmapize.iWidth = 1024;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   279
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   280
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   281
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   282
            // If we have wide panorama, use higher resolution to height
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   283
            if((iSourceSize.iHeight / iSourceSize.iWidth) > 1.6)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   284
                tgtBitmapize.iHeight = 1024;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   285
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   286
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   287
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   288
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   289
        tgtBitmapize = iThumbnailSize;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   290
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   291
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   292
    // Use max quality
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   293
    iBitmapScaler->SetQualityAlgorithm(CBitmapScaler::EMaximumQuality);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   294
    //iBitmapScaler->SetQualityAlgorithm(CBitmapScaler::EMediumQuality);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   295
    //iBitmapScaler->SetQualityAlgorithm(CBitmapScaler::EMinimumQuality);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   296
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   297
    DP2_IMAGIC(_L("CIETNGeneratorAO::Scale to %dx%d"), tgtBitmapize.iWidth, tgtBitmapize.iHeight);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   298
      
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   299
    iBitmapScaler->Scale(&iStatus, *iBitmap, tgtBitmapize, EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   300
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   301
    DP0_IMAGIC((_L("CIETNGeneratorAO::Scale--")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   302
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   303
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   304
void CIETNGeneratorAO::EncodeL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   305
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   306
    DP0_IMAGIC((_L("CIETNGeneratorAO::Encode++")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   307
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   308
    if (iImageDecoder )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   309
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   310
        delete iImageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   311
        iImageDecoder = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   312
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   313
    if( iBitmapScaler )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   314
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   315
        delete iBitmapScaler;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   316
        iBitmapScaler = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   317
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   318
    if( iImageEncoder )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   319
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   320
        delete iImageEncoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   321
        iImageEncoder = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   322
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   323
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   324
    TParse parser;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   325
    parser.Set(iThumbnailFileName, NULL, NULL );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   326
    TFileName tnPath = parser.DriveAndPath();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   327
    CIEEngineUtils::CreateTNFolder(iFileServer, tnPath);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   328
      
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   329
#ifdef USE_BITMAPS_TNS
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   330
    // Save Bitmap thumbnails if resolution is 128x128 or smaller
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   331
    if(!IsJPEG(iThumbnailSize))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   332
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   333
        iBitmap->Save(iThumbnailFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   334
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   335
    else //if bigger than then save jpg thumbnails
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   336
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   337
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   338
#if 0
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   339
        //If we had 512x512 resolution bitmap we make copy of it
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   340
        if(iBitmap->SizeInPixels().iWidth == 512 && iBitmap->SizeInPixels().iHeight == 512)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   341
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   342
            i512x512TnBitmap->Reset();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   343
            TInt error = i512x512TnBitmap->Create(iBitmap->SizeInPixels(), EColor16M);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   344
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   345
            TUint8* dstData = (TUint8 *)i512x512TnBitmap->DataAddress();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   346
            TUint8* srcData = (TUint8 *)iBitmap->DataAddress();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   347
            TInt dataSize = iBitmap->SizeInPixels().iWidth * iBitmap->SizeInPixels().iHeight;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   348
            dataSize*=3;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   349
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   350
            //Copy bitmap
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   351
            for(TInt i=0; i<dataSize; i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   352
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   353
                dstData[i] = srcData[i];
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   354
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   355
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   356
#endif       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   357
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   358
        SetJpegImageDataL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   359
        DP1_IMAGIC(_L("CIETNGeneratorAO::Encode - iThumbnailFileName: %S"), &iThumbnailFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   360
        iMimeString = KMimeJpeg;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   361
        iImageEncoder = CImageEncoder::FileNewL( iFileServer, iThumbnailFileName, iMimeString );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   362
        iImageEncoder->Convert(&iStatus, *iBitmap, iFrameImageData);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   363
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   364
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   365
    TEntry entry;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   366
    User::LeaveIfError(iFileServer.Entry(iThumbnailFileName, entry));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   367
    // Remember the modified time of the source file
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   368
    iSourceTime = entry.iModified;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   369
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   370
    DP0_IMAGIC((_L("CIETNGeneratorAO::Encode--")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   371
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   372
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   373
void CIETNGeneratorAO::DecodeL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   374
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   375
    DP0_IMAGIC((_L("CIETNGeneratorAO::Decode++")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   376
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   377
    if(iImageDecoder)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   378
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   379
        delete iImageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   380
        iImageDecoder = NULL;   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   381
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   382
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   383
    DP1_IMAGIC((_L("CIETNGeneratorAO::Decode - Creating decoder... with filename: %S")),&iSourceFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   384
#ifdef USE_EXT_JPEG_DEC
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   385
    iImageDecoder = CExtJpegDecoder::FileNewL(iFileServer, iSourceFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   386
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   387
    
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
        delete iSourceData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   391
        iSourceData = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   392
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   393
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   394
    RFile jpgFile;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   395
    TInt fileSize;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   396
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   397
    User::LeaveIfError(jpgFile.Open(iFileServer, iSourceFileName, EFileRead));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   398
    jpgFile.Size(fileSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   399
    iSourceData = HBufC8::NewL(fileSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   400
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   401
    TPtr8 buffer = iSourceData->Des();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   402
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   403
    jpgFile.Read(buffer, fileSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   404
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   405
    jpgFile.Close();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   406
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   407
    iImageDecoder = CImageDecoder::DataNewL(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   408
            iFileServer, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   409
            *iSourceData, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   410
            CImageDecoder::EOptionNone, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   411
            KNullUid, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   412
            KNullUid, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   413
            decoderUid);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   414
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   415
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   416
#else    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   417
    iImageDecoder = CImageDecoder::FileNewL(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   418
                                        iFileServer, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   419
                                        iSourceFileName, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   420
                                        CImageDecoder::EOptionNone, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   421
                                        KNullUid, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   422
                                        KNullUid, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   423
                                        decoderUid);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   424
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   425
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   426
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   427
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   428
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   429
    iMimeString = KMimeJpeg;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   430
#ifdef DECODE_FROM_BUFFER
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   431
    CImageDecoder::GetMimeTypeDataL( *iSourceData, iMimeString );    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   432
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   433
    CImageDecoder::GetMimeTypeFileL( iFileServer, iSourceFileName, iMimeString );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   434
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   435
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   436
    iSourceSize = iImageDecoder->FrameInfo().iOverallSizeInPixels;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   437
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   438
    DP2_IMAGIC((_L("CIETNGeneratorAO::Decode - image %dx%d")), iSourceSize.iWidth, iSourceSize.iHeight );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   439
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   440
    iBitmap = new (ELeave) CFbsBitmap();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   441
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   442
    TargetDecodingSize(iThumbnailSize, iSourceSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   443
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   444
#ifdef DO_NOT_USE_SCALING
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   445
    if(IsLargeThumbnail(iThumbnailSize))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   446
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   447
        iSourceSize.iHeight=512;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   448
        iSourceSize.iWidth=512;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   449
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   450
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   451
  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   452
    TInt error = iBitmap->Create(iSourceSize, EColor16M);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   453
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   454
    iImageDecoder->Convert(&iStatus, *iBitmap, 0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   455
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   456
    DP0_IMAGIC((_L("CIETNGeneratorAO::Decode - convert bitmap... OK")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   457
    DP0_IMAGIC((_L("CIETNGeneratorAO::Decode--")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   458
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   459
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   460
void CIETNGeneratorAO::TargetDecodingSize(const TSize aTgtSize, TSize& aSrcSize)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   461
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   462
    DP0_IMAGIC(_L("CIETNGeneratorAO::TargetDecodingSize++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   463
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   464
    DP2_IMAGIC(_L("CIETNGeneratorAO::TargetDecodingSize - Tgt %dx%d"),aTgtSize.iHeight, aTgtSize.iWidth);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   465
    DP2_IMAGIC(_L("CIETNGeneratorAO::TargetDecodingSize - Src %dx%d"),aSrcSize.iHeight, aSrcSize.iWidth);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   466
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   467
    // up to 32 times downscale in scaler
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   468
    for (TInt i = 0;i < 5;i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   469
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   470
        if (aSrcSize.iWidth < aTgtSize.iWidth * 2 ||
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   471
            aSrcSize.iHeight < aTgtSize.iHeight * 2) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   472
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   473
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   474
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   475
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   476
            aSrcSize.iWidth >>= 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   477
            aSrcSize.iHeight >>= 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   478
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   479
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   480
    // Check that we do not create odd resolution size thumbnail
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   481
    if(aSrcSize.iHeight & 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   482
        aSrcSize.iHeight++;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   483
    if(aSrcSize.iWidth & 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   484
        aSrcSize.iWidth++;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   485
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   486
    DP2_IMAGIC(_L("CIETNGeneratorAO::TargetDecodingSize - New Src %dx%d"), aSrcSize.iHeight, aSrcSize.iWidth);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   487
    DP0_IMAGIC((_L("CIETNGeneratorAO::TargetDecodingSize--")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   488
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   489
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   490
void CIETNGeneratorAO::WriteExifDataL(const TDes &aFilename, TSize aSize)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   491
     {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   492
     DP0_IMAGIC(_L("CIETNGeneratorAO::WriteExifData++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   493
     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   494
     // 1. Read JPEG image from the file to a buffer...
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   495
     RFile file;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   496
     User::LeaveIfError( file.Open( iFileServer, aFilename, EFileWrite ) );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   497
     CleanupClosePushL( file );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   498
     TInt size = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   499
     file.Size(size);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   500
     HBufC8* jpegImage = HBufC8::NewL( size );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   501
     CleanupStack::PushL( jpegImage );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   502
     TPtr8 bufferDes( jpegImage->Des() );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   503
     User::LeaveIfError( file.Read( bufferDes ) );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   504
     CleanupStack::Pop( jpegImage );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   505
     CleanupStack::PopAndDestroy();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   506
     CleanupStack::PushL( jpegImage );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   507
     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   508
     file.Close();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   509
     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   510
     // 2. Instantiate Exif modifier in ECreate mode...
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   511
     CExifModify* modify = CExifModify::NewL( jpegImage->Des(), CExifModify::ECreate );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   512
     CleanupStack::PushL( modify );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   513
     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   514
     // 3. Insert (Set) at least the mandatory Exif data...
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   515
     modify->SetXResolutionL( aSize.iWidth, 1 ); 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   516
     modify->SetYResolutionL( aSize.iHeight, 1 ); 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   517
     modify->SetResolutionUnitL( 2 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   518
     modify->SetYCbCrPositioningL( 1 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   519
     modify->SetComponentsConfigurationL( 1, 2, 3, 0 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   520
     modify->SetColorSpaceL( 1 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   521
     modify->SetPixelXDimensionL( aSize.iWidth );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   522
     modify->SetPixelYDimensionL( aSize.iHeight );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   523
     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   524
     // 4. Get the new Exif image...
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   525
     // If zero length descriptor is given instead of jpeg->Des(), then only the
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   526
     // Exif meta data is returned.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   527
     HBufC8* newExif = modify->WriteDataL( jpegImage->Des() );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   528
     TPtr8 tmp = newExif->Des();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   529
     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   530
     User::LeaveIfError( file.Replace( iFileServer, aFilename, EFileWrite ) );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   531
     //Write Exif and jpeg image back to jpeg file
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   532
     User::LeaveIfError(file.Write(*newExif));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   533
     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   534
     /* Process the new Exif data */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   535
     delete newExif;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   536
     newExif = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   537
     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   538
     // 5. Delete the modifier instance...
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   539
     CleanupStack::PopAndDestroy( modify );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   540
     CleanupStack::PopAndDestroy( jpegImage );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   541
     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   542
     file.Close();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   543
     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   544
     DP0_IMAGIC(_L("CIETNGeneratorAO::WriteExifData--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   545
     }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   546
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   547
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   548
//Set JPEG image quality for encoding
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   549
void CIETNGeneratorAO::SetJpegImageDataL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   550
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   551
    DP0_IMAGIC((_L("CIETNGeneratorAO::SetJpegImageDataL++")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   552
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   553
    TJpegImageData* jpegImageData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   554
    jpegImageData = new (ELeave) TJpegImageData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   555
    jpegImageData->iSampleScheme = TJpegImageData::EColor420;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   556
    jpegImageData->iQualityFactor = 80;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   557
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   558
    if (iFrameImageData)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   559
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   560
        delete iFrameImageData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   561
        iFrameImageData = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   562
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   563
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   564
    iFrameImageData = CFrameImageData::NewL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   565
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   566
    //Ownership of jpegImageData lies with CFrameImageData
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   567
    User::LeaveIfError(iFrameImageData->AppendImageData(jpegImageData));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   568
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   569
    DP0_IMAGIC((_L("CIETNGeneratorAO::SetJpegImageDataL--")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   570
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   571
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   572
void CIETNGeneratorAO::DoCancel()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   573
    {	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   574
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   575
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   576
TInt CIETNGeneratorAO::RunError(TInt /*aError*/)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   577
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   578
	return KErrNone;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   579
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   580
 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   581
/* Set Image arrary received from Client.*/ 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   582
void CIETNGeneratorAO::SetImageArray(RArray<CImageData*> aImageArray)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   583
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   584
    DP0_IMAGIC((_L("CIETNGeneratorAO::SetImageArray ++")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   585
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   586
    iImageArray = aImageArray;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   587
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   588
    DP0_IMAGIC((_L("CIETNGeneratorAO::SetImageArray --")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   589
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   590
 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   591
void CIETNGeneratorAO::CreateThumbnailL(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   592
        const TDes& aSourceFile, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   593
        const TDes& aThumbnailFile, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   594
        const TSize &aSize)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   595
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   596
    DP0_IMAGIC((_L("CIETNGeneratorAO::CreateThumbnailL ++")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   597
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   598
	iSourceFileName.Copy(aSourceFile);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   599
	iThumbnailFileName.Copy(aThumbnailFile);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   600
	iThumbnailSize = aSize;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   601
 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   602
 	iConvertStatus = EDecoding;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   603
 	if(!IsActive())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   604
 	    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   605
 	    SetActive();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   606
 	    TRequestStatus* status = &iStatus;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   607
 	    User::RequestComplete( status, KErrNone );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   608
 	    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   609
 	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   610
 	DP0_IMAGIC((_L("CIETNGeneratorAO::CreateThumbnailL --")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   611
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   612
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   613
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   614
void CIETNGeneratorAO::CreateThumbnailL(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   615
        const TDes& aSourceFile, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   616
        const TDes& aThumbnailFile, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   617
        const TSize &aSize,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   618
        CFbsBitmap* /*a512x512TnBitmap*/)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   619
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   620
    DP0_IMAGIC((_L("CIETNGeneratorAO::CreateThumbnailL ++")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   621
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   622
    iSourceFileName.Copy(aSourceFile);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   623
    iThumbnailFileName.Copy(aThumbnailFile);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   624
    iThumbnailSize = aSize;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   625
 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   626
    iConvertStatus = EDecoding;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   627
    if(!IsActive())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   628
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   629
        SetActive();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   630
        TRequestStatus* status = &iStatus;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   631
        User::RequestComplete( status, KErrNone );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   632
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   633
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   634
    DP0_IMAGIC((_L("CIETNGeneratorAO::CreateThumbnailL --")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   635
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   636
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   637
void CIETNGeneratorAO::CancelOutStaningRequests()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   638
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   639
    DP0_IMAGIC((_L("CIETNGeneratorAO::CancelOutStaningRequests ++")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   640
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   641
    if(iError != KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   642
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   643
        if(BaflUtils::FileExists(iFileServer, iThumbnailFileName))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   644
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   645
            TInt err = BaflUtils::DeleteFile(iFileServer, iThumbnailFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   646
            DP2_IMAGIC(_L("CIETNGeneratorAO::CancelOutStaningRequests - DeleteCorruptedThumbNailFile - file found: %S, err:%d"), &iThumbnailFileName, err);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   647
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   648
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   649
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   650
    DeleteObjects();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   651
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   652
    DP0_IMAGIC((_L("CIETNGeneratorAO::CancelOutStaningRequests --")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   653
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   654
 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   655
void CIETNGeneratorAO::DeleteObjects()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   656
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   657
    DP0_IMAGIC((_L("CIETNGeneratorAO::DeleteObjects ++")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   658
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   659
    if(iImageDecoder)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   660
		{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   661
		delete iImageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   662
		iImageDecoder = NULL;	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   663
		}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   664
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   665
	if( iBitmapScaler )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   666
		{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   667
		delete iBitmapScaler;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   668
		iBitmapScaler = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   669
		}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   670
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   671
	if( iBitmap )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   672
		{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   673
		delete iBitmap;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   674
		iBitmap = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   675
		}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   676
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   677
	if( iImageEncoder )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   678
		{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   679
		delete iImageEncoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   680
		iImageEncoder = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   681
		}	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   682
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   683
    if (iFrameImageData)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   684
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   685
        delete iFrameImageData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   686
        iFrameImageData = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   687
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   688
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   689
#ifdef DECODE_FROM_BUFFER    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   690
    if(iSourceData) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   691
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   692
        delete iSourceData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   693
        iSourceData = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   694
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   695
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   696
    //delete i512x512TnBitmap;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   697
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   698
	DP0_IMAGIC((_L("CIETNGeneratorAO::DeleteObjects --")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   699
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   700
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   701
void CIETNGeneratorAO::CancelRequestsAndDeleteObjects()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   702
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   703
    DP0_IMAGIC((_L("CIETNGeneratorAO::CancelRequestsAndDeleteObjects ++")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   704
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   705
	CancelOutStaningRequests();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   706
	DeleteObjects();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   707
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   708
	DP0_IMAGIC((_L("CIETNGeneratorAO::CancelRequestsAndDeleteObjects --")));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   709
    }