instead of a (vlc_list_t); this modification was needed because BCB
doesn't like at all when a function (compiled with mingw32) returns
a struct...
* ALL: modified the files to take this change into account
* modules/gui/win32/menu.cpp: enabled the "Add interface" command
* ./include/main.h: removed p_vlc->i_status because it was not sufficient
to represent all the possible states of p_vlc; each part should be tested
separately upon destruction.
* ./src/misc/objects.c: fixed a signed/unsigned bug that prevented creation
of VLC_OBJECT_GENERIC objects.
* ./src/misc/variables.c: added the VLC_VAR_COMMAND type which is simply a
variable that stores a function pointer, and calls it when var_Get is
called for it. The function argument is taken in val.psz_string.
* ./src/misc/objects.c: vlc_dumpstructure and vlc_liststructure are no longer
exported to the rest of the program; instead, they're VLC_VAR_COMMAND vars
("tree" and "list").
* ./modules/control/rc/rc.c: moved a few commands to VLC_VAR_COMMAND vars.
* ./src/misc/objects.c: structure_lock is now local.
* ./src/misc/threads.c: implemented named mutexes which provide a handy
way to protect data across plugins which might be sharing the same
resources. Thread-unsafe libraries come to mind, but we can imagine
using a named mutex for configuration files, or special devices.
* ./include/main.h: removed global_lock because of vlc_mutex_need, removed
p_global_data because it was never used, removed structure_lock because
it did not belong here.
gtk_main() in its own thread, and does nothing on subsequent calls. This
ensures that gtk_main is only running once.
* ./modules/gui/familiar/*, modules/gui/gtk/*: the familiar, gtk and gnome
modules are now fully reentrant thanks to their use of the gtk_main module.
* ./src/libvlc.c: implemented vlc_set(), a wrapper for config_Put* available
to external programs.
* ./src/libvlc.c: removed vlc_stop() and vlc_end(), everything is now done
by vlc_destroy().
* ./modules/control/rc/rc.c: implemented a few new functions. For instance,
run "vlc -I rc" and then type "intf gtk" or "intf gnome". You can even
launch several of them. "segfault" works, too.
vlc_object_find() but returns a list of _all_ the matching objects. Only
works with FIND_ANYWHERE at the moment.
* ./modules/gui/gtk/preferences.c, ./modules/gui/kde/preferences.cpp,
./modules/gui/win32/preferences.cpp: the module lists in the preferences
menus work again.
* ./src/misc/objects.c: added a missing sizeof that caused crashes because
the reindexing of the global object array was incomplete.
* ./include/modules_inner.h: propagated the module long description to its
submodules.
waveout, directx, qnx, beos, win32, macosx, and the AltiVec modules.
* ALL: removed mention of AC3 in favour of A52.
* ./configure.in, ./Makefile*: modules can now be built deeper than 1
directory. As a consequence, the build is even slower (but I'm fixing
this) and make clean doesn't work anymore.