21 #ifndef __ardour_export_profile_manager_h__
22 #define __ardour_export_profile_manager_h__
30 #include <boost/shared_ptr.hpp>
66 void prepare_for_export ();
74 void remove_preset ();
79 typedef std::pair<PBD::UUID, std::string>
FilePair;
80 typedef std::map<PBD::UUID, std::string>
FileMap;
87 std::string preset_filename (std::string
const & preset_name);
89 void load_preset_from_disk (std::string
const & path);
91 bool set_state (
XMLNode const & root);
92 bool set_global_state (
XMLNode const & root);
93 bool set_local_state (
XMLNode const & root);
95 void serialize_profile (
XMLNode & root);
96 void serialize_global_profile (
XMLNode & root);
97 void serialize_local_profile (
XMLNode & root);
103 std::vector<std::string>
find_file (std::string
const & pattern);
131 : timespans (new TimespanList ())
133 , selection_range (selection_range)
143 TimespanStateList
const &
get_timespans () {
return check_list (timespans); }
151 TimespanStatePtr deserialize_timespan (
XMLNode & root);
152 XMLNode & serialize_timespan (TimespanStatePtr state);
156 void update_ranges ();
177 ChannelConfigStatePtr add_channel_config ();
195 list (list), format (format) {}
200 FormatStateList
const &
get_formats () {
return check_list (formats); }
201 FormatStatePtr duplicate_format_state (FormatStatePtr state);
202 void remove_format_state (FormatStatePtr state);
215 FormatStatePtr deserialize_format (
XMLNode & root);
216 XMLNode & serialize_format (FormatStatePtr state);
218 void load_formats ();
221 void load_format_from_disk (std::string
const & path);
237 FilenameStateList
const &
get_filenames () {
return check_list (filenames); }
238 FilenameStatePtr duplicate_filename_state (FilenameStatePtr state);
239 void remove_filename_state (FilenameStatePtr state);
262 TimespanStatePtr timespan_state,
263 ChannelConfigStatePtr channel_config_state,
264 FormatStatePtr format_state,
265 FilenameStatePtr filename_state);
272 void build_filenames(std::list<std::string> & result,
ExportFilenamePtr filename,
282 throw std::runtime_error (
"Programming error: Uninitialized list in ExportProfileManager");
boost::shared_ptr< ExportHandler > HandlerPtr
TimespanStateList timespans
boost::shared_ptr< TimespanState > TimespanStatePtr
ExportFilenamePtr filename
std::list< FilenameStatePtr > FilenameStateList
FilenameState(ExportFilenamePtr ptr)
PresetList const & get_presets()
std::string export_config_dir
boost::shared_ptr< FormatList > format_list
void clear_channel_configs()
PBD::Searchpath search_path
std::list< TimespanStatePtr > TimespanStateList
TimespanListPtr timespans
std::list< T > const & check_list(std::list< T > const &list)
FormatStateList const & get_formats()
boost::shared_ptr< ChannelConfigState > ChannelConfigStatePtr
std::map< PBD::UUID, std::string > FileMap
FilenameStateList filenames
std::list< ExportPresetPtr > PresetList
boost::shared_ptr< FilenameState > FilenameStatePtr
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > start
ChannelConfigStateList channel_configs
ChannelConfigStateList const & get_channel_configs()
bool find_file(const Searchpath &search_path, const string &filename, std::string &result)
std::string xml_node_name
std::list< std::string > warnings
std::list< XMLNode * > XMLNodeList
boost::shared_ptr< Location > selection_range
FilenameStateList const & get_filenames()
TimespanStateList const & get_timespans()
TimespanState(boost::shared_ptr< Location > selection_range, boost::shared_ptr< LocationList > ranges)
Manages (de)serialization of export profiles and related classes.
boost::shared_ptr< TimespanList > TimespanListPtr
boost::shared_ptr< FormatState > FormatStatePtr
ExportChannelConfigPtr config
std::pair< PBD::UUID, std::string > FilePair
std::list< ExportFormatSpecPtr > FormatList
std::list< ExportTimespanPtr > TimespanList
boost::shared_ptr< LocationList > ranges
boost::shared_ptr< Location > single_range
ChannelConfigState(ExportChannelConfigPtr ptr)
std::list< std::string > conflicting_filenames
ExportPresetPtr current_preset
std::list< std::string > errors
std::list< Location * > LocationList
PBD::Signal0< void > FormatListChanged
boost::shared_ptr< Location > selection_range
std::list< ChannelConfigStatePtr > ChannelConfigStateList
boost::shared_ptr< LocationList > ranges
std::list< FormatStatePtr > FormatStateList