abort if configuration fails
[ardour.git] / libs / ardour / export_format_specification.cc
index b139faeee2997d8401a9e4de77dfe2547254ff74..fd85c322d6c5db76249418703b3628445e9bde1f 100644 (file)
@@ -167,9 +167,13 @@ ExportFormatSpecification::ExportFormatSpecification (Session & s)
        , _silence_end (s)
 
        , _normalize (false)
-       , _normalize_target (1.0)
+       , _normalize_target (GAIN_COEFF_UNITY)
        , _with_toc (false)
        , _with_cue (false)
+       , _with_mp4chaps (false)
+       , _soundcloud_upload (false)
+       , _command ("")
+       , _analyse (true)
 {
        format_ids.insert (F_None);
        endiannesses.insert (E_FileDefault);
@@ -182,6 +186,8 @@ ExportFormatSpecification::ExportFormatSpecification (Session & s, XMLNode const
        : session (s)
        , _silence_beginning (s)
        , _silence_end (s)
+       , _soundcloud_upload (false)
+       , _analyse (true)
 {
        _silence_beginning.type = Time::Timecode;
        _silence_end.type = Time::Timecode;
@@ -194,6 +200,8 @@ ExportFormatSpecification::ExportFormatSpecification (ExportFormatSpecification
        , session (other.session)
        , _silence_beginning (other.session)
        , _silence_end (other.session)
+       , _soundcloud_upload (false)
+       , _analyse (other._analyse)
 {
        if (modify_name) {
                set_name (other.name() + " (copy)");
@@ -244,6 +252,8 @@ ExportFormatSpecification::get_state ()
        root->add_property ("id", _id.to_s());
        root->add_property ("with-cue", _with_cue ? "true" : "false");
        root->add_property ("with-toc", _with_toc ? "true" : "false");
+       root->add_property ("with-mp4chaps", _with_mp4chaps ? "true" : "false");
+       root->add_property ("command", _command);
 
        node = root->add_child ("Encoding");
        node->add_property ("id", enum_2_string (format_id()));
@@ -314,13 +324,25 @@ ExportFormatSpecification::set_state (const XMLNode & root)
        } else {
                _with_cue = false;
        }
-       
+
        if ((prop = root.property ("with-toc"))) {
                _with_toc = string_is_affirmative (prop->value());
        } else {
                _with_toc = false;
        }
-       
+
+       if ((prop = root.property ("with-mp4chaps"))) {
+               _with_mp4chaps = string_is_affirmative (prop->value());
+       } else {
+               _with_mp4chaps = false;
+       }
+
+       if ((prop = root.property ("command"))) {
+               _command = prop->value();
+       } else {
+               _command = "";
+       }
+
        /* Encoding and SRC */
 
        if ((child = root.child ("Encoding"))) {
@@ -572,6 +594,9 @@ ExportFormatSpecification::description (bool include_name)
        case SR_96:
                components.push_back ("96 kHz");
                break;
+       case SR_176_4:
+               components.push_back ("176.4 kHz");
+               break;
        case SR_192:
                components.push_back ("192 kHz");
                break;
@@ -590,6 +615,14 @@ ExportFormatSpecification::description (bool include_name)
                components.push_back ("CUE");
        }
 
+       if (_with_mp4chaps) {
+               components.push_back ("MP4ch");
+       }
+
+       if (!_command.empty()) {
+               components.push_back ("+");
+       }
+
        string desc;
        if (include_name) {
                desc = _name + ": ";