name ALSA midi ports after device
This commit is contained in:
parent
0fc06b4a1b
commit
cf6a3afcaa
@ -1220,12 +1220,29 @@ std::string
|
||||
AlsaAudioBackend::get_port_name (PortEngine::PortHandle port) const
|
||||
{
|
||||
if (!valid_port (port)) {
|
||||
PBD::error << _("AlsaBackend::get_port_name: Invalid Port(s)") << endmsg;
|
||||
PBD::warning << _("AlsaBackend::get_port_name: Invalid Port(s)") << endmsg;
|
||||
return std::string ();
|
||||
}
|
||||
return static_cast<AlsaPort*>(port)->name ();
|
||||
}
|
||||
|
||||
int
|
||||
AlsaAudioBackend::get_port_property (PortHandle port, const std::string& key, std::string& value, std::string& type) const
|
||||
{
|
||||
if (!valid_port (port)) {
|
||||
PBD::warning << _("AlsaBackend::get_port_property: Invalid Port(s)") << endmsg;
|
||||
return -1;
|
||||
}
|
||||
if (key == "http://jackaudio.org/metadata/pretty-name") {
|
||||
type = "";
|
||||
value = static_cast<AlsaPort*>(port)->pretty_name ();
|
||||
if (!value.empty()) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
PortEngine::PortHandle
|
||||
AlsaAudioBackend::get_port_by_name (const std::string& name) const
|
||||
{
|
||||
@ -1347,7 +1364,9 @@ AlsaAudioBackend::register_system_audio_ports()
|
||||
PortHandle p = add_port(std::string(tmp), DataType::AUDIO, static_cast<PortFlags>(IsOutput | IsPhysical | IsTerminal));
|
||||
if (!p) return -1;
|
||||
set_latency_range (p, false, lr);
|
||||
_system_inputs.push_back(static_cast<AlsaPort*>(p));
|
||||
AlsaPort *ap = static_cast<AlsaPort*>(p);
|
||||
//ap->set_pretty_name ("")
|
||||
_system_inputs.push_back (ap);
|
||||
}
|
||||
|
||||
lr.min = lr.max = lcpp + (_measure_latency ? 0 : _systemic_audio_output_latency);
|
||||
@ -1357,7 +1376,9 @@ AlsaAudioBackend::register_system_audio_ports()
|
||||
PortHandle p = add_port(std::string(tmp), DataType::AUDIO, static_cast<PortFlags>(IsInput | IsPhysical | IsTerminal));
|
||||
if (!p) return -1;
|
||||
set_latency_range (p, true, lr);
|
||||
_system_outputs.push_back(static_cast<AlsaPort*>(p));
|
||||
AlsaPort *ap = static_cast<AlsaPort*>(p);
|
||||
//ap->set_pretty_name ("")
|
||||
_system_outputs.push_back (ap);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -1417,7 +1438,9 @@ AlsaAudioBackend::register_system_midi_ports(const std::string device)
|
||||
lr.min = lr.max = (_measure_latency ? 0 : nfo->systemic_output_latency);
|
||||
set_latency_range (p, true, lr);
|
||||
static_cast<AlsaMidiPort*>(p)->set_n_periods(_periods_per_cycle); // TODO check MIDI alignment
|
||||
_system_midi_out.push_back(static_cast<AlsaPort*>(p));
|
||||
AlsaPort *ap = static_cast<AlsaPort*>(p);
|
||||
ap->set_pretty_name (i->first);
|
||||
_system_midi_out.push_back (ap);
|
||||
_rmidi_out.push_back (mout);
|
||||
}
|
||||
}
|
||||
@ -1454,7 +1477,9 @@ AlsaAudioBackend::register_system_midi_ports(const std::string device)
|
||||
LatencyRange lr;
|
||||
lr.min = lr.max = (_measure_latency ? 0 : nfo->systemic_input_latency);
|
||||
set_latency_range (p, false, lr);
|
||||
_system_midi_in.push_back(static_cast<AlsaPort*>(p));
|
||||
AlsaPort *ap = static_cast<AlsaPort*>(p);
|
||||
ap->set_pretty_name (i->first);
|
||||
_system_midi_in.push_back (ap);
|
||||
_rmidi_in.push_back (midin);
|
||||
}
|
||||
}
|
||||
|
@ -70,9 +70,11 @@ class AlsaPort {
|
||||
virtual ~AlsaPort ();
|
||||
|
||||
const std::string& name () const { return _name; }
|
||||
const std::string& pretty_name () const { return _pretty_name; }
|
||||
PortFlags flags () const { return _flags; }
|
||||
|
||||
int set_name (const std::string &name) { _name = name; return 0; }
|
||||
int set_pretty_name (const std::string &name) { _pretty_name = name; return 0; }
|
||||
|
||||
virtual DataType type () const = 0;
|
||||
|
||||
@ -112,6 +114,7 @@ class AlsaPort {
|
||||
private:
|
||||
AlsaAudioBackend &_alsa_backend;
|
||||
std::string _name;
|
||||
std::string _pretty_name;
|
||||
const PortFlags _flags;
|
||||
LatencyRange _capture_latency_range;
|
||||
LatencyRange _playback_latency_range;
|
||||
@ -263,6 +266,7 @@ class AlsaAudioBackend : public AudioBackend {
|
||||
int set_port_name (PortHandle, const std::string&);
|
||||
std::string get_port_name (PortHandle) const;
|
||||
PortHandle get_port_by_name (const std::string&) const;
|
||||
int get_port_property (PortHandle, const std::string& key, std::string& value, std::string& type) const;
|
||||
|
||||
int get_ports (const std::string& port_name_pattern, DataType type, PortFlags flags, std::vector<std::string>&) const;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user