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

📄 ppsm.h

📁 基于东南大学开发的SEP3203的ARM7中的所有驱动
💻 H
字号:
#ifndef PPSM_H
#define PPSM_H

#ifndef	__PPSM_INTERFACE__
#define __PPSM_INTERFACE__
#endif

#include "asixsys.h"

#ifdef	__PPSM_INTERFACE__
#include "ppsmtype.h"
#include "ppsmmsg.h"
#endif

typedef void (*VOIDFUNC)(void *);

/* PPSM MACROS */
#define PPSM_CURSOR_OFF			ASIX_CURSOR_OFF			
#define PPSM_CURSOR_ON			ASIX_CURSOR_ON			
#define PPSM_CURSOR_REVERSED	ASIX_CURSOR_REVERSED	

#define REPLACE_STYLE			GPC_REPLACE_STYLE
#define AND_STYLE				GPC_AND_STYLE
#define OR_STYLE				GPC_OR_STYLE
#define EXOR_STYLE				GPC_XOR_STYLE
#define NOT_STYLE				GPC_NOT_STYLE
#define COPY_STYLE				GPC_COPY_STYLE

#define SOLID_LINE				GPC_SOLID_LINE
#define DOT_LINE				GPC_DOT_LINE
#define DASH_LINE				GPC_DASH_LINE
#define DASHDOT_LINE			GPC_DASHDOT_LINE

#define	BLACK					GPC_BLACK
#define WHITE					GPC_WHITE
#define DARKGREY				GPC_DARKGREY
#define LIGHTGREY				GPC_LIGHTGREY

/* PPSM INTERFACE FUNCITONS*/
/* ATV */
#define ActiveAreaEnable(areaId,type,mode,xSrc,ySrc,xDest,yDest,wndId)  \
	 	SysActiveAreaEnable((PDWORD)(areaId),(DWORD)(type),(DWORD)(mode),(SHORT)(xSrc),(SHORT)(ySrc),(SHORT)(xDest),(SHORT)(yDest),(DWORD)(wndId)) 
#define ActiveAreaDisable( areaId) \
		SysActiveAreaDisable((DWORD)(areaId))	
#define ActiveAreaSuspend( areaId, flag) \
		SysActiveAreaSuspend((DWORD)(areaId),(DWORD)( flag))
#define ActiveAreaRead( areaId, xSrc,  ySrc,  xDest,  yDest)  \
		SysActiveAreaRead( (DWORD)(areaId), (PSHORT)(xSrc), (PSHORT)(ySrc), (PSHORT)(xDest), (PSHORT)(yDest))

#define ActiveListPush()  SysActiveListPush()
#define ActiveListPop()  SysActiveListPop()
#define ActiveAreaToFront( areaId)  SysActiveAreaToFront((DWORD)(areaId))
#define ActiveAreaPosition(areaId, xSrc,  ySrc, xDest, yDest)  \
		SysActiveAreaPosition((DWORD)(areaId), (SHORT)(xSrc),  (SHORT)(ySrc), (SHORT)(xDest), (SHORT)(yDest))


/* MESSAGE */
#define SendMessage(taskid, pmsg)     SysSendMessage( (ID)(taskid),(PMSG)(pmsg))
#define RecvMessage(pmsg, timeout)    SysRecvMessage((PMSG)(pmsg), (int)(timeout))
#define SendMessageTo( mbxid, pmsg)   SysSendMessageTo((ID)(mbxid), (PMSG)(pmsg))
#define RecvMessageFrom( mbxid,  pmsg,  timeout)  \
		SysRecvMessageFrom( (ID)(mbxid),  (PMSG)(pmsg),  (int)(timeout))

//STATUS IrptGetData(P_U32 sData, P_U32 *data, P_U32 size);
STATUS AdvSendMessage(U32 taskId, P_MESSAGE msg, U8 flag);
STATUS AdvMessageDelete(U32 taskId, U16 type, U32 shortData);

