IEBgps/inc/IETNGenerator.h
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
#ifndef __IETNGENERATORAO_H__
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    19
#define __IETNGENERATORAO_H__
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    20
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    21
#include <e32base.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    22
#include <f32file.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    23
#include <BitmapTransforms.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    24
#include <ImageConversion.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    25
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    26
#include "IEBgpServerSession.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    27
#include <IEBgpsInfo.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    28
#include <ICLExif.h> 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    29
#include <exifmodify.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    30
#include <exifread.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    31
#include "debug.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    32
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    33
class CImageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    34
class CFbsBitmap;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    35
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    36
//#define USE_EXT_JPEG_DEC
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    37
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    38
#ifdef USE_EXT_JPEG_DEC
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    39
class CExtJpegDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    40
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    41
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    42
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    43
#define DECODE_FROM_BUFFER
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    44
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    45
// CONSTANTS
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    46
const TInt KMimeStringLength = 256;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    47
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    48
class  CIETNGeneratorAO : public CActive
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    49
{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    50
public:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    51
	static CIETNGeneratorAO* NewL(RFs& aFileServer, MIEThumbNailObserver &aObserver);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    52
	virtual ~CIETNGeneratorAO();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    53
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    54
private:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    55
	void ConstructL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    56
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    57
	CIETNGeneratorAO(RFs& aFileServer, MIEThumbNailObserver &aObserver);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    58
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    59
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    60
protected:  // Type declarations
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    61
    enum TIETNConvertStatus
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    62
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    63
    	ENone = 0,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    64
        EDecoding,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    65
        EScaling,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    66
        EEncoding,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    67
        EReady
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    68
    };
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    69
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    70
public:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    71
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    72
	void SetImageArray(	RArray<CImageData*> aImageArray);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    73
	void CancelOutStaningRequests();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    74
	void DeleteObjects();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    75
	void CancelRequestsAndDeleteObjects();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    76
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    77
public: // From CActive
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    78
	void RunL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    79
	void DoCancel();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    80
	TInt RunError(TInt aError);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    81
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    82
public: // Other public functions
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    83
 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    84
	RArray<CImageData*> iImageArray;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    85
	void CreateThumbnailL(const TDes& aSourceFile, const TDes& aThumbnailFile, const TSize &aSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    86
	void CreateThumbnailL(const TDes& aSourceFile, const TDes& aThumbnailFile, const TSize &aSize, CFbsBitmap* a512x512TnBitmap);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    87
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    88
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    89
private:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    90
	void SetJpegImageDataL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    91
	void WriteExifDataL(const TDes &aFilename, TSize aSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    92
	void DecodeL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    93
	void EncodeL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    94
	void ScaleL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    95
	void TargetDecodingSize(const TSize aTgtSize, TSize& aSrcSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    96
	TBool IsLargeThumbnail(const TSize& aResolution) const;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    97
	TBool IsJPEG(const TSize& aResolution) const;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    98
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    99
private:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   100
  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   101
    RFs&                  iFileServer;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   102
#ifdef USE_EXT_JPEG_DEC
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   103
    CExtJpegDecoder*      iImageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   104
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   105
    CImageDecoder*        iImageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   106
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   107
    CImageEncoder*        iImageEncoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   108
    CFbsBitmap*           iBitmap;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   109
    CBitmapScaler*        iBitmapScaler;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   110
    TIETNConvertStatus    iConvertStatus;   /** Convert status */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   111
    MIEThumbNailObserver& iThumbnailObserver;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   112
    TFileName             iSourceFileName;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   113
    TFileName             iThumbnailFileName;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   114
    TBuf8<KMimeStringLength> iMimeString;   /** The source file Mime-string */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   115
    TSize                 iSourceSize;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   116
    CFrameImageData*      iFrameImageData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   117
    TSize                 iThumbnailSize;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   118
    TTime                 iSourceTime;      /** Source file time */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   119
    TInt                  iError;  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   120
    CFbsBitmap*           i512x512TnBitmap;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   121
    TUid                  decoderUid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   122
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   123
#ifdef DECODE_FROM_BUFFER
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   124
    HBufC8*               iSourceData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   125
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   126
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   127
};
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   128
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   129
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   130
#endif