summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2007-06-17 00:45:50 +0000
committerTim Mayberry <mojofunk@gmail.com>2007-06-17 00:45:50 +0000
commit0346cdc2810b5bca69e9754fa3865e2eb3035807 (patch)
tree7bb33bd7c4d4fef8588c8f224b0094e45e334cdb /libs
parentdb2fd8402ebb7ec94d12af762e7d705089f96234 (diff)
Forward declare the SessionDirectory class in session.h to reduce compilation dependencies
git-svn-id: svn://localhost/ardour2/trunk@1996 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/session.h6
-rw-r--r--libs/ardour/ardour/session_directory.h1
-rw-r--r--libs/ardour/session.cc13
-rw-r--r--libs/ardour/session_state.cc3
4 files changed, 14 insertions, 9 deletions
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index 84c334f590..eeb0870792 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -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;
diff --git a/libs/ardour/ardour/session_directory.h b/libs/ardour/ardour/session_directory.h
index 41667a6807..93340a991a 100644
--- a/libs/ardour/ardour/session_directory.h
+++ b/libs/ardour/ardour/session_directory.h
@@ -33,6 +33,7 @@ using PBD::sys::path;
class SessionDirectory
{
public:
+
/**
* @param session_path An absolute path to a session directory.
*/
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index ba5edddac1..71653a6896 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -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);
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index 793093cf70..29df9477b6 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -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 ();