Canorus  0.0
Classes | Macros | Functions
elements.h File Reference

Go to the source code of this file.

Classes

struct  element
 
struct  containerElement
 
struct  rootElement
 
struct  trackElement
 
struct  tempomapElement
 
struct  noteElement
 
struct  partElement
 
struct  controlElement
 
struct  programElement
 
struct  keytouchElement
 
struct  pressureElement
 
struct  pitchElement
 
struct  sysexElement
 
struct  metaElement
 
struct  mapElement
 
struct  keysigElement
 
struct  timesigElement
 
struct  tempoElement
 
struct  textElement
 
struct  smpteoffsetElement
 

Macros

#define MD_CONTAINER_BEGIN   50 /* Begining of container types */
 
#define MD_ELEMENT(e)   ((struct element *)md_check_cast((struct element *)(e), MD_TYPE_ELEMENT))
 
#define MD_CONTAINER(e)   ((struct containerElement *)md_check_cast((struct element *)(e), MD_TYPE_CONTAINER))
 
#define MD_ROOT(e)   ((struct rootElement *)md_check_cast((struct element *)(e), MD_TYPE_ROOT))
 
#define MD_TRACK(e)   ((struct trackElement *)md_check_cast((struct element *)(e), MD_TYPE_TRACK))
 
#define MD_TEMPOMAP(e)   ((struct tempomapElement *)md_check_cast((struct element *)(e), MD_TYPE_TEMPOMAP))
 
#define MD_NOTE(e)   ((struct noteElement *)md_check_cast((struct element *)(e), MD_TYPE_NOTE))
 
#define MD_PART(e)   ((struct partElement *)md_check_cast((struct element *)(e), MD_TYPE_PART))
 
#define MD_CONTROL(e)   ((struct controlElement *)md_check_cast((struct element *)(e), MD_TYPE_CONTROL))
 
#define MD_PROGRAM(e)   ((struct programElement *)md_check_cast((struct element *)(e), MD_TYPE_PROGRAM))
 
#define MD_KEYTOUCH(e)   ((struct keytouchElement *)md_check_cast((struct element *)(e), MD_TYPE_KEYTOUCH))
 
#define MD_PRESSURE(e)   ((struct pressureElement *)md_check_cast((struct element *)(e), MD_TYPE_PRESSURE))
 
#define MD_PITCH(e)   ((struct pitchElement *)md_check_cast((struct element *)(e), MD_TYPE_PITCH))
 
#define MD_SYSEX(e)   ((struct sysexElement *)md_check_cast((struct element *)(e), MD_TYPE_SYSEX))
 
#define MD_META(e)   ((struct metaElement *)md_check_cast((struct element *)(e), MD_TYPE_META))
 
#define MD_MAP(e)   ((struct mapElement *)md_check_cast((struct element *)(e), MD_TYPE_MAP))
 
#define MD_KEYSIG(e)   ((struct keysigElement *)md_check_cast((struct element *)(e), MD_TYPE_KEYSIG))
 
#define MD_TIMESIG(e)   ((struct timesigElement *)md_check_cast((struct element *)(e), MD_TYPE_TIMESIG))
 
#define MD_TEMPO(e)   ((struct tempoElement *)md_check_cast((struct element *)(e), MD_TYPE_TEMPO))
 
#define MD_TEXT(e)   ((struct textElement *)md_check_cast((struct element *)(e), MD_TYPE_TEXT))
 
#define MD_SMPTEOFFSET(e)   ((struct smpteoffsetElement *)md_check_cast((struct element *)(e), MD_TYPE_SMPTEOFFSET))
 
#define MD_TYPE_PART   (0 + MD_CONTAINER_BEGIN)
 
#define MD_TYPE_ROOT   (1 + MD_CONTAINER_BEGIN)
 
#define MD_TYPE_KEYTOUCH   2
 
#define MD_TYPE_TEXT   3
 
#define MD_TYPE_PITCH   4
 
#define MD_TYPE_PROGRAM   5
 
#define MD_TYPE_META   6
 
#define MD_TYPE_PRESSURE   7
 
#define MD_TYPE_NOTE   8
 
#define MD_TYPE_ELEMENT   9
 
#define MD_TYPE_SMPTEOFFSET   10
 
#define MD_TYPE_TEMPO   11
 
#define MD_TYPE_TEMPOMAP   (12 + MD_CONTAINER_BEGIN)
 
#define MD_TYPE_SYSEX   13
 
#define MD_TYPE_TRACK   (14 + MD_CONTAINER_BEGIN)
 
#define MD_TYPE_KEYSIG   15
 
