Commit c3d342a2 authored by Jakob Leben's avatar Jakob Leben

playlist: allow non-recursive search

parent 38e127f6
......@@ -353,7 +353,7 @@ VLC_EXPORT( playlist_item_t *, playlist_NodeAddInput, ( playlist_t *, input_item
VLC_EXPORT( playlist_item_t *, playlist_ItemGetById, (playlist_t *, int ) );
VLC_EXPORT( playlist_item_t *, playlist_ItemGetByInput, (playlist_t *,input_item_t * ) );
VLC_EXPORT( int, playlist_LiveSearchUpdate, (playlist_t *, playlist_item_t *, const char *) );
VLC_EXPORT( int, playlist_LiveSearchUpdate, (playlist_t *, playlist_item_t *, const char *, bool ) );
/********************************************************
* Tree management
......
......@@ -265,7 +265,7 @@ static int vlclua_playlist_search( lua_State *L )
playlist_t *p_playlist = vlclua_get_playlist_internal( L );
const char *psz_string = luaL_optstring( L, 1, "" );
PL_LOCK;
playlist_LiveSearchUpdate( p_playlist, p_playlist->p_root, psz_string );
playlist_LiveSearchUpdate( p_playlist, p_playlist->p_root, psz_string, true );
PL_UNLOCK;
push_playlist_item( L, p_playlist->p_root );
return 1;
......
......@@ -107,7 +107,7 @@ static void playlist_LiveSearchClean( playlist_item_t *p_root )
* @return true if an item match
*/
static bool playlist_LiveSearchUpdateInternal( playlist_item_t *p_root,
const char *psz_string )
const char *psz_string, bool b_recursive )
{
int i;
bool b_match = false;
......@@ -116,8 +116,8 @@ static bool playlist_LiveSearchUpdateInternal( playlist_item_t *p_root,
bool b_enable = false;
playlist_item_t *p_item = p_root->pp_children[i];
// Go recurssively if their is some children
if( p_item->i_children >= 0 &&
playlist_LiveSearchUpdateInternal( p_item, psz_string ) )
if( b_recursive && p_item->i_children >= 0 &&
playlist_LiveSearchUpdateInternal( p_item, psz_string, true ) )
{
b_enable = true;
}
......@@ -163,12 +163,12 @@ static bool playlist_LiveSearchUpdateInternal( playlist_item_t *p_root,
* @return VLC_SUCCESS
*/
int playlist_LiveSearchUpdate( playlist_t *p_playlist, playlist_item_t *p_root,
const char *psz_string )
const char *psz_string, bool b_recursive )
{
PL_ASSERT_LOCKED;
pl_priv(p_playlist)->b_reset_currently_playing = true;
if( *psz_string )
playlist_LiveSearchUpdateInternal( p_root, psz_string );
playlist_LiveSearchUpdateInternal( p_root, psz_string, b_recursive );
else
playlist_LiveSearchClean( p_root );
vlc_cond_signal( &pl_priv(p_playlist)->signal );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment