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_ */
|