#define GetPos(msg, px, py) 	  	SysGetPos(msg, px, py)
#define GetPosData(data, px, py)	SysGetPosData(data, px, py)

/* LMALLOC */
#define  Lmalloc(nb) 	SysLmalloc((DWORD)(nb))
#define  Lfree(blk)    	SysLfree((void *)(blk))
#define  Lrealloc(area, size)  SysLrealloc((void *)(area), (DWORD)(size))
#define  Lcalloc( size) SysLcalloc((DWORD)(size))

STATUS MoveBlock(P_U32 srcAddr, P_U32 destAddr, U32 size);

/* GPC */
#define InitGC(vramWidth, vramHeight)\
		SysInitGC(vramWidth, vramHeight)
#define GetGC( )			SysGetGC( )
#define GetCurGC()			SysGetCurGC()
#define FreeGC(pGC)			SysFreeGC(pGC)
#define GetDisplayX( )		SysGetDisplayX( )
#define GetDisplayY( )		SysGetDisplayY( )
#define GetLogicalX(pGC)		SysGetLogicalX(pGC)
#define GetLogicalY(pGC)		SysGetLogicalY(pGC)
#define GroupOn(pGC)			SysGroupOn( pGC )	//by zhuli 2002.2.4
#define GroupOff(pGC, xSrc, ySrc, xDest, yDest)		SysGroupOff( pGC, (WORD)(xSrc), (WORD)(ySrc), (WORD)(xDest), (WORD)(yDest) )	//by zhuli 2002.2.4

#define SetDotWidth(pGC, newWidth, oldWidth)\
		SysSetDotWidth(pGC, (WORD)(newWidth), (PWORD)(oldWidth))
#define ClearScreen(pGC, rgb)\
		SysClearScreen(pGC, rgb)
#define DrawDot(pGC, rgb, Pos, yPos, style)\
		SysDrawDot(pGC, rgb, (WORD)(Pos), (WORD)(yPos), style)
#define DrawHorz(pGC, rgb, xSrc, ySrc, width, dotLine, style)\
		SysDrawHorz(pGC, rgb, (WORD)(xSrc), (WORD)(ySrc), (WORD)(width), dotLine, style)
#define DrawVert(pGC, rgb, xSrc, ySrc, height, dotLine, style)\
		SysDrawVert(pGC, rgb, (WORD)(xSrc), (WORD)(ySrc), (WORD)(height), dotLine, style)
#define DrawLine(pGC, rgb, xSrc, ySrc, xDest, yDest, dotLine, style)\
		SysDrawLine(pGC, rgb, (WORD)(xSrc), (WORD)(ySrc), (WORD)(xDest), (WORD)(yDest), dotLine, style)
#define DrawRec(pGC, rgb, xSrc, ySrc, xDest, yDest, dotLine, style)\
		SysDrawRec(pGC, rgb, (WORD)(xSrc), (WORD)(ySrc), (WORD)(xDest), (WORD)(yDest), dotLine, style)
#define DrawCircle(pGC, rgb, xCenter, yCenter, radius, style)\
		SysDrawCircle(pGC, rgb, (WORD)(xCenter), (WORD)(yCenter), (WORD)(radius), style)
#define DrawEllipse(pGC, rgb, xCenter, yCenter, xLength, yLength, style)\
		SysDrawEllipse(pGC, rgb, (WORD)(xCenter), (WORD)(yCenter), (WORD)(xLength), (WORD)(yLength), style)
#define DrawVector(pGC, rgb, numberOfPoints, pointPtr, style, mode)\
		SysDrawVector(pGC, rgb, numberOfPoints, pointPtr, style, mode)
#define PutRec(pGC, bitmap, xSrc, ySrc, width, height, style, reserved)\
		SysPutRec(pGC, (PIXEL *)(bitmap), (WORD)(xSrc), (WORD)(ySrc), (WORD)(width), (WORD)(height), style, reserved)
#define SaveRec(pGC, bitmap, xSrc, ySrc, width, height, reserved)\
		SysSaveRec(pGC, (PIXEL *)(bitmap), (WORD)(xSrc), (WORD)(ySrc), (WORD)(width), (WORD)(height), reserved)
