Exemple #1
0
int ReadMeta( demux_meta_t *p_this )
{
    if( lua_Disabled( p_this ) )
        return VLC_EGENERIC;

    return vlclua_scripts_batch_execute( VLC_OBJECT(p_this), "meta"DIR_SEP"reader",
                                         (void*) &read_meta, NULL );
}
Exemple #2
0
/*****************************************************************************
 * Module entry point for art.
 *****************************************************************************/
int FindArt( meta_fetcher_t *p_finder )
{
    if( lua_Disabled( p_finder ) )
        return VLC_EGENERIC;

    luabatch_context_t context = { p_finder->p_item, p_finder->e_scope, validate_scope };

    return vlclua_scripts_batch_execute( VLC_OBJECT(p_finder), "meta"DIR_SEP"art",
                                         &fetch_art, (void*)&context );
}
Exemple #3
0
Fichier : meta.c Projet : Kafay/vlc
/*****************************************************************************
 * Module entry point for art.
 *****************************************************************************/
int FindArt( vlc_object_t *p_this )
{
    playlist_t *p_playlist = pl_Hold( p_this );
    if( !p_playlist )
        return VLC_EGENERIC;

    input_item_t *p_item = (input_item_t *)p_this->p_private;
    lua_State *L = vlclua_meta_init( p_this, p_item );
    int i_ret = vlclua_scripts_batch_execute( p_this, "meta", &fetch_art, L, p_item );
    lua_close( L );

    pl_Release( p_this );
    return i_ret;
}
Exemple #4
0
/*****************************************************************************
 * Import_LuaPlaylist: main import function
 *****************************************************************************/
int Import_LuaPlaylist( vlc_object_t *p_this )
{
    demux_t *p_demux = (demux_t *)p_this;
    lua_State *L;
    int ret;

    p_demux->p_sys = (demux_sys_t*)malloc( sizeof( demux_sys_t ) );
    if( !p_demux->p_sys )
    {
        return VLC_ENOMEM;
    }

    p_demux->p_sys->psz_filename = NULL;

    p_demux->pf_control = Control;
    p_demux->pf_demux = Demux;

    /* Initialise Lua state structure */
    L = luaL_newstate();
    if( !L )
    {
        msg_Err( p_demux, "Could not create new Lua State" );
        free( p_demux->p_sys );
        return VLC_EGENERIC;
    }
    p_demux->p_sys->L = L;

    /* Load Lua libraries */
    luaL_openlibs( L ); /* FIXME: Don't open all the libs? */

    luaL_register( L, "vlc", p_reg );
    luaopen_msg( L );
    luaopen_strings( L );
    lua_pushlightuserdata( L, p_demux );
    lua_setfield( L, -2, "private" );
    lua_pushstring( L, p_demux->psz_path );
    lua_setfield( L, -2, "path" );
    lua_pushstring( L, p_demux->psz_access );
    lua_setfield( L, -2, "access" );

    lua_pop( L, 1 );

    ret = vlclua_scripts_batch_execute( p_this, "playlist",
                                        &probe_luascript, L, NULL );
    if( ret )
        Close_LuaPlaylist( p_this );
    return ret;
}
Exemple #5
0
/*****************************************************************************
 * Import_LuaPlaylist: main import function
 *****************************************************************************/
int Import_LuaPlaylist( vlc_object_t *p_this )
{
    demux_t *p_demux = (demux_t *)p_this;
    int ret;

    p_demux->p_sys = calloc( 1, sizeof( demux_sys_t ) );
    if( !p_demux->p_sys )
        return VLC_ENOMEM;

    p_demux->pf_control = Control;
    p_demux->pf_demux = Demux;

    ret = vlclua_scripts_batch_execute( p_this, "playlist",
                                        &probe_luascript, NULL );
    if( ret )
        Close_LuaPlaylist( p_this );
    return ret;
}
Exemple #6
0
/*****************************************************************************
 * Import_LuaPlaylist: main import function
 *****************************************************************************/
int Import_LuaPlaylist(vlc_object_t *obj)
{
    if( lua_Disabled( obj ) )
        return VLC_EGENERIC;

    stream_t *s = (stream_t *)obj;
    if( s->s->pf_readdir != NULL )
        return VLC_EGENERIC;

    struct vlclua_playlist *sys = malloc(sizeof (*sys));
    if (unlikely(sys == NULL))
        return VLC_ENOMEM;

    s->p_sys = sys;
    sys->access = NULL;
    sys->path = NULL;

    if (s->psz_url != NULL)
    {   /* Backward compatibility hack: Lua scripts expect the URI scheme and
         * the rest of the URI separately. */
        const char *p = strstr(s->psz_url, "://");
        if (p != NULL)
        {
            sys->access = strndup(s->psz_url, p - s->psz_url);
            sys->path = p + 3;
        }
    }

    int ret = vlclua_scripts_batch_execute(VLC_OBJECT(s), "playlist",
                                           probe_luascript, NULL);
    if (ret != VLC_SUCCESS)
    {
        free(sys->access);
        free(sys);
        return ret;
    }

    s->pf_readdir = ReadDir;
    s->pf_control = access_vaDirectoryControlHelper;
    return VLC_SUCCESS;
}