]> git.sesse.net Git - vlc/commitdiff
Add osd menu api to lua (DVD menus).
authorAntoine Cellerier <antoine@macbook.(none)>
Mon, 14 Dec 2009 21:07:15 +0000 (22:07 +0100)
committerAntoine Cellerier <antoine@macbook.(none)>
Mon, 14 Dec 2009 22:29:51 +0000 (23:29 +0100)
modules/misc/lua/libs/osd.c
share/lua/README.txt

index c723149d77f143e4026cd01223d974d1d7f26811..e0ee7db8ae096f21db2bdcb49ec2ea42a62b03ed 100644 (file)
@@ -154,6 +154,55 @@ static int vlclua_spu_channel_clear( lua_State *L )
     return 0;
 }
 
+static int vlclua_menu_show( lua_State *L )
+{
+    vlc_object_t *p_this = vlclua_get_this( L );
+    osd_MenuShow( p_this );
+    return 0;
+}
+
+static int vlclua_menu_hide( lua_State *L )
+{
+    vlc_object_t *p_this = vlclua_get_this( L );
+    osd_MenuHide( p_this );
+    return 0;
+}
+
+static int vlclua_menu_prev( lua_State *L )
+{
+    vlc_object_t *p_this = vlclua_get_this( L );
+    osd_MenuPrev( p_this );
+    return 0;
+}
+
+static int vlclua_menu_next( lua_State *L )
+{
+    vlc_object_t *p_this = vlclua_get_this( L );
+    osd_MenuNext( p_this );
+    return 0;
+}
+
+static int vlclua_menu_up( lua_State *L )
+{
+    vlc_object_t *p_this = vlclua_get_this( L );
+    osd_MenuUp( p_this );
+    return 0;
+}
+
+static int vlclua_menu_down( lua_State *L )
+{
+    vlc_object_t *p_this = vlclua_get_this( L );
+    osd_MenuDown( p_this );
+    return 0;
+}
+
+static int vlclua_menu_activate( lua_State *L )
+{
+    vlc_object_t *p_this = vlclua_get_this( L );
+    osd_MenuActivate( p_this );
+    return 0;
+}
+
 /*****************************************************************************
  *
  *****************************************************************************/
@@ -166,9 +215,23 @@ static const luaL_Reg vlclua_osd_reg[] = {
     { NULL, NULL }
 };
 
+static const luaL_Reg vlclua_menu_reg[] = {
+    { "show", vlclua_menu_show },
+    { "hide", vlclua_menu_hide },
+    { "prev", vlclua_menu_prev },
+    { "next", vlclua_menu_next },
+    { "up", vlclua_menu_up },
+    { "down", vlclua_menu_down },
+    { "activate", vlclua_menu_activate },
+    { NULL, NULL }
+};
+
 void luaopen_osd( lua_State *L )
 {
     lua_newtable( L );
     luaL_register( L, NULL, vlclua_osd_reg );
+    lua_newtable( L );
+    luaL_register( L, NULL, vlclua_menu_reg );
+    lua_setfield( L, -2, "menu" );
     lua_setfield( L, -2, "osd" );
 }
index 7d6f3fbb95316e1d5276511c4e429e515dc9279d..b0c0138bc06ad5f5bc623c46d6d13a443fd03c26 100644 (file)
@@ -175,6 +175,13 @@ osd.slider( position, type, [id] ): Display slider. Position is an integer
   from 0 to 100. Type can be "horizontal" or "vertical".
 osd.channel_register(): Register a new OSD channel. Returns the channel id.
 osd.channel_clear( id ): Clear OSD channel.
+osd.menu.show(): Show the OSD menu.
+osd.menu.hide(): Hide the OSD menu.
+osd.menu.prev(): Select previous/left item.
+osd.menu.next(): Select next/right item.
+osd.menu.up(): Move selection up.
+osd.menu.down(): Move selection down.
+osd.menu.activate(): Activate/validate current selection.
 
 Playlist
 --------