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 elementmd_element_new ()
 
struct containerElementmd_container_new ()
 
struct rootElementmd_root_new (void)
 
struct trackElementmd_track_new (void)
 
struct tempomapElementmd_tempomap_new ()
 
struct noteElementmd_note_new (short note, short vel, int length)
 
struct partElementmd_part_new (void)
 
struct controlElementmd_control_new (short control, short value)
 
struct programElementmd_program_new (int program)
 
struct keytouchElementmd_keytouch_new (int note, int vel)
 
struct pressureElementmd_pressure_new (int vel)
 
struct pitchElementmd_pitch_new (int val)
 
struct sysexElementmd_sysex_new (int status, unsigned char *data, int len)
 
struct metaElementmd_meta_new ()
 
struct mapElementmd_map_new ()
 
struct keysigElementmd_keysig_new (short key, short minor)
 
struct timesigElementmd_timesig_new (short top, short bottom, short clocks, short n32pq)
 
struct tempoElementmd_tempo_new (int m)
 
struct textElementmd_text_new (int type, char *text)
 
struct smpteoffsetElementmd_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 elementmd_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  )