diff options
author | Carl Hetherington <carl@carlh.net> | 2010-08-19 14:58:54 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-08-19 14:58:54 +0000 |
commit | b6642d14ca64153b5731d1a3a79e4d00060541ca (patch) | |
tree | d5c2ee3b0ce0452a08f3bc950604db63f7b4118e /libs/ardour/ardour | |
parent | a958dd0512a29894096e67ccd41a3d879b6bc162 (diff) |
Write BWF info on export. Fixes #3398.
git-svn-id: svn://localhost/ardour2/branches/3.0@7652 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/broadcast_info.h | 47 | ||||
-rw-r--r-- | libs/ardour/ardour/export_handler.h | 11 |
2 files changed, 12 insertions, 46 deletions
diff --git a/libs/ardour/ardour/broadcast_info.h b/libs/ardour/ardour/broadcast_info.h index 522d7e7361..991a3bbbcc 100644 --- a/libs/ardour/ardour/broadcast_info.h +++ b/libs/ardour/ardour/broadcast_info.h @@ -26,6 +26,7 @@ #include <sndfile.h> +#include "audiographer/broadcast_info.h" #include "ardour/types.h" namespace ARDOUR @@ -33,57 +34,15 @@ namespace ARDOUR class Session; -class BroadcastInfo +class BroadcastInfo : public AudioGrapher::BroadcastInfo { public: - - /// Construct empty broadcast info BroadcastInfo (); - ~BroadcastInfo (); - - /// Returns last error sring from libsndfile - std::string get_error () const { return error; } - - /* Convenience functions */ void set_from_session (Session const & session, int64_t time_ref); - /* Reading */ - - bool load_from_file (std::string const & filename); - bool load_from_file (SNDFILE* sf); - - std::string get_description () const; - int64_t get_time_reference () const; - struct tm get_origination_time () const; - std::string get_originator () const; - std::string get_originator_ref () const; - - /* Writing */ - - bool write_to_file (std::string const & filename); - bool write_to_file (SNDFILE* sf); - - void set_description (std::string const & desc); - void set_time_reference (int64_t when); - void set_origination_time (struct tm * now = 0); // if 0, use time generated at construction void set_originator (std::string const & str = ""); - void set_originator_ref (Session const &, std::string const & str = ""); - - /* State info */ - - /// Returns true if a info has been succesfully loaded or anything has been manually set - bool has_info () const { return _has_info; } - - private: - - SF_BROADCAST_INFO * info; - struct tm _time; - - void update_error (); - std::string error; - - bool _has_info; + void set_originator_ref_from_session (Session const &); }; diff --git a/libs/ardour/ardour/export_handler.h b/libs/ardour/ardour/export_handler.h index 05fbddecf5..49400a9363 100644 --- a/libs/ardour/ardour/export_handler.h +++ b/libs/ardour/ardour/export_handler.h @@ -31,6 +31,10 @@ #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,7 +114,7 @@ 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: |