[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