Forward declare the SessionDirectory class in session.h to reduce compilation depende...
authorTim Mayberry <mojofunk@gmail.com>
Sun, 17 Jun 2007 00:45:50 +0000 (00:45 +0000)
committerTim Mayberry <mojofunk@gmail.com>
Sun, 17 Jun 2007 00:45:50 +0000 (00:45 +0000)
git-svn-id: svn://localhost/ardour2/trunk@1996 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/ardour/session.h
libs/ardour/ardour/session_directory.h
libs/ardour/session.cc
libs/ardour/session_state.cc

index 84c334f59020cdc9782a79605c58637f591ab88c..eeb0870792409f3cf4333bc748874dbe4c72c87f 100644 (file)
@@ -27,6 +27,7 @@
 #include <set>
 #include <stack>
 
+#include <boost/scoped_ptr.hpp>
 #include <boost/weak_ptr.hpp>
 #include <boost/dynamic_bitset.hpp>
 
@@ -53,7 +54,6 @@
 #include <ardour/location.h>
 #include <ardour/gain.h>
 #include <ardour/io.h>
-#include <ardour/session_directory.h>
 
 #include <ardour/smpte.h>
 
@@ -107,6 +107,8 @@ class MidiTrack;
 class MidiRegion;
 class SMFSource;
 
+class SessionDirectory;
+
 struct AudioExportSpecification;
 struct RouteGroup;
 
@@ -1095,7 +1097,7 @@ class Session : public PBD::StatefulDestructible
        bool                     loop_changing;
        nframes_t           last_loopend;
 
-       SessionDirectory         _session_dir;
+       boost::scoped_ptr<SessionDirectory>        _session_dir;
 
        RingBuffer<Event*> pending_events;
 
index 41667a6807126362e4b481bbaf085b0983406e92..93340a991a2cbd2ac1d88a574b2c9c206800625f 100644 (file)
@@ -33,6 +33,7 @@ using PBD::sys::path;
 class SessionDirectory
 {
 public:
+
        /**
         * @param session_path An absolute path to a session directory.
         */
index ba5edddac176d416e248f1ad86f555ee57aaa3c2..71653a6896fc598827d958fb26b12c02b833f369 100644 (file)
@@ -44,6 +44,7 @@
 #include <ardour/audioengine.h>
 #include <ardour/configuration.h>
 #include <ardour/session.h>
+#include <ardour/session_directory.h>
 #include <ardour/utils.h>
 #include <ardour/audio_diskstream.h>
 #include <ardour/audioplaylist.h>
@@ -111,7 +112,7 @@ Session::Session (AudioEngine &eng,
          _mmc_port (default_mmc_port),
          _mtc_port (default_mtc_port),
          _midi_port (default_midi_port),
-         _session_dir (fullpath),
+         _session_dir (new SessionDirectory(fullpath)),
          pending_events (2048),
          //midi_requests (128), // the size of this should match the midi request pool size
          _send_smpte_update (false),
@@ -136,7 +137,7 @@ Session::Session (AudioEngine &eng,
                // try and create a new session directory
                try
                {
-                       if(!_session_dir.create()) {
+                       if(!_session_dir->create()) {
                                // an existing session.
                                // throw a_more_meaningful_exception()
                                destroy ();
@@ -163,7 +164,7 @@ Session::Session (AudioEngine &eng,
                {
                        // ensure the necessary session subdirectories exist
                        // in case the directory structure has changed etc.
-                       _session_dir.create();
+                       _session_dir->create();
                }
                catch(sys::filesystem_error& ex)
                {
@@ -212,7 +213,7 @@ Session::Session (AudioEngine &eng,
          _mmc_port (default_mmc_port),
          _mtc_port (default_mtc_port),
          _midi_port (default_midi_port),
-         _session_dir (fullpath),
+         _session_dir ( new SessionDirectory(fullpath)),
          pending_events (2048),
          //midi_requests (16),
          _send_smpte_update (false),
@@ -242,7 +243,7 @@ Session::Session (AudioEngine &eng,
 
        initialize_start_and_end_locations(0, initial_length);
        
-       if (!_session_dir.create () || !create_session_file ()) {
+       if (!_session_dir->create () || !create_session_file ())        {
                destroy ();
                throw failed_constructor ();
        }
@@ -3366,7 +3367,7 @@ Session::remove_empty_sounds ()
 {
        PathScanner scanner;
 
-       vector<string *>* possible_audiofiles = scanner (_session_dir.sound_path().to_string (),
+       vector<string *>* possible_audiofiles = scanner (_session_dir->sound_path().to_string (),
                        Config->get_possible_audio_file_regexp (), false, true);
        
        Glib::Mutex::Lock lm (source_lock);
index 793093cf7055476bc4755ff0be0d164ff6c565d9..29df9477b6aee60398e60e40cec19408afaf52ef 100644 (file)
@@ -63,6 +63,7 @@
 #include <ardour/audioengine.h>
 #include <ardour/configuration.h>
 #include <ardour/session.h>
+#include <ardour/session_directory.h>
 #include <ardour/buffer.h>
 #include <ardour/audio_diskstream.h>
 #include <ardour/midi_diskstream.h>
@@ -2628,7 +2629,7 @@ Session::find_all_sources (string path, set<string>& result)
                        continue;
                }
 
-               sys::path source_path = _session_dir.sound_path ();
+               sys::path source_path = _session_dir->sound_path ();
 
                source_path /= prop->value ();