summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-08-19 14:58:54 +0000
committerCarl Hetherington <carl@carlh.net>2010-08-19 14:58:54 +0000
commitb6642d14ca64153b5731d1a3a79e4d00060541ca (patch)
treed5c2ee3b0ce0452a08f3bc950604db63f7b4118e /libs/ardour/ardour
parenta958dd0512a29894096e67ccd41a3d879b6bc162 (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.h47
-rw-r--r--libs/ardour/ardour/export_handler.h11
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: