From c3d342a2d5bd2d2534f8a34be9de7a1557b60ea9 Mon Sep 17 00:00:00 2001 From: Jakob Leben Date: Fri, 12 Feb 2010 11:42:12 +0100 Subject: [PATCH] playlist: allow non-recursive search --- include/vlc_playlist.h | 2 +- modules/misc/lua/libs/playlist.c | 2 +- src/playlist/search.c | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/vlc_playlist.h b/include/vlc_playlist.h index 061e7611a6..181e5296ee 100644 --- a/include/vlc_playlist.h +++ b/include/vlc_playlist.h @@ -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 diff --git a/modules/misc/lua/libs/playlist.c b/modules/misc/lua/libs/playlist.c index b376ba5154..f7d9d107f4 100644 --- a/modules/misc/lua/libs/playlist.c +++ b/modules/misc/lua/libs/playlist.c @@ -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; diff --git a/src/playlist/search.c b/src/playlist/search.c index 8de86c67a3..773496e033 100644 --- a/src/playlist/search.c +++ b/src/playlist/search.c @@ -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 ); -- 2.39.5