EngInc/IEEngine.h
author jkauppin
Fri, 15 Oct 2010 10:18:29 +0900
changeset 3 93fff7023be8
permissions -rw-r--r--
Initial version

/*
* 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 __IEENGINE_H__
#define __IEENGINE_H__

#define _FACEBROWSING

// Include files
#include <e32base.h>
#include <fbs.h>

#include "ImagicConsts.h"
#include "debug.h"
#include "IEImage.h"
#include "IEImageProcessing.h" //thumbnail client
#include "IESensorMonitor.h"
#include "IEImageList.h"

#ifdef _S60_5x_ACCELEROMETER_
#include <sensrvorientationsensor.h>
#endif

//Structures

// Class declaration, AppUI class implements
class MIEEngineObserver
{
public:
    virtual void ImagesLoadedL(TInt aError) = 0;
	virtual void TNCreationCompleteL(TThumbSize aTnRes) = 0;
	virtual void SingleTNCreationCompletedL(TInt index, TThumbSize aTnRes) = 0;
	virtual void FaceDetectionComplete() = 0;
	virtual void SingleFaceDetectionComplete() = 0;
	virtual TInt GetImageIndex() = 0;
	virtual void AllFilesScanned() = 0;
	virtual void ImageListChanged(TInt aIndex, TBool bAdded) = 0;
#ifdef _ACCELEROMETER_SUPPORTED_
	virtual void ImageRotated(TImagicDeviceOrientation aDeviceOrientation) = 0;
#endif
	virtual TInt GetGleMaxRes() = 0;
	
};

class CIEEngine : public CBase
{
public:
    
	IMPORT_C static CIEEngine* NewL(MIEEngineObserver& aObserver);
	IMPORT_C virtual ~CIEEngine();
	IMPORT_C virtual TInt GetTotalNumOfImages() = 0;
	IMPORT_C virtual void GetTotalNumOfImages(TInt& aNumOfImages, TInt& aNumOfFaces) = 0;
	IMPORT_C virtual TInt DeleteFile(TInt aIndex) = 0;
	IMPORT_C virtual TInt GetImageName(const TInt aIndex, TFileName& aFileName, TThumbSize aThumbRes) = 0;
	IMPORT_C virtual void GetBitmapL(CImageData* aImageData, CFbsBitmap* aBitmap, TThumbSize aThumbRes) = 0;
	IMPORT_C virtual void AppUIReady() = 0;
	IMPORT_C virtual void CancelFullSizeLoading() = 0;
#ifdef _ACCELEROMETER_SUPPORTED_
	IMPORT_C virtual TImagicDeviceOrientation GetDeviceOrientation() = 0;
	IMPORT_C virtual void SetDeviceOrientation(TImagicDeviceOrientation aOrientation) = 0;
	IMPORT_C virtual void StartAccSensorMonitoring() = 0;
    IMPORT_C virtual void StopAccSensorMonitoring() = 0;
#endif
	IMPORT_C virtual TBool IsAccelerometerExists() = 0;
	IMPORT_C virtual void SensorDataAvailable(TImagicDeviceOrientation aOrientation, TBool aValue) = 0;
	IMPORT_C virtual void SetImageRotation(TInt aIndex) = 0;
	IMPORT_C virtual void SetDBChanged(CImageData* aImageData) = 0;
	
	//New functions for handling UI access to Filename array
	IMPORT_C virtual CImageData* GetImageData(TInt aIndex/*, TImageArrayMode aMode*/) = 0;
	IMPORT_C virtual void SetImageData(TInt aIndex, CImageData* aGridData) = 0;
	IMPORT_C virtual TBool IsScanningFiles() const = 0;
	IMPORT_C virtual CIEImageList& GetImageList() = 0;	

	// TN related functions
	IMPORT_C virtual void GetFileNameL(const TInt aIndex, TThumbSize aThumbRes, TFileName& aFilename) = 0;
	IMPORT_C virtual void StopTNGeneration(TInt &aValue) = 0;
	IMPORT_C virtual TReal GetAspectRatio(TInt aIndex) = 0;
	IMPORT_C virtual TReal GetFacesAspectRatio(TInt aIndex) = 0;
	IMPORT_C virtual void GenerateThumbNailL(const TDes &aOrgFile, TThumbSize aTNResolution) = 0;
	
	// Newly added face Detection functions
	IMPORT_C virtual void GetFaceCoordinates(const TFileName a128x128TNFileName, RArray<TRect>& aFaceCoordinateArray) = 0;
    IMPORT_C virtual void GetSingleFaceCoordinates(TInt aIndex, const TFileName aTNFileName, RArray<TRect>& aFaceCoordinateArray) = 0;
    IMPORT_C virtual void SetImageDataMode(TImageArrayMode aMode) = 0;
    
    IMPORT_C virtual void Stop() = 0;
    IMPORT_C virtual TBool IsRunning() = 0;
};

#endif // __IEENGINE_H__