Index: ev.h =================================================================== RCS file: /midish/midish/ev.h,v retrieving revision 1.58 diff -u -r1.58 ev.h --- ev.h 13 Sep 2013 08:44:17 -0000 1.58 +++ ev.h 16 Nov 2013 15:11:08 -0000 @@ -38,12 +38,13 @@ #define EV_PC 0xc /* MIDI prog. change */ #define EV_CAT 0xd /* MIDI channel aftertouch */ #define EV_BEND 0xe /* MIDI pitch bend */ +#define EV_MARK 0xf /* MIDI marker */ #define EV_PAT0 0x10 /* user sysex pattern */ #define EV_NUMCMD (EV_PAT0 + EV_NPAT) #define EV_ISVOICE(ev) (((ev)->cmd <= EV_BEND) && ((ev)->cmd >= EV_NRPN)) -#define EV_ISMETA(ev) (((ev)->cmd <= EV_TIMESIG) && ((ev)->cmd >= EV_TEMPO)) +#define EV_ISMETA(ev) (((ev)->cmd <= EV_TIMESIG) && ((ev)->cmd >= EV_TEMPO) || ((ev)->cmd == EV_MARK)) #define EV_ISNOTE(ev) ((ev)->cmd == EV_NON || \ (ev)->cmd == EV_NOFF || \ @@ -82,6 +83,7 @@ #define tempo_usec24 v0 #define timesig_beats v0 #define timesig_tics v1 +#define marker v0 unsigned v0, v1; #define EV_UNDEF 0xffff #define EV_MAXDEV (DEFAULT_MAXNDEVS - 1) @@ -173,7 +175,7 @@ /* * describes a controller number; this structures defines - * how varius other routines bahave when a controller + * how various other routines behave when a controller * event with the same number is found */ struct evctl { @@ -209,5 +211,18 @@ unsigned evpat_lookup(char *, unsigned *); unsigned evpat_set(unsigned, char *, unsigned char *, unsigned); void evpat_reset(void); + +/* + * contains a list of MIDI Markers META events + * indexed by ev->v0 + */ +char *evmark_tab[MARK_INDEX_MAX + 1]; + +void evmark_init(void); +void evmark_done(void); +void evmark_conf(unsigned, char *); +void evmark_unconf(unsigned); +unsigned evmark_lookup(char *, unsigned *); +unsigned evmark_getsize(void); #endif /* MIDISH_EV_H */