mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-13 19:29:58 +01:00
Minor improvement XML
Do not save timeline for single frame media
This commit is contained in:
@@ -152,31 +152,34 @@ void SessionVisitor::visit(MediaPlayer &n)
|
|||||||
{
|
{
|
||||||
XMLElement *newelement = xmlDoc_->NewElement("MediaPlayer");
|
XMLElement *newelement = xmlDoc_->NewElement("MediaPlayer");
|
||||||
newelement->SetAttribute("id", n.id());
|
newelement->SetAttribute("id", n.id());
|
||||||
newelement->SetAttribute("play", n.isPlaying());
|
|
||||||
newelement->SetAttribute("loop", (int) n.loop());
|
|
||||||
newelement->SetAttribute("speed", n.playSpeed());
|
|
||||||
|
|
||||||
// timeline
|
if (!n.isImage()) {
|
||||||
XMLElement *timelineelement = xmlDoc_->NewElement("Timeline");
|
newelement->SetAttribute("play", n.isPlaying());
|
||||||
|
newelement->SetAttribute("loop", (int) n.loop());
|
||||||
|
newelement->SetAttribute("speed", n.playSpeed());
|
||||||
|
|
||||||
// gaps in timeline
|
// timeline
|
||||||
XMLElement *gapselement = xmlDoc_->NewElement("Gaps");
|
XMLElement *timelineelement = xmlDoc_->NewElement("Timeline");
|
||||||
TimeIntervalSet gaps = n.timeline()->gaps();
|
|
||||||
for( auto it = gaps.begin(); it!= gaps.end(); it++) {
|
// gaps in timeline
|
||||||
XMLElement *g = xmlDoc_->NewElement("Interval");
|
XMLElement *gapselement = xmlDoc_->NewElement("Gaps");
|
||||||
g->SetAttribute("begin", (*it).begin);
|
TimeIntervalSet gaps = n.timeline()->gaps();
|
||||||
g->SetAttribute("end", (*it).end);
|
for( auto it = gaps.begin(); it!= gaps.end(); it++) {
|
||||||
gapselement->InsertEndChild(g);
|
XMLElement *g = xmlDoc_->NewElement("Interval");
|
||||||
|
g->SetAttribute("begin", (*it).begin);
|
||||||
|
g->SetAttribute("end", (*it).end);
|
||||||
|
gapselement->InsertEndChild(g);
|
||||||
|
}
|
||||||
|
timelineelement->InsertEndChild(gapselement);
|
||||||
|
|
||||||
|
// fading in timeline
|
||||||
|
XMLElement *fadingelement = xmlDoc_->NewElement("Fading");
|
||||||
|
XMLElement *array = XMLElementEncodeArray(xmlDoc_, n.timeline()->fadingArray(), MAX_TIMELINE_ARRAY * sizeof(float));
|
||||||
|
fadingelement->InsertEndChild(array);
|
||||||
|
timelineelement->InsertEndChild(fadingelement);
|
||||||
|
newelement->InsertEndChild(timelineelement);
|
||||||
}
|
}
|
||||||
timelineelement->InsertEndChild(gapselement);
|
|
||||||
|
|
||||||
// fading in timeline
|
|
||||||
XMLElement *fadingelement = xmlDoc_->NewElement("Fading");
|
|
||||||
XMLElement *array = XMLElementEncodeArray(xmlDoc_, n.timeline()->fadingArray(), MAX_TIMELINE_ARRAY * sizeof(float));
|
|
||||||
fadingelement->InsertEndChild(array);
|
|
||||||
timelineelement->InsertEndChild(fadingelement);
|
|
||||||
|
|
||||||
newelement->InsertEndChild(timelineelement);
|
|
||||||
xmlCurrent_->InsertEndChild(newelement);
|
xmlCurrent_->InsertEndChild(newelement);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user