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.


Last updated January 25'th 2004