Also sizeof(byte_t)^Wsizeof(uint8_t) can only ever be 1, if it is
defined. It's not defined, if char is more than 8 bits, and uint8_t is
not provided, but then VLC will not compile in the first place.
Remove VLC_META_ENGINE_*
Don't use VLC_META_INFO_CAT
Avoid using input_Item{Add,Get}Info
Remove disabled code in cdda
Remove "meta fetcher":
There was only 1 module (not) implementing it (musicbrainz)
Reduces complexity in playlist core
Use a more consistent naming
Factorize QT4 sorting and column display code
Remove unused members
Missing some cases that I could not test.
Also ffmpeg/chroma.c is locked, so I can but leave it broken.
Fix is for the remaining modules is obvious and the issue is easy to detect.
You can not change a playlist_item_t to be a node, when you previously registered events on it, using input_item_t sub items adding event, because the pointer will be destroyed.
If you want to use nodes anyway, you have to explicitely create them.
Note: we were lucky that xspf did work so far, because we were EXCLUSIVELY using invalid pointers, except for the 1st item being added to each playlist_item_t (it did happen before the conversion obviously).
* Add some proper assert() to the vlc_gc_* function to spot errors.
* Correctly initialize the refcount to 1. (This will prevent freed pointer usage). (This may also introduce leaks in some module).
modules/*.c:
* Prevent some module to leak input_item_t.
* share/luaintf/http.lua: Equivalent of the legacy modules/control/http/
module. (The new module takes 272 lines of Lua, instead of 5475 lines for
the old one.) Functionality is basically the same except for CGI support
which is missing.
* share/http-lua/: The HTML files using the new <?vlc [lua code] ?> syntax.
* modules/misc/lua/: Add Lua bindings for a few VLC function, the most
important being the HTTPd high level functions, ACLs, stat and opendir.
The Lua code still needs to be cleaned up a bit.
* Add vlc.license()
* vlc.vlm.execute_command() now returns the VLC error code and the corresponding error message as 2nd and 3rd return values.
* share/luaintf: add help and module description related stuff to the telnet and rc modules.
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 :/