Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-2-2
Commits
02a0a429
Commit
02a0a429
authored
May 25, 2006
by
Clément Stenac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* Almost fix shoutcast (still some problems in "flat" view)
* Disable interaction in WX until it's fixed
parent
a3a3661f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
69 additions
and
196 deletions
+69
-196
modules/demux/playlist/pls.c
modules/demux/playlist/pls.c
+13
-66
modules/demux/playlist/shoutcast.c
modules/demux/playlist/shoutcast.c
+40
-127
modules/gui/wxwidgets/dialogs.cpp
modules/gui/wxwidgets/dialogs.cpp
+2
-0
src/playlist/item.c
src/playlist/item.c
+14
-3
No files found.
modules/demux/playlist/pls.c
View file @
02a0a429
...
...
@@ -99,37 +99,18 @@ void E_(Close_PLS)( vlc_object_t *p_this )
static
int
Demux
(
demux_t
*
p_demux
)
{
#if 0
mtime_t
i_duration
=
-
1
;
char
*
psz_name
=
NULL
;
char
*
psz_line
;
char
*
psz_mrl
=
NULL
;
char
*
psz_key
;
char
*
psz_value
;
playlist_t *p_playlist;
int
i_position
;
int
i_item
=
-
1
;
int
i_new_item
=
0
;
int
i_key_length
;
playlist_item_t *p_parent;
vlc_bool_t b_play;
p_playlist = (playlist_t *) vlc_object_find( p_demux, VLC_OBJECT_PLAYLIST,
FIND_ANYWHERE );
if( !p_playlist )
{
msg_Err( p_demux, "can't find playlist" );
return -1;
}
b_play = E_(FindItem)( p_demux, p_playlist, &p_parent );
p_parent->input.i_type = ITEM_TYPE_PLAYLIST;
/* Change the item to a node */
if( p_parent->i_children == -1)
{
playlist_ItemToNode( p_playlist,p_parent );
}
INIT_PLAYLIST_STUFF
;
while
(
(
psz_line
=
stream_ReadLine
(
p_demux
->
s
)
)
)
{
...
...
@@ -186,25 +167,12 @@ static int Demux( demux_t *p_demux )
{
if
(
psz_mrl
)
{
playlist_item_t *p_item = playlist_ItemNew( p_playlist, psz_mrl,
psz_name );
playlist_NodeAddItem( p_playlist,p_item,
p_parent->pp_parents[0]->i_view,
p_parent,
PLAYLIST_APPEND, PLAYLIST_END );
playlist_CopyParents( p_parent, p_item );
if( i_duration != -1 )
{
//playlist_SetDuration( p_playlist, i_position, i_duration );
}
i_position++;
free( psz_mrl );
psz_mrl = NULL;
vlc_input_item_CopyOptions( &p_parent->input,
&p_item->input );
p_input
=
input_ItemNewExt
(
p_playlist
,
psz_mrl
,
psz_name
,
0
,
NULL
,
-
1
);
vlc_input_item_CopyOptions
(
p_current
->
p_input
,
p_input
);
playlist_AddWhereverNeeded
(
p_playlist
,
p_input
,
p_current
,
p_item_in_category
,
(
i_parent_id
>
0
)
?
VLC_TRUE:
VLC_FALSE
,
PLAYLIST_APPEND
);
}
else
{
...
...
@@ -244,24 +212,13 @@ static int Demux( demux_t *p_demux )
/* Add last object */
if
(
psz_mrl
)
{
playlist_item_t *p_item = playlist_ItemNew( p_playlist, psz_mrl,
psz_name );
playlist_NodeAddItem( p_playlist,p_item,
p_parent->pp_parents[0]->i_view,
p_parent,
PLAYLIST_APPEND, PLAYLIST_END );
playlist_CopyParents( p_parent, p_item );
if( i_duration != -1 )
{
//playlist_SetDuration( p_playlist, i_position, i_duration );
}
p_input
=
input_ItemNewExt
(
p_playlist
,
psz_mrl
,
psz_name
,
0
,
NULL
,
-
1
);
vlc_input_item_CopyOptions
(
p_current
->
p_input
,
p_input
);
playlist_AddWhereverNeeded
(
p_playlist
,
p_input
,
p_current
,
p_item_in_category
,
(
i_parent_id
>
0
)
?
VLC_TRUE:
VLC_FALSE
,
PLAYLIST_APPEND
);
free
(
psz_mrl
);
psz_mrl
=
NULL
;
vlc_input_item_CopyOptions( &p_parent->input,
&p_item->input );
}
else
{
...
...
@@ -273,18 +230,8 @@ static int Demux( demux_t *p_demux )
psz_name
=
NULL
;
}
if( b_play && p_playlist->status.p_item &&
p_playlist->status.p_item->i_children > 0 )
{
playlist_Control( p_playlist, PLAYLIST_VIEWPLAY,
p_playlist->status.i_view,
p_playlist->status.p_item,
p_playlist->status.p_item->pp_children[0] );
}
vlc_object_release( p_playlist );
HANDLE_PLAY_AND_RELEASE
;
return
VLC_SUCCESS
;
#endif
return
0
;
}
static
int
Control
(
demux_t
*
p_demux
,
int
i_query
,
va_list
args
)
...
...
modules/demux/playlist/shoutcast.c
View file @
02a0a429
...
...
@@ -40,6 +40,8 @@ struct demux_sys_t
{
playlist_t
*
p_playlist
;
playlist_item_t
*
p_current
;
playlist_item_t
*
p_item_in_category
;
int
i_parent_id
;
xml_t
*
p_xml
;
xml_reader_t
*
p_xml_reader
;
...
...
@@ -119,32 +121,15 @@ void E_(Close_Shoutcast)( vlc_object_t *p_this )
static
int
Demux
(
demux_t
*
p_demux
)
{
#if 0
demux_sys_t
*
p_sys
=
p_demux
->
p_sys
;
playlist_t *p_playlist;
vlc_bool_t b_play;
xml_t
*
p_xml
;
xml_reader_t
*
p_xml_reader
;
char
*
psz_eltname
=
NULL
;
p_playlist = (playlist_t *) vlc_object_find( p_demux, VLC_OBJECT_PLAYLIST,
FIND_ANYWHERE );
if( !p_playlist )
{
msg_Err( p_demux, "can't find playlist" );
return -1;
}
INIT_PLAYLIST_STUFF
;
p_sys
->
p_playlist
=
p_playlist
;
b_play = E_(FindItem)( p_demux, p_playlist, &p_sys->p_current );
msg_Warn( p_demux, "item: %s", p_sys->p_current->input.psz_name );
playlist_ItemToNode( p_playlist, p_sys->p_current );
p_sys->p_current->input.i_type = ITEM_TYPE_PLAYLIST;
p_sys
->
p_current
=
p_current
;
p_sys
->
i_parent_id
=
i_parent_id
;
p_sys
->
p_item_in_category
=
p_item_in_category
;
p_xml
=
p_sys
->
p_xml
=
xml_Create
(
p_demux
);
if
(
!
p_xml
)
return
-
1
;
...
...
@@ -153,7 +138,6 @@ static int Demux( demux_t *p_demux )
if
(
!
p_xml_reader
)
return
-
1
;
p_sys
->
p_xml_reader
=
p_xml_reader
;
/* xml */
/* check root node */
if
(
xml_ReaderRead
(
p_xml_reader
)
!=
1
)
{
...
...
@@ -185,19 +169,8 @@ static int Demux( demux_t *p_demux )
if
(
DemuxStation
(
p_demux
)
)
return
-
1
;
}
/* Go back and play the playlist */
if( b_play && p_playlist->status.p_item &&
p_playlist->status.p_item->i_children > 0 )
{
playlist_Control( p_playlist, PLAYLIST_VIEWPLAY,
p_playlist->status.i_view,
p_playlist->status.p_item,
p_playlist->status.p_item->pp_children[0] );
}
vlc_object_release( p_playlist );
HANDLE_PLAY_AND_RELEASE
;
p_sys
->
p_playlist
=
NULL
;
#endif
return
VLC_SUCCESS
;
}
...
...
@@ -213,10 +186,10 @@ static int Demux( demux_t *p_demux )
**/
static
int
DemuxGenre
(
demux_t
*
p_demux
)
{
#if 0
demux_sys_t
*
p_sys
=
p_demux
->
p_sys
;
char
*
psz_name
=
NULL
;
/* genre name */
char
*
psz_eltname
=
NULL
;
/* tag name */
input_item_t
*
p_input
;
#define FREE(a) if( a ) free( a ); a = NULL;
while
(
xml_ReaderRead
(
p_sys
->
p_xml_reader
)
==
1
)
...
...
@@ -237,7 +210,6 @@ static int DemuxGenre( demux_t *p_demux )
psz_eltname
=
xml_ReaderName
(
p_sys
->
p_xml_reader
);
if
(
!
psz_eltname
)
return
-
1
;
if
(
!
strcmp
(
psz_eltname
,
"genre"
)
)
{
// Read the attributes
...
...
@@ -260,8 +232,7 @@ static int DemuxGenre( demux_t *p_demux )
{
msg_Warn
(
p_demux
,
"unexpected attribure %s in element %s"
,
psz_attrname,
psz_eltname );
psz_attrname
,
psz_eltname
);
}
free
(
psz_attrname
);
free
(
psz_attrvalue
);
...
...
@@ -280,33 +251,25 @@ static int DemuxGenre( demux_t *p_demux )
if
(
!
psz_eltname
)
return
-
1
;
if
(
!
strcmp
(
psz_eltname
,
"genre"
)
)
{
playlist_item_t *p_item;
char
*
psz_mrl
=
malloc
(
strlen
(
SHOUTCAST_BASE_URL
)
+
strlen
(
"?genre="
)
+
strlen
(
psz_name
)
+
1
);
sprintf
(
psz_mrl
,
SHOUTCAST_BASE_URL
"?genre=%s"
,
psz_name
);
p_item = playlist_ItemNew( p_sys->p_playlist, psz_mrl,
psz_name );
p_input
=
input_ItemNewExt
(
p_sys
->
p_playlist
,
psz_mrl
,
psz_name
,
0
,
NULL
,
-
1
);
vlc_input_item_CopyOptions
(
p_sys
->
p_current
->
p_input
,
p_input
);
free
(
psz_mrl
);
playlist_NodeAddItem( p_sys->p_playlist, p_item,
p_sys->p_current->pp_parents[0]->i_view,
p_sys->p_current, PLAYLIST_APPEND,
PLAYLIST_END );
/* We need to declare the parents of the node as the
* * same of the parent's ones */
playlist_CopyParents( p_sys->p_current, p_item );
vlc_input_item_CopyOptions( &p_sys->p_current->input,
&p_item->input );
playlist_AddWhereverNeeded
(
p_sys
->
p_playlist
,
p_input
,
p_sys
->
p_current
,
p_sys
->
p_item_in_category
,
(
p_sys
->
i_parent_id
>
0
)
?
VLC_TRUE
:
VLC_FALSE
,
PLAYLIST_APPEND
);
FREE
(
psz_name
);
}
FREE
(
psz_eltname
);
break
;
}
}
#endif
return
0
;
}
...
...
@@ -337,8 +300,8 @@ static int DemuxGenre( demux_t *p_demux )
**/
static
int
DemuxStation
(
demux_t
*
p_demux
)
{
#if 0
demux_sys_t
*
p_sys
=
p_demux
->
p_sys
;
input_item_t
*
p_input
;
char
*
psz_base
=
NULL
;
/* */
...
...
@@ -395,8 +358,7 @@ static int DemuxStation( demux_t *p_demux )
{
msg_Warn
(
p_demux
,
"unexpected attribure %s in element %s"
,
psz_attrname,
psz_eltname );
psz_attrname
,
psz_eltname
);
}
free
(
psz_attrname
);
free
(
psz_attrvalue
);
...
...
@@ -429,9 +391,8 @@ static int DemuxStation( demux_t *p_demux )
else
{
msg_Warn
(
p_demux
,
"unexpected attribure %s in element %s",
psz_attrname,
psz_eltname );
"unexpected attribute %s in element %s"
,
psz_attrname
,
psz_eltname
);
}
free
(
psz_attrname
);
free
(
psz_attrvalue
);
...
...
@@ -471,78 +432,31 @@ static int DemuxStation( demux_t *p_demux )
sprintf
(
psz_mrl
,
SHOUTCAST_TUNEIN_BASE_URL
"%s?id=%s"
,
psz_base
,
psz_id
);
}
p_i
tem = playlist_ItemNew
( p_sys->p_playlist, psz_mrl,
psz_name
);
p_i
nput
=
input_ItemNewExt
(
p_sys
->
p_playlist
,
psz_mrl
,
psz_name
,
0
,
NULL
,
-
1
);
free
(
psz_mrl
);
if( psz_mt )
{
vlc_input_item_AddInfo( &p_item->input,
_( "Shoutcast" ),
_( "Mime type" ),
"%s",
psz_mt );
}
if( psz_br )
{
vlc_input_item_AddInfo( &p_item->input,
_( "Shoutcast" ),
_( "Bitrate" ),
"%s",
psz_br );
}
vlc_input_item_CopyOptions
(
p_sys
->
p_current
->
p_input
,
p_input
);
#define SADD_INFO( type, field ) if( field ) { vlc_input_item_AddInfo( \
p_input, _("Shoutcast"), _(type), "%s", field ) ; }
SADD_INFO
(
"Mime type"
,
psz_mt
);
SADD_INFO
(
"Bitrate"
,
psz_br
);
SADD_INFO
(
"Listeners"
,
psz_lc
);
SADD_INFO
(
"Load"
,
psz_load
);
p_input
->
p_meta
=
vlc_meta_New
();
if
(
psz_genre
)
{
vlc_input_item_AddInfo( &p_item->input,
_(VLC_META_INFO_CAT),
_(VLC_META_GENRE),
"%s",
psz_genre );
}
vlc_meta_SetGenre
(
p_input
->
p_meta
,
psz_genre
);
if
(
psz_ct
)
{
vlc_input_item_AddInfo( &p_item->input,
_(VLC_META_INFO_CAT),
_(VLC_META_NOW_PLAYING),
"%s",
psz_ct );
}
if( psz_lc )
{
vlc_input_item_AddInfo( &p_item->input,
_( "Shoutcast" ),
_( "Listeners" ),
"%s",
psz_lc );
}
vlc_meta_SetNowPlaying
(
p_input
->
p_meta
,
psz_ct
);
if
(
psz_rt
)
{
vlc_input_item_AddInfo( &p_item->input,
_(VLC_META_INFO_CAT),
_(VLC_META_RATING),
"%s",
psz_rt );
}
if( psz_load )
{
vlc_input_item_AddInfo( &p_item->input,
_( "Shoutcast" ),
_( "Load" ),
"%s",
psz_load );
}
playlist_NodeAddItem( p_sys->p_playlist, p_item,
p_sys->p_current->pp_parents[0]->i_view,
p_sys->p_current, PLAYLIST_APPEND,
PLAYLIST_END );
/* We need to declare the parents of the node as the
* * same of the parent's ones */
playlist_CopyParents( p_sys->p_current, p_item );
vlc_meta_SetRating
(
p_input
->
p_meta
,
psz_rt
);
vlc_input_item_CopyOptions( &p_sys->p_current->input,
&p_item->input );
playlist_AddWhereverNeeded
(
p_sys
->
p_playlist
,
p_input
,
p_sys
->
p_current
,
p_sys
->
p_item_in_category
,
(
p_sys
->
i_parent_id
>
0
)
?
VLC_TRUE
:
VLC_FALSE
,
PLAYLIST_APPEND
);
FREE
(
psz_name
);
FREE
(
psz_mt
)
...
...
@@ -557,7 +471,6 @@ static int DemuxStation( demux_t *p_demux )
break
;
}
}
#endif
return
0
;
}
#undef FREE
...
...
modules/gui/wxwidgets/dialogs.cpp
View file @
02a0a429
...
...
@@ -570,6 +570,8 @@ void DialogsProvider::OnInteraction( wxCommandEvent& event )
interaction_dialog_t
*
p_dialog
;
InteractionDialog
*
p_wxdialog
;
return
;
if
(
p_arg
==
NULL
)
{
msg_Dbg
(
p_intf
,
"OnInteraction() called with NULL arg"
);
...
...
src/playlist/item.c
View file @
02a0a429
...
...
@@ -382,7 +382,8 @@ playlist_item_t *playlist_ItemToNode( playlist_t *p_playlist,
* - If we find it
* - change it to node
* - we'll return it at the end
* - Delete the input from ONELEVEL
* - If we are a direct child of onelevel root, change to node, else
* delete the input from ONELEVEL
* - If we don't find it, just change to node (we are probably in VLM)
* and return NULL
*
...
...
@@ -397,9 +398,19 @@ playlist_item_t *playlist_ItemToNode( playlist_t *p_playlist,
if
(
p_item_in_category
)
{
playlist_item_t
*
p_item_in_one
=
playlist_ItemFindFromInputAndRoot
(
p_playlist
,
p_item
->
p_input
->
i_id
,
p_playlist
->
p_root_onelevel
);
ChangeToNode
(
p_playlist
,
p_item_in_category
);
playlist_DeleteFromInput
(
p_playlist
,
p_item
->
p_input
->
i_id
,
p_playlist
->
p_root_onelevel
,
VLC_FALSE
);
if
(
p_item_in_one
->
p_parent
==
p_playlist
->
p_root_onelevel
)
{
ChangeToNode
(
p_playlist
,
p_item_in_one
);
}
else
{
playlist_DeleteFromInput
(
p_playlist
,
p_item
->
p_input
->
i_id
,
p_playlist
->
p_root_onelevel
,
VLC_FALSE
);
}
var_SetInteger
(
p_playlist
,
"item-change"
,
p_item
->
p_input
->
i_id
);
return
p_item_in_category
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment