From 8b28c2df24f570503424a8b25976b10863f228a5 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Tue, 26 Jan 2010 09:24:54 +0000 Subject: [PATCH] Configurable client names --- cvbase.h | 6 ++++++ cvin.cpp | 2 +- cvout.cpp | 2 +- example.cfg | 2 ++ jm2cv.cpp | 13 +++++++++++-- 5 files changed, 21 insertions(+), 4 deletions(-) diff --git a/cvbase.h b/cvbase.h index 95ba9f3..ac1ded7 100644 --- a/cvbase.h +++ b/cvbase.h @@ -10,6 +10,7 @@ protected: MappingList m_mapping_list; bool m_ready; tick_t m_tick; + std::string m_config_name; sample_t **m_buffers; @@ -28,6 +29,11 @@ public: { close(); } + + void set_name(const char *name) + { + m_config_name = name; + } }; #endif // CVBASE_H diff --git a/cvin.cpp b/cvin.cpp index d7fd4d8..b218cee 100644 --- a/cvin.cpp +++ b/cvin.cpp @@ -99,7 +99,7 @@ void CVIn::start() m_ports = new jack_port_t *[m_mapping_list.size()]; m_buffers = new sample_t *[m_mapping_list.size()]; - open("m2cv_in"); + open(m_config_name.empty() ? "m2cv_in" : m_config_name.c_str()); m_midi_out = port_register("midi_out", JACK_DEFAULT_MIDI_TYPE, JackPortIsOutput, 0); diff --git a/cvout.cpp b/cvout.cpp index e2fec46..6f18595 100644 --- a/cvout.cpp +++ b/cvout.cpp @@ -125,7 +125,7 @@ void CVOut::start() m_ports = new jack_port_t *[m_mapping_list.size()]; m_buffers = new sample_t *[m_mapping_list.size()]; - open("m2cv_out"); + open(m_config_name.empty() ? "m2cv_out" : m_config_name.c_str()); m_midi_in = port_register("midi_in", JACK_DEFAULT_MIDI_TYPE, JackPortIsInput, 0); diff --git a/example.cfg b/example.cfg index d4ca95e..946170b 100644 --- a/example.cfg +++ b/example.cfg @@ -48,3 +48,5 @@ cvin exp1 0 nrpn 0 5 0 16383 -1.0 1.0 10 cvin exp2 0 nrpn7 0 6 0 127 -1.0 1.0 10 cvin pitch 0 pb -1 -1 0 16383 -1.0 1.0 10 +cvin_name bank1_in +cvout_name some_other_name diff --git a/jm2cv.cpp b/jm2cv.cpp index 0f8a2ce..268ca96 100644 --- a/jm2cv.cpp +++ b/jm2cv.cpp @@ -21,13 +21,22 @@ bool read_config(const char *filename) while (!feof(f)) { line++; - char buf[80]; + char buf[80], name[80]; fgets(buf, sizeof buf, f); /* Ignore comments */ if (buf[0] == '#') continue; - char dir[80], name[80], type[80]; + /* Try parsing port name entries */ + if (sscanf(buf, "cvin_name %s", name) == 1) { + cvin.set_name(name); + continue; + } else if (sscanf(buf, "cvout_name %s", name) == 1) { + cvout.set_name(name); + continue; + } + + char dir[80], type[80]; int channel, ccmsb, cclsb, mrl, mru; float crl, cru; float latency;