Here is a description of the xml_spumux, and xml_dvdauthor - classes. Those classes are used, to read/write the XML format of spumux, and dvdauthor and store the information in its structures.
I post these here in the hope that it can be used by others, do develop nice utilities/GUIs for usage with dvdauthor.
Here is the doxygen documentation for the source files.
following is a short example on how to generate a xml file for dvdauthor (source from dvdauthor.cpp)
void QDVDAuthor::createDvdauthorXml ()
{
int t;
// The following lines are to be changed later on.
int iNrOfTitles = m_listMovieFiles.count();
int iNrOfButtons = m_listMovieFiles.count();
// Get some information to put into the xml file.
CDVDMenuInterface *pInterface = m_pDVDMenu->getInterface();
CXmlDVDAuthor xmlDvdauthor;
CXmlDVDAuthor::button_struct *pButton;
CXmlDVDAuthor::vob_struct *pVob;
CXmlDVDAuthor::pgc_struct *pPgc;
CXmlDVDAuthor::titleset_struct *pTitleset;
xmlDvdauthor.m_dvdauthor.dest = m_qsProjectPath;
// First we create the main menu ...
pPgc = xmlDvdauthor.m_dvdauthor.vmgm.menus.addPgc();
for (t=0;t < iNrOfButtons; t ++) {
pButton = pPgc->addButton();
pButton->name = QString ("%1").arg(t+1);
pButton->value = QString (" jump title %1; ").arg(t+1);
}
pVob = pPgc->addVob ();
if (pInterface->qsMovieFileName.isNull())
pVob->file = QString ("%1_menu.mpg").arg(getTempFile(pInterface->qsBackgroundFileName));
else
pVob->file = QString (pInterface->qsMovieFileName);
pVob->pause = QString ("inf");
// And then we create the titles ...
for (t=0;t < iNrOfTitles; t++) {
pTitleset = xmlDvdauthor.m_dvdauthor.addTitleset();
pPgc = pTitleset->titles.addPgc();
pPgc->post.value = QString (" call vmgm menu 1; ");
pVob = pPgc->addVob();
pVob->file= QString(m_listMovieFiles[t]);
}
// And here we save it to the temp directory.
QString fileName = QString ("/tmp/dvdauthor.xml");
xmlDvdauthor.writeXml(fileName);
}
Note: these classes depend on using Qt. If you re-write them for usage with another language, why don't you let me know so I can put up a link to it from here.