📄 mae1200.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 + -