diff options
author | Robin Gareus <robin@gareus.org> | 2017-04-21 10:43:22 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-04-21 10:43:22 +0200 |
commit | d7d86a99d263479e53f52ef7bbbf9d579db8ef42 (patch) | |
tree | d5e510eab475ae84ef184ec466ee0bf61b081a24 /libs/backends | |
parent | 23efc699c320c26a67d600179646cf1f210f89c0 (diff) |
Re-nice ALSA MIDI port names
Diffstat (limited to 'libs/backends')
-rw-r--r-- | libs/backends/alsa/alsa_audiobackend.cc | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/libs/backends/alsa/alsa_audiobackend.cc b/libs/backends/alsa/alsa_audiobackend.cc index 0d7e33cd63..b3948f8342 100644 --- a/libs/backends/alsa/alsa_audiobackend.cc +++ b/libs/backends/alsa/alsa_audiobackend.cc @@ -1410,6 +1410,23 @@ AlsaAudioBackend::register_system_audio_ports() return 0; } +/* libs/ardouralsautil/devicelist.cc appends either of + * " (IO)", " (I)", or " (O)" + * depending of the device is full-duples or half-duplex + */ +static std::string replace_name_io (std::string const& name, bool in) +{ + if (name.empty ()) { + return ""; + } + size_t pos = name.find_last_of ('('); + if (pos == std::string::npos) { + assert (0); // this should never happen. + return name; + } + return name.substr (0, pos) + "(" + (in ? "In" : "Out") + ")"; +} + int AlsaAudioBackend::register_system_midi_ports(const std::string device) { @@ -1466,7 +1483,7 @@ AlsaAudioBackend::register_system_midi_ports(const std::string device) set_latency_range (p, true, lr); static_cast<AlsaMidiPort*>(p)->set_n_periods(_periods_per_cycle); // TODO check MIDI alignment AlsaPort *ap = static_cast<AlsaPort*>(p); - ap->set_pretty_name (i->first); + ap->set_pretty_name (replace_name_io (i->first, false)); _system_midi_out.push_back (ap); _rmidi_out.push_back (mout); } @@ -1505,7 +1522,7 @@ AlsaAudioBackend::register_system_midi_ports(const std::string device) lr.min = lr.max = (_measure_latency ? 0 : nfo->systemic_input_latency); set_latency_range (p, false, lr); AlsaPort *ap = static_cast<AlsaPort*>(p); - ap->set_pretty_name (i->first); + ap->set_pretty_name (replace_name_io (i->first, true)); _system_midi_in.push_back (ap); _rmidi_in.push_back (midin); } |