[vlc-devel] [PATCH 4/6] playlist: add items to playlist
Rémi Denis-Courmont
remi at remlab.net
Tue Jul 25 17:16:07 CEST 2017
Le tiistaina 25. heinäkuuta 2017, 18.00.41 EEST Victorien Le Couviour--Tuffet
a écrit :
> ---
> src/playlist/control.c | 34 ++++++++++++++++++++++++++++++++++
> 1 file changed, 34 insertions(+)
>
> diff --git a/src/playlist/control.c b/src/playlist/control.c
> index 2da525a2d6..4ab94cc75e 100644
> --- a/src/playlist/control.c
> +++ b/src/playlist/control.c
> @@ -79,6 +79,40 @@ static void playlist_vaControl( playlist_t *p_playlist,
> int i_query, p_node = get_current_status_node( p_playlist );
> assert( p_node );
> }
> +
> + if ( p_item && p_node != p_playlist->p_playing )
> + {
> + if ( p_item->p_input->i_type == ITEM_TYPE_FILE )
> + {
> + playlist_item_t *p_parent = p_item->p_parent;
> + int i = 0;
> +
> + while (i < p_parent->i_children &&
> + p_parent->pp_children[i] != p_item)
> + ++i;
> + assert(i < p_parent->i_children);
> +
> + int i_pos = PLAYLIST_END;
> + for (int j = p_parent->i_children - 1; j >= i; --j)
> + i_pos = playlist_NodeAddCopy( p_playlist,
> + p_parent->pp_children[j],
> + p_playlist->p_playing, +
> i_pos ) - 1;
> +
> + p_item = p_playlist->p_playing->pp_children[i_pos];
> + p_node = p_playlist->p_playing;
> + }
> + else if ( p_item->p_input->i_type != ITEM_TYPE_DIRECTORY ||
> + !p_item->p_input->b_net )
> + {
> + int i_pos = p_playlist->p_playing->i_children;
> + playlist_NodeAddCopy(p_playlist, p_item,
> + p_playlist->p_playing, PLAYLIST_END);
> + p_item = p_playlist->p_playing->pp_children[i_pos];
> + p_node = p_playlist->p_playing;
> + }
> + }
> +
> pl_priv(p_playlist)->request.i_skip = 0;
> pl_priv(p_playlist)->request.b_request = true;
> pl_priv(p_playlist)->request.p_node = p_node;
That does not seem to make any sense, and the commit message is utterly
helpless.
--
雷米‧德尼-库尔蒙
https://www.remlab.net/
More information about the vlc-devel
mailing list