#define ClearRec(pGC, rgb, xSrc, ySrc, width, height, style)\
		SysClearRec(pGC, rgb, (WORD)(xSrc), (WORD)(ySrc), (WORD)(width), (WORD)(height), style)
#define InvRec(pGC, xSrc, ySrc, width, height)\
		SysInvRec(pGC, (WORD)(xSrc), (WORD)(ySrc), (WORD)(width), (WORD)(height))
#define DrawText(pGC, text, xSrc, ySrc, xDes, yDes, font, rgb, style)\
		SysDrawText(pGC, rgb, (WORD)(xSrc), (WORD)(ySrc), (WORD)(xDes), (WORD)(yDes), text, style)
#define TextOut(pGC, text, xSrc, ySrc, font, rgb, style)\
		SysTextOut(pGC, rgb, (WORD)(xSrc), (WORD)(ySrc), text, style)
#define SetColor(pGC, rgb)				SysSetColor(pGC, rgb)
#define SetBkColor(pGC, rgb)				SysSetBkColor(pGC, rgb)
#define DrawMonoImage(pGC, bitmap, xSrc, ySrc, width, height, frntColor, bkColor)\
		SysDrawMonoImage(pGC, (PBYTE)bitmap, (WORD)(xSrc), (WORD)(ySrc), (WORD)(width), (WORD)(height), frntColor, bkColor)
#define TextOutEx(pGC, text, xSrc, ySrc, font, rgb, style, length, exstyle, bkrgb)\
		SysTextOutEx(pGC, rgb, (WORD)(xSrc), (WORD)(ySrc), (PBYTE)(text), (WORD)(length), style, exstyle, bkrgb)
#define SetBkFillMode( pGC, style )\
		SysSetBkFillMode( pGC, style )

#define GetFont(pGC, font1, font2)		SysGetFont(pGC, font1, font2)
#define SetFont(pGC, font1, font2)		SysSetFont(pGC, font1, font2)
#define GetFontSize(pGC, font1_W, font1_H, font2_W, font2_H)\
		SysGetFontSize( pGC,(PBYTE)(font1_W),(PBYTE)(font1_H),(PBYTE)(font2_W),(PBYTE)(font2_H))

#define AlignString( str, winXSrc, winXWidth, align )\
		SysAlignString( str, (WORD)(winXSrc), (WORD)(winXWidth), align )

#define SetCursorPosition(pGC, xPos, yPos)\
		SysSetCursorPosition(pGC, (WORD)(xPos), (WORD)(yPos))
#define SetCursorSize(pGC, cursorWidth, cursorHeight)\
		SysSetCursorSize(pGC, (WORD)(cursorWidth), (WORD)(cursorHeight))
#define SetCursorStatus(pGC, status)\
		SysSetCursorStatus(pGC, status)
#define SetCursorBlinkFrequency(pGC, frequency)\
		SysSetCursorBlinkFrequency(pGC, frequency)
#define SetCursorStyle(pGC, cursorstyle)\
		SysSetCursorStyle(pGC, cursorstyle)
#define CreateCursor(pGC, xPos, yPos, cursorWidth, cursorHeight, status, frequency, cursorstyle)\
		SysCreateCursor(pGC, (WORD)(xPos), (WORD)(yPos), (WORD)(cursorWidth), (WORD)(cursorHeight), status, frequency, cursorstyle)
#define GetCursorStatus( pGC, status )\
		SysGetCursorStatus( pGC, status )
#define StartCursor(pGC)				SysStartCursor(pGC)
#define StopCursor(pGC)				SysStopCursor(pGC)
#define FreeCursor(pGC)				SysFreeCursor(pGC)
#define AdjustCursorDisp(pGC)		SysAdjustCursorDisp(pGC)

#define GpcTest(pGC)	SysGpcTest(pGC)

