EngInc/IEEngineImp.h
changeset 3 93fff7023be8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EngInc/IEEngineImp.h	Fri Oct 15 10:18:29 2010 +0900
@@ -0,0 +1,172 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors: Juha Kauppinen, Mika Hokkanen
+* 
+* Description: Photo Browser
+*
+*/
+
+#ifndef __IEENGINEIMP_H__
+#define __IEENGINEIMP_H__
+
+#define _FACEBROWSING
+
+// Include files
+#include <e32cons.h>
+#include <e32base.h>
+#include <F32file.h>
+#include <FBS.h>
+
+#include <IEEngine.h>
+#include <IEImageProcessing.h>//thumbnail client
+#include <exifmodify.h> 
+
+#ifdef IMAGE_EDITOR
+#include "IEEditor.h"
+#endif
+#include "IEBitmapLoader.h"
+#include "IEFileloader.h"
+#include "IEBgpsController.h"
+#include "ImagicConsts.h"
+
+#include "IEEngineUtils.h"
+//#ifdef _S60_5x_ACCELEROMETER_
+#include "IESensorMonitor.h"
+//#endif
+
+// Forward class declarations
+#ifdef IMAGE_EDITOR
+class CIEEditor;
+#endif
+class CIEFileLoader;
+class CIEBitmapLoader;
+class CIETNController;
+class CIEImageProcessing;
+class CImageData;
+class CIEEngineUtils;
+class MBitmapLoaderObserver;
+//#ifdef _S60_5x_ACCELEROMETER_
+//class TSensrvOrientationData;
+//#endif
+
+// Class declaration
+class CIEEngineImp : public CIEEngine, public MBitmapLoaderObserver , public MIEBgpsControllerObserver 
+#ifdef _ACCELEROMETER_SUPPORTED_
+,public MIESensorMonitorObserver
+#endif
+#ifdef IMAGE_EDITOR
+, public MIEObserver
+#endif
+{
+public: // First phase constructor and destructor
+	static CIEEngineImp* NewL(MIEEngineObserver& aObserver);
+	~CIEEngineImp();
+
+private: // Second phase constructot and C++ default constructor
+	void ConstructL();
+	   CIEEngineImp(MIEEngineObserver& aObserver);
+	
+public: // From CIEEngine
+	// General Functions
+    void SetDBChanged(CImageData* aImageData);
+    TInt GetTotalNumOfImages();
+    void GetTotalNumOfImages(TInt& aNumOfImages, TInt& aNumOfFaces);
+	TInt DeleteFile(TInt aIndex);
+	TInt GetImageName(const TInt aIndex, TFileName& aFileName, TThumbSize aThumbRes);
+	void GetBitmapL(CImageData* aImageData, CFbsBitmap* aBitmap, TThumbSize aThumbRes);
+	void SetImageDataMode(TImageArrayMode aMode);
+	void AppUIReady();
+	void CancelFullSizeLoading();
+	//New functions for handling UI access to Filename array
+    CImageData* GetImageData(TInt aIndex);
+    void SetImageData(TInt aIndex, CImageData* aGridData);
+	TBool IsScanningFiles() const;
+	CIEImageList& GetImageList();
+	
+	// TN related functions
+	void GetFileNameL(const TInt aIndex, TThumbSize aThumbRes, TFileName& aFilename);
+	void StopTNGeneration(TInt &aValue);
+	TReal GetAspectRatio(TInt aIndex);
+	TReal GetFacesAspectRatio(TInt aIndex);
+	void GenerateThumbNailL(const TDes &aOrgFile, TThumbSize aTNResolution);
+	
+	// Face Detection related functions
+	void GetFaceCoordinates(const TFileName a128x128TNFileName, RArray<TRect>& aFaceCoordinateArray);  
+    void RemoveFaceCoordinate(const TFileName a128x128TNFileName, RArray<TRect>& aCordArray);
+    void GetSingleFaceCoordinates(TInt aIndex, const TFileName aTNFileName, RArray<TRect>& aFaceCoordinateArray);
+    
+public: //From MBitmapLoaderObserver
+    CIEFileLoader* GetFileLoader();
+    void BitmapsLoadedL(TInt aError);
+    
+public: // From
+    inline void Something(){};
+    void TNGenerationComplete(TThumbSize aTNRes);
+    void SingleTNGenerationComplete(TInt aIndex, TThumbSize aTNRes);
+    void FaceDetectionComplete();
+    void SingleFaceDetectionComplete();
+    void SetGridRotationAngle(TReal aAngle);
+    TBool IsAccelerometerExists();
+
+#ifdef _ACCELEROMETER_SUPPORTED_
+    void SensorDataAvailable(TImagicDeviceOrientation aOrientation, TBool aValue);
+    void SetImageRotation(TInt aIndex);
+    TImagicDeviceOrientation GetDeviceOrientation();
+    void SetDeviceOrientation(TImagicDeviceOrientation aOrientation);
+    void StartAccSensorMonitoring();
+    void StopAccSensorMonitoring();
+#endif
+
+public: // New public functions
+	CIEEngineUtils *GetEngineUtils();
+	void AllFilesAddedToFilenameArrayL();
+	MIEEngineObserver& GetObserver();
+	
+	TInt GetSelectedImageIndex();
+	void Stop();
+	TBool IsRunning();
+	TInt GetGleMaxRes();
+	
+private:
+    void AddImageToFaceNameArray();
+  
+private:
+	MIEEngineObserver&     iEngineObserver;
+	RFs                    iFileServer;
+#ifdef IMAGE_EDITOR
+	CIEEditor*             iImageEditor;
+#endif
+	CIEFileLoader*         iFileLoader;
+	CIEBitmapLoader*       iBitmapLoader;
+    CIEEngineUtils         iIEEngineUtils;
+    CIEBgpsController*     iIEBgpsController;
+    TBool                  iAllFilesScanned;
+#ifdef _ACCELEROMETER_SUPPORTED_
+    CIESensorMonitor*       iSensorMonitor;
+    TImagicDeviceOrientation      iPrevDeviceOrientation;
+    TImagicDeviceOrientation      iDeviceOrientation;
+#endif
+	
+	TIEEditingMode         iEditingMode;
+	TIEEditingMode         iCurrentEditingMode;
+		
+	TBool                  iImageEdited;
+	CIEImageProcessing*    iIEBgpsClient;
+	RCriticalSection       iCritical;
+	
+	TFileName              iSavedFileName;
+	
+	TImageArrayMode        iImageArrayMode;
+	RArray<TFileName>      iCroppedFilenames;
+};
+
+#endif // __IEENGINEIMP_H__