Remove frame conversion for MidiRegionView::note_in_region_range(), speed up tempo...
[ardour.git] / libs / ardour / ardour / audio_library.h
index 3aab3993b96d20981d7d88cb0a6a3d625312e9df..63978217209333022e3c34728d2b54168ceb2bf3 100644 (file)
@@ -1,6 +1,5 @@
 /*
-    Copyright (C) 2003 Paul Davis
-    Author: Taybin Rutkin
+    Copyright (C) 2003-2006 Paul Davis
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id$
 */
 
 #ifndef __ardour_audio_library_h__
 #define __ardour_audio_library_h__
 
-#include <list>
 #include <string>
 #include <map>
+#include <vector>
 
-#include <sigc++/signal.h>
-
-using std::list;
-using std::string;
-using std::map;
+#include "ardour/libardour_visibility.h"
 
 namespace ARDOUR {
 
-class AudioLibrary 
+class LIBARDOUR_API AudioLibrary
 {
   public:
        AudioLibrary ();
        ~AudioLibrary ();
-  
-       // add_group returns the URI of the created group
-       string add_group (string group, string parent_uri = "");
-       void remove_group (string uri);
-       void get_groups (list<string>& groups, string parent_uri = "");
-
-       // add_member returns the URI of the created group
-       string add_member (string member, string parent_uri = "");
-       void remove_member (string uri);
-       void get_members (list<string>& members, string parent_uri = "");
-       string get_member_filename (string uri);
-
-       void search_members_and (list<string>& results, 
-                                                        const map<string,string>& fields);
-       void search_members_or (list<string>& results, 
-                                                       const map<string,string>& fields);
-
-       void add_field (string field);
-       void get_fields (list<string>& fields);
-       void remove_field (string field);
-       string get_field (string uri, string field);
-       void set_field (string uri, string field, string literal);
-
-       string get_label (string uri);
-       void set_label (string uri, string label);
-
-       sigc::signal<void, string, string> added_group; // group, parent
-       sigc::signal<void, string, string> added_member;// member, parent
-       sigc::signal<void, string> removed_group;
-       sigc::signal<void, string> removed_member;
-       sigc::signal<void> fields_changed;
-       
-  private:
-       void save_changes ();
-       string field_uri (string name);
 
-       bool is_rdf_type (string uri, string type);
-       void remove_uri (string uri);
+       void set_tags (std::string member, std::vector<std::string> tags);
+       std::vector<std::string> get_tags (std::string member);
+
+       void search_members_and (std::vector<std::string>& results, const std::vector<std::string>& tags);
 
-       string  src;
-       
-       void initialize_db();
+       void save_changes();
+
+  private:
+       std::string src;
 };
 
-extern AudioLibrary* Library;
+LIBARDOUR_API extern AudioLibrary* Library;
 
 } // ARDOUR namespace