std::string make_port_name_non_relative (const std::string& name) const;
std::string get_pretty_name_by_name (const std::string& portname) const;
bool port_is_mine (const std::string& fullname) const;
-
+ bool port_name_prefix_is_unique (const std::string& first_part_of_port_name) const;
+
/* other Port management */
bool port_is_physical (const std::string&) const;
*/
+#include "pbd/convert.h"
#include "pbd/error.h"
#include "ardour/async_midi_port.h"
return _backend->n_physical_inputs ();
}
+bool
+PortManager::port_name_prefix_is_unique (const string& first_part_of_port_name) const
+{
+ if (!_backend) {
+ return boost::shared_ptr<Port>();
+ }
+
+ boost::shared_ptr<const Ports> pr = ports.reader();
+ const string::size_type len = first_part_of_port_name.length();
+
+ for (Ports::const_iterator x = pr->begin(); x != pr->end(); ++x) {
+
+ string prefix = x->first.substr (0, len);
+
+ if (strings_equal_ignore_case (prefix, first_part_of_port_name)) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
/** @param name Full or short name of port
* @return Corresponding Port or 0.
*/