23template<
class T,
class U>
25{
return t.find(
u) !=
t.end();}
27template<
class T,
class U>
34template<
class T,
class U>
56 bool coarse = std::get<1>(
mapping[
i]);
79 bool coarse_src = std::get<1>(storage.
mapping[
j]);
80 int ind_src = std::get<2>(storage.
mapping[
j]);
82 bool coarse_dest = std::get<1>(
mapping[
i]);
83 int ind_dest = std::get<2>(
mapping[
i]);
136 if(
x.first == addr &&
x.second == coarse)
140 learnQueue.push_back(std::make_pair(addr,coarse));
149 const auto &meta = port.meta();
150 if(meta.find(
"min") == meta.end() ||
151 meta.find(
"max") == meta.end()) {
152 printf(
"Rtosc-MIDI: Cannot Learn address = <%s>\n", addr.c_str());
153 printf(
"Rtosc-MIDI: There are no min/max fields\n");
157 bi.
min = atof(port.meta()[
"min"]);
158 bi.
max = atof(port.meta()[
"max"]);
160 if(strstr(port.name,
":i"))
173 if(bi.
min == 0 && bi.
max == 127 &&
type ==
'i')
200 bi.
min = atof(port.meta()[
"min"]);
201 bi.
max = atof(port.meta()[
"max"]);
203 if(strstr(port.name,
":i"))
230 inv_map[addr] = std::make_tuple(
storage->callbacks.size()-1, ID,-1,bi);
246 int mapped_ID = std::get<0>(
inv_map[addr]);
247 std::get<2>(
inv_map[addr]) = ID;
250 nstorage->
mapping =
storage->mapping.insert(std::make_tuple(ID,
false, mapped_ID));
259 for(
int i=0;
i<
m.mapping.size();
i++)
261 nmapping[
j++] =
m.mapping[
i];
263 m.mapping = nmapping;
270 std::string addr = std::get<0>(
learnQueue.front());
271 bool coarse = std::get<1>(
learnQueue.front());
285 int mapped_ID = std::get<0>(imap);
365 std::map<std::string, std::string>
result;
371 if(
s.second ==
false)
372 result[
s.first] += std::string(
":")+ID++;
382 std::stringstream
out;
385 if(std::get<1>(
inv_map[addr]) != -1)
391 if(std::get<2>(
inv_map[addr]) != -1)
423 int new_midi = bi(
value);
428 if(std::get<1>(apple) != -1)
430 if(std::get<2>(apple) != -1)
455 float out = newBi(
x);
472 float min_val = atof(
p->meta()[
"min"]);
473 float max_val = atof(
p->meta()[
"max"]);
475 auto elm = std::get<3>(
inv_map[str]);
476 return std::make_tuple(min_val, max_val,elm.min,elm.max);
478 return std::make_tuple(min_val, max_val,-1.0f,-1.0f);
499 return std::get<1>(
e) != -1;
507 return std::get<2>(
e) != -1;
513 if(
s.first == addr &&
s.second)
521 if(
s.first == addr && !
s.second)
531 return std::get<1>(
e);
539 return std::get<2>(
e);
581 midi.storage = nstorage;
583 midi.storage = nstorage;}}
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
Definition miditable.h:155
void setBackendCb(std::function< void(const char *)> cb)
Definition midimapper.cpp:549
MidiMapperRT(void)
Definition midimapper.cpp:546
static const Ports ports
Definition miditable.h:169
void setFrontendCb(std::function< void(const char *)> cb)
Definition midimapper.cpp:550
void addWatch(void)
Definition midimapper.cpp:561
void remWatch(void)
Definition midimapper.cpp:562
std::function< void(const char *)> frontend
Definition miditable.h:219
Port bindPort(void)
Definition midimapper.cpp:597
PendingQueue pending
Definition miditable.h:215
Port removeWatchPort(void)
Definition midimapper.cpp:592
void handleCC(int ID, int val)
Definition midimapper.cpp:551
MidiMapperStorage * storage
Definition miditable.h:216
Port addWatchPort(void)
Definition midimapper.cpp:587
std::function< void(const char *)> backend
Definition miditable.h:218
unsigned watchSize
Definition miditable.h:217
Definition miditable.h:53
TinyVector insert(const T &t_)
Definition miditable.h:62
int size(void) const
Definition miditable.h:70
TinyVector clone(void)
Definition miditable.h:68
Definition miditable.h:49
TinyVector< int > values
Definition miditable.h:79
MidiMapperStorage * clone(void)
Definition midimapper.cpp:102
TinyVector< callback_t > callbacks
Definition miditable.h:77
std::function< void(const char *)> write_cb
Definition miditable.h:73
bool handleCC(int ID, int val, write_cb write)
Definition midimapper.cpp:50
TinyVector< std::tuple< int, bool, int > > mapping
Definition miditable.h:76
void cloneValues(const MidiMapperStorage &storage)
Definition midimapper.cpp:70
int getCoarse(std::string addr)
Definition midimapper.cpp:526
void apply_low(int v, int ID)
Definition midimapper.cpp:436
void addNewMapper(int ID, const Port &port, std::string addr)
Definition midimapper.cpp:196
std::map< std::string, std::tuple< int, int, int, MidiBijection > > inv_map
Definition miditable.h:147
bool hasFinePending(std::string addr)
Definition midimapper.cpp:518
bool has(std::string addr)
Definition midimapper.cpp:481
bool hasFine(std::string addr)
Definition midimapper.cpp:502
const Ports * base_ports
Definition miditable.h:151
MidiMappernRT(void)
Definition midimapper.cpp:129
std::function< void(const char *)> rt_cb
Definition miditable.h:149
MidiBijection getBijection(std::string s)
Definition midimapper.cpp:399
void delMapping(int ID, bool coarse, const char *addr)
Definition midimapper.cpp:344
MidiMapperStorage * storage
Definition miditable.h:150
MidiMapperStorage * generateNewBijection(const Port &port, std::string)
Definition midimapper.cpp:146
void map(const char *addr, bool coarse=true)
Definition midimapper.cpp:133
void useFreeID(int ID)
Definition midimapper.cpp:266
void snoop(const char *msg)
Definition midimapper.cpp:404
bool hasPending(std::string addr)
Definition midimapper.cpp:486
void setBounds(const char *str, float low, float high)
Definition midimapper.cpp:444
std::map< std::string, std::string > getMidiMappingStrings(void)
Definition midimapper.cpp:363
int getFine(std::string addr)
Definition midimapper.cpp:534
void replaceMapping(int, bool, const char *)
Definition midimapper.cpp:349
std::deque< std::pair< std::string, bool > > learnQueue
Definition miditable.h:148
void apply_high(int v, int ID)
Definition midimapper.cpp:435
void addFineMapper(int ID, const Port &port, std::string addr)
Definition midimapper.cpp:237
std::tuple< float, float, float, float > getBounds(const char *str)
Definition midimapper.cpp:468
void unMap(const char *addr, bool coarse)
Definition midimapper.cpp:306
std::string getMappedString(std::string addr)
Definition midimapper.cpp:380
bool hasCoarsePending(std::string addr)
Definition midimapper.cpp:510
void clear(void)
Definition midimapper.cpp:351
void apply_midi(int val, int ID)
Definition midimapper.cpp:437
bool hasCoarse(std::string addr)
Definition midimapper.cpp:494
* e
Definition inflate.c:1404
unsigned * m
Definition inflate.c:1559
struct huft * t
Definition inflate.c:943
register unsigned j
Definition inflate.c:1576
unsigned v[N_MAX]
Definition inflate.c:1584
unsigned d
Definition inflate.c:940
struct huft * u[BMAX]
Definition inflate.c:1583
register unsigned i
Definition inflate.c:1575
unsigned s
Definition inflate.c:1555
unsigned x[BMAX+1]
Definition inflate.c:1586
#define U(x)
Definition fmopl.c:132
static PuglViewHint int value
Definition pugl.h:1708
int val
Definition jpeglib.h:956
float out
Definition lilv_test.c:1461
short int16_t
Definition mid.cpp:96
bool has_t(const T &t, const U &u)
Definition midimapper.cpp:24
void killMap(int ID, MidiMapperStorage &m)
Definition midimapper.cpp:255
int getInd(const T &t, const U &u)
Definition midimapper.cpp:35
bool has2(const T &t, const U &u)
Definition midimapper.cpp:28
const char * msg
Definition missing_descriptor.c:20
const char * msg_t
Definition ports.h:48
static char tmp[256]
Definition undo-history.cpp:80
osc_element< Index, rtMsg< Types... > >::type get(rtMsg< Types... > &Tuple)
Definition typed-message.h:142
const char * rtosc_argument_string(const char *msg)
Definition rtosc.c:11
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:90
float max
Definition miditable.h:93
int mode
Definition miditable.h:91
int operator()(float x) const
Definition midimapper.cpp:111
float min
Definition miditable.h:92
data object for the dispatch routine
Definition ports.h:55
uint8_t * data
Definition rtosc.h:43
int32_t i
Definition rtosc.h:47
rtosc_blob_t b
Definition rtosc.h:55
float f
Definition rtosc.h:49
uch * p
Definition crypt.c:594
int result
Definition process.c:1455
#define void
Definition unzip.h:396