#include <boost/shared_ptr.hpp>
+#include "pbd/natsort.h"
#include "ardour/audio_backend.h"
#include "ardour/dsp_load_calculator.h"
#include "ardour/types.h"
uint32_t _systemic_audio_output_latency;
/* coreaudio specific */
- uint32_t name_to_id(std::string) const;
+ enum DeviceFilter { All, Input, Output, Duplex };
+ uint32_t name_to_id(std::string, DeviceFilter filter = All) const;
/* processing */
float _dsp_load;
std::vector<CoreBackendPort *> _system_midi_in;
std::vector<CoreBackendPort *> _system_midi_out;
+ struct SortByPortName
+ {
+ bool operator ()(const CoreBackendPort* lhs, const CoreBackendPort* rhs) const
+ {
+ return PBD::naturally_less (lhs->name ().c_str (), rhs->name ().c_str ());
+ }
+ };
+
typedef std::map<std::string, CoreBackendPort *> PortMap; // fast lookup in _ports
- typedef std::set<CoreBackendPort *> PortIndex; // fast lookup in _ports
+ typedef std::set<CoreBackendPort *, SortByPortName> PortIndex; // fast lookup in _ports
PortMap _portmap;
PortIndex _ports;
}
bool valid_port (PortHandle port) const {
- return _ports.find (static_cast<CoreBackendPort*>(port)) != _ports.end ();
+ return std::find (_ports.begin(), _ports.end(), static_cast<CoreBackendPort*>(port)) != _ports.end ();
}
CoreBackendPort* find_port (const std::string& port_name) const {