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

📄 msapi_gop.h

📁 mstar 776 开发的车载dvd
💻 H
字号:

#ifndef MSAPI_GOP_H
#define MSAPI_GOP_H

#ifndef GOP_TEST_CODE
#define GOP_TEST_CODE 0
#endif


#include "drvgop.h"
#ifdef MSAPI_GOP_C
#define INTERFACE
#else
#define INTERFACE extern
#endif

/// DWIN scan mode
typedef enum
{
	DWIN_SCAN_MODE_PROGRESSIVE,  ///< progessive
	DWIN_SCAN_MODE_INTERFACE,    ///< interlace
} EN_DWIN_SCAN_MODE;

/// Scrolling direction
typedef enum
{
    SCROLL_NONE = 0, ///< no scrolling
    SCROLL_UP,       ///< scrolling up
    SCROLL_DOWN,     ///< scrolling down
    SCROLL_LEFT,     ///< scrolling left
    SCROLL_RIGHT,    ///< scrolling right
    SCROLL_MAX       ///< scrolling max enum number
} SCROLL_DIR;

/// DWIN source data format
typedef enum
{
    DWIN_DATA_FMT_UV7Y8 = 0,		//!< CrYCb domain
    DWIN_DATA_FMT_UV8Y8,		    //!< CrYCb domain
    DWIN_DATA_FMT_ARGB8888,		//!< RGB domain (CSC bypass)
    DWIN_DATA_FMT_RGB565,		//!< RGB domain (CSC bypass)
    DWIN_DATA_FMT_MAX
} EN_DWIN_DATA_FMT;


#define INVALID_WIN_ID GWIN_NO_AVAILABLE


#if 0 //temp mark by nick
#define DEFAULT_FB_FMT FB_FMT_AS_DEFAULT
#else
//#define DEFAULT_FB_FMT 0xffff
#define DEFAULT_FB_FMT GE_FMT_RGB565
#endif

/// DWIN property
typedef struct
{
	U16 u16x;           ///< x
	U16 u16y;           ///< y
	U16 u16w;           ///< width
	U16 u16h;           ///< height
    U32 u32fbaddr0;     ///< Top field DRAM address
    U32 u32fbaddr1;     ///< Bottom field DRAM address
    U16 u16fbw;         ///< Number of bytes per horizontal line
} GOP_DWIN_Property;


// DWIN APIs
INTERFACE void msAPI_GOP_DWIN_Init(void);
INTERFACE void msAPI_GOP_DWIN_Enable(BOOLEAN bEnable);
INTERFACE void msAPI_GOP_DWIN_GetWinProperty(GOP_DWIN_Property *pproperty);
INTERFACE void msAPI_GOP_DWIN_SetWinProperty(GOP_DWIN_Property *pproperty);
INTERFACE void msAPI_GOP_DWIN_SelectSourceScanType(EN_DWIN_SCAN_MODE enScanMode);
INTERFACE void msAPI_GOP_DWIN_SetDataFmt(EN_DWIN_DATA_FMT fmt);
INTERFACE void msAPI_GOP_DWIN_SetAlphaValue(U8 u8AlphaVal);

//support for multi-window
INTERFACE U8 msAPI_GOP_GWIN_CreateWin(U16 width, U16 height, U16 fbFmt);
INTERFACE void msAPI_GOP_GWIN_Enable(U8 winId, BOOLEAN bEnable);
INTERFACE void msAPI_GOP_GWIN_SetDuplication(U8 hext, U8 vext);
INTERFACE void msAPI_GOP_GWIN_Extend(U8 hext, U8 vext);
INTERFACE void msAPI_GOP_GWIN_DeleteWin(U8 winId);
INTERFACE void msAPI_GOP_GWIN_SetWinPosition(U8 winId, U16 dispX, U16 dispY);
INTERFACE void msAPI_GOP_GWIN_SetWinPositionOffset(U8 winId, U16 x, U16 y);
INTERFACE void msAPI_GOP_GWIN_SetWinProperty(GOP_GWIN_DISP_PROPERTY WinProperty);
INTERFACE void msAPI_GOP_GWIN_Switch2Gwin(U8 winId);
INTERFACE void msAPI_GOP_GWIN_Switch2OSDwin();
INTERFACE void msAPI_GOP_GWIN_Switch2PrevGwin();
INTERFACE void msAPI_GOP_GWIN_ScrollLine(U8 winId, SCROLL_DIR dir, U16 pixLines, BOOLEAN bEnableGwin);
INTERFACE void msAPI_GOP_GWIN_GetScrollPosition(U8 winId, U16 *scrX, U16 *scrY);
INTERFACE void msAPI_GOP_GWIN_MapFBToWIN(U8 u8GEFrameBuffer_ID, U8 u8GWID);
INTERFACE void msAPI_GOP_GWIN_Switch2FB(U8 fbId);
INTERFACE void msAPI_GOP_GWIN_DeleteFB(U8 fbId);
INTERFACE U8 msAPI_GOP_GWIN_GetFreeWinID(void);
INTERFACE U8 msAPI_GOP_GWIN_GetMaxFreeWinID(void);

