add initial midi sidechain if plugin has one.
[ardour.git] / libs / ardour / ardour / session_directory.h
index 3f6d5d5e7c1d7a2546c68509f4fee62f6fabdedd..6f4126e0bbab6b049bed0bf502a63eba627d30b1 100644 (file)
 
 #include <string>
 #include <vector>
+#include <map>
+
+#include "ardour/libardour_visibility.h"
 
 namespace ARDOUR {
 
-class SessionDirectory
+class LIBARDOUR_API SessionDirectory
 {
 public:
 
@@ -54,6 +57,17 @@ public:
         */
        const std::string sound_path () const;
 
+       /**
+        * @return the absolute path to the directory in which
+        * the session stores audio files for Ardour 2.X.
+        *
+        * If the session is an older session with an existing
+        * "sounds" directory then it will return a path to that
+        * directory otherwise it will return the new location
+        * of root_path()/interchange/session_name/audiofiles
+        */
+       const std::string sound_path_2X () const;
+
        /**
         * @return the absolute path to the directory in which
         * the session stores MIDI files, ie
@@ -74,6 +88,12 @@ public:
         */
        const std::string peak_path () const;
 
+       /**
+        * @return The absolute path to the directory in which all
+        * video files are stored for a session.
+        */
+       const std::string video_path () const;
+
        /**
         * @return The absolute path to the directory that source
         * files are moved to when they are no longer part of the
@@ -96,8 +116,8 @@ public:
        /**
         * Create the session directory and all the subdirectories.
         *
-        * @return true If a new session directory was created, otherwise
-        * (if it already existed) false.
+        * @return true If a new session directory and subdirectories were
+        * created, otherwise false.
         *
         * @post is_valid ()
         */
@@ -110,6 +130,13 @@ public:
         */
        const std::string sources_root() const;
 
+       /**
+        * @return The path to the directory under which source directories
+        * are created for different source types in Ardour 2.X
+        * i.e root_path()/interchange/session_name
+        */
+       const std::string sources_root_2X() const;
+
 private:
 
        /**
@@ -125,6 +152,8 @@ private:
 
        /// The path to the root of the session directory.
        std::string m_root_path;
+
+       static std::map<std::string,std::string> root_cache;
 };
 
 } // namespace ARDOUR