summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/export_handler.h
diff options
context:
space:
mode:
authorSakari Bergen <sakari.bergen@beatwaves.net>2011-06-11 14:14:24 +0000
committerSakari Bergen <sakari.bergen@beatwaves.net>2011-06-11 14:14:24 +0000
commit7468fdb9ca9892cec9b298690bf0edf3655d6453 (patch)
treeabff397fae4e6f8c0f51a7ae71c097b6f0ad2271 /libs/ardour/ardour/export_handler.h
parent47e2b9db77ff88b0b15f942e751e56322a2887e6 (diff)
Typedef all globally used export smart pointer types in one file.
Some of them need to be ordered in STL containers, and thus need a special comparable wrapper for boost::shared_ptr, defined in comparable_shared_ptr.h. This also alleviates the typedef hell present earlier in some export classes :) Making the timespan pointer comparable should fix bug #4093 git-svn-id: svn://localhost/ardour2/branches/3.0@9702 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/export_handler.h')
-rw-r--r--libs/ardour/ardour/export_handler.h68
1 files changed, 34 insertions, 34 deletions
diff --git a/libs/ardour/ardour/export_handler.h b/libs/ardour/ardour/export_handler.h
index ab78899a17..79a90ebb6f 100644
--- a/libs/ardour/ardour/export_handler.h
+++ b/libs/ardour/ardour/export_handler.h
@@ -25,9 +25,11 @@
#include <list>
#include <fstream>
+#include <boost/operators.hpp>
#include <boost/shared_ptr.hpp>
#include "ardour/ardour.h"
+#include "ardour/export_pointers.h"
#include "ardour/session.h"
#include "ardour/types.h"
@@ -48,26 +50,20 @@ class ExportGraphBuilder;
class ExportElementFactory
{
public:
- typedef boost::shared_ptr<ExportTimespan> TimespanPtr;
- typedef boost::shared_ptr<ExportChannelConfiguration> ChannelConfigPtr;
- typedef boost::shared_ptr<ExportFormatSpecification> FormatPtr;
- typedef boost::shared_ptr<ExportFilename> FilenamePtr;
-
- public:
ExportElementFactory (Session & session);
~ExportElementFactory ();
- TimespanPtr add_timespan ();
+ ExportTimespanPtr add_timespan ();
- ChannelConfigPtr add_channel_config ();
+ ExportChannelConfigPtr add_channel_config ();
- FormatPtr add_format ();
- FormatPtr add_format (XMLNode const & state);
- FormatPtr add_format_copy (FormatPtr other);
+ ExportFormatSpecPtr add_format ();
+ ExportFormatSpecPtr add_format (XMLNode const & state);
+ ExportFormatSpecPtr add_format_copy (ExportFormatSpecPtr other);
- FilenamePtr add_filename ();
- FilenamePtr add_filename_copy (FilenamePtr other);
+ ExportFilenamePtr add_filename ();
+ ExportFilenamePtr add_filename_copy (ExportFilenamePtr other);
private:
Session & session;
@@ -78,17 +74,18 @@ class ExportHandler : public ExportElementFactory
public:
struct FileSpec {
FileSpec() {}
- FileSpec (ChannelConfigPtr channel_config, FormatPtr format, FilenamePtr filename, boost::shared_ptr<AudioGrapher::BroadcastInfo> broadcast_info)
+ FileSpec (ExportChannelConfigPtr channel_config, ExportFormatSpecPtr format,
+ ExportFilenamePtr filename, BroadcastInfoPtr broadcast_info)
: channel_config (channel_config)
, format (format)
, filename (filename)
, broadcast_info (broadcast_info)
{}
- ChannelConfigPtr channel_config;
- FormatPtr format;
- FilenamePtr filename;
- boost::shared_ptr<AudioGrapher::BroadcastInfo> broadcast_info;
+ ExportChannelConfigPtr channel_config;
+ ExportFormatSpecPtr format;
+ ExportFilenamePtr filename;
+ BroadcastInfoPtr broadcast_info;
};
private:
@@ -97,11 +94,10 @@ class ExportHandler : public ExportElementFactory
* The multimap maps timespans to file specifications
*/
- typedef std::pair<TimespanPtr, FileSpec> ConfigPair;
- typedef std::multimap<TimespanPtr, FileSpec> ConfigMap;
+ typedef std::pair<ExportTimespanPtr, FileSpec> ConfigPair;
+ typedef std::multimap<ExportTimespanPtr, FileSpec> ConfigMap;
typedef boost::shared_ptr<ExportGraphBuilder> GraphBuilderPtr;
- typedef boost::shared_ptr<ExportStatus> StatusPtr;
private:
/* Session::get_export_handler() should be used to obtain an export handler
@@ -114,7 +110,9 @@ class ExportHandler : public ExportElementFactory
public:
~ExportHandler ();
- bool add_export_config (TimespanPtr timespan, ChannelConfigPtr channel_config, FormatPtr format, FilenamePtr filename, boost::shared_ptr<AudioGrapher::BroadcastInfo> broadcast_info);
+ bool add_export_config (ExportTimespanPtr timespan, ExportChannelConfigPtr channel_config,
+ ExportFormatSpecPtr format, ExportFilenamePtr filename,
+ BroadcastInfoPtr broadcast_info);
void do_export (bool rt = false);
private:
@@ -123,7 +121,7 @@ class ExportHandler : public ExportElementFactory
Session & session;
GraphBuilderPtr graph_builder;
- StatusPtr export_status;
+ ExportStatusPtr export_status;
ConfigMap config_map;
bool realtime;
@@ -137,7 +135,7 @@ class ExportHandler : public ExportElementFactory
void finish_timespan ();
typedef std::pair<ConfigMap::iterator, ConfigMap::iterator> TimespanBounds;
- TimespanPtr current_timespan;
+ ExportTimespanPtr current_timespan;
TimespanBounds timespan_bounds;
PBD::ScopedConnection process_connection;
@@ -146,21 +144,22 @@ class ExportHandler : public ExportElementFactory
/* CD Marker stuff */
struct CDMarkerStatus {
- CDMarkerStatus (std::string out_file, TimespanPtr timespan, FormatPtr format, std::string filename) :
- out (out_file.c_str()), timespan (timespan), format (format), filename (filename), marker(0),
- track_number (1), track_position (0), track_duration (0), track_start_frame (0),
- index_number (1), index_position (0)
+ CDMarkerStatus (std::string out_file, ExportTimespanPtr timespan,
+ ExportFormatSpecPtr format, std::string filename)
+ : out (out_file.c_str()), timespan (timespan), format (format), filename (filename), marker(0)
+ , track_number (1), track_position (0), track_duration (0), track_start_frame (0)
+ , index_number (1), index_position (0)
{}
/* General info */
std::ofstream out;
- TimespanPtr timespan;
- FormatPtr format;
- std::string filename;
- Location * marker;
+ ExportTimespanPtr timespan;
+ ExportFormatSpecPtr format;
+ std::string filename;
+ Location * marker;
/* Track info */
- uint32_t track_number;
+ uint32_t track_number;
framepos_t track_position;
framepos_t track_duration;
framepos_t track_start_frame;
@@ -171,7 +170,8 @@ class ExportHandler : public ExportElementFactory
};
- void export_cd_marker_file (TimespanPtr timespan, FormatPtr file_format, std::string filename, CDMarkerFormat format);
+ void export_cd_marker_file (ExportTimespanPtr timespan, ExportFormatSpecPtr file_format,
+ std::string filename, CDMarkerFormat format);
void write_cue_header (CDMarkerStatus & status);
void write_toc_header (CDMarkerStatus & status);