blob: 245cd2a7c725020cf4c9589be8be663d7462969e (
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
|
#ifndef AUCAT_SYSEX_H
#define AUCAT_SYSEX_H
#include <stdint.h>
#define SYSEX_START 0xf0
#define SYSEX_END 0xf7
#define SYSEX_TYPE_RT 0x7f
#define SYSEX_TYPE_EDU 0x7d
#define SYSEX_MTC 0x01
#define SYSEX_MTC_FULL 0x01
#define SYSEX_CONTROL 0x04
#define SYSEX_MASTER 0x01
#define SYSEX_MMC 0x06
#define SYSEX_MMC_STOP 0x01
#define SYSEX_MMC_START 0x02
#define SYSEX_MMC_LOC 0x44
#define SYSEX_MMC_LOC_LEN 0x06
#define SYSEX_MMC_LOC_CMD 0x01
#define SYSEX_AUCAT 0x23
#define SYSEX_AUCAT_MIXINFO 0x01
#define SYSEX_AUCAT_DUMPREQ 0x02
#define SYSEX_AUCAT_DUMPEND 0x03
#define SYSEX_SIZE(m) (5 + sizeof(struct sysex_ ## m))
struct sysex {
uint8_t start;
uint8_t type;
uint8_t dev;
uint8_t id0;
uint8_t id1;
union sysex_all {
struct sysex_empty {
uint8_t end;
} empty;
struct sysex_master {
uint8_t fine;
uint8_t coarse;
uint8_t end;
} master;
struct sysex_start {
uint8_t end;
} start;
struct sysex_stop {
uint8_t end;
} stop;
struct sysex_loc {
uint8_t len;
uint8_t cmd;
uint8_t hr;
uint8_t min;
uint8_t sec;
uint8_t fr;
uint8_t cent;
uint8_t end;
} loc;
struct sysex_full {
uint8_t hr;
uint8_t min;
uint8_t sec;
uint8_t fr;
uint8_t end;
} full;
struct sysex_mixinfo {
uint8_t chan;
uint8_t vol;
#define SYSEX_NAMELEN 10
uint8_t name[SYSEX_NAMELEN];
uint8_t end;
} mixinfo;
struct sysex_dumpreq {
uint8_t end;
} dumpreq;
struct sysex_dumpend {
uint8_t end;
} dumpend;
} u;
};
#endif
|