24 #ifndef INCLUDED_XEROMYCES
25 #define INCLUDED_XEROMYCES
85 #define _XERO_MAKE_UID2__(p,l) p ## l
86 #define _XERO_MAKE_UID1__(p,l) _XERO_MAKE_UID2__(p,l)
88 #define _XERO_CHILDREN _XERO_MAKE_UID1__(_children_, __LINE__)
89 #define _XERO_I _XERO_MAKE_UID1__(_i_, __LINE__)
91 #define XERO_ITER_EL(parent_element, child_element) \
92 XMBElementList _XERO_CHILDREN = parent_element.GetChildNodes(); \
93 XMBElement child_element (0); \
94 for (int _XERO_I = 0; \
95 _XERO_I < _XERO_CHILDREN.Count \
96 && (child_element = _XERO_CHILDREN.Item(_XERO_I), 1); \
99 #define XERO_ITER_ATTR(parent_element, attribute) \
100 XMBAttributeList _XERO_CHILDREN = parent_element.GetAttributes(); \
101 XMBAttribute attribute; \
102 for (int _XERO_I = 0; \
103 _XERO_I < _XERO_CHILDREN.Count \
104 && (attribute = _XERO_CHILDREN.Item(_XERO_I), 1); \
107 #endif // INCLUDED_XEROMYCES
PSRETURN Load(const PIVFS &vfs, const VfsPath &filename)
Load from an XML file (with invisible XMB caching).
bool ReadXMBFile(const PIVFS &vfs, const VfsPath &filename)
bool GenerateCachedXMB(const PIVFS &vfs, const VfsPath &sourcePath, VfsPath &archiveCachePath)
Convert the given XML file into an XMB in the archive cache.
PSRETURN LoadString(const char *xml)
Load from an in-memory XML string (with no caching).
static void Terminate()
Call once when shutting down the program, to unload libxml2.
shared_ptr< u8 > m_XMBBuffer
static void Startup()
Call once when initialising the program, to load libxml2.
PSRETURN ConvertFile(const PIVFS &vfs, const VfsPath &filename, const VfsPath &xmbPath)
static PSRETURN CreateXMB(const xmlDocPtr doc, WriteBuffer &writeBuffer)