6#define RTOSC_INVALID_MIDI 255
15 for(
unsigned i=0;
i<
elms; ++
i) {
25 for(
unsigned i=0;
i<
elms; ++
i) {
43static void black_hole3 (
const char *,
const char *,
const char *,
int,
int)
46{printf(
"'%s' and '%s'\n",
a,
b);}
50#define MAX_UNHANDLED_PATH 128
70 if(
e.ch == ch &&
e.ctl == ctl)
79 if(
e.ch==ch &&
e.ctl == ctl)
87 if(
e.ch==ch &&
e.ctl == ctl)
94 const char *args = strchr(port.name,
':');
99 if(strchr(args,
'f')) {
101 e.conversion = port.metadata;
102 }
else if(strchr(args,
'i'))
104 else if(strchr(args,
'T'))
106 else if(strchr(args,
'c'))
117 if(!port || port->ports) {
123 strncpy(
e->path,path,
impl->len);
127 error_cb(
"Failed to read metadata", path);
129 modify_cb(
"REPLACE", path,
e->conversion, (
int) ch, (
int) ctl);
137 strncpy(
e.path,path,
impl->len);
141 error_cb(
"Failed to read metadata", path);
143 modify_cb(
"ADD", path,
e.conversion, (
int) ch, (
int) ctl);
160 if(strlen(
s) >
impl->len) {
172 for(
unsigned i=0;
i<
impl->elms; ++
i) {
173 if(!strcmp(
impl->table[
i].path,
s)) {
206 (
val<64 ?
"F" :
"T"));
236 while(*pos) putchar(*pos++);
245 float x =
val!=64.0 ?
val/127.0 : 0.5;
249 if(!meta[
"min"] || !meta[
"max"] || !meta[
"scale"]) {
250 fprintf(stderr,
"failed to get properties\n");
254 const float min = atof(meta[
"min"]);
255 const float max = atof(meta[
"max"]);
256 const char *scale = meta[
"scale"];
258 if(!strcmp(scale,
"linear"))
260 else if(!strcmp(scale,
"logarithmic")) {
261 const float b = log(
min);
262 const float a = log(
max)-
b;
uint8_t a
Definition Spc_Cpu.h:141
Definition miditable.cpp:9
MidiAddr * begin(void)
Definition miditable.cpp:31
MidiAddr * end(void)
Definition miditable.cpp:32
MidiAddr * table
Definition miditable.cpp:36
unsigned len
Definition miditable.cpp:34
unsigned elms
Definition miditable.cpp:35
MidiTable_Impl(unsigned len, unsigned elms)
Definition miditable.cpp:11
~MidiTable_Impl()
Definition miditable.cpp:23
void process(uint8_t ch, uint8_t ctl, uint8_t val)
Definition miditable.cpp:183
short unhandled_ch
Definition miditable.h:245
void clear_entry(const char *s)
Definition miditable.cpp:170
void(* error_cb)(const char *, const char *)
Definition miditable.h:249
void addElm(uint8_t ch, uint8_t ctl, const char *path)
Definition miditable.cpp:113
class MidiTable_Impl * impl
Definition miditable.h:282
void learn(const char *s)
Definition miditable.cpp:158
static float translate(uint8_t val, const char *meta)
Definition miditable.cpp:241
void(* event_cb)(const char *)
Definition miditable.h:250
Port learnPort(void)
Definition miditable.cpp:216
bool has(uint8_t ch, uint8_t ctl) const
Definition miditable.cpp:67
short unhandled_ctl
Definition miditable.h:246
void(* modify_cb)(const char *, const char *, const char *, int, int)
Definition miditable.h:251
char * unhandled_path
Definition miditable.h:247
MidiTable(const Ports &_dispatch_root)
Definition miditable.cpp:52
~MidiTable()
Definition miditable.cpp:61
void check_learn(void)
Definition miditable.cpp:149
MidiAddr * get(uint8_t ch, uint8_t ctl)
Definition miditable.cpp:76
Port registerPort(void)
Definition miditable.cpp:232
bool mash_port(MidiAddr &e, const Port &port)
Definition miditable.cpp:92
const Ports & dispatch_root
Definition miditable.h:244
Port unlearnPort(void)
Definition miditable.cpp:224
* e
Definition inflate.c:1404
unsigned * m
Definition inflate.c:1559
register unsigned i
Definition inflate.c:1575
unsigned s
Definition inflate.c:1555
unsigned x[BMAX+1]
Definition inflate.c:1586
int val
Definition jpeglib.h:956
unsigned char uint8_t
Definition mid.cpp:98
static void black_hole2(const char *a, const char *b)
Definition miditable.cpp:45
#define MAX_UNHANDLED_PATH
Definition miditable.cpp:50
static void black_hole1(const char *a)
Definition miditable.cpp:47
#define RTOSC_INVALID_MIDI
Definition miditable.cpp:6
static void black_hole3(const char *, const char *, const char *, int, int)
Definition miditable.cpp:43
const char * msg_t
Definition ports.h:48
#define min(x, y)
Definition os.h:74
#define max(x, y)
Definition os.h:78
size_t rtosc_message(char *buffer, size_t len, const char *address, const char *arguments,...)
Definition rtosc.c:161
rtosc_arg_t rtosc_argument(const char *msg, unsigned idx)
Definition rtosc.c:732
Definition miditable.h:223
char type
Definition miditable.h:228
const char * conversion
Definition miditable.h:232
char * path
Definition miditable.h:230
data object for the dispatch routine
Definition ports.h:55
const char * s
Definition rtosc.h:54