add a convenient lua forward mapped buffers method
[ardour.git] / libs / ardour / ardour / element_import_handler.h
index 9393c315595855b86bb32e308fe697281e48a9cf..32898ec9de504d49eeeb50bf1c6d5cc070aeafd7 100644 (file)
 
 #include <string>
 #include <list>
+#include <set>
 
 #include <boost/shared_ptr.hpp>
 
-using std::string;
+#include "ardour/libardour_visibility.h"
+#include "pbd/libpbd_visibility.h"
+
 class XMLTree;
 
 namespace ARDOUR {
@@ -34,8 +37,8 @@ namespace ARDOUR {
 class Session;
 class ElementImporter;
 
-/// Virtual interface class for element import handlers 
-class ElementImportHandler
+/// Virtual interface class for element import handlers
+class LIBARDOUR_API ElementImportHandler
 {
   public:
        typedef boost::shared_ptr<ElementImporter> ElementPtr;
@@ -48,61 +51,61 @@ class ElementImportHandler
         * @param source XML tree to be parsed
         * @see elements
         */
-       ElementImportHandler (XMLTree const & source, ARDOUR::Session & session) :
-         source (source), session (session) { }
-       
+       ElementImportHandler (XMLTree const & source, ARDOUR::Session & session)
+               : source (source), session (session) { }
+
        virtual ~ElementImportHandler ();
-       
+
        /** Gets a textual representation of the element type
         * @return textual representation of element type
         */
-       virtual string get_info () const = 0;
-       
+       virtual std::string get_info () const = 0;
+
        /// Elements this handler handles
        ElementList elements;
-       
+
        /* For checking duplicates names against queued elements */
-       
+
        /** Checks whether or not an element with some name is queued or not
         * @param name name to check
         * @return true if name is not used
         */
-       bool check_name (const string & name) const;
-       
+       bool check_name (const std::string & name) const;
+
        /// Adds name to the list of used names
-       void add_name (string name);
-       
+       void add_name (std::string name);
+
        /// Removes name from the list of used names
-       void remove_name (const string & name);
-       
+       void remove_name (const std::string & name);
+
        /// Checks wheter or not all elements can be imported cleanly
        static bool dirty () { return _dirty; }
-       
+
        /// Sets handler dirty
        static void set_dirty () { _dirty = true; }
-       
+
        /// Checks wheter or not all elements were imported cleanly
        static bool errors () { return _errors; }
-       
+
        /// Sets handler dirty
        static void set_errors () { _errors = true; }
 
   protected:
        /// Source session XML tree
        XMLTree const &   source;
-       
+
        /// Destination session
        ARDOUR::Session & session;
-       
+
        /// Session XML readability
        static bool _dirty;
-       
+
        /// Errors post initialization
        static bool _errors;
-       
+
   private:
-       /// List of names for duplicate checking
-       std::list<string> names;
+       /// Set of names for duplicate checking
+       std::set<std::string> names;
 };
 
 } // namespace ARDOUR