⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multimediafadapter.h

📁 symbian 下实现多媒体处理的完整的源码。
💻 H
字号:
#ifndef MULTIMEDIAFADAPTER_H
#define MULTIMEDIAFADAPTER_H

// System Includes
#include <e32base.h>
#include <gdi.h>		// TDisplayMode
#include <f32file.h>	// RFs

// User includes
#include "ImageModel.h"	// MImageModel


//FORWARD DECLARATION
class CImageDecoder;
class CImageEncoder;
class CBitmapRotator;
class CBitmapScaler;
class CFbsBitmap;
class MMultimediaController;
class CFrameImageData;
class TJpegImageData;

/**
 *
 * @class	CMultiMediaFAdapter MultiMediaFAdapter.h
 * @brief	This is an Adapter class (see a design patterns book) which
 * acts as a wrapper around the functionality of the Media Multi Framework. The example
 * illustrates some of the core concepts required in understanding
 * image conversion/manipulation on Series 60 v2.x.
 *
 * Copyright (c) EMCC Software Ltd 2003
 * @version	1.0
 *
 */

class CMultiMediaFAdapter : public CActive, public MImageModel //this is from Media Server
    {
public:	// Construction and Destruction
	static CMultiMediaFAdapter* NewL(MMultimediaController& aMultimediaController, TDisplayMode aDeviceDisplayMode);
	static CMultiMediaFAdapter* NewLC(MMultimediaController& aMultimediaController, TDisplayMode aDeviceDisplayMode);
	virtual ~CMultiMediaFAdapter();

public:	// Public Methods
	void HandleCommandL(TInt aCommand);

public:	//From MImageModel
	CFbsBitmap& Image() const;

protected:	// From CActive
	void RunL();
	void DoCancel();

private:	// Enumerations
	// enumeration to keep track of current manipulation
	enum TMultiMediaFState
		{
		EDecode = 0,
		EEncode,
		ERotating,
		EScaling,
		EDoNothing
		};

	// enumeration to decide whether to enlarge or shrink image
	enum TScaleState
		{
		EScaleDown = 0,
		EScaleUp
		};

private:	// Construction
	void ConstructL();
	CMultiMediaFAdapter(MMultimediaController& aMultimediaController, TDisplayMode aDeviceDisplayMode);

private:	// Methods
	// Image converstion functions
	void DecodeOpenAndConvertL();
	void EncodeOpenAndConvertL();

	// Image rotation Functions
	void Rotate90();
	void Rotate180();
	void Rotate270();
	void RotateMirrorV();
	void RotateMirrorH();

	// Image scaling function
	void ScaleImage();

	// Rest image
	void ResetImageL();

private: // member data
	// from Media Framework
	CImageDecoder* iDecoder;
	CImageEncoder* iEncoder;
	CBitmapRotator* iRotator;
	CBitmapScaler* iScaler;

	CFrameImageData* iJpgImageData; // used to save jpgs
	CFbsBitmap* iImage;

	MMultimediaController& iMultimediaController;

	RFs iFs;

	TMultiMediaFState iManipulationState;
	TScaleState iScaleState;
	TDisplayMode iDeviceDisplayMode; // used to store device display mode
	};

#endif

⌨️ 快捷键说明

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