📄 comdef.h
字号:
#ifndef __COMDEF_H__
#define __COMDEF_H__
// ****** Common definitions and typedefs **********************************
// for data type define
#define IDATA data
#define DATA data
// Added by D300 Chern Shyh-Chain, 4/11/2002
// Rename and redefine the 16-bit huge environment since it is necessary at 32-bit.
#ifdef WIN32
#define _halloc( size, dummy ) malloc( size )
#define _hfree( pointer ) free( pointer )
// wyc.host
#ifndef _huge
#define _huge
#endif // _huge
#ifndef __huge
#define __huge
#endif // _huge
#define far
#define _far
#endif // WIN32
// Micky2.80p, don't reference OS_XXX directly
///#if ( (OS == OS_NATIVE) || (OS == OS_DOS) )
#ifndef APPLICATION_WINDOWS
// below identifier/ macros are only for Windows
#define WINAPI
#define EXPORT
#define VOID void
#define BIT bit
#define FALSE 0
#define TRUE 1
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef unsigned long ULONG;
typedef unsigned short USHORT;
typedef unsigned int UINT;
#define LONG long
// cat't define as (WORD *)!!!
#define PWORD WORD *
#define PBYTE BYTE *
#define PDWORD DWORD *
// LLY.049-1, define rectangle structure
typedef struct tagRECT
{
WORD wLeft;
WORD wTop;
WORD wRight;
WORD wBottom;
} RECT, *PRECT;
#endif //#ifndef APPLICATION_WINDOWS
#define LOBYTE(w) ((BYTE)(w))
#define HIBYTE(w) ((BYTE)(((UINT)(w) >> 8) & 0xFF))
#define MAKEWORD(low, high) ((WORD)(((BYTE)(low)) | (((WORD)((BYTE)(high))) << 8 )))
#define LOWORD(l) ((WORD)(DWORD)(l))
#define HIWORD(l) ((WORD)((((DWORD)(l)) >> 16) & 0xFFFF))
#define MAKELONG(low, high) ((LONG)(((WORD)(low)) | (((DWORD)((WORD)(high))) << 16)))
#ifndef NOMINMAX
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
#ifndef max
#define max(a,b) (((a) > (b)) ? (a) : (b))
#endif
#ifndef min
#define min(a,b) (((a) < (b)) ? (a) : (b))
#endif
#endif // NOMINMAX
// ***** Common pointer types ***********************************************
#ifndef NULL
#define NULL 0
#endif
// time format conversion macros ***************************
#define MSF_MINUTE(msf) ((BYTE)(msf))
#define MSF_SECOND(msf) ( (BYTE) ( ( (WORD) (msf) ) >> 8 ) )
#define MSF_FRAME(msf) ((BYTE)((msf)>>16))
#define MAKE_MSF(m, s, f) ((DWORD)(((BYTE)(m) | \
((WORD)(s)<<8)) | \
(((DWORD)(BYTE)(f))<<16)))
#define TMSF_TRACK(tmsf) ((BYTE)(tmsf))
#define TMSF_MINUTE(tmsf) ((BYTE)(((WORD)(tmsf)) >> 8))
#define TMSF_SECOND(tmsf) ((BYTE)((tmsf)>>16))
#define TMSF_FRAME(tmsf) ((BYTE)((tmsf)>>24))
#define MAKE_TMSF(t, m, s, f) ((DWORD)(((BYTE)(t) | \
((WORD)(m)<<8)) | \
(((DWORD)(BYTE)(s) | \
((WORD)(f)<<8))<<16)))
// ** TCH0.36; begin...
#define HMSF_HOUR(hmsf) ((BYTE)(hmsf))
#define HMSF_MINUTE(hmsf) ((BYTE)(((WORD)(hmsf)) >> 8))
#define HMSF_SECOND(hmsf) ((BYTE)((hmsf)>>16))
#define HMSF_FRAME(hmsf) ((BYTE)((hmsf)>>24))
#define MAKE_HMSF(h, m, s, f) ((DWORD)(((BYTE)(h) | \
((WORD)(m)<<8)) | \
(((DWORD)(BYTE)(s) | \
((WORD)(f)<<8))<<16)))
// ** TCH0.36; end...
// LLY.043, YUV <--> RGB conversion macros
// [31:24]:don't care, [23:16]:R value, [15:8]: G value, [7:0]: B value
#define RGB_R(rgb) ((BYTE)((DWORD)rgb>>16))
#define RGB_G(rgb) ((BYTE)((DWORD)rgb>>8))
#define RGB_B(rgb) ((BYTE)rgb)
#define MAKE_RGB(r, g, b) ( ((DWORD)r<<16) | ((DWORD)g<<8) | (DWORD)b ) // LLY.102
// [Notice] YUV format is defined as OSD spec.
// [15:10]<-- Y[7:2]; [9:8]<-- 0x0
// [7:4]<-- U[7:4]; [3:0]<-- V[7:4]
#define YUV_Y(yuv) ((BYTE)((WORD)yuv>>10)<<2)
#define YUV_U(yuv) ((BYTE)(yuv&0x00F0))
#define YUV_V(yuv) ((BYTE)(yuv&0x000F)<<4)
//Brian2.81
#define MAKE_YUV(y, u, v) ((((DWORD)(y&0xFE))<<11) | (((DWORD)(u&0xFC))<<4) | (((DWORD)(v&0xFC))>>2))
// LLY.043 end ...
#endif // __COMDEF_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -