EngInc/IEEngineImp.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 __IEENGINEIMP_H__
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    19
#define __IEENGINEIMP_H__
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    20
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    21
#define _FACEBROWSING
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    22
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    23
// Include files
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    24
#include <e32cons.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    25
#include <e32base.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    26
#include <F32file.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    27
#include <FBS.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    28
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    29
#include <IEEngine.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    30
#include <IEImageProcessing.h>//thumbnail client
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    31
#include <exifmodify.h> 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    32
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    33
#ifdef IMAGE_EDITOR
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    34
#include "IEEditor.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    35
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    36
#include "IEBitmapLoader.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    37
#include "IEFileloader.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    38
#include "IEBgpsController.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    39
#include "ImagicConsts.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    40
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    41
#include "IEEngineUtils.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    42
//#ifdef _S60_5x_ACCELEROMETER_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    43
#include "IESensorMonitor.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    44
//#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    45
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    46
// Forward class declarations
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    47
#ifdef IMAGE_EDITOR
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    48
class CIEEditor;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    49
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    50
class CIEFileLoader;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    51
class CIEBitmapLoader;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    52
class CIETNController;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    53
class CIEImageProcessing;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    54
class CImageData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    55
class CIEEngineUtils;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    56
class MBitmapLoaderObserver;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    57
//#ifdef _S60_5x_ACCELEROMETER_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    58
//class TSensrvOrientationData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    59
//#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    60
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    61
// Class declaration
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    62
class CIEEngineImp : public CIEEngine, public MBitmapLoaderObserver , public MIEBgpsControllerObserver 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    63
#ifdef _ACCELEROMETER_SUPPORTED_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    64
,public MIESensorMonitorObserver
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    65
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    66
#ifdef IMAGE_EDITOR
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    67
, public MIEObserver
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    68
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    69
{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    70
public: // First phase constructor and destructor
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    71
	static CIEEngineImp* NewL(MIEEngineObserver& aObserver);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    72
	~CIEEngineImp();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    73
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    74
private: // Second phase constructot and C++ default constructor
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    75
	void ConstructL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    76
	   CIEEngineImp(MIEEngineObserver& aObserver);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    77
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    78
public: // From CIEEngine
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    79
	// General Functions
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    80
    void SetDBChanged(CImageData* aImageData);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    81
    TInt GetTotalNumOfImages();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    82
    void GetTotalNumOfImages(TInt& aNumOfImages, TInt& aNumOfFaces);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    83
	TInt DeleteFile(TInt aIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    84
	TInt GetImageName(const TInt aIndex, TFileName& aFileName, TThumbSize aThumbRes);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    85
	void GetBitmapL(CImageData* aImageData, CFbsBitmap* aBitmap, TThumbSize aThumbRes);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    86
	void SetImageDataMode(TImageArrayMode aMode);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    87
	void AppUIReady();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    88
	void CancelFullSizeLoading();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    89
	//New functions for handling UI access to Filename array
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    90
    CImageData* GetImageData(TInt aIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    91
    void SetImageData(TInt aIndex, CImageData* aGridData);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    92
	TBool IsScanningFiles() const;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    93
	CIEImageList& GetImageList();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    94
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    95
	// TN related functions
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    96
	void GetFileNameL(const TInt aIndex, TThumbSize aThumbRes, TFileName& aFilename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    97
	void StopTNGeneration(TInt &aValue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    98
	TReal GetAspectRatio(TInt aIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    99
	TReal GetFacesAspectRatio(TInt aIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   100
	void GenerateThumbNailL(const TDes &aOrgFile, TThumbSize aTNResolution);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   101
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   102
	// Face Detection related functions
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   103
	void GetFaceCoordinates(const TFileName a128x128TNFileName, RArray<TRect>& aFaceCoordinateArray);  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   104
    void RemoveFaceCoordinate(const TFileName a128x128TNFileName, RArray<TRect>& aCordArray);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   105
    void GetSingleFaceCoordinates(TInt aIndex, const TFileName aTNFileName, RArray<TRect>& aFaceCoordinateArray);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   106
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   107
public: //From MBitmapLoaderObserver
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   108
    CIEFileLoader* GetFileLoader();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   109
    void BitmapsLoadedL(TInt aError);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   110
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   111
public: // From
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   112
    inline void Something(){};
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   113
    void TNGenerationComplete(TThumbSize aTNRes);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   114
    void SingleTNGenerationComplete(TInt aIndex, TThumbSize aTNRes);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   115
    void FaceDetectionComplete();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   116
    void SingleFaceDetectionComplete();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   117
    void SetGridRotationAngle(TReal aAngle);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   118
    TBool IsAccelerometerExists();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   119
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   120
#ifdef _ACCELEROMETER_SUPPORTED_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   121
    void SensorDataAvailable(TImagicDeviceOrientation aOrientation, TBool aValue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   122
    void SetImageRotation(TInt aIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   123
    TImagicDeviceOrientation GetDeviceOrientation();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   124
    void SetDeviceOrientation(TImagicDeviceOrientation aOrientation);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   125
    void StartAccSensorMonitoring();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   126
    void StopAccSensorMonitoring();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   127
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   128
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   129
public: // New public functions
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   130
	CIEEngineUtils *GetEngineUtils();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   131
	void AllFilesAddedToFilenameArrayL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   132
	MIEEngineObserver& GetObserver();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   133
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   134
	TInt GetSelectedImageIndex();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   135
	void Stop();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   136
	TBool IsRunning();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   137
	TInt GetGleMaxRes();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   138
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   139
private:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   140
    void AddImageToFaceNameArray();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   141
  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   142
private:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   143
	MIEEngineObserver&     iEngineObserver;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   144
	RFs                    iFileServer;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   145
#ifdef IMAGE_EDITOR
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   146
	CIEEditor*             iImageEditor;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   147
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   148
	CIEFileLoader*         iFileLoader;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   149
	CIEBitmapLoader*       iBitmapLoader;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   150
    CIEEngineUtils         iIEEngineUtils;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   151
    CIEBgpsController*     iIEBgpsController;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   152
    TBool                  iAllFilesScanned;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   153
#ifdef _ACCELEROMETER_SUPPORTED_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   154
    CIESensorMonitor*       iSensorMonitor;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   155
    TImagicDeviceOrientation      iPrevDeviceOrientation;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   156
    TImagicDeviceOrientation      iDeviceOrientation;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   157
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   158
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   159
	TIEEditingMode         iEditingMode;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   160
	TIEEditingMode         iCurrentEditingMode;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   161
		
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   162
	TBool                  iImageEdited;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   163
	CIEImageProcessing*    iIEBgpsClient;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   164
	RCriticalSection       iCritical;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   165
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   166
	TFileName              iSavedFileName;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   167
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   168
	TImageArrayMode        iImageArrayMode;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   169
	RArray<TFileName>      iCroppedFilenames;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   170
};
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   171
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   172
#endif // __IEENGINEIMP_H__