Commit 6daa137c authored by Tomas Krotil's avatar Tomas Krotil Committed by Jean-Baptiste Kempf

lua playlist move and delete functions run-time

Added playlist move function for lua and modified delete for detecting if item is legal
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 54f62e33
...@@ -141,7 +141,35 @@ static int vlclua_playlist_delete( lua_State * L ) ...@@ -141,7 +141,35 @@ static int vlclua_playlist_delete( lua_State * L )
int i_id = luaL_checkint( L, 1 ); int i_id = luaL_checkint( L, 1 );
playlist_t *p_playlist = vlclua_get_playlist_internal( L ); playlist_t *p_playlist = vlclua_get_playlist_internal( L );
PL_LOCK; PL_LOCK;
int i_ret = playlist_DeleteFromInput(p_playlist, playlist_ItemGetById( p_playlist, i_id ) -> p_input, true ); playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_id );
if( !p_item )
{
PL_UNLOCK;
return vlclua_push_ret( L, -1 );
}
int i_ret = playlist_DeleteFromInput( p_playlist, p_item -> p_input, true );
PL_UNLOCK;
return vlclua_push_ret( L, i_ret );
}
static int vlclua_playlist_move( lua_State * L )
{
int i_item = luaL_checkint( L, 1 );
int i_target = luaL_checkint( L, 2 );
playlist_t *p_playlist = vlclua_get_playlist_internal( L );
PL_LOCK;
playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_item );
playlist_item_t *p_target = playlist_ItemGetById( p_playlist, i_target );
if( !p_item || !p_target )
{
PL_UNLOCK;
return vlclua_push_ret( L, -1 );
}
int i_ret;
if( p_target->i_children != -1 )
i_ret = playlist_TreeMove( p_playlist, p_item, p_target, 0 );
else
i_ret = playlist_TreeMove( p_playlist, p_item, p_target->p_parent, p_target->i_id - p_target->p_parent->pp_children[0]->i_id + 1 );
PL_UNLOCK; PL_UNLOCK;
return vlclua_push_ret( L, i_ret ); return vlclua_push_ret( L, i_ret );
} }
...@@ -389,6 +417,7 @@ static const luaL_Reg vlclua_playlist_reg[] = { ...@@ -389,6 +417,7 @@ static const luaL_Reg vlclua_playlist_reg[] = {
{ "sort", vlclua_playlist_sort }, { "sort", vlclua_playlist_sort },
{ "status", vlclua_playlist_status }, { "status", vlclua_playlist_status },
{ "delete", vlclua_playlist_delete }, { "delete", vlclua_playlist_delete },
{ "move", vlclua_playlist_move },
{ NULL, NULL } { NULL, NULL }
}; };
......
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