#define MD_TYPE_TIMESIG   16
 
#define MD_TYPE_CONTAINER   17
 
#define MD_TYPE_MAP   18
 
#define MD_TYPE_CONTROL   19
 

Functions

struct element * md_element_new ()
 
struct containerElement * md_container_new ()
 
struct rootElement * md_root_new (void)
 
struct trackElement * md_track_new (void)
 
struct tempomapElement * md_tempomap_new ()
 
struct noteElement * md_note_new (short note, short vel, int length)
 
struct partElement * md_part_new (void)
 
struct controlElement * md_control_new (short control, short value)
 
struct programElement * md_program_new (int program)
 
struct keytouchElement * md_keytouch_new (int note, int vel)
 
struct pressureElement * md_pressure_new (int vel)
 
struct pitchElement * md_pitch_new (int val)
 
struct sysexElement * md_sysex_new (int status, unsigned char *data, int len)
 
struct metaElement * md_meta_new ()
 
struct mapElement * md_map_new ()
 
struct keysigElement * md_keysig_new (short key, short minor)
 
struct timesigElement * md_timesig_new (short top, short bottom, short clocks, short n32pq)
 
struct tempoElement * md_tempo_new (int m)
 
struct textElement * md_text_new (int type, char *text)
 
struct smpteoffsetElement * md_smpteoffset_new (short hours, short minutes, short seconds, short frames, short subframes)
 
void md_add (struct containerElement *c, struct element *e)
 
void md_free (struct element *el)
 
struct element * md_check_cast (struct element *el, int type)
 

Macro Definition Documentation

◆ MD_CONTAINER

#define MD_CONTAINER (   e)    ((struct containerElement *)md_check_cast((struct element *)(e), MD_TYPE_CONTAINER))

◆ MD_CONTAINER_BEGIN

#define MD_CONTAINER_BEGIN   50 /* Begining of container types */

◆ MD_CONTROL

#define MD_CONTROL (   e)    ((struct controlElement *)md_check_cast((struct element *)(e), MD_TYPE_CONTROL))

◆ MD_ELEMENT

#define MD_ELEMENT (   e)    ((struct element *)md_check_cast((struct element *)(e), MD_TYPE_ELEMENT))

◆ MD_KEYSIG

#define MD_KEYSIG (   e)    ((struct keysigElement *)md_check_cast((struct element *)(e), MD_TYPE_KEYSIG))

◆ MD_KEYTOUCH

#define MD_KEYTOUCH (   e)    ((struct keytouchElement *)md_check_cast((struct element *)(e), MD_TYPE_KEYTOUCH))

◆ MD_MAP

#define MD_MAP (   e)    ((struct mapElement *)md_check_cast((struct element *)(e), MD_TYPE_MAP))

◆ MD_META

#define MD_META (   e)    ((struct metaElement *)md_check_cast((struct element *)(e), MD_TYPE_META))

◆ MD_NOTE

#define MD_NOTE (   e)    ((struct noteElement *)md_check_cast((struct element *)(e), MD_TYPE_NOTE))

◆ MD_PART

#define MD_PART (   e)    ((struct partElement *)md_check_cast((struct element *)(e), MD_TYPE_PART))

◆ MD_PITCH

#define MD_PITCH (   e)    ((struct pitchElement *)md_check_cast((struct element *)(e), MD_TYPE_PITCH))

◆ MD_PRESSURE

#define MD_PRESSURE (   e)    ((struct pressureElement *)md_check_cast((struct element *)(e), MD_TYPE_PRESSURE))

◆ MD_PROGRAM

#define MD_PROGRAM (   e)    ((struct programElement *)md_check_cast((struct element *)(e), MD_TYPE_PROGRAM))

◆ MD_ROOT

#define MD_ROOT (   e)    ((struct rootElement *)md_check_cast((struct element *)(e), MD_TYPE_ROOT))

◆ MD_SMPTEOFFSET

#define MD_SMPTEOFFSET (   e)    ((struct smpteoffsetElement *)md_check_cast((struct element *)(e), MD_TYPE_SMPTEOFFSET))

◆ MD_SYSEX

#define MD_SYSEX (   e)    ((struct sysexElement *)md_check_cast((struct element *)(e), MD_TYPE_SYSEX))

◆ MD_TEMPO

#define MD_TEMPO (   e)    ((struct tempoElement *)md_check_cast((struct element *)(e), MD_TYPE_TEMPO))

◆ MD_TEMPOMAP

#define MD_TEMPOMAP (   e)    ((struct tempomapElement *)md_check_cast((struct element *)(e), MD_TYPE_TEMPOMAP))

◆ MD_TEXT

#define MD_TEXT (   e)    ((struct textElement *)md_check_cast((struct element *)(e), MD_TYPE_TEXT))

◆ MD_TIMESIG

#define MD_TIMESIG (   e)    ((struct timesigElement *)md_check_cast((struct element *)(e), MD_TYPE_TIMESIG))

◆ MD_TRACK

#define MD_TRACK (   e)    ((struct trackElement *)md_check_cast((struct element *)(e), MD_TYPE_TRACK))

◆ MD_TYPE_CONTAINER

#define MD_TYPE_CONTAINER   17

◆ MD_TYPE_CONTROL

#define MD_TYPE_CONTROL   19

◆ MD_TYPE_ELEMENT

#define MD_TYPE_ELEMENT   9

◆ MD_TYPE_KEYSIG

#define MD_TYPE_KEYSIG   15

◆ MD_TYPE_KEYTOUCH

#define MD_TYPE_KEYTOUCH   2

◆ MD_TYPE_MAP

#define MD_TYPE_MAP   18

◆ MD_TYPE_META

#define MD_TYPE_META   6

◆ MD_TYPE_NOTE

#define MD_TYPE_NOTE   8

◆ MD_TYPE_PART

#define MD_TYPE_PART   (0 + MD_CONTAINER_BEGIN)

◆ MD_TYPE_PITCH

#define MD_TYPE_PITCH   4

◆ MD_TYPE_PRESSURE

#define MD_TYPE_PRESSURE   7

◆ MD_TYPE_PROGRAM

#define MD_TYPE_PROGRAM   5

◆ MD_TYPE_ROOT

#define MD_TYPE_ROOT   (1 + MD_CONTAINER_BEGIN)

◆ MD_TYPE_SMPTEOFFSET

#define MD_TYPE_SMPTEOFFSET   10

◆ MD_TYPE_SYSEX

#define MD_TYPE_SYSEX   13

◆ MD_TYPE_TEMPO

#define MD_TYPE_TEMPO   11

◆ MD_TYPE_TEMPOMAP

#define MD_TYPE_TEMPOMAP   (12 + MD_CONTAINER_BEGIN)

◆ MD_TYPE_TEXT

#define MD_TYPE_TEXT   3

◆ MD_TYPE_TIMESIG

#define MD_TYPE_TIMESIG   16

◆ MD_TYPE_TRACK

#define MD_TYPE_TRACK   (14 + MD_CONTAINER_BEGIN)

Function Documentation

◆ md_add()

void md_add ( struct containerElement *  c,
struct element *  e 
)

◆ md_check_cast()

struct element* md_check_cast ( struct element *  el,
int  type 
)

◆ md_container_new()

struct containerElement* md_container_new ( )

◆ md_control_new()

struct controlElement* md_control_new ( short  control,
short  value 
)

◆ md_element_new()

struct element* md_element_new ( )

◆ md_free()

void md_free ( struct element *  el)

◆ md_keysig_new()

struct keysigElement* md_keysig_new ( short  key,
short  minor 
)

◆ md_keytouch_new()

struct keytouchElement* md_keytouch_new ( int  note,
int  vel 
)

◆ md_map_new()

struct mapElement* md_map_new ( )

◆ md_meta_new()

struct metaElement* md_meta_new ( )

◆ md_note_new()

struct noteElement* md_note_new ( short  note,
short  vel,
int  length 
)

◆ md_part_new()

struct partElement* md_part_new ( void  )

◆ md_pitch_new()

struct pitchElement* md_pitch_new ( int  val)

◆ md_pressure_new()

struct pressureElement* md_pressure_new ( int  vel)

◆ md_program_new()

struct programElement* md_program_new ( int  program)

◆ md_root_new()

struct rootElement* md_root_new ( void  )

◆ md_smpteoffset_new()

struct smpteoffsetElement* md_smpteoffset_new ( short  hours,
short  minutes,
short  seconds,
short  frames,
short  subframes 
)

◆ md_sysex_new()

struct sysexElement* md_sysex_new ( int  status,
unsigned char *  data,
int  len 
)

◆ md_tempo_new()

struct tempoElement* md_tempo_new ( int  m)

◆ md_tempomap_new()

struct tempomapElement* md_tempomap_new ( )

◆ md_text_new()

struct textElement* md_text_new ( int  type,
char *  text 
)

◆ md_timesig_new()

struct timesigElement* md_timesig_new ( short  top,
short  bottom,
short  clocks,
short  n32pq 
)

◆ md_track_new()

struct trackElement* md_track_new ( void  )