@@ -1063,14 +1063,14 @@ PortManager::update_input_ports (bool clear)
1063
1063
} else {
1064
1064
std::shared_ptr<AudioInputPorts const > aip = _audio_input_ports.reader ();
1065
1065
/* find new audio ports */
1066
- for (std::string& p : audio_ports) {
1067
- if (port_is_mine (p) || !_backend->get_port_by_name (p)) {
1068
- continue ;
1066
+ static_cast <void > (std::copy_if (
1067
+ audio_ports.cbegin (),
1068
+ audio_ports.cend (),
1069
+ new_audio.begin (),
1070
+ [&] (const std::string& p) {
1071
+ return (!port_is_mine (p) && _backend->get_port_by_name (p)) && aip->find (p) == aip->end ();
1069
1072
}
1070
- if (aip->find (p) == aip->end ()) {
1071
- new_audio.push_back (p);
1072
- }
1073
- }
1073
+ ));
1074
1074
1075
1075
/* find stale audio ports */
1076
1076
for (auto const & p : *aip) {
@@ -1081,19 +1081,20 @@ PortManager::update_input_ports (bool clear)
1081
1081
1082
1082
std::shared_ptr<MIDIInputPorts const > mip = _midi_input_ports.reader ();
1083
1083
/* find new MIDI ports */
1084
- for (std::string& p : midi_ports) {
1085
- if (port_is_mine (p) || !_backend->get_port_by_name (p)) {
1086
- continue ;
1087
- }
1084
+ static_cast <void > (std::copy_if (
1085
+ midi_ports.cbegin (),
1086
+ midi_ports.cend (),
1087
+ new_audio.begin (),
1088
+ [&, this ] (const std::string& p) {
1089
+ return !port_is_mine (p)
1090
+ && _backend->get_port_by_name (p)
1088
1091
#ifdef HAVE_ALSA
1089
- if (p.find (X_ (" Midi Through" )) != string::npos || p.find (X_ (" Midi-Through" )) != string::npos) {
1090
- continue ;
1091
- }
1092
+ && p.find (X_ (" Midi Through" )) == string::npos
1093
+ && p.find (X_ (" Midi-Through" )) == string::npos
1092
1094
#endif
1093
- if (mip->find (p) == mip->end ()) {
1094
- new_midi.push_back (p);
1095
+ && mip->find (p) == mip->end ();
1095
1096
}
1096
- }
1097
+ ));
1097
1098
1098
1099
/* find stale audio ports */
1099
1100
for (auto const & p : *mip) {
@@ -1585,15 +1586,16 @@ PortManager::get_configurable_midi_ports (vector<string>& copy, bool for_input)
1585
1586
1586
1587
std::vector<string> ports;
1587
1588
AudioEngine::instance ()->get_ports (string (), DataType::MIDI, flags, ports);
1588
- for (string& p : ports) {
1589
- if (port_is_mine (p) && !port_is_virtual_piano (p)) {
1590
- continue ;
1591
- }
1592
- if (p.find (X_ (" Midi Through" )) != string::npos || p.find (X_ (" Midi-Through" )) != string::npos) {
1593
- continue ;
1594
- }
1595
- copy.push_back (p);
1596
- }
1589
+ static_cast <void > (std::copy_if (
1590
+ ports.cbegin (),
1591
+ ports.cend (),
1592
+ copy.end (),
1593
+ [this ] (const string& p) {
1594
+ return !(port_is_mine (p) && !port_is_virtual_piano (p))
1595
+ && p.find (X_ (" Midi Through" )) == string::npos
1596
+ && p.find (X_ (" Midi-Through" )) == string::npos;
1597
+ }
1598
+ ));
1597
1599
}
1598
1600
1599
1601
void
0 commit comments