#define LoadBitmap( resource, pal ) SysLoadBitmap( (BYTE *)(resource), pal )
#define FreeBitmap( hbmp ) SysFreeBitmap( (DWORD)(hbmp) )
#define GrizzleBitmap( resource, pal ) SysGrizzleBitmap( (BYTE *)(resource), pal )

#define SetBMPPalette( hbmp, palette, oldPalette )\
		SysSetBMPPalette( hbmp, (DWORD *)(palette), (DWORD **)(oldPalette) )
#define SetBMPData( hbmp, data, oldData ) SysSetBMPData( hbmp, (BYTE *)(data), (BYTE **)(oldData) )
#define ModifyBMPPalette( hbmp, index, color, oldColor )\
		SysModifyBMPPalette( hbmp, (DWORD)(index), (DWORD)(color), (DWORD *)(oldColor) )
#define DisplayBMP( pGC, x, y, hbmp ) SysDisplayBMP( pGC, (WORD)(x), (WORD)(y), (DWORD)(hbmp) )
#define DisplayBMPEx( pGC, x, y, hbmp, style, trColor ) SysDisplayBMPEx( pGC, (WORD)(x), (WORD)(y), (DWORD)(hbmp), style, trColor )
#define GetBMPPixel( pGC, x, y, hbmp, color ) SysGetBMPPixel( pGC, (WORD)(x), (WORD)(y), (DWORD)(hbmp), color )


// follow macro defined for matching ppsm functions
#define CursorSetStatus( status )\
		SysSetCursorStatus( GetGC(), status)
#define CursorGetStatus( status )\
		SysGetCursorStatus( GetGC(), status)


/* TIMER */
#define CreateTimer( t_id,  interval, func, arg, mode )  \
		SysCreateTimer((PDWORD)(t_id), (DWORD)(interval),(VOIDFUNC)(func),(void *)(arg), mode )
#define FreeTimer( t_id)  	SysFreeTimer( (DWORD)(t_id))	
#define StartTimer( t_id)  SysStartTimer( (DWORD)(t_id))
#define StopTimer( t_id)  	SysStopTimer( (DWORD)(t_id))	
#define ReadTimer( t_id)  SysReadTimer( (DWORD)(t_id))
#define SetTimer(t_id, interval, func,arg) \
		SysSetTimer((DWORD)(t_id), (DWORD)(interval),(VOIDFUNC)(func),(void *)arg)
#define SetDateTime( date, time )  \
		SysSetDateTime( date, time )
#define ReadDateTime( date, time )  \
		SysReadDateTime( date, time )
#define SetTime( time )		SysSetTime( time )
#define SetDate( date )		SysSetDate( date )
#define GetTime( time )		SysGetTime( time )
#define GetDate( date )		SysGetDate( date )
#define GetElapsedTime( elapse, start, end )	SysGetElapsedTime( elapse, start, end )
#define GetElapsedDays( elapse, start, end )	SysGetElapsedDays( elapse, start, end )
#define CompareTime( timL, timR )				SysCompareTime( timL, timR )
#define CompareDate( dateL, dateR )				SysCompareDate( dateL, dateR )
#define TimeElapse( end, start, elapse )		SysTimeElapse( end, start, elapse )
#define DateElapse( end, start, elapse )		SysDateElapse( end, start, elapse )

/* TASK */
STATUS TaskTerminate(U32 taskId);
STATUS TaskHook(U32 taskId, P_VOID entryCallback, P_VOID exitCallback);
STATUS AdvTaskCreate(P_U32 taskId, P_VOID procAddr, S16 xSrc, S16 ySrc, \
					 S16 xDest, S16 yDest, S32 stackSize, U16 newScreen, \
					 U16 screenWidth, U16 screenHeight, P_U8 bitmap );
STATUS TaskStart(U32 taskId);

/* PEN */
extern void PenEnable( void );
extern void PenDisable( void );

#define PenIrptEnable	PenEnable
#define PenIrptDisable	PenDisable

#define PenSetRate( freq )

#endif /* PPSM_H */

⌨️ 快捷键说明

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