📄 fad.types.h
字号:
#ifndef __FAD_TYPES_H#define __FAD_TYPES_H#include "fad.h"/**include libmad headers*/#include "libmad/frame.h"#include "libmad/stream.h"#include "libmad/synth.h"#define FAD_TRUE 1#define FAD_FALSE 0/**position type*/#define FAD_POST_HEAD 1#define FAD_POST_TAIL 0/**direction type*/#define FAD_DIRT_TRUE 1#define FAD_DIRT_FALSE 0#define MATRIX_IS_BLANK(mx) (mx->sx==1.00 && mx->sy==1.00 && mx->r0==0.00 && mx->r1==0.00 && mx->tx==0.00 && mx->ty==0.00)/**MACRO for frame attribute*/#define COLOR_DO_CXFORM(c, m, a) (((c*m)>>8)+a)/**frame modify flag*/#define FAD_FRAME_SET_MODIFY(attr) attr |= 0x01#define FAD_FRAME_CLR_MODIFY(attr) attr &= 0xfe#define FAD_FRAME_CHK_MODIFY(attr) attr & 0x01/**sprite frame flag*/#define FAD_FRAME_SET_SPRITE(attr) attr |= 0x02#define FAD_FRAME_CLR_SPRITE(attr) attr &= 0xfd#define FAD_FRAME_CHK_SPRITE(attr) attr & 0x02/**event sound frame flag*/#define FAD_FRAME_SET_EVENTSOUND(attr) attr |= 0x04#define FAD_FRAME_CLR_EVENTSOUND(attr) attr &= 0xfb#define FAD_FRAME_CHK_EVENTSOUND(attr) attr & 0x04/**stream sound frame flag*/#define FAD_FRAME_SET_STREAMSOUND(attr) attr |= 0x08#define FAD_FRAME_CLR_STREAMSOUND(attr) attr &= 0xf7#define FAD_FRAME_CHK_STREAMSOUND(attr) attr & 0x08/**MACRO for display list node attribute*//**PLACEOBJECT version*/#define FAD_DL_NODE_SET_VER(attr, v) \if(v == 2) { \ attr |= 0x01; \}#define FAD_DL_NODE_GET_VER(attr) ((attr&0x01)+1)/**have matrix flag*/#define FAD_DL_NODE_SET_MATRIX(attr) attr |= 0x02#define FAD_DL_NODE_CHK_MATRIX(attr) (attr&0x02)/**merge sprite matrix flag*/#define FAD_DL_NODE_SET_MERGE(attr) attr |= 0x04#define FAD_DL_NODE_CHK_MERGE(attr) (attr&0x04)#define FAD_DL_NODE_SET_BTNMX(attr) attr |= 0x08#define FAD_DL_NODE_CHK_BTNMX(attr) (attr&0x08)#define FAD_DL_NODE_CLR_BTNMX(attr) attr&=0xf7/**MACRO for object type*/#define FO_TYPE_BITMAP 0x01#define FO_TYPE_GLYPHFONT 0x02#define FO_TYPE_STYLESHAPE 0x03#define FO_TYPE_MORPHSHAPE 0x04#define FO_TYPE_SPRITE 0x05#define FO_TYPE_BUTTON 0x06#define FO_TYPE_STATICTEXT 0x07#define FO_TYPE_JPEG 0x08/**MACRO for mouse attribute, value port from SDL*/#define FAD_MOUSEBUTTON_LEFT 0x01#define FAD_MOUSEBUTTON_MIDDLE 0x02#define FAD_MOUSEBUTTON_RIGHT 0x03#ifdef LIBFAD_DEBUG#define DEBUG_ENTER //fprintf(stderr, "enter *%s*\n", __func__)#define DEBUG_LEVEL //fprintf(stderr, "level *%s*\n\n", __func__)#else#define DEBUG_ENTER#define DEBUG_LEVEL#endiftypedef struct _edges_chunk edges_chunk_t;typedef struct _edges_record edges_record_t;typedef struct _edges_record_array edges_record_array_t;enum { FAD_NOEVENT = 0, FAD_ACTIVEEVENT, /**unused event, but define in SDL*/ FAD_KEYDOWN, FAD_KEYUP, FAD_MOUSEMOTION, FAD_MOUSEDOWN, FAD_MOUSEUP};#define FAD_SRV_SHAPE1 0x01#define FAD_SRV_SHAPE2 0x02#define FAD_SRV_SHAPE3 0x03#define FAD_SRV_STATIC 0x04#define FAD_SRV_MORPH 0x05#define FAD_SRT_LPT 0x01 /**lint to line point*/#define FAD_SRT_MPT 0x02 /**move to line point*/#define FAD_SRT_CPT 0x03 /**curved line point*/#define FAD_SRT_XXX 0xff /**unknown lint point*/#define FAD_NLSTA_INIT 0x01#define FAD_NLSTA_OPEN 0x02#define FAD_NLSTA_CLOSE 0x03typedef struct _sr_node sr_node_t;typedef struct _sr_node_list sr_node_list_t;typedef struct _sr_edgesrecord sr_edgesrecord_t;typedef struct _morph_sr_node morph_sr_node_t;typedef struct _morph_sr_node_list morph_sr_node_list_t;struct _sr_node { u8_t type; s32_t x0, y0, x1, y1; /**straight line: x0, y0*/ /**curved lint: ancx = x0, ancy = y0, ctlx = x1, ctly = y1*/ sr_node_t *next;};struct _morph_sr_node{ u8_t type; s32_t sx0, sy0, sx1, sy1; s32_t ox0, oy0, ox1, oy1; /**straight line: x0, y0*/ /**curved lint: ancx = x0, ancy = y0, ctlx = x1, ctly = y1*/ morph_sr_node_t *next;};typedef struct { u8_t** array; u16_t count;} fill_style_array_t;typedef struct { u8_t* array; u16_t count;} line_style_array_t;struct _sr_node_list { u8_t sta; sr_node_t *header, *tail; sr_node_list_t *next, *prev;};struct _morph_sr_node_list { u8_t sta; morph_sr_node_t *header, *tail; morph_sr_node_list_t *next, *prev;};typedef struct { fill_style_array_t fs_array; line_style_array_t ls_array;} sr_newstyle_t;struct _sr_edgesrecord { /**style of edges records*/ sr_newstyle_t *ns; /**next edges records addresss*/ sr_edgesrecord_t *next; u16_t fs_num, ls_num; /**size = fs_num+ls_num, if ns is NULL, size = 1*/ sr_node_list_t *array[];};typedef struct { /**shape record version*/ u8_t srv; /**dictionary of ALL object*/ dynarray_t* dict; /**style of shape record, especially in morphing shape*/ sr_newstyle_t *ns; sr_edgesrecord_t *header, *tail;} shape_record_t;typedef struct { /**libmad object for stream sound*/ struct mad_frame mad_frame; struct mad_synth mad_synth; struct mad_stream mad_stream;} frame_priv_t;/**convert fad object type to string*/const char *fad_object_type_to_string(u8_t type);/**convert fad tag id to string*/const char *fad_tag_id_to_string(u16_t tag_id);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -