📄 types.h
字号:
#ifndef __TYPES_H
#define __TYPES_H
#ifdef __BORLANDC__
#define __attribute__(x)
#define __alignof__(x) sizeof(x)
typedef char INT8;
typedef int INT16;
typedef long INT32;
typedef struct {
INT32 a;
INT32 b;
} INT64;
// this INT64 shouldn't be used, invalid under BC
typedef unsigned char UINT8;
typedef unsigned int UINT16;
typedef unsigned long UINT32;
typedef struct {
UINT32 a;
UINT32 b;
} UINT64;
// this UINT64 shouldn't be used, invalid under BC
typedef unsigned char BYTE;
typedef unsigned short SHORT;
typedef unsigned long WORD;
#else // for EMU and SIM
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned int LONG;
typedef unsigned long long UINT64;
typedef unsigned int UINT32;
typedef unsigned short UINT16;
typedef unsigned char UINT8;
typedef long long INT64;
typedef int INT32;
typedef short INT16;
typedef signed char INT8;
#endif // end of EMU and SIM
/* bcd */
#define getBCD(p) (((((UINT8 *)(p))[0])>>4)*10 + ((((UINT8 *)(p))[0])&0x0f))
/* unaligned accessing */
#define getUINT16_bi(p) ((UINT16) (((UINT8 *)(p))[1] | ((UINT16)((UINT8 *)(p))[0]<<8)))
#define getUINT16_li(p) ((UINT16) (((UINT8 *)(p))[0] | ((UINT16)((UINT8 *)(p))[1]<<8)))
#define getUINT24_bi(p) ((UINT32) (((UINT8 *)(p))[2] | ((UINT32)((UINT8 *)(p))[1]<<8) | ((UINT32)((UINT8 *)(p))[0]<<16)))
#define getUINT32_bi(p) ((UINT32) (((UINT8 *)(p))[3] | ((UINT32)((UINT8 *)(p))[2]<<8) | ((UINT32)((UINT8 *)(p))[1]<<16) | ((UINT32)((UINT8 *)(p))[0]<<24)))
#define getUINT32_li(p) ((UINT32) (((UINT8 *)(p))[0] | ((UINT32)((UINT8 *)(p))[1]<<8) | ((UINT32)((UINT8 *)(p))[2]<<16) | ((UINT32)((UINT8 *)(p))[3]<<24)))
#define getUINT64_bi(p) ((((UINT64) getUINT32_bi(p)) << 32) | ((UINT64) getUINT32_bi(p+4)))
#undef BIG_ENDIAN
/* endian-less taste */
#ifdef BIG_ENDIAN
#define getUINT16(p) getUINT16_bi((BYTE *)p)
#define getUINT32(p) getUINT32_bi((BYTE *)p)
#else
#define getUINT16(p) getUINT16_li((BYTE *)p)
#define getUINT32(p) getUINT32_li((BYTE *)p)
#endif
#define getBiUINT32(p) getUINT32_li((BYTE *)p)
#define getBiUINT16(p) getUINT16_li((BYTE *)p)
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#define IS_B7_ONE(p) (((p) & 0x80) == 0x80)
#define IS_B7_ZERO(p) (((p) & 0x80) == 0x00)
#define GET_LOW_NIBBLE(p) ((p) & 0x0F)
#ifndef NULL
#define NULL ((void *)0)
#endif
typedef struct {
UINT16 osd_header[2]; /* virtual addr of osd header */
BYTE osd_format; /* pixel-per-byte */
BYTE osd_w; /* in byte */
BYTE osd_h; /* in pixel */
} t_osd_region;
typedef struct {
t_osd_region *ptrRegion;
BYTE FontColor;
BYTE BackColor;
BYTE RegionOn;
} OSD_INDEX;
typedef struct {
BYTE Level;
UINT16 Offset;
UINT16 Length;
} QUENE;
typedef struct {
BYTE x;
BYTE y;
} TSCR_POINT;
typedef struct {
UINT16 x;
UINT16 y;
} OSD_POINT;
typedef struct {
UINT16 x;
UINT16 y;
UINT16 w;
UINT16 h;
} MAP_ZONE;
typedef struct {
UINT16 x;
UINT16 y;
UINT16 w;
UINT16 h;
UINT32 FontColor;
UINT32 BackColor;
} MAP_MENU;
typedef struct {
OSD_POINT lt;
OSD_POINT rd;
} MAP_WINDOW;
typedef struct {
UINT16 x, y;
UINT16 w, h;
UINT32 BackColor;
UINT32 FontColor;
BYTE FontSize;
BYTE Align;
BYTE *Text;
} MENU_BASE;
typedef struct {
BYTE Set[6];
BYTE Num;
} DIGIT_PAD;
typedef struct {
UINT32 x1, y1;
UINT32 x2, y2;
UINT32 x3, y3;
} THREE_POINT;
typedef struct {
INT32 Int32Lo;
INT32 Int32Hi;
} GPS_INT64;
typedef struct {
GPS_INT64 a11;
GPS_INT64 a12;
GPS_INT64 a21;
GPS_INT64 a22;
GPS_INT64 dx;
GPS_INT64 dy;
} NEXY_COEFF;
typedef struct {
UINT32 gx, gy; // latitude and longitude
INT16 x, y; // x and y coordinate
} NEXY_POINT;
typedef struct {
BYTE hh;
BYTE mm;
BYTE ss;
} GPS_TIME;
typedef struct {
BYTE yy;
BYTE mm;
BYTE dd;
} GPS_DATE;
typedef struct {
BYTE Let; // Letter
UINT16 Num; // number
} ROAD_ID;
typedef struct {
BYTE Name[20];
UINT32 N;
UINT32 E;
UINT16 Level;
ROAD_ID n[2];
} SignCommon;
typedef struct {
UINT32 N;
UINT32 E;
ROAD_ID n[2];
} SignOil;
typedef struct {
BYTE Name[20];
UINT32 N;
UINT32 E;
ROAD_ID n[2];
UINT32 AdvAddr;
UINT16 Level;
} SignCompany;
typedef struct {
BYTE RoadName[12];
BYTE SignName[8];
} SignRoad;
typedef struct {
BYTE abcd[8];
BYTE ItemName[12];
} REGION_ITEM_123;
typedef struct {
BYTE abcd[8];
BYTE ItemName[12];
BYTE SignName[8];
} REGION_ITEM_4;
typedef struct {
BYTE Flag;
BYTE Info;
UINT32 N;
UINT32 E;
} COMMON_POINT;
typedef struct {
UINT32 N;
UINT32 E;
ROAD_ID n[4];
BYTE Level[4];
BYTE Flag;
BYTE Explain;
} CROSS_POINT;
typedef struct {
CROSS_POINT Cross;
UINT32 Dist;
UINT32 Dist2Prev;
UINT32 RealDist;
BYTE Adjust;
} BR_POINT;
typedef struct {
UINT32 Dist;
UINT32 CoeffDist;
} GPS_DIST;
typedef struct {
UINT32 N;
UINT32 E;
} GPS_POINT;
typedef struct {
GPS_POINT Point;
UINT16 Speed;
UINT16 Angle;
GPS_TIME Time;
BYTE Name[21];
} GPS_MESSAGE;
#define GPS_MESSAGE_SIZE sizeof(GPS_MESSAGE)
#include "gpstype.h"
typedef struct {
UINT32 TotalHello;
UINT32 FirstHello;
UINT32 EndofHello;
UINT32 TotalConst;
UINT32 FirstConst;
UINT32 EndofConst;
UINT32 TotalBusST;
UINT32 FirstBusST;
UINT32 EndofBusST;
UINT32 TotalIndex;
UINT32 FirstIndex;
UINT32 EndofIndex;
UINT32 TotalVoice;
UINT32 FirstVoice;
UINT32 EndofVoice;
} MP3_MAIN;
#endif __TYPES_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -