Move playback_distance up to AudioDiskstream from Diskstream since it is only used...
[ardour.git] / libs / ardour / ardour / export_handler.h
index 05fbddecf57a08fb28f8a6729e47eb54c6097b04..dbc8213eed3c134dbf8f988939b8e6c24e26b5d4 100644 (file)
 #include "ardour/session.h"
 #include "ardour/types.h"
 
+namespace AudioGrapher {
+       class BroadcastInfo;
+}
+
 namespace ARDOUR
 {
 
@@ -40,6 +44,7 @@ class ExportFormatSpecification;
 class ExportFilename;
 class ExportGraphBuilder;
 
+
 class ExportElementFactory
 {
   public:
@@ -73,15 +78,17 @@ class ExportHandler : public ExportElementFactory
   public:
        struct FileSpec {
                FileSpec() {}
-               FileSpec (ChannelConfigPtr channel_config, FormatPtr format, FilenamePtr filename)
+               FileSpec (ChannelConfigPtr channel_config, FormatPtr format, FilenamePtr filename, boost::shared_ptr<AudioGrapher::BroadcastInfo> 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;
        };
        
   private:
@@ -107,12 +114,12 @@ class ExportHandler : public ExportElementFactory
   public:
        ~ExportHandler ();
 
-       bool add_export_config (TimespanPtr timespan, ChannelConfigPtr channel_config, FormatPtr format, FilenamePtr filename);
+       bool add_export_config (TimespanPtr timespan, ChannelConfigPtr channel_config, FormatPtr format, FilenamePtr filename, boost::shared_ptr<AudioGrapher::BroadcastInfo> broadcast_info);
        void do_export (bool rt = false);
 
   private:
 
-       int process (nframes_t frames);
+       int process (framecnt_t frames);
        
        Session &          session;
        GraphBuilderPtr    graph_builder;
@@ -125,7 +132,7 @@ class ExportHandler : public ExportElementFactory
        /* Timespan management */
 
        void start_timespan ();
-       int  process_timespan (nframes_t frames);
+       int  process_timespan (framecnt_t frames);
        int  process_normalize ();
        void finish_timespan ();
 
@@ -134,7 +141,7 @@ class ExportHandler : public ExportElementFactory
        TimespanBounds        timespan_bounds;
        
        PBD::ScopedConnection process_connection;
-       sframes_t             process_position;
+       framepos_t             process_position;
 
        /* CD Marker stuff */
 
@@ -154,13 +161,13 @@ class ExportHandler : public ExportElementFactory
 
                /* Track info */
                uint32_t       track_number;
-               sframes_t      track_position;
-               sframes_t      track_duration;
-               sframes_t      track_start_frame;
+               framepos_t      track_position;
+               framepos_t      track_duration;
+               framepos_t      track_start_frame;
 
                /* Index info */
                uint32_t       index_number;
-               sframes_t      index_position;
+               framepos_t      index_position;
        };
 
 
@@ -175,7 +182,7 @@ class ExportHandler : public ExportElementFactory
        void write_index_info_cue (CDMarkerStatus & status);
        void write_index_info_toc (CDMarkerStatus & status);
 
-       void frames_to_cd_frames_string (char* buf, sframes_t when);
+       void frames_to_cd_frames_string (char* buf, framepos_t when);
 
        int cue_tracknum;
        int cue_indexnum;