xml.c
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:2k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * xml.c: XML parser wrapper for XML modules
  3.  *****************************************************************************
  4.  * Copyright (C) 2004 the VideoLAN team
  5.  * $Id: e5c73ab671f7c7afa8d149c18702e793c05e1755 $
  6.  *
  7.  * Authors: Gildas Bazin <gbazin@videolan.org>
  8.  *
  9.  * This program is free software; you can redistribute it and/or modify
  10.  * it under the terms of the GNU General Public License as published by
  11.  * the Free Software Foundation; either version 2 of the License, or
  12.  * (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  22.  *****************************************************************************/
  23. #ifdef HAVE_CONFIG_H
  24. # include "config.h"
  25. #endif
  26. #include <vlc_common.h>
  27. #include "vlc_xml.h"
  28. #include "../libvlc.h"
  29. /*****************************************************************************
  30.  * xml_Create:
  31.  *****************************************************************************
  32.  * Create an instance of an XML parser.
  33.  * Returns NULL on error.
  34.  *****************************************************************************/
  35. xml_t *__xml_Create( vlc_object_t *p_this )
  36. {
  37.     xml_t *p_xml;
  38.     p_xml = vlc_custom_create( p_this, sizeof( *p_xml ), VLC_OBJECT_GENERIC,
  39.                                "xml" );
  40.     vlc_object_attach( p_xml, p_this );
  41.     p_xml->p_module = module_need( p_xml, "xml", NULL, false );
  42.     if( !p_xml->p_module )
  43.     {
  44.         vlc_object_detach( p_xml );
  45.         vlc_object_release( p_xml );
  46.         msg_Err( p_this, "XML provider not found" );
  47.         return NULL;
  48.     }
  49.     return p_xml;
  50. }
  51. /*****************************************************************************
  52.  * xml_Delete: Deletes an instance of xml_t
  53.  *****************************************************************************/
  54. void xml_Delete( xml_t *p_xml )
  55. {
  56.     module_unneed( p_xml, p_xml->p_module );
  57.     vlc_object_detach( p_xml );
  58.     vlc_object_release( p_xml );
  59. }