Mercurial > audlegacy
diff audacious/xml_document.h @ 0:cb178e5ad177 trunk
[svn] Import audacious source.
author | nenolod |
---|---|
date | Mon, 24 Oct 2005 03:06:47 -0700 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/audacious/xml_document.h Mon Oct 24 03:06:47 2005 -0700 @@ -0,0 +1,90 @@ +/* BMP - Cross-platform multimedia player + * Copyright (C) 2003-2004 BMP development team. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef XML_DOCUMENT_H +#define XML_DOCUMENT_H + +#include <glib.h> + +typedef enum { + BMP_XML_NODE_DOC = 0, + BMP_XML_NODE_ELEMENT, + BMP_XML_NODE_ATTRIB, + BMP_XML_NODE_TEXT +} BmpXmlNodeType; + +#define BMP_XML_DOCUMENT(x) ((BmpXmlDocument *)(x)) +typedef struct { + GNode *tree; + GNode *current_node; + guint current_depth; + GMarkupParseContext *parse_context; +} BmpXmlDocument; + +#define BMP_XML_NODE_DATA(x) ((BmpXmlNodeData *)(x)) +typedef struct { + BmpXmlNodeType type; +} BmpXmlNodeData; + +#define BMP_XML_DOC_NODE_DATA(x) ((BmpXmlDocNodeData *)(x)) +typedef struct { + BmpXmlNodeType type; +} BmpXmlDocNodeData; + +#define BMP_XML_ELEMENT_NODE_DATA(x) ((BmpXmlElementNodeData *)(x)) +typedef struct { + BmpXmlNodeType type; + gchar *name; +} BmpXmlElementNodeData; + +#define BMP_XML_ATTRIB_NODE_DATA(x) ((BmpXmlAttribNodeData *)(x)) +typedef struct { + BmpXmlNodeType type; + gchar *name; + gchar *value; +} BmpXmlAttribNodeData; + +#define BMP_XML_TEXT_NODE_DATA(x) ((BmpXmlTextNodeData *)(x)) +typedef struct { + BmpXmlNodeType type; + gchar *text; + gsize length; +} BmpXmlTextNodeData; + + +GNode *bmp_xml_doc_node_new(void); +void bmp_xml_doc_node_data_free(BmpXmlDocNodeData * data); + +GNode *bmp_xml_element_node_new(const gchar * name); +void bmp_xml_element_node_data_free(BmpXmlElementNodeData * data); + +GNode *bmp_xml_attrib_node_new(const gchar * name, const gchar * value); +void bmp_xml_attrib_node_data_free(BmpXmlAttribNodeData * data); + +void bmp_xml_text_node_data_free(BmpXmlTextNodeData * data); +GNode *bmp_xml_text_node_new(const gchar * text, gsize length); + + +gboolean bmp_xml_document_load(BmpXmlDocument ** document, + const gchar * filename, GError ** error); + +void bmp_xml_document_free(BmpXmlDocument * document); + +GNode *bmp_xml_document_get_tree(BmpXmlDocument * document); + +#endif