From c7e755b25c485f6d20a0c49230c558245511c9ba Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 10 Sep 2015 16:26:48 -0400 Subject: add PortManager::port_name_prefix_is_unique() --- libs/ardour/port_manager.cc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'libs/ardour/port_manager.cc') diff --git a/libs/ardour/port_manager.cc b/libs/ardour/port_manager.cc index a1a4397551..02e7719cc4 100644 --- a/libs/ardour/port_manager.cc +++ b/libs/ardour/port_manager.cc @@ -17,6 +17,7 @@ */ +#include "pbd/convert.h" #include "pbd/error.h" #include "ardour/async_midi_port.h" @@ -197,6 +198,28 @@ PortManager::n_physical_inputs () const 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(); + } + + boost::shared_ptr 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. */ -- cgit v1.2.3