X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fdemux%2Fplaylist%2Fplaylist.c;h=657e1fc9d89ba3420a256e40e7d4ff1c6d2bd216;hb=4e9597b800d1140dfab1cf33c3df8c608d58878f;hp=fe0393bd23df08094f02902a7adab91390c1c52d;hpb=3fdff4b8b1926c345a27052fe3d6d736f9d9c79b;p=vlc diff --git a/modules/demux/playlist/playlist.c b/modules/demux/playlist/playlist.c index fe0393bd23..657e1fc9d8 100644 --- a/modules/demux/playlist/playlist.c +++ b/modules/demux/playlist/playlist.c @@ -1,10 +1,10 @@ /***************************************************************************** * playlist.c : Playlist import module ***************************************************************************** - * Copyright (C) 2004 VideoLAN + * Copyright (C) 2004 the VideoLAN team * $Id$ * - * Authors: Clément Stenac + * Authors: Clément Stenac * * 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 @@ -18,48 +18,120 @@ * * 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, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ /***************************************************************************** * Preamble *****************************************************************************/ -#include -#include -#include +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include #include "playlist.h" /***************************************************************************** * Module descriptor *****************************************************************************/ +#define AUTOSTART_TEXT N_( "Auto start" ) +#define AUTOSTART_LONGTEXT N_( "Automatically start playing the playlist " \ + "content once it's loaded." ) + +#define SHOW_ADULT_TEXT N_( "Show shoutcast adult content" ) +#define SHOW_ADULT_LONGTEXT N_( "Show NC17 rated video streams when " \ + "using shoutcast video playlists." ) + +#define SKIP_ADS_TEXT N_( "Skip ads" ) +#define SKIP_ADS_LONGTEXT N_( "Use playlist options usually used to prevent " \ + "ads skipping to detect ads and prevent adding them to the playlist." ) + vlc_module_begin(); add_shortcut( "playlist" ); set_category( CAT_INPUT ); set_subcategory( SUBCAT_INPUT_DEMUX ); - set_description( _("Old playlist open") ); - add_shortcut( "old-open" ); - set_capability( "demux2" , 10 ); - set_callbacks( Import_Old , NULL ); -#if 0 - add_submodule(); - set_description( _("Native playlist import") ); - add_shortcut( "playlist" ); - add_shortcut( "native-open" ); - set_capability( "demux2" , 10 ); - set_callbacks( Import_Native , Close_Native ); -#endif + add_bool( "playlist-autostart", 1, NULL, + AUTOSTART_TEXT, AUTOSTART_LONGTEXT, false ); + + add_integer( "parent-item", 0, NULL, NULL, NULL, true ); + change_internal(); + + add_bool( "playlist-skip-ads", 1, NULL, + SKIP_ADS_TEXT, SKIP_ADS_LONGTEXT, false ); + + set_shortname( N_("Playlist") ); + set_description( N_("Playlist") ); add_submodule(); - set_description( _("M3U playlist import") ); + set_description( N_("M3U playlist import") ); add_shortcut( "m3u-open" ); - set_capability( "demux2" , 10 ); - set_callbacks( Import_M3U , Close_M3U ); + set_capability( "demux", 10 ); + set_callbacks( Import_M3U, Close_M3U ); add_submodule(); - set_description( _("PLS playlist import") ); + set_description( N_("PLS playlist import") ); add_shortcut( "pls-open" ); - set_capability( "demux2" , 10 ); - set_callbacks( Import_PLS , Close_PLS ); + set_capability( "demux", 10 ); + set_callbacks( Import_PLS, Close_PLS ); + add_submodule(); + set_description( N_("B4S playlist import") ); + add_shortcut( "b4s-open" ); + add_shortcut( "shout-b4s" ); + set_capability( "demux", 10 ); + set_callbacks( Import_B4S, Close_B4S ); + add_submodule(); + set_description( N_("DVB playlist import") ); + add_shortcut( "dvb-open" ); + set_capability( "demux", 10 ); + set_callbacks( Import_DVB, Close_DVB ); + add_submodule(); + set_description( N_("Podcast parser") ); + add_shortcut( "podcast" ); + set_capability( "demux", 10 ); + set_callbacks( Import_podcast, Close_podcast ); + add_submodule(); + set_description( N_("XSPF playlist import") ); + add_shortcut( "xspf-open" ); + set_capability( "demux", 10 ); + set_callbacks( Import_xspf, Close_xspf ); + add_submodule(); + set_description( N_("New winamp 5.2 shoutcast import") ); + add_shortcut( "shout-winamp" ); + set_capability( "demux", 10 ); + set_callbacks( Import_Shoutcast, Close_Shoutcast ); + add_bool( "shoutcast-show-adult", false, NULL, + SHOW_ADULT_TEXT, SHOW_ADULT_LONGTEXT, false ); + add_submodule(); + set_description( N_("ASX playlist import") ); + add_shortcut( "asx-open" ); + set_capability( "demux", 10 ); + set_callbacks( Import_ASX, Close_ASX ); + add_submodule(); + set_description( N_("Kasenna MediaBase parser") ); + add_shortcut( "sgimb" ); + set_capability( "demux", 10 ); + set_callbacks( Import_SGIMB, Close_SGIMB ); + add_submodule(); + set_description( N_("QuickTime Media Link importer") ); + add_shortcut( "qtl" ); + set_capability( "demux", 10 ); + set_callbacks( Import_QTL, Close_QTL ); + add_submodule(); + set_description( N_("Google Video Playlist importer") ); + add_shortcut( "gvp" ); + set_capability( "demux", 10 ); + set_callbacks( Import_GVP, Close_GVP ); + add_submodule(); + set_description( N_("Dummy ifo demux") ); + set_capability( "demux", 12 ); + set_callbacks( Import_IFO, Close_IFO ); + add_submodule(); + set_description( N_("iTunes Music Library importer") ); + add_shortcut( "itml" ); + set_capability( "demux", 10 ); + set_callbacks( Import_iTML, Close_iTML ); vlc_module_end(); @@ -111,29 +183,3 @@ char *ProcessMRL( char *psz_mrl, char *psz_prefix ) asprintf( &psz_mrl, "%s%s", psz_prefix, psz_mrl ); return psz_mrl; } - -vlc_bool_t FindItem( demux_t *p_demux, playlist_t *p_playlist, - playlist_item_t **pp_item ) -{ - vlc_bool_t b_play; - if( &p_playlist->status.p_item->input == - ((input_thread_t *)p_demux->p_parent)->input.p_item ) - { - msg_Dbg( p_playlist, "starting playlist playback" ); - *pp_item = p_playlist->status.p_item; - b_play = VLC_TRUE; - } - else - { - input_item_t *p_current = ( (input_thread_t*)p_demux->p_parent)-> - input.p_item; - *pp_item = playlist_ItemGetByInput( p_playlist, p_current ); - if( !*pp_item ) - { - msg_Dbg( p_playlist, "unable to find item in playlist"); - } - msg_Dbg( p_playlist, "not starting playlist playback"); - b_play = VLC_FALSE; - } - return b_play; -}