filmreel2container.h

来自「最新官方例子,图形,描述副,基本控件,通讯协议,等等,」· C头文件 代码 · 共 127 行

H
127
字号
#ifndef FILMREEL2CONTAINER_H
#define FILMREEL2CONTAINER_H

// INCLUDES
#include "CameraObserver.h"

// System includes
#include <coecntrl.h> // CCoeControl
#include <ecam.h> // CCamera
#include <MdaImageConverter.h>  // for MMdaImageUtilObserver

// FORWARD DECLARATIONS
class CAknNavigationControlContainer;
class CAknNavigationDecorator;
class CAknNaviLabel;
class CCameraTimer;
class CFbsBitmap;

// CLASS DECLARATION
/**
*
* @class	CFilmReel2Container FilmReel2Container.h 
* @brief	This is the container class for an example based on the
* standard Symbian OS architecture, demonstrating the use of the camera server
*
* Copyright (c) EMCC Software Ltd 2003
* @version	1.0
* 
*/

class CFilmReel2Container : public CCoeControl, public MCameraObserver, 
	public MMdaImageUtilObserver, public MCameraTimerObserver
	{
public: // Constructors and destructor
	static CFilmReel2Container* NewL(const TRect& aRect);

	static CFilmReel2Container* NewLC(const TRect& aRect);

	~CFilmReel2Container();

public: // new methods
	enum TContainerState
		{
		ENotReady = 0,
		EPreviewing,
		ERecording,
		EDisplayingResult,
		ESavingImage,
		EPoweredDown
		};
	
	TContainerState CurrentState() const;
	
	void SaveImageL();
	void PreviewModeL();
	void RecordModeL();
	void DisplayModeL();
	
	void RequestPictureAfterPause();
	const TFileName& FileName() const;
	const TFileName& ImageName() const;
	void SetNaviLabelTextL(TInt aTextResourceId);
	void SetNaviLabelTextL(const TDesC& aText);

public: // from MCameraObserver
	virtual void ReserveComplete (TInt aError);
	virtual void PowerOnComplete (TInt aError);
	virtual void ViewFinderFrameReady (CFbsBitmap& aFrame);
	virtual void ImageReady (CFbsBitmap* aBitmap, HBufC8* aData, TInt aError);
	virtual void FrameBufferReady (MFrameBuffer* aFrameBuffer, TInt aError);
	
public: // from MCameraTimerObserver
	void TimerCompleted();

public:	 // from MMdaImageUtilObserver
    virtual void MiuoOpenComplete(TInt aError);
    virtual void MiuoConvertComplete(TInt aError);
    virtual void MiuoCreateComplete(TInt aError);

private: // Constructor
	void ConstructL(const TRect& aRect);

private: // from CoeControl
	void Draw(const TRect& aRect) const;

private: // new methods
	void DisplayMessage(const TDesC& aMessage, CWindowGc& aGc) const;

	void PowerOnCompleteL();
	void ViewFinderFrameReadyL(CFbsBitmap& aFrame);
	void ImageReadyL(CFbsBitmap* aBitmap, HBufC8* aData);

private: //data
	TContainerState iContainerState;

	CCamera* iCamera;
    CFbsBitmap* iBitmap;
	CFbsBitmap* iBitmapViewer;

	CFbsBitmap* iCollageBitmap;
	CFbsBitGc* iBGc;
	CFbsBitmapDevice* iBitmapDevice; 

	TInt iX;
	TInt iY;
	TInt iCount;

    CMdaImageBitmapToFileUtility* iFileSaver;
    TMdaJfifClipFormat* iFormat;

	CCameraTimer* iCameraTimer;

	TFileName iFileName;
	TFileName iImageName;

	HBufC* iNotReadyText;
	HBufC* iTimeOutText;

	CAknNavigationControlContainer* iNaviPane;	// Not directly owned by this class.
	CAknNaviLabel* iNaviLabel;					// Not directly owned by this class.
	CAknNavigationDecorator* iNaviDecoratorForLabel;
	};

#endif	// #ifndef FILMREEL2CONTAINER_H

// End of File

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?