X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fexport_timespan.h;h=d4631cbccc00731ba634191673c9ac94c5fc6874;hb=7c2302651559eda71833c291ddc17f4d590ad95a;hp=461caf6dd8bac0aa6224900c2e651c93394ddad5;hpb=f6fdd8dcbf41f864e9f0cc32dabe81fe3533ddfe;p=ardour.git diff --git a/libs/ardour/ardour/export_timespan.h b/libs/ardour/ardour/export_timespan.h index 461caf6dd8..d4631cbccc 100644 --- a/libs/ardour/ardour/export_timespan.h +++ b/libs/ardour/ardour/export_timespan.h @@ -21,74 +21,65 @@ #ifndef __ardour_export_timespan_h__ #define __ardour_export_timespan_h__ -#include -#include +#include -#include +#include -#include "ardour/export_status.h" -#include "ardour/export_channel.h" -#include "ardour/ardour.h" +#include "ardour/libardour_visibility.h" +#include "ardour/types.h" namespace ARDOUR { +class ExportStatus; class ExportChannel; class ExportTempFile; -class ExportTimespan +class LIBARDOUR_API ExportTimespan { private: - typedef boost::shared_ptr TempFilePtr; - typedef std::pair ChannelFilePair; - typedef std::map TempFileMap; typedef boost::shared_ptr ExportStatusPtr; private: friend class ExportElementFactory; - ExportTimespan (ExportStatusPtr status, nframes_t frame_rate); + ExportTimespan (ExportStatusPtr status, framecnt_t frame_rate); public: ~ExportTimespan (); - Glib::ustring name () const { return _name; } - void set_name (Glib::ustring name) { _name = name; } + std::string name () const { return _name; } + void set_name (std::string name) { _name = name; } - Glib::ustring range_id () const { return _range_id; } - void set_range_id (Glib::ustring range_id) { _range_id = range_id; } + std::string range_id () const { return _range_id; } + void set_range_id (std::string range_id) { _range_id = range_id; } - /// Registers a channel to be read when export starts rolling - void register_channel (ExportChannelPtr channel); + bool realtime () const { return _realtime; } + void set_realtime (bool rt) { _realtime = rt; } - /// "Rewinds" the tempfiles to start reading the beginnings again - void rewind (); + void set_range (framepos_t start, framepos_t end); + framecnt_t get_length () const { return end_frame - start_frame; } + framepos_t get_start () const { return start_frame; } + framepos_t get_end () const { return end_frame; } - /// Reads data from the tempfile belonging to channel into data - nframes_t get_data (float * data, nframes_t frames, ExportChannelPtr channel); - - /// Reads data from each channel and writes to tempfile - int process (nframes_t frames); - - boost::signals2::scoped_connection process_connection; - - void set_range (nframes_t start, nframes_t end); - nframes_t get_length () const { return end_frame - start_frame; } - nframes_t get_start () const { return start_frame; } - nframes_t get_end () const { return end_frame; } + /// Primarily compare start time, then end time + bool operator< (ExportTimespan const & other) { + if (start_frame < other.start_frame) { return true; } + if (start_frame > other.start_frame) { return false; } + return end_frame < other.end_frame; + } private: ExportStatusPtr status; - nframes_t start_frame; - nframes_t end_frame; - nframes_t position; - nframes_t frame_rate; - - TempFileMap filemap; + framepos_t start_frame; + framepos_t end_frame; + framepos_t position; + framecnt_t frame_rate; - Glib::ustring _name; - Glib::ustring _range_id; + std::string _name; + std::string _range_id; + bool _realtime; };