summaryrefslogtreecommitdiff
path: root/cmt/midifns.h
blob: 99042d3a60b4712716436bbcf0db639c17482056 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/* midifns.h -- definitions for users of midifns.c */

/*****************************************************************************
*           Change Log
*  Date     | Change
*-----------+-----------------------------------------------------------------
*  5-Mar-92 | GWL : insert definitions and logs from JMN's mpu.h
*                   for LATTICE322, only variable type in prototypes
* 28-Apr-03 |  DM : random() is now named cmtrand() to avoid conflicts
*****************************************************************************/

#ifndef _MIDIFNS_H_
#define _MIDIFNS_H_

/* declaration types */

typedef unsigned long time_type;
typedef long sgnd_time_type;

/* Maximum time value: */
#define MAXTIME 0xFFFFFFFFL

#define delay_type      long

/* controller numbers */

#define MODWHEEL        1
#define BREATH          2
#define FOOT            4
#define PORTARATE       5
#define VOLUME          7
#define SUSTAIN         64
#define PORTASWITCH     65

#include "midierr.h"

extern char *midifns_syntax;

/* support for allocating sysex buffer - examples in mm.c & exget.c */
#ifdef DOS
#define midibuff_alloc(size) (byte huge *) halloc(size, 1)
#endif
#ifndef midibuff_alloc
#define midibuff_alloc (byte *) MALLOC
#endif

/* DMH: from mpu.h -- definitions for users of mpu.c */

#ifdef OLD_PROTOTYPES

void    eventwait();
void    exclusive(boolean);
boolean getbuf(boolean, unsigned char * );
long	get_excl();
boolean getxbuf();
boolean testxbuf();
short   getkey(boolean);
ulong   gettime(void);          /*DMH: note- now unsigned*/
void    l_rest(long);
void    l_restuntil(long);
void    metronome(boolean);
void    midi_bend(short,short);
boolean midi_buffer(byte * , ulong);
void    midi_cont(boolean);
void    midi_clock();
void    midi_ctrl(short, short, short);
void    midi_exclusive(unsigned char * );
void    midi_note(short, short, short);
void    midi_program(short, short);
void    midi_real();
void    midi_start();
void    midi_stop();
#ifdef AMIGA
/* MIDI_THRU defined means that it is really implemented. */
#define MIDI_THRU
#endif
void    midi_thru();/*boolean onflag*/
void    midi_touch(short, short);
void    midi_write();
void    musicinit();
short	  cmtrand(short, short);
void    read_tuning();/*char *filename*/
void    settime();
void    synth_init();/*void*/
void    timereset();
void    trace();
void    tracemidi();
boolean is_exclusive(void);
unsigned char get_exclusive(void);

#else

void alloff(void);
void eventwait(long timeout);
void exclusive(boolean onflag);
long get_excl(byte *buffer, long len);
boolean getbuf(boolean waitflag, unsigned char * p);
short getkey(boolean waitflag);
ulong gettime(void);
void l_rest(long time);
void l_restuntil(long time);
void metronome(boolean onflag);
void midi_bend(int channel, int value);
boolean midi_buffer(byte *buffer, ulong size);
void midi_clock(void);
void midi_cont(boolean onflag);
void midi_ctrl(int channel, int control, int value);
void midi_exclusive(unsigned char *msg);
void midi_flush();
void midi_note(int channel, int pitch, int velocity);
void midi_program(int channel, int program);
void midi_real(boolean onflag);
void midi_start(void);
void midi_stop(void);
void midi_thru(boolean onflag);
void midi_touch(int channel, int value);
void read_tuning(char *filename);
void midi_write(int n, int port, unsigned char c1, unsigned char c2, unsigned char c3);
void midi_write_trace(int n, int port,
              unsigned char c1, unsigned char c2, unsigned char c3);
void musicinit(void);
void settime(time_type newtime);
void timereset(void);
void trace(boolean flag);
void tracemidi(boolean flag);


boolean check_midi(void);
#endif  /* ifdef OLD_PROTOTYPES */


#ifdef AMIGA
byte    *head_of_excl();
byte    *tail_of_excl();
#endif

#endif /* _MIDIFNS_H_ */