102 void map(
const char *addr,
bool coarse =
true);
106 void addNewMapper(
int ID,
const Port &port, std::string addr);
108 void addFineMapper(
int ID,
const Port &port, std::string addr);
110 void useFreeID(
int ID);
112 void unMap(
const char *addr,
bool coarse);
114 void delMapping(
int ID,
bool coarse,
const char *addr);
115 void replaceMapping(
int,
bool,
const char *);
119 std::map<std::string, std::string> getMidiMappingStrings(
void);
122 std::string getMappedString(std::string addr);
126 void snoop(
const char *msg);
128 void apply_high(
int v,
int ID);
129 void apply_low(
int v,
int ID);
130 void apply_midi(
int val,
int ID);
132 void setBounds(
const char *str,
float low,
float high);
134 std::tuple<float,float,float,float> getBounds(
const char *str);
136 bool has(std::string addr);
137 bool hasPending(std::string addr);
138 bool hasCoarse(std::string addr);
139 bool hasFine(std::string addr);
140 bool hasCoarsePending(std::string addr);
141 bool hasFinePending(std::string addr);
142 int getCoarse(std::string addr);
143 int getFine(std::string addr);
146 std::map<std::string, std::tuple<int, int, int, MidiBijection>> inv_map;
147 std::deque<std::pair<std::string,bool>> learnQueue;
148 std::function<void(
const char *)> rt_cb;
150 const Ports *base_ports;
243 const Ports &dispatch_root;
246 char *unhandled_path;
248 void (*error_cb)(
const char *,
const char *);
249 void (*event_cb)(
const char *);
250 void (*modify_cb)(
const char *,
const char *,
const char *, int, int);
255 bool has(uint8_t ch, uint8_t ctl)
const;
257 MidiAddr *get(uint8_t ch, uint8_t ctl);
259 const MidiAddr *get(uint8_t ch, uint8_t ctl)
const;
263 void addElm(uint8_t ch, uint8_t ctl,
const char *path);
265 void check_learn(
void);
267 void learn(
const char *s);
269 void clear_entry(
const char *s);
271 void process(uint8_t ch, uint8_t ctl, uint8_t val);
273 Port learnPort(
void);
274 Port unlearnPort(
void);
275 Port registerPort(
void);
278 static float translate(uint8_t val,
const char *meta);
281 class MidiTable_Impl *impl;