Automation of LV2 plugin properties.
[ardour.git] / libs / ardour / ardour / export_format_specification.h
index 9594485a911c4846e6fd2a47f25dbd336a470865..2a62d792f00f44db0039b4468e45867c08e17a56 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "pbd/uuid.h"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/export_format_base.h"
 
@@ -37,7 +38,7 @@ class ExportFormat;
 class ExportFormatCompatibility;
 class Session;
 
-class ExportFormatSpecification : public ExportFormatBase {
+class LIBARDOUR_API ExportFormatSpecification : public ExportFormatBase {
 
   private:
 
@@ -47,7 +48,7 @@ class ExportFormatSpecification : public ExportFormatBase {
                Time (Session & session) : AnyTime (), session (session) {}
                Time & operator= (AnyTime const & other);
 
-               nframes_t get_frames (nframes_t target_rate) const;
+               framecnt_t get_frames_at (framepos_t position, framecnt_t target_rate) const;
 
                /* Serialization */
 
@@ -64,7 +65,7 @@ class ExportFormatSpecification : public ExportFormatBase {
        ExportFormatSpecification (Session & s, XMLNode const & state);
 
   public:
-       ExportFormatSpecification (ExportFormatSpecification const & other);
+       ExportFormatSpecification (ExportFormatSpecification const & other, bool modify_name = true);
        ~ExportFormatSpecification ();
 
        /* compatibility */
@@ -93,6 +94,10 @@ class ExportFormatSpecification : public ExportFormatBase {
        void set_normalize_target (float value) { _normalize_target = value; }
 
        void set_tag (bool tag_it) { _tag = tag_it; }
+       void set_with_cue (bool yn) { _with_cue = yn; }
+       void set_with_toc (bool yn) { _with_toc = yn; }
+       void set_soundcloud_upload (bool yn) { _soundcloud_upload = yn; }
+       void set_command (std::string command) { _command = command; }
 
        void set_silence_beginning (AnyTime const & value) { _silence_beginning = value; }
        void set_silence_end (AnyTime const & value) { _silence_end = value; }
@@ -101,7 +106,7 @@ class ExportFormatSpecification : public ExportFormatBase {
 
        PBD::UUID const & id () { return _id; }
        std::string const & name () const { return _name; }
-       std::string description ();
+       std::string description (bool include_name = true);
 
        bool has_broadcast_info () const { return _has_broadcast_info; }
        uint32_t channel_limit () const { return _channel_limit; }
@@ -120,14 +125,17 @@ class ExportFormatSpecification : public ExportFormatBase {
        bool trim_end () const { return _trim_end; }
        bool normalize () const { return _normalize; }
        float normalize_target () const { return _normalize_target; }
+       bool with_toc() const { return _with_toc; }
+       bool with_cue() const { return _with_cue; }
+       bool soundcloud_upload() const { return _soundcloud_upload; }
+       std::string command() const { return _command; }
 
        bool tag () const { return _tag && supports_tagging; }
 
-       nframes_t silence_beginning () const { return _silence_beginning.get_frames (sample_rate()); }
-       nframes_t silence_end () const { return _silence_end.get_frames (sample_rate()); }
-
-       nframes_t silence_beginning (nframes_t samplerate) const { return _silence_beginning.get_frames (samplerate); }
-       nframes_t silence_end (nframes_t samplerate) const { return _silence_end.get_frames (samplerate); }
+       framecnt_t silence_beginning_at (framepos_t position, framecnt_t samplerate) const
+               { return _silence_beginning.get_frames_at (position, samplerate); }
+       framecnt_t silence_end_at (framepos_t position, framecnt_t samplerate) const
+               { return _silence_end.get_frames_at (position, samplerate); }
 
        AnyTime silence_beginning_time () const { return _silence_beginning; }
        AnyTime silence_end_time () const { return _silence_end; }
@@ -168,6 +176,10 @@ class ExportFormatSpecification : public ExportFormatBase {
 
        bool            _normalize;
        float           _normalize_target;
+       bool            _with_toc;
+       bool            _with_cue;
+       bool            _soundcloud_upload;
+       std::string     _command;
 
        /* serialization helpers */