Add a new type of VLC Lua module: Interfaces.
Two things led me to add this new type of Lua modules: * Most interfaces duplicate code from one another (rc and telnet both deal with sockets, rc and hotkeys duplicate VLC interfacing code) * It's easier to code in Lua than in C (for high level stuff) (* Users can code their own module easily, all they need is a text editor.) Most of the changes in modules/misc/ are Lua wrappers for different C APIs in VLC. I'd say that 90% of those wrappers won't change, the other 10% might need small changes (mostly to simplify the C code). The VLC Lua "interface" module will look for lua scripts in the *share*/luaintf/ directory. Files in *share*/luaintf/modules/ are lua modules which can be used by multiple VLC Lua modules (using require "modulename"). This commit includes 4 Lua interface modules: * dummy.lua: the default module. Prints error messages and quits. * rc.lua: equivalent to the legacy rc.c module. Also includes a bunch of new features (+ multiple socket connections at a time work!). See file for more details. * telnet.lua: equivalent to the legacy telnet.c module. See file for more details. * hotkeys.lua: a rewrite of the hotkey handling module. This module is still experimental. I'll need to change VLC core hotkeys stuff to make it work like I want (ie: 1 hotkey triggers 1 action instead of the current 1 action can have 1 hotkey). This version executes 3 dummy actions when keys 'q', 'w' or 'x' are pressed. What's left to do: * Port the http interface plugin to this framework (at least for the macros/rpn part ... using <?vlc some lua code ?> à la PHP would be way easier than what we currently have). * Finish work on the hotkeys module. * Code a real telnet/rc module with autocompletion and all the cool features usually found in a telnet/terminal interface. * Trash the legacy C modules. Stuff to test (which I can't test myself): * Win32 and Mac OS X specific changes to Makefile.am * Console interface under Win32. I expect it not to work. Other stuff included in this changeset are: * Code cleanup (I'm sure that it's still possible to simplify some of the old lua bindings code). * That's pretty much it in fact :/
Showing
- Makefile.am 16 additions, 0 deletionsMakefile.am
- modules/misc/lua/Modules.am 1 addition, 1 deletionmodules/misc/lua/Modules.am
- modules/misc/lua/callbacks.c 277 additions, 0 deletionsmodules/misc/lua/callbacks.c
- modules/misc/lua/configuration.c 106 additions, 0 deletionsmodules/misc/lua/configuration.c
- modules/misc/lua/intf.c 897 additions, 0 deletionsmodules/misc/lua/intf.c
- modules/misc/lua/meta.c 78 additions, 64 deletionsmodules/misc/lua/meta.c
- modules/misc/lua/net.c 207 additions, 0 deletionsmodules/misc/lua/net.c
- modules/misc/lua/objects.c 218 additions, 0 deletionsmodules/misc/lua/objects.c
- modules/misc/lua/playlist.c 294 additions, 0 deletionsmodules/misc/lua/playlist.c
- modules/misc/lua/variables.c 212 additions, 0 deletionsmodules/misc/lua/variables.c
- modules/misc/lua/vlc.c 712 additions, 0 deletionsmodules/misc/lua/vlc.c
- modules/misc/lua/vlc.h 202 additions, 0 deletionsmodules/misc/lua/vlc.h
- modules/misc/lua/vlm.c 95 additions, 0 deletionsmodules/misc/lua/vlm.c
- share/Makefile.am 7 additions, 1 deletionshare/Makefile.am
- share/luaintf/dummy.lua 12 additions, 0 deletionsshare/luaintf/dummy.lua
- share/luaintf/hotkeys.lua 119 additions, 0 deletionsshare/luaintf/hotkeys.lua
- share/luaintf/modules/common.lua 72 additions, 0 deletionsshare/luaintf/modules/common.lua
- share/luaintf/modules/host.lua 350 additions, 0 deletionsshare/luaintf/modules/host.lua
- share/luaintf/rc.lua 521 additions, 0 deletionsshare/luaintf/rc.lua
- share/luaintf/telnet.lua 204 additions, 0 deletionsshare/luaintf/telnet.lua
Loading
Please register or sign in to comment