summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-10-30 15:30:22 +0000
committerDavid Robillard <d@drobilla.net>2009-10-30 15:30:22 +0000
commitc83e48e07a0b4790512c6251d8ad8f941c881021 (patch)
tree7642961a3a356dbc55fe4565cf94ab3d632d7012 /libs/ardour
parente5258d4ed18a358f9812acd971336272508f7038 (diff)
Trim session.h include dependency tree.
git-svn-id: svn://localhost/ardour2/branches/3.0@5979 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/audio_region_importer.h5
-rw-r--r--libs/ardour/ardour/element_importer.h6
-rw-r--r--libs/ardour/ardour/export_handler.h2
-rw-r--r--libs/ardour/ardour/import_status.h49
-rw-r--r--libs/ardour/ardour/session.h26
-rw-r--r--libs/ardour/ardour/session_region.h3
-rw-r--r--libs/ardour/ardour/slave.h29
-rw-r--r--libs/ardour/ardour/types.h5
-rw-r--r--libs/ardour/import.cc19
-rw-r--r--libs/ardour/session_state.cc4
-rw-r--r--libs/ardour/slave.cc74
-rw-r--r--libs/ardour/wscript1
12 files changed, 171 insertions, 52 deletions
diff --git a/libs/ardour/ardour/audio_region_importer.h b/libs/ardour/ardour/audio_region_importer.h
index d6d5c192d9..2187d92148 100644
--- a/libs/ardour/ardour/audio_region_importer.h
+++ b/libs/ardour/ardour/audio_region_importer.h
@@ -33,6 +33,7 @@
#include "ardour/types.h"
#include "ardour/element_importer.h"
#include "ardour/element_import_handler.h"
+#include "ardour/import_status.h"
namespace ARDOUR {
@@ -76,7 +77,7 @@ class AudioRegionImporter : public ElementImporter
// Interface implementation
std::string get_info () const;
- Session::ImportStatus * get_import_status () { return &status; }
+ ImportStatus * get_import_status () { return &status; }
// other stuff
void add_sources_to_session ();
@@ -94,7 +95,7 @@ class AudioRegionImporter : public ElementImporter
PBD::ID old_id;
PBD::ID id;
std::list<std::string> filenames;
- Session::ImportStatus status;
+ ImportStatus status;
bool parse_xml_region ();
bool parse_source_xml ();
diff --git a/libs/ardour/ardour/element_importer.h b/libs/ardour/ardour/element_importer.h
index 396ac8358d..a203c5d37b 100644
--- a/libs/ardour/ardour/element_importer.h
+++ b/libs/ardour/ardour/element_importer.h
@@ -27,11 +27,13 @@
#include <sigc++/signal.h>
#include "ardour/types.h"
-#include "ardour/session.h"
class XMLTree;
namespace ARDOUR {
+class Session;
+class ImportStatus;
+
/// Virtual interface class for element importers
class ElementImporter
{
@@ -51,7 +53,7 @@ class ElementImporter
virtual std::string get_info () const = 0;
/** Gets import status, if applicable. */
- virtual Session::ImportStatus * get_import_status () { return 0; }
+ virtual ImportStatus * get_import_status () { return 0; }
/** Prepares to move element
*
diff --git a/libs/ardour/ardour/export_handler.h b/libs/ardour/ardour/export_handler.h
index b222c04eb4..fad21ac780 100644
--- a/libs/ardour/ardour/export_handler.h
+++ b/libs/ardour/ardour/export_handler.h
@@ -27,9 +27,9 @@
#include <boost/shared_ptr.hpp>
+#include "ardour/session.h"
#include "ardour/ardour.h"
#include "ardour/types.h"
-#include "ardour/session.h"
namespace ARDOUR
{
diff --git a/libs/ardour/ardour/import_status.h b/libs/ardour/ardour/import_status.h
new file mode 100644
index 0000000000..25a14f3fae
--- /dev/null
+++ b/libs/ardour/ardour/import_status.h
@@ -0,0 +1,49 @@
+/*
+ Copyright (C) 2000 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
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ */
+
+#ifndef __ardour_import_status_h__
+#define __ardour_import_status_h__
+
+#include <string>
+#include <vector>
+
+#include <stdint.h>
+#include <sigc++/signal.h>
+
+#include "ardour/types.h"
+
+namespace ARDOUR {
+
+struct ImportStatus : public InterThreadInfo {
+ std::string doing_what;
+
+ /* control info */
+ uint32_t total;
+ SrcQuality quality;
+ volatile bool freeze;
+ std::vector<Glib::ustring> paths;
+ bool replace_existing_source;
+
+ /* result */
+ SourceList sources;
+};
+
+} // namespace ARDOUR
+
+#endif /* __ardour_import_status_h__ */
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index d850fb96d6..8dfcf228b9 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -86,12 +86,14 @@ class AutomationList;
class AuxInput;
class BufferSet;
class Bundle;
+class Butler;
class ControlProtocolInfo;
class Diskstream;
class ExportHandler;
class ExportStatus;
class IO;
class IOProcessor;
+class ImportStatus;
class MidiDiskstream;
class MidiRegion;
class MidiSource;
@@ -114,7 +116,6 @@ class Slave;
class Source;
class TempoMap;
class VSTPlugin;
-class Butler;
class Session : public PBD::StatefulDestructible, public boost::noncopyable
{
@@ -612,20 +613,6 @@ class Session : public PBD::StatefulDestructible, public boost::noncopyable
/* source management */
- struct ImportStatus : public InterThreadInfo {
- std::string doing_what;
-
- /* control info */
- uint32_t total;
- SrcQuality quality;
- volatile bool freeze;
- std::vector<Glib::ustring> paths;
- bool replace_existing_source;
-
- /* result */
- SourceList sources;
- };
-
void import_audiofiles (ImportStatus&);
bool sample_rate_convert (ImportStatus&, std::string infile, std::string& outfile);
std::string build_tmp_convert_name (std::string file);
@@ -644,13 +631,8 @@ class Session : public PBD::StatefulDestructible, public boost::noncopyable
uint32_t source_use_count (boost::shared_ptr<const Source> src) const;
- struct cleanup_report {
- std::vector<std::string> paths;
- int64_t space;
- };
-
- int cleanup_sources (cleanup_report&);
- int cleanup_trash_sources (cleanup_report&);
+ int cleanup_sources (CleanupReport&);
+ int cleanup_trash_sources (CleanupReport&);
int destroy_region (boost::shared_ptr<Region>);
int destroy_regions (std::list<boost::shared_ptr<Region> >);
diff --git a/libs/ardour/ardour/session_region.h b/libs/ardour/ardour/session_region.h
index a9c9713035..136aaa0022 100644
--- a/libs/ardour/ardour/session_region.h
+++ b/libs/ardour/ardour/session_region.h
@@ -25,7 +25,8 @@
namespace ARDOUR {
-template<class T> void Session::foreach_region (T *obj, void (T::*func)(boost::shared_ptr<Region>))
+template<class T> void
+Session::foreach_region (T *obj, void (T::*func)(boost::shared_ptr<Region>))
{
Glib::Mutex::Lock lm (region_lock);
for (RegionList::iterator i = regions.begin(); i != regions.end(); i++) {
diff --git a/libs/ardour/ardour/slave.h b/libs/ardour/ardour/slave.h
index 64e350ae9c..0f005d6f1b 100644
--- a/libs/ardour/ardour/slave.h
+++ b/libs/ardour/ardour/slave.h
@@ -25,9 +25,7 @@
#include <jack/jack.h>
#include <sigc++/signal.h>
-#include "ardour/ardour.h"
-#include "ardour/session.h"
-#include "ardour/audioengine.h"
+#include "ardour/types.h"
#include "midi++/parser.h"
#include "midi++/types.h"
@@ -36,6 +34,10 @@ namespace MIDI {
}
namespace ARDOUR {
+
+class TempoMap;
+class Session;
+
/**
* @class Slave
*
@@ -177,16 +179,17 @@ class SlaveSessionProxy : public ISlaveSessionProxy {
Session& session;
public:
- SlaveSessionProxy(Session &s) : session(s) {};
- TempoMap& tempo_map() const { return session.tempo_map(); }
- nframes_t frame_rate() const { return session.frame_rate(); }
- nframes_t audible_frame () const { return session.audible_frame(); }
- nframes_t transport_frame () const { return session.transport_frame(); }
- nframes_t frames_since_cycle_start () const { return session.engine().frames_since_cycle_start(); }
- nframes_t frame_time () const { return session.engine().frame_time(); }
-
- void request_locate (nframes_t frame, bool with_roll = false) { session.request_locate(frame, with_roll); }
- void request_transport_speed (double speed) { session.request_transport_speed(speed); }
+ SlaveSessionProxy(Session &s) : session(s) {}
+
+ TempoMap& tempo_map() const;
+ nframes_t frame_rate() const;
+ nframes_t audible_frame () const;
+ nframes_t transport_frame () const;
+ nframes_t frames_since_cycle_start () const;
+ nframes_t frame_time () const;
+
+ void request_locate (nframes_t frame, bool with_roll = false);
+ void request_transport_speed (double speed);
};
struct SafeTime {
diff --git a/libs/ardour/ardour/types.h b/libs/ardour/ardour/types.h
index 6ec954075c..dd2c8861be 100644
--- a/libs/ardour/ardour/types.h
+++ b/libs/ardour/ardour/types.h
@@ -423,6 +423,11 @@ namespace ARDOUR {
Groove
};
+ struct CleanupReport {
+ std::vector<std::string> paths;
+ int64_t space;
+ };
+
} // namespace ARDOUR
diff --git a/libs/ardour/import.cc b/libs/ardour/import.cc
index 174a2a81a3..e2f52fe28f 100644
--- a/libs/ardour/import.cc
+++ b/libs/ardour/import.cc
@@ -45,20 +45,21 @@
#include "evoral/SMF.hpp"
+#include "ardour/analyser.h"
#include "ardour/ardour.h"
-#include "ardour/session.h"
-#include "ardour/session_directory.h"
#include "ardour/audio_diskstream.h"
#include "ardour/audioengine.h"
-#include "ardour/sndfilesource.h"
-#include "ardour/sndfile_helpers.h"
#include "ardour/audioregion.h"
+#include "ardour/import_status.h"
#include "ardour/region_factory.h"
-#include "ardour/source_factory.h"
#include "ardour/resampled_source.h"
-#include "ardour/sndfileimportable.h"
-#include "ardour/analyser.h"
+#include "ardour/session.h"
+#include "ardour/session_directory.h"
#include "ardour/smf_source.h"
+#include "ardour/sndfile_helpers.h"
+#include "ardour/sndfileimportable.h"
+#include "ardour/sndfilesource.h"
+#include "ardour/source_factory.h"
#include "ardour/tempo.h"
#ifdef HAVE_COREAUDIO
@@ -260,7 +261,7 @@ compose_status_message (const string& path,
}
static void
-write_audio_data_to_new_files (ImportableSource* source, Session::ImportStatus& status,
+write_audio_data_to_new_files (ImportableSource* source, ImportStatus& status,
vector<boost::shared_ptr<Source> >& newfiles)
{
const nframes_t nframes = ResampledImportableSource::blocksize;
@@ -312,7 +313,7 @@ write_audio_data_to_new_files (ImportableSource* source, Session::ImportStatus&
}
static void
-write_midi_data_to_new_files (Evoral::SMF* source, Session::ImportStatus& status,
+write_midi_data_to_new_files (Evoral::SMF* source, ImportStatus& status,
vector<boost::shared_ptr<Source> >& newfiles)
{
uint32_t buf_size = 4;
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index 437699f1e9..8b8e2ba8ff 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -2436,7 +2436,7 @@ struct RegionCounter {
};
int
-Session::cleanup_sources (Session::cleanup_report& rep)
+Session::cleanup_sources (CleanupReport& rep)
{
// FIXME: needs adaptation to midi
@@ -2699,7 +2699,7 @@ Session::cleanup_sources (Session::cleanup_report& rep)
}
int
-Session::cleanup_trash_sources (Session::cleanup_report& rep)
+Session::cleanup_trash_sources (CleanupReport& rep)
{
// FIXME: needs adaptation for MIDI
diff --git a/libs/ardour/slave.cc b/libs/ardour/slave.cc
new file mode 100644
index 0000000000..f07ea4c872
--- /dev/null
+++ b/libs/ardour/slave.cc
@@ -0,0 +1,74 @@
+/*
+ Copyright (C) 2002 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
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ */
+
+#include "ardour/audioengine.h"
+#include "ardour/session.h"
+#include "ardour/slave.h"
+
+namespace ARDOUR {
+
+TempoMap&
+SlaveSessionProxy::tempo_map() const
+{
+ return session.tempo_map();
+}
+
+nframes_t
+SlaveSessionProxy::frame_rate() const
+{
+ return session.frame_rate();
+}
+
+nframes_t
+SlaveSessionProxy::audible_frame() const
+{
+ return session.audible_frame();
+}
+
+nframes_t
+SlaveSessionProxy::transport_frame() const
+{
+ return session.transport_frame();
+}
+
+nframes_t
+SlaveSessionProxy::frames_since_cycle_start() const
+{
+ return session.engine().frames_since_cycle_start();
+}
+
+nframes_t
+SlaveSessionProxy::frame_time() const
+{
+ return session.engine().frame_time();
+}
+
+void
+SlaveSessionProxy::request_locate(nframes_t frame, bool with_roll)
+{
+ session.request_locate(frame, with_roll);
+}
+
+void
+SlaveSessionProxy::request_transport_speed(double speed)
+{
+ session.request_transport_speed(speed);
+}
+
+} // namespace ARDOUR
diff --git a/libs/ardour/wscript b/libs/ardour/wscript
index ac6559f2b8..67e138da38 100644
--- a/libs/ardour/wscript
+++ b/libs/ardour/wscript
@@ -168,6 +168,7 @@ libardour_sources = [
'session_time.cc',
'session_transport.cc',
'session_utils.cc',
+ 'slave.cc',
'smf_source.cc',
'sndfile_helpers.cc',
'sndfileimportable.cc',