]> git.decadent.org.uk Git - videolink.git/blobdiff - generate_dvd.cpp
Moved xml_escape into a separate file.
[videolink.git] / generate_dvd.cpp
index 6144ef5ba0b78e06a2d5568154f03ca1eeaa0e7d..eeadc489bc1b75a92bae82a1dbc8cb3c2074f8ec 100644 (file)
@@ -8,6 +8,7 @@
 
 #include "dvd.hpp"
 #include "generate_dvd.hpp"
+#include "xml_utils.hpp"
 
 dvd_contents::menu::menu()
        : vob_temp(new temp_file("webdvd-vob-"))
@@ -193,8 +194,22 @@ void generate_dvd(const dvd_contents & contents,
            "    <titles>\n"
            "      <pgc>\n"
            // Record calling location.
-           "        <pre> g12 = g1; </pre>\n"
-            << contents.titles[title_num].vob_list <<
+           "        <pre> g12 = g1; </pre>\n";
+
+       for (vob_list::const_iterator it = contents.titles[title_num].begin(),
+                end = contents.titles[title_num].end();
+            it != end;
+            ++it)
+       {
+           file << "        <vob file='" << xml_escape(it->file) << "'";
+           if (!it->chapters.empty())
+               file << " chapters='" << xml_escape(it->chapters) << "'";
+           if (!it->pause.empty())
+               file << " pause='" << xml_escape(it->pause) << "'";
+           file << "/>\n";
+       }
+
+       file <<
            // If the menu location has not been changed during
            // the title, set the location to be the following
            // button in the menu.  In any case, return to some