[vlc-devel] [vlc-commits] playlist: Rewrite WPL module
Hugo Beauzée-Luyssen
hugo at beauzee.fr
Fri Mar 13 15:28:14 CET 2015
On Fri, Mar 13, 2015, at 03:25 PM, Tristan Matthews wrote:
> On Fri, Mar 13, 2015 at 9:21 AM, Hugo Beauzée-Luyssen <git at videolan.org>
> wrote:
> > vlc | branch: master | Hugo Beauzée-Luyssen <hugo at beauzee.fr> | Fri Mar 13 15:18:38 2015 +0100| [4d5caefff0b10f6774dfad944b861ec2bfa7d0da] | committer: Hugo Beauzée-Luyssen
> >
> > playlist: Rewrite WPL module
> >
> > It is now using our XML parser, and is licensed as GPL
> >
> >> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4d5caefff0b10f6774dfad944b861ec2bfa7d0da
> > ---
> >
> > modules/demux/Makefile.am | 1 +
> > modules/demux/playlist/playlist.c | 5 +
> > modules/demux/playlist/wpl.c | 213 +++++++++++++++++++++++++++++++++++++
> > 3 files changed, 219 insertions(+)
> >
> > diff --git a/modules/demux/Makefile.am b/modules/demux/Makefile.am
> > index b5d2d8a..78dc915 100644
> > --- a/modules/demux/Makefile.am
> > +++ b/modules/demux/Makefile.am
> > @@ -220,6 +220,7 @@ libplaylist_plugin_la_SOURCES = \
> > demux/playlist/ram.c \
> > demux/playlist/sgimb.c \
> > demux/playlist/shoutcast.c \
> > + demux/playlist/wpl.c \
> > demux/playlist/xspf.c \
> > demux/playlist/directory.c \
> > demux/playlist/playlist.c demux/playlist/playlist.h
> > diff --git a/modules/demux/playlist/playlist.c b/modules/demux/playlist/playlist.c
> > index 92d30aa..07e47e1 100644
> > --- a/modules/demux/playlist/playlist.c
> > +++ b/modules/demux/playlist/playlist.c
> > @@ -136,6 +136,11 @@ vlc_module_begin ()
> > set_capability( "demux", 10 )
> > set_callbacks( Import_iTML, Close_iTML )
> > add_submodule ()
> > + set_description( N_("WPL playlist import") )
> > + add_shortcut( "playlist", "wpl" )
> > + set_capability( "demux", 10 )
> > + set_callbacks( Import_WPL, Close_WPL )
> > + add_submodule ()
> > set_description( N_("Directory import") )
> > add_shortcut( "playlist", "directory" )
> > set_capability( "demux", 10 )
> > diff --git a/modules/demux/playlist/wpl.c b/modules/demux/playlist/wpl.c
> > new file mode 100644
> > index 0000000..e639799
> > --- /dev/null
> > +++ b/modules/demux/playlist/wpl.c
> > @@ -0,0 +1,213 @@
> > +/*****************************************************************************
> > + * wpl.c : WPL playlist import
> > + *****************************************************************************
> > + * Copyright (C) 2015 VLC authors and VideoLAN
> > + *
> > + * Authors: Hugo Beauzée-Luyssen <hugo at beauzee.fr>
> > + *
> > + * This program is free software; you can redistribute it and/or modify it
> > + * under the terms of the GNU Lesser General Public License as published by
> > + * the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU Lesser General Public License
> > + * along with this program; if not, write to the Free Software Foundation,
> > + * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
> > + *****************************************************************************/
> > +
> > +#ifdef HAVE_CONFIG_H
> > +# include "config.h"
> > +#endif
> > +
> > +#include <vlc_common.h>
> > +#include <vlc_demux.h>
> > +#include <vlc_xml.h>
> > +
> > +#include "playlist.h"
> > +
> > +struct demux_sys_t
> > +{
> > + xml_t* p_xml;
> > + xml_reader_t* p_reader;
> > + char* psz_prefix;
> > +};
> > +
> > +static void read_head( demux_t* p_demux, input_item_t* p_input )
> > +{
> > + demux_sys_t* p_sys = p_demux->p_sys;
> > + const char* psz_name;
> > + int i_type;
> > +
> > + do
> > + {
> > + i_type = xml_ReaderNextNode( p_sys->p_reader, &psz_name );
> > + if ( !strcasecmp( psz_name, "meta" ) )
> > + {
> > + char* psz_attribute_name = NULL;
> > + char* psz_attribute_value = NULL;
> > + while (!psz_attribute_name || !psz_attribute_value)
> > + {
> > + const char* psz_attr = NULL;
> > + const char* psz_val = NULL;
> > + psz_attr = xml_ReaderNextAttr( p_sys->p_reader, &psz_val );
> > + if ( !psz_attr || !psz_val )
> > + break;
> > + if ( !strcasecmp( psz_attr, "name" ) )
> > + psz_attribute_name = strdup( psz_val );
> > + else if ( !strcasecmp( psz_attr, "content" ) )
> > + psz_attribute_value = strdup( psz_val );
> > + }
> > + printf( "name: %s; value: %s\n", psz_attribute_name, psz_attribute_value );
>
> msg_Dbg?
>
That shouldn't even be here... Thanks for noticing!
Regards,
--
Hugo Beauzée-Luyssen
hugo at beauzee.fr
More information about the vlc-devel
mailing list