ExportFormatSpecification::Time &
ExportFormatSpecification::Time::operator= (AnyTime const & other)
{
- type = other.type;
- timecode = other.timecode;
- bbt = other.bbt;
-
- if (type == Frames) {
- frames = other.frames;
- } else {
- seconds = other.seconds;
- }
-
+ static_cast<AnyTime &>(*this) = other;
return *this;
}
framecnt_t
-ExportFormatSpecification::Time::get_frames (framecnt_t target_rate) const
+ExportFormatSpecification::Time::get_frames_at (framepos_t position, framecnt_t target_rate) const
{
- //TODO position
- framecnt_t duration = session.convert_to_frames_at (0, *this);
-
+ framecnt_t duration = session.any_duration_to_frames (position, *this);
return ((double) target_rate / session.frame_rate()) * duration + 0.5;
}
, _normalize (false)
, _normalize_target (1.0)
+ , _with_toc (false)
+ , _with_cue (false)
{
format_ids.insert (F_None);
endiannesses.insert (E_FileDefault);
set_silence_beginning (other.silence_beginning_time());
set_silence_end (other.silence_end_time());
-
+
set_extension(other.extension());
}
root->add_property ("name", _name);
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");
node = root->add_child ("Encoding");
node->add_property ("id", enum_2_string (format_id()));
node->add_property ("enabled", trim_beginning() ? "true" : "false");
node = start->add_child ("Add");
- node->add_property ("enabled", silence_beginning() > 0 ? "true" : "false");
+ node->add_property ("enabled", _silence_beginning.not_zero() ? "true" : "false");
node->add_child_nocopy (_silence_beginning.get_state());
node = end->add_child ("Trim");
node->add_property ("enabled", trim_end() ? "true" : "false");
node = end->add_child ("Add");
- node->add_property ("enabled", silence_end() > 0 ? "true" : "false");
+ node->add_property ("enabled", _silence_end.not_zero() ? "true" : "false");
node->add_child_nocopy (_silence_end.get_state());
return *root;
_id = prop->value();
}
+ if ((prop = root.property ("with-cue"))) {
+ _with_cue = string_is_affirmative (prop->value());
+ } else {
+ _with_cue = false;
+ }
+
+ if ((prop = root.property ("with-toc"))) {
+ _with_toc = string_is_affirmative (prop->value());
+ } else {
+ _with_toc = false;
+ }
+
/* Encoding and SRC */
if ((child = root.child ("Encoding"))) {
}
if ((prop = child->property ("has-sample-format"))) {
- has_sample_format = !prop->value().compare ("true");
+ has_sample_format = string_is_affirmative (prop->value());
+ }
+
+ if ((prop = child->property ("has-sample-format"))) {
+ has_sample_format = string_is_affirmative (prop->value());
}
if ((prop = child->property ("channel-limit"))) {
} else if (_trim_beginning) {
desc += _("trim start, ");
} else if (_trim_end) {
- desc += "trim end, ";
+ desc += _("trim end, ");
}
desc += _format_name + ", ";
break;
}
+ if (_with_toc) {
+ desc += ", TOC";
+ }
+
+ if (_with_cue) {
+ desc += ", CUE";
+ }
+
return desc;
}