]> git.sesse.net Git - vlc/commitdiff
lua: Expose a "meta fetcher".
authorPierre d'Herbemont <pdherbemont@free.fr>
Wed, 13 Jan 2010 12:14:21 +0000 (13:14 +0100)
committerPierre d'Herbemont <pdherbemont@free.fr>
Fri, 15 Jan 2010 15:39:49 +0000 (16:39 +0100)
Attempt to run scripts in share/lua/meta/fetcher.

modules/misc/lua/meta.c
modules/misc/lua/vlc.c
modules/misc/lua/vlc.h

index fa389bd36736cc9ae3e5dba4a21edf3d7b5a02b1..22d4d262ebc961bded0a4828ab56da2601399b5b 100644 (file)
@@ -181,6 +181,19 @@ static int read_meta( vlc_object_t *p_this, const char * psz_filename,
     return 1;
 }
 
+
+/*****************************************************************************
+ * Called through lua_scripts_batch_execute to call 'fetch_meta' on the script
+ * pointed by psz_filename.
+ *****************************************************************************/
+static int fetch_meta( vlc_object_t *p_this, const char * psz_filename,
+                     lua_State * L, void * user_data )
+{
+    VLC_UNUSED(user_data);
+
+    return run(p_this, psz_filename, L, "fetch_meta");
+}
+
 /*****************************************************************************
  * Read meta.
  *****************************************************************************/
@@ -197,6 +210,24 @@ int ReadMeta( vlc_object_t *p_this )
     return i_ret;
 }
 
+
+/*****************************************************************************
+ * Read meta.
+ *****************************************************************************/
+
+int FetchMeta( vlc_object_t *p_this )
+{
+    demux_meta_t *p_demux_meta = (demux_meta_t *)p_this;
+    input_item_t *p_item = p_demux_meta->p_item;
+
+    lua_State *L = init( p_this, p_item );
+    int i_ret = vlclua_scripts_batch_execute( p_this, "meta/fetcher", &fetch_meta, L, NULL );
+    lua_close( L );
+
+    return i_ret;
+}
+
+
 /*****************************************************************************
  * Module entry point for art.
  *****************************************************************************/
index 3613e11354aab3e46a55e2f93810c732f4e209c6..6173b7c52be10bb568032bcd97c7a1a476ac71f8 100644 (file)
@@ -64,8 +64,14 @@ vlc_module_begin ()
         set_callbacks( FindArt, NULL )
 
     add_submodule ()
-        set_shortname( N_( "Lua Meta Reader" ) )
+        set_shortname( N_( "Lua Meta Fetcher" ) )
         set_description( N_("Fetch meta data using lua scripts") )
+        set_capability( "meta fetcher", 10 )
+        set_callbacks( FetchMeta, NULL )
+
+    add_submodule ()
+        set_shortname( N_( "Lua Meta Reader" ) )
+        set_description( N_("Read meta data using lua scripts") )
         set_capability( "meta reader", 10 )
         set_callbacks( ReadMeta, NULL )
 
@@ -465,7 +471,7 @@ int __vlclua_playlist_add_internal( vlc_object_t *p_this, lua_State *L,
                     else /* Play or Enqueue (preparse) */
                         /* FIXME: playlist_AddInput() can fail */
                         playlist_AddInput( p_playlist, p_input,
-                               PLAYLIST_APPEND | 
+                               PLAYLIST_APPEND |
                                ( b_play ? PLAYLIST_GO : PLAYLIST_PREPARSE ),
                                PLAYLIST_END, true, false );
                     i_count ++; /* increment counter */
index 11530b87f7effa6c9e6072fd62eb7a27b7327677..1e23233b4d08e1d103fcb5e27242e0a9d4c03425 100644 (file)
@@ -45,7 +45,7 @@
  * Module entry points
  *****************************************************************************/
 int ReadMeta( vlc_object_t * );
-
+int FetchMeta( vlc_object_t * );
 int FindArt( vlc_object_t * );
 
 int Import_LuaPlaylist( vlc_object_t * );