22#define MD_CONTAINER_BEGIN 50
33#define MD_ELEMENT(e) \
34 ((struct element *)md_check_cast((struct element *)(e), MD_TYPE_ELEMENT))
41#define MD_CONTAINER(e) \
42 ((struct containerElement *)md_check_cast((struct element *)(e), MD_TYPE_CONTAINER))
52 ((struct rootElement *)md_check_cast((struct element *)(e), MD_TYPE_ROOT))
60 ((struct trackElement *)md_check_cast((struct element *)(e), MD_TYPE_TRACK))
66#define MD_TEMPOMAP(e) \
67 ((struct tempomapElement *)md_check_cast((struct element *)(e), MD_TYPE_TEMPOMAP))
78 ((struct noteElement *)md_check_cast((struct element *)(e), MD_TYPE_NOTE))
86 ((struct partElement *)md_check_cast((struct element *)(e), MD_TYPE_PART))
94#define MD_CONTROL(e) \
95 ((struct controlElement *)md_check_cast((struct element *)(e), MD_TYPE_CONTROL))
102#define MD_PROGRAM(e) \
103 ((struct programElement *)md_check_cast((struct element *)(e), MD_TYPE_PROGRAM))
111#define MD_KEYTOUCH(e) \
112 ((struct keytouchElement *)md_check_cast((struct element *)(e), MD_TYPE_KEYTOUCH))
119#define MD_PRESSURE(e) \
120 ((struct pressureElement *)md_check_cast((struct element *)(e), MD_TYPE_PRESSURE))
128 ((struct pitchElement *)md_check_cast((struct element *)(e), MD_TYPE_PITCH))
138 ((struct sysexElement *)md_check_cast((struct element *)(e), MD_TYPE_SYSEX))
145 ((struct metaElement *)md_check_cast((struct element *)(e), MD_TYPE_META))
152 ((struct mapElement *)md_check_cast((struct element *)(e), MD_TYPE_MAP))
160#define MD_KEYSIG(e) \
161 ((struct keysigElement *)md_check_cast((struct element *)(e), MD_TYPE_KEYSIG))
171#define MD_TIMESIG(e) \
172 ((struct timesigElement *)md_check_cast((struct element *)(e), MD_TYPE_TIMESIG))
180 ((struct tempoElement *)md_check_cast((struct element *)(e), MD_TYPE_TEMPO))
191 ((struct textElement *)md_check_cast((struct element *)(e), MD_TYPE_TEXT))
202#define MD_SMPTEOFFSET(e) \
203 ((struct smpteoffsetElement *)md_check_cast((struct element *)(e), MD_TYPE_SMPTEOFFSET))
234#define MD_TYPE_PART (0 + MD_CONTAINER_BEGIN)
235#define MD_TYPE_ROOT (1 + MD_CONTAINER_BEGIN)
236#define MD_TYPE_KEYTOUCH 2
237#define MD_TYPE_TEXT 3
238#define MD_TYPE_PITCH 4
239#define MD_TYPE_PROGRAM 5
240#define MD_TYPE_META 6
241#define MD_TYPE_PRESSURE 7
242#define MD_TYPE_NOTE 8
243#define MD_TYPE_ELEMENT 9
244#define MD_TYPE_SMPTEOFFSET 10
245#define MD_TYPE_TEMPO 11
246#define MD_TYPE_TEMPOMAP (12 + MD_CONTAINER_BEGIN)
247#define MD_TYPE_SYSEX 13
248#define MD_TYPE_TRACK (14 + MD_CONTAINER_BEGIN)
249#define MD_TYPE_KEYSIG 15
250#define MD_TYPE_TIMESIG 16
251#define MD_TYPE_CONTAINER 17
252#define MD_TYPE_MAP 18
253#define MD_TYPE_CONTROL 19
struct partElement * md_part_new(void)
struct element * md_element_new()
struct element * md_check_cast(struct element *el, int type)
struct programElement * md_program_new(int program)
struct metaElement * md_meta_new()
struct tempomapElement * md_tempomap_new()
void md_add(struct containerElement *c, struct element *e)
struct keysigElement * md_keysig_new(short key, short minor)
struct sysexElement * md_sysex_new(int status, unsigned char *data, int len)
struct pressureElement * md_pressure_new(int vel)
struct textElement * md_text_new(int type, char *text)
struct noteElement * md_note_new(short note, short vel, int length)
struct pitchElement * md_pitch_new(int val)
struct tempoElement * md_tempo_new(int m)
struct containerElement * md_container_new()
struct rootElement * md_root_new(void)
struct timesigElement * md_timesig_new(short top, short bottom, short clocks, short n32pq)
struct controlElement * md_control_new(short control, short value)
struct trackElement * md_track_new(void)
struct mapElement * md_map_new()
void md_free(struct element *el)
struct keytouchElement * md_keytouch_new(int note, int vel)
struct smpteoffsetElement * md_smpteoffset_new(short hours, short minutes, short seconds, short frames, short subframes)
unsigned int guint32
Definition: glib.h:76
Definition: elements.h:37
GPtrArray * elements
Definition: elements.h:39
struct element parent
Definition: elements.h:38
Definition: elements.h:89
short value
Definition: elements.h:92
short control
Definition: elements.h:91
struct element parent
Definition: elements.h:90
Definition: elements.h:28
guint32 element_time
Definition: elements.h:30
short device_channel
Definition: elements.h:31
short type
Definition: elements.h:29
Definition: elements.h:155
char minor
Definition: elements.h:158
struct mapElement parent
Definition: elements.h:156
char key
Definition: elements.h:157
Definition: elements.h:106
int note
Definition: elements.h:108
struct element parent
Definition: elements.h:107
int velocity
Definition: elements.h:109
Definition: elements.h:148
struct metaElement parent
Definition: elements.h:149
Definition: elements.h:70
int length
Definition: elements.h:74
short offvel
Definition: elements.h:75
struct element parent
Definition: elements.h:71
short note
Definition: elements.h:72
short vel
Definition: elements.h:73
Definition: elements.h:81
struct containerElement parent
Definition: elements.h:82
guint32 final_time
Definition: elements.h:83
Definition: elements.h:123
int pitch
Definition: elements.h:125
struct element parent
Definition: elements.h:124
Definition: elements.h:115
int velocity
Definition: elements.h:117
struct element parent
Definition: elements.h:116
Definition: elements.h:98
struct element parent
Definition: elements.h:99
int program
Definition: elements.h:100
Definition: elements.h:45
struct containerElement parent
Definition: elements.h:46
short format
Definition: elements.h:47
short tracks
Definition: elements.h:48
short time_base
Definition: elements.h:49
Definition: elements.h:194
short hours
Definition: elements.h:196
short minutes
Definition: elements.h:197
short seconds
Definition: elements.h:198
short frames
Definition: elements.h:199
struct element parent
Definition: elements.h:195
short subframes
Definition: elements.h:200
Definition: elements.h:131
unsigned char * data
Definition: elements.h:134
int status
Definition: elements.h:133
struct element parent
Definition: elements.h:132
int length
Definition: elements.h:135
Definition: elements.h:175
int micro_tempo
Definition: elements.h:177
struct mapElement parent
Definition: elements.h:176
Definition: elements.h:63
struct containerElement parent
Definition: elements.h:64
Definition: elements.h:183
int length
Definition: elements.h:188
int type
Definition: elements.h:185
struct element parent
Definition: elements.h:184
char * name
Definition: elements.h:186
char * text
Definition: elements.h:187
Definition: elements.h:164
short clocks
Definition: elements.h:168
struct mapElement parent
Definition: elements.h:165
short top
Definition: elements.h:166
short bottom
Definition: elements.h:167
short n32pq
Definition: elements.h:169
Definition: elements.h:55
guint32 final_time
Definition: elements.h:57
struct containerElement parent
Definition: elements.h:56