to allow using the spdif output by default if available.
* modules/misc/dummy/*: on win32 added a quiet mode that doesn't display
a dos command box.
* modules/control/rc/rc.c: on win32 enabled the echo mode and the
backspace key.
* modules/codec/mpeg_audio.c: fixed a sync bug.
indicate wether it is an "advanced" option or not. The goal with this is to
hide the user from all the strange options that very seldom needs to be
changed. added an extra argument to all the add_* macros to indicate wether
the item is advanced or not.
* src/libvlc.h: added an "show advanced options" config option default
disabled
* src/libvlc.c: the advanced options are not listed by vlc --help and
friends unless --advanced is used
* modules/gtk/preferences.c: the gtk/gnome preferences dialog don't show
advanced options unless advanced is set
all: set the advanced flag to VLC_FALSE or VLC_TRUE for all options, by
using some common sense. Please check and correct
note: All interfaces should still work like they used to, see the change in
modules/gtk/preferences.c to find out how to "hide" options.
second note: I think I've changed all the modules, but I could not test
everyone for compilation, expect some broken modules (the fix is to add ",
VLC_TRUE" as last argument to the add_* I forgot)
fullscreen and a nice debug message when you draw a clockwise square. Video
output modules needs to be modified for this to work, but it should be minor
in modules supporting dvd navigation.
btw: it should be easy to add new gestures, ideas appreciated
audio output. Consequently, the first argument can be any vlc_object_t.
* modules/gui/macosx/*: greatly simplified volume functions ; you can now
call aout_Volume* even when there is no audio output, and the volume
will be saved for later use.
"interface" variable to "dvdplay" (Closes: #178, #210, and probably a
bunch of others).
* ./src/interface/interface.c: added a safety check to circumvent the bug,
allowing a smooth upgrade.
socket descriptors so we don't use it anymore on this platform. Right now we only do a blocking call to
read() although it should be possible to have a fully functionnal interface by using the PeekConsoleInput()
call (someone willing to investigate this ?).
* modules/access/dvdplay/intf.c: allow keyboard naviagation in dvd-menus,
by reading the key-pressed variable
* modules/control/lirc/lirc.c: allow navigation with remote control by
faking keypresses (closes#38). I think the remotes for dvdplayers usually
have buttons for "root menu" and "title menu". Whould this be easily
implemented in vlc?
vlc_object_get() now increments the refcount of the object so you'll need to release
the object at some point.
* src/misc/variables.c, ALL: var_Change() with VLC_VAR_GETLIST now returns a vlc_value_t
which points to a vlc_list_t.
warnings than real ones.
* audio output: New intf-change variable to know when audio-channels
and audio-device have changed.
* video output: New intf-change variable and vout_VarCallback, to know
when video-device has changed (OS X port).
* modules/gui/macosx/*: Menus for audio channels, implemented volume
management, added a menu for screen selection.
- got rid of the VLC_VAR_COMMAND variable type and introduced the VLC_VAR_ISCOMMAND flag
instead. This simplifies things and avoid the strange command variables behaviour. Command
variables will now trigger their callback on var_Set() like any other variables (look in
modules/control/rc/rc.c for an example).
- Renamed the VLC_VAR_ISLIST flag into VLC_VAR_HASCHOICE.
- Added a new VLC_VAR_VOID variable type. This can be useful in conjunction with
VLC_VAR_ISCOMMAND for instance.
and is replaced by two members : i_physical_channels and i_original_channels.
i_physical_channels describes the channels which are effectively present
in the stream (at the current point of the aout pipeline), whereas
i_original_channels represents the channels we used to constitute the
stream. For instance a mono stream (FRONT_CENTER) may emanate from a
FRONT_LEFT channel of a STEREO stream.
Additionally, this contains hooks to dynamically select the audio device
and the channels configuration. In order to do that, all aout plugins,
and all interface plug-ins need to be adapted. Currently only SDL
(partially OSS) and the rc interface have been adapted, please use them
as a guide. Other aout plug-ins have been temporarily disabled.
IMPORTANT : if you need a working sound output, DO NOT UPDATE YOUR TREE
for several days until we fix that.
* modules/misc/network/ipv4.c: Fixed a long-standing segfault when saving
preferences and asking for multicast.
* ./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.
* ./include/vlc/vlc.h: changed the naming conventions for libvlc. Now
exported functions start with VLC_ instead of vlc_ to avoid conflicts.
* ./include/vlc/vlc.h: removed the vlc_object_t, vlc_list_t, vlc_error_t
and vlc_t types; they are now internal types only.
* ./include/vlc/vlc.h: merged the reentrant and non-reentrant libvlc
calls. In non-reentrant mode, we just use 0 as the first argument. In
reentrant mode, we use an object's ID. (see below)
Internal changes:
* ./src/libvlc.c, ./src/misc/objects.c: instead of manipulating vlc_object_t
pointers, we manipulate their i_object_id. When needed, an object is
retrieved using vlc_object_get (I hope the lookup isn't too expensive,
that's why I designed the pp_objects layout to allow log2(n) seeks).
* ./src/misc/objects.c: activated the per-object variable storage. Unused
yet, unless you want to try "getfoo" and "setfoo blablah" in vlc -I rc.
* ./include/vlc_objects.h: moved the vlc_object_t and vlc_list_t definitions
here.
Misc:
* ./src/vlc.c, ./mozilla/vlcshell.cpp: removed inclusion of config.h in
code portions not part of libvlc; it was just required for the
COPYRIGHT_MESSAGE string which is now available from VLC_Version().
* configure.ac.in: use -mms-bitfields instead of -fnative-struct for
mingw32 gcc-3.x.
* include/interface.h, modules/misc/dummy/interface.c, modules/misc/logger/logger.c,
modules/control/rc/rc.c: Display message on Win32 explaining how to get
back to the GUI mode.
* src/misc/threads.c, include/vlc_threads_funcs.h: ignore the
win9x-cv-method config option on WinNT when fast-mutex is not enabled.
p_libvlc, and each p_vlc is a child of p_libvlc. Reasons for this are:
o the module bank and the message bank only need to be initialized once,
which gives faster loads when multiple instances of libvlc are used,
o we allow the possibility of different p_vlc sharing objects, for
instance the audio output,
o the CPU detection is only done once.
This patch is not polished yet, but I cannot do any intensive tests for
the moment because of a bug somewhere that leaves audio output objects
lying here and there which needs to be investigated first. The current
major issue is that the module bank is no longer freed.
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.
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.