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

📄 mae1200.h

📁 AU1200嵌入式处理器媒体加速引擎(mae)的驱动
💻 H
字号:
#ifndef MAE1200_H_
#define MAE1200_H_

#include "mae_types.h"
#include "mae_memory.h"
#include "mae_interface.h"
#include "mae_fe.h"
#include "mae_be.h"
#include "mae_global.h"

#ifdef __cplusplus
extern "C" {
#endif
// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the MAE1200_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// MAE1200_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
#ifdef MAE1200_EXPORTS
#define MAE1200_API __declspec(dllexport)
#else
#define MAE1200_API __declspec(dllimport)
#endif



#define MAE_IDLE				0
#define LCD_ENABLED				1<<0
#define BE_ENABLED				1<<1
#define FE_ENABLED				1<<2



	
#define	kVersion_Main		1		// Main version number
#define kVersion_Sub		0		// Sub version number
#define	kVersion_Build		1		// Major Build number	
#define	kVersion_BuildSub	2		// Minor Build number

//
// MAE states
//
// static UINT32 MAE_IDLE = 0;

static UINT32 DISABLE_BE = 1<<9;
static UINT32 DISABLE_LCD = 1<<10;
static UINT32 DISABLE_DISCARD = 1<<11;

//
// Operating Modes
//
#define IPB_FRAME_MODE    (0)
#define IP_FRAME_MODE      (3) // (1)
#define I_FRAME_MODE        (1) // (3)

#define OM_IDLE                          0
#define OM_STEADY_STATE      5

#define IPB_BE_DELAY                2
#define IPB_DISCARD_DELAY    4
#define IP_BE_DELAY                  1
#define IP_DISCARD_DELAY       3

//
// Playback Speeds
//
#define MAE_SPEED_UNSPECIFIED    0xFFFFFFFF /* @demem Unspecified Playback Speed */
#define MAE_SPEED_PAUSED         0x00000000 /* @demem Paused */
#define MAE_SPEED_SIXTEENTH      0x00001000 /* @demem 1/16 Normal Playback */
#define MAE_SPEED_EIGHTH         0x00002000 /* @demem 1/8 Normal Playback */
#define MAE_SPEED_QUARTER        0x00004000 /* @demem 1/4 Normal Playback */
#define MAE_SPEED_HALF           0x00008000 /* @demem 1/2 Normal Playback */
#define MAE_SPEED_NORMAL         0x00010000 /* @demem Normal Speed Playback */
#define MAE_SPEED_2X             0x00020000 /* @demem 2X Playback */
#define MAE_SPEED_4X             0x00040000 /* @demem 4X Playback */
#define MAE_SPEED_8X             0x00080000 /* @demem 8X Playback */
#define MAE_SPEED_16X            0x00100000 /* @demem 16X Playback */

static u32 nTotalAllocatedSize;
static u32 gVirtualBaseAddress = 0;


typedef struct MAEhandler_t{
	HANDLE hInterruptEvent_MAE;
	HANDLE hInterruptThread_MAE;
	unsigned int IRQL_MAE;
	HANDLE hInterruptEvent_LCD;
	HANDLE hInterruptThread_LCD;
	HANDLE hInterruptThread_IOCTL;
	unsigned int IRQL_LCD;
    HANDLE hPowerMgmtEvent;
	HANDLE hPowerMgmtThread;
} MAEhandler_t;

// Allocate physical contigous memory and then map it to different structures (YUV/display queues, etc.)
BOOL			AllocateDeviceMemory(void);
//
void			init_mae_structs(void);
//
void			process_state_change_enables(void);
//
void			process_state_change_disables(void);
//
UINT32			interlaced_submit_fesw(void);
//
unsigned long	mae_interruptThread(PVOID pvData);
//
void			set_operating_mode(unsigned long mode, unsigned long speed);
//
void			program_static_display(void);
void move_overlay_window(RECT *rect);
//
UINT32			submit_fesw(void);
//
UINT32			new_yuvbuffer(void);
//
void			clean_maeq(PMAEQ_T el);
UINT32			clear_rgbq_planes(void);
//
UINT32			new_fesw(UINT32, PMAEQ_T);
//
unsigned long	mae_interrupt_handler(int irq); 
unsigned long	lcd_interruptThread(PVOID pvData);
unsigned long	lcd_interrupt_handler();

void free_be(void);
void queue_display_frame(void);
void DisableInterrupts();
void InitGlobals();
int InitEventsAndThreads();
void ShowVersion(void);
void ReadRegistryKeys(void);
void set_video_rotation(void);


#ifdef __cplusplus
}
#endif



#endif 

⌨️ 快捷键说明

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