#include "ardour/filesystem_paths.h"
#include "ardour/location.h"
+#include "ardour/libardour_visibility.h"
#include "ardour/types.h"
#include "ardour/export_handler.h"
class Session;
/// Manages (de)serialization of export profiles and related classes
-class ExportProfileManager
+class LIBARDOUR_API ExportProfileManager
{
public:
- ExportProfileManager (Session & s, std::string xml_node_name);
+ enum ExportType {
+ RegularExport,
+ RangeExport,
+ SelectionExport,
+ RegionExport,
+ StemExport
+ };
+
+ ExportProfileManager (Session & s, ExportType type);
~ExportProfileManager ();
void load_profile ();
void prepare_for_export ();
+ ExportType type () const { return _type; }
+
typedef std::list<ExportPresetPtr> PresetList;
PresetList const & get_presets () { return preset_list; }
typedef std::pair<PBD::UUID, std::string> FilePair;
typedef std::map<PBD::UUID, std::string> FileMap;
- std::string const xml_node_name;
+ ExportType _type;
+ std::string xml_node_name;
HandlerPtr handler;
Session & session;
std::vector<std::string> find_file (std::string const & pattern);
std::string export_config_dir;
- PBD::SearchPath search_path;
+ PBD::Searchpath search_path;
/* Timespans */
public:
Timecode,
BBT,
MinSec,
- Frames,
+ Samples,
};
struct TimespanState {
TimespanListPtr timespans;
TimeFormat time_format;
- boost::shared_ptr<Location> session_range;
boost::shared_ptr<Location> selection_range;
boost::shared_ptr<LocationList> ranges;
- TimespanState (boost::shared_ptr<Location> session_range,
- boost::shared_ptr<Location> selection_range,
+ TimespanState (boost::shared_ptr<Location> selection_range,
boost::shared_ptr<LocationList> ranges)
: timespans (new TimespanList ())
, time_format (Timecode)
- , session_range (session_range)
, selection_range (selection_range)
, ranges (ranges)
{}
typedef boost::shared_ptr<TimespanState> TimespanStatePtr;
typedef std::list<TimespanStatePtr> TimespanStateList;
- void set_selection_range (framepos_t start = 0, framepos_t end = 0);
- std::string set_single_range (framepos_t start, framepos_t end, std::string name);
+ void set_selection_range (samplepos_t start = 0, samplepos_t end = 0);
+ std::string set_single_range (samplepos_t start, samplepos_t end, std::string name);
TimespanStateList const & get_timespans () { return check_list (timespans); }
private:
void update_ranges ();
- boost::shared_ptr<Location> session_range;
boost::shared_ptr<Location> selection_range;
boost::shared_ptr<LocationList> ranges;