INTERFACE U8 msAPI_GOP_GWIN_GetFreeFBID(void);
INTERFACE U8 msAPI_GOP_GWIN_CreateFB(U8 FBId, U16 width, U16 height, U16 fbFmt);

INTERFACE U8 msAPI_GOP_GWIN_GetOSDID(void);
INTERFACE void msAPI_GOP_GWIN_Swap(U8 gId0, U8 gId1);
INTERFACE void msAPI_GOP_GWIN_SetBlending(U8 u8win, BOOLEAN bEnable, U8 u8coef);
INTERFACE void msAPI_GOP_RGB_Data_Mode_Select(U8 bEnable);
INTERFACE void msAPI_GOP_GWIN_SetFMT0TransClr(U16 clr);
INTERFACE U8 msAPI_GOP_GWIN_GetMAXFBID(void);
INTERFACE U8 msAPI_GOP_GWIN_GetMAXWinID(void);
INTERFACE void msAPI_GOP_GWIN_SetGOPInit(void);
INTERFACE void msAPI_GOP_GWIN_SetHScroll(U8 nWinID, U8 nRate, BOOLEAN bEnable);
INTERFACE void msAPI_GOP_GWIN_SetVScroll(U8 nWinID, U8 nRate, BOOLEAN bEnable);
INTERFACE BOOLEAN msAPI_GOP_GWIN_IsAllGWINDisabled(void);
INTERFACE BOOLEAN msAPI_GOP_GWIN_IsGWINEnabled(U8 winId);
INTERFACE U8 msAPI_GOP_GWIN_GetCurrentWinId();
INTERFACE void msAPI_GOP_GWIN_SetAlphaValue(U16 * Gwin01AlphaValue, U16 * Gwin23AlphaValue);
INTERFACE void msAPI_GOP_GWIN_GetAlphaValue(U16 * Gwin01AlphaValue, U16 * Gwin23AlphaValue);
INTERFACE void msAPI_GOP_GWIN_SetPallete(void);
#if  (GOP_TEST_CODE == 1)
INTERFACE void msAPI_GOP_TEST(U32 testMask);
#endif

INTERFACE void msAPI_GOP_GWIN_SwitchGOP(U8 u8GOP);
INTERFACE void msAPI_GOP_GWIN_SetGOPDst(U8 u8GOP, U8 dsttype);
INTERFACE void msAPI_GOP_GWIN_MapFB2Win(U8 fbId, U8 gwinId);
INTERFACE void msAPI_GOP_GWIN_ReleaseWin(U8 gId);
INTERFACE U8 msAPI_GOP_GWIN_DestroyFB(U8 fbId);
INTERFACE void msAPI_GOP_GWIN_GetWinPosition(U8 winId, U16 * dispX, U16 *dispY);
INTERFACE U8  msAPI_GOP_GWIN_GetFBfromGWIN(U8 gwinId) ;
INTERFACE void msAPI_GOP_GWIN_GetFBRegion(U8 fbID, U16 *pX,U16 *pY, U16 *pW, U16 *pH);
INTERFACE void msAPI_GOP_GWIN_GetFBPosition(U8 fbID, U16 *pX,U16 *pY);
INTERFACE U8 msAPI_GOP_GWIN_CreateFB2(U8 FBId,U16 x, U16 y, U16 width, U16 height, U16 fbFmt);
INTERFACE void msAPI_GOP_GWIN_GetFBInfo(U8 fbId, Gwin_FB_Attr *fbAttr);
#undef INTERFACE

#endif /* MSAPI_GOP_H */

⌨️ 快捷键说明

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