static int vlclua_object_find_name( lua_State *L ) { const char *psz_name = luaL_checkstring( L, 2 ); const char *psz_mode = luaL_checkstring( L, 3 ); vlc_object_t *p_this; int i_mode = vlc_object_search_mode_from_string( psz_mode ); vlc_object_t *p_result; if( !i_mode ) return luaL_error( L, "\"%s\" is not a valid search mode.", psz_mode ); if( lua_type( L, 1 ) == LUA_TNIL ) p_this = vlclua_get_this( L ); else { vlc_object_t **p_obj = luaL_checkudata( L, 1, "vlc_object" ); p_this = *p_obj; } p_result = vlc_object_find_name( p_this, psz_name, i_mode ); if( !p_result ) lua_pushnil( L ); else vlclua_push_vlc_object( L, p_result, vlclua_gc_release ); return 1; }
static int vlclua_get_libvlc( lua_State *L ) { libvlc_int_t *p_libvlc = vlclua_get_this( L )->obj.libvlc; vlc_object_hold( p_libvlc ); vlclua_push_vlc_object( L, p_libvlc ); return 1; }
static int vlclua_get_input( lua_State *L ) { input_thread_t *p_input = vlclua_get_input_internal( L ); if( p_input ) { vlclua_push_vlc_object( L, p_input, vlclua_gc_release ); } else lua_pushnil( L ); return 1; }
static int vlclua_get_playlist( lua_State *L ) { playlist_t *p_playlist = vlclua_get_playlist_internal( L ); if( p_playlist ) { vlclua_push_vlc_object( L, p_playlist, vlclua_gc_release ); vlc_object_hold( p_playlist ); } else lua_pushnil( L ); return 1; }
static int vlclua_get_input( lua_State *L ) { input_thread_t *p_input = vlclua_get_input_internal( L ); if( p_input ) { /* NOTE: p_input is already held by vlclua_get_input_internal() */ vlclua_push_vlc_object( L, p_input ); } else lua_pushnil( L ); return 1; }
static int vlclua_get_aout( lua_State *L ) { playlist_t *p_playlist = vlclua_get_playlist_internal( L ); if( p_playlist != NULL ) { audio_output_t *p_aout = playlist_GetAout( p_playlist ); if( p_aout != NULL ) { vlclua_push_vlc_object( L, (vlc_object_t *)p_aout ); return 1; } } lua_pushnil( L ); return 1; }
static int vlclua_get_vout( lua_State *L ) { input_thread_t *p_input = vlclua_get_input_internal( L ); if( p_input ) { vout_thread_t *p_vout = input_GetVout( p_input ); vlc_object_release( p_input ); if(p_vout) { vlclua_push_vlc_object( L, (vlc_object_t *) p_vout ); return 1; } } lua_pushnil( L ); return 1; }
static int vlclua_get_libvlc( lua_State *L ) { vlclua_push_vlc_object( L, vlclua_get_this( L )->p_libvlc, NULL ); return 1; }