diff -r e1e28b0273b0 -r 93fff7023be8 EngInc/IEEngineImp.h --- /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 +#include +#include +#include + +#include +#include //thumbnail client +#include + +#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& aFaceCoordinateArray); + void RemoveFaceCoordinate(const TFileName a128x128TNFileName, RArray& aCordArray); + void GetSingleFaceCoordinates(TInt aIndex, const TFileName aTNFileName, RArray& 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 iCroppedFilenames; +}; + +#endif // __IEENGINEIMP_H__