Commit Graph

44 Commits

Author SHA1 Message Date
Gildas Bazin
c274a0002f * include/modules_inner.h, include/modules.h: added a shortname field to the module declaration section.
* modules/access/*: added a shortname to a few modules.
2004-05-16 19:17:56 +00:00
Gildas Bazin
c1c8211f51 * ALL: MSVC compilation fixes. 2004-01-09 12:23:47 +00:00
Derk-Jan Hartman
c81245cd05 * Fix the problem with OpenDVD crash. 2003-12-15 15:06:23 +00:00
Gildas Bazin
d3de64660f * src/playlist/*: when deleting the currently playing item, skip it instead of stopping the playlist.
* include/modules_inner.h, include/configuration.h: don't use a static array anymore during the initialization of the plugins, malloc it instead. This fixes regular overflow problems we have when we increase the number of options in the main module.
2003-12-13 17:16:11 +00:00
Gildas Bazin
e53ac062b4 * include/configuration.h: some small re-work of the config declaration macros.
String choices lists can now also have a list of text descriptions associated with them.
   Added integer choices lists.
* modules/gui/wxwindows/: modified config widgets to use the new config options.
* ALL: updated for the new config options.
2003-11-05 00:39:17 +00:00
Gildas Bazin
1c3e013ae4 * include/modules_inner.h: bigger p_config[] array because the main module is becoming quite big. 2003-10-30 21:44:48 +00:00
Gildas Bazin
d875f9d502 * modules/gui/wxwindows/preferences.cpp: fixed the preferences to also show the config options of sub-modules.
* include/modules_inner.h: removed unneeded initialization.
2003-06-16 21:55:58 +00:00
Sam Hocevar
0e93bc69fd * ./src/misc/beos_specific.cpp, ./src/misc/darwin_specific.m: removed
the GetProgramPath call, stored the path in p_libvlc instead. Fixes
    compilation under anything other than OS X.
2003-01-19 03:16:24 +00:00
Simon Latapie
7f00f3bf4a * added a i_min, i_max, f_min and f_max in module_config_t structure
* added a add_integer_with_range() and add_float_with_range()
 * gtk interface: now uses a slider when a min or a max is specified
2003-01-06 00:37:30 +00:00
Gildas Bazin
fae0361776 * configure.ac.in: fixed ugly hack in sdl detection code (which also broke my build :p)
* include/configuration.h, include/modules_inner.h: proper fix for a bug that allowed gcc
to put things in the stack instead of the data segment.
2002-12-10 12:46:35 +00:00
Sam Hocevar
1b7ce2697e * ./src/*, ./include/*: fixed a bunch of badly initialized structures, a few
signed/unsigned comparisons, and removed trailing spaces here and there.
2002-12-06 10:10:40 +00:00
Sam Hocevar
455221a001 * ./src/misc/modules.c: support for Unicode filenames under WinCE; VLC now
successfully opens plugins.
  * ./modules/misc/dummy/*: hacked the dummy plugin so that it compiles for
    WinCE.
2002-11-18 18:05:13 +00:00
Sam Hocevar
2799d36bc8 * ALL: the build mechanism now uses automake. See HACKING for more details.
* ./mozilla/vlcplugin.cpp: javascript support for the Mozilla plugin.
  * debian/rules: the A52 module is now in a separate package.
2002-09-30 11:05:42 +00:00
Sam Hocevar
28ad2fd075 * ./src/misc/modules.c: if a plugin requested not to be unloaded, then we
won't unload it. This makes us more fault-tolerant with crap libraries
    that are making use of atexit().
  * ./configure.in: svgalib can now be a plugin.
  * ./modules/misc/gtk_main.c: gtk_main doesn't need g_atexit anymore.
2002-08-21 17:31:58 +00:00
Sam Hocevar
005be13889 * ./src/misc/objects.c: implemented vlc_list_find() which works like
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.
2002-08-14 17:06:53 +00:00
Sam Hocevar
05e3077cc5 * ./include/modules_inner.h: support for several modules with the same
name but with different directory names.
  * ./Makefile: plugins get installed in different directory names.
  * ALL: additional -ansi -pedantic fixes.
2002-08-08 22:28:23 +00:00
Sam Hocevar
7689bc9224 * ./modules/audio_output/oss.c: compilation fixes.
* ALL: lots of -ansi -pedantic fixes.
2002-08-08 00:35:11 +00:00
Sam Hocevar
981dcc18ab * ./configure.in, ./mozilla/Makefile: we link the Mozilla plugin with libXt. 2002-08-04 08:45:35 +00:00
Tony Castley
bbe70b81a0 Compilation fixes for C++ environments like BeOS. 2002-08-01 11:04:46 +00:00
Sam Hocevar
1f327d8732 * ./include/configuration.h, ./include/modules_inner.h: compilation fix for
compilers which don't support constructor expressions. I hate Borland.
2002-07-31 22:54:21 +00:00
Sam Hocevar
976dfc3eb4 * ALL: new module API. Makes a few things a lot simpler, and we gain
about 2000 lines of code.

    I could not test everything on every architecture, so please report
    any module breakage (especially on BeOS, OSX and QNX).
2002-07-31 20:56:53 +00:00
Sam Hocevar
9e3ab283c2 * ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
  do what remains to be fixed during the weekend.

   Changes in vlc:
   ===============

  * vlc is now a very small program (20 lines) which uses the libvlc API;
   it is quite simple for the moment but can be extended in the future.

  * interfaces, decoders, video outputs, etc. are now almost the same
   objects (yes, I know, this is C++ redone in C) and are structured in
   a tree. More about this later, but basically it allows the following
   nice features:
    - several interfaces
    - several playlists with several outputs
    - input plugins spawning helper interfaces (will be used for DVD menus)
    - anything spawning anything; I swear there are useful uses for this!

  * libvlc can be used in other programs; I'm currently writing a Mozilla
   plugin for my employer.

   Things currently broken:
   ========================

  * most interfaces, most ports
  * the playlist handling (almost finished rewriting this though). This means
   no file can be played from the GUI, you need to use the commandline. This
   also means it segfaults at EOF, when exiting the program, and it sometimes
   refuses to open a file when asked to.
2002-06-01 12:32:02 +00:00
Gildas Bazin
0170377dc0 * changed ADD_BOOL and ADD_BOOL_WITH_SHORT config macros to accept a
default value as an argument.
* modified the command line parsing to accept --foo and --no-foo when a
"foo" boolean config option is defined.
* modified the help menu to indicate if the option is enabled or
disabled by default.
2002-05-30 08:17:04 +00:00
Sam Hocevar
2bb1112c08 * ./plugins/access/file.c, plugins/dvd/dvd_seek.c: readability changes.
* ./Makefile: the vlc rule depends on modules_builtin.h.
  * ./include/modules_inner.h: removed useless code.
2002-05-22 17:17:45 +00:00
Loïc Minier
455104ab9f * ./include/modules_inner.h: fixed a crash when reopening a hidden
module (by sam)
2002-05-22 11:23:56 +00:00
Sam Hocevar
5982dfbdfb * ./include/modules_inner.h: fixed a bug in module reinitialization,
which should fix crashes after a long pause.
2002-05-15 00:02:27 +00:00
Sam Hocevar
71865b9708 * ./include/modules_inner.h, ./src/misc/configuration.c: support for config
options callbacks.

    They don't take any argument for the moment, but this will change when
    I'm finished with my other vlc changes. There is a little problem: the
    Gtk+ interface keeps calling Put***Variable each time we click on "Apply"
    or "Save". I think it should only call it once. Is there a way to fix
    this? Gildas? lool? :-)
2002-05-03 20:49:30 +00:00
Sam Hocevar
e2e82bd1a0 * ./include/modules_inner.h: the module name is now a default shortcut, for
it, no need to manually add it.
2002-04-28 17:52:37 +00:00
Sam Hocevar
08999a39bc * ./src/interface/main.c: we no longer segfault if argc == 0.
* ALL: renamed PLUGINS to __PLUGINS__ to avoid conflicts with libraries
    defining it. Grmbl.
  * ./src/input/input_ext-plugins.c: cosmetic change.
2002-04-24 00:36:24 +00:00
Sam Hocevar
a6bccb1c29 * ./src/interface/main.c: tidied the help output code.
* ALL: removed underscores from option names and made a few options more
    self-explanatory, for instance --input_channel becomes --audio-channel;
    run vlc -H to see what has changed.
  * ALL: replaced many occurences of "plugin" with the word "module".
  * ./src/interface/main.c: moved all satellite-specific configuration options
    to the satellite plugin.
  * ./po/*: updated translations.
2002-04-23 14:16:21 +00:00
Sam Hocevar
4f6c862b02 * ALL: internationalized all configuration strings.
* ./src/interface/main.c: we now set LC_CTYPE to get the right charset.
  * ./src/misc/configuration.c: lots of simplifications in the code.
  * ./po/vlc/pot: updated translations.
2002-04-19 13:56:12 +00:00
Gildas Bazin
7f583e0549 * New GTK configuration interface. This interface is generated dynamically
at run-time from the configuration data contained in each plugin.
* config_PutPszVariable and config_GetPszVariable are now thread safe.
* Few modifications/optimizations to the config module.
* Got rid of all the _VAR macros in config.h

This is the first version of the GTK configuration interface. There are still
a few raw corners and a fews things left to do, but it basically does what
I wanted.
Constructive comments like it sucks or it smells rotten fish are of course
very welcome. And if there are GTK gurus out there, please don't hesitate to
add your touch.

I also started to add usefull comments to the configuration options but I'm not
really good at this kind of thing so if people want to help, they can finish
the job. For this look at all the *_LONGTEXT macros at the top of main.c

(PS: Translations will also be appreciated but not right now as the interface
will likely change again in the few coming days)
2002-03-11 07:23:10 +00:00
Gildas Bazin
c40571df60 This is the first part of the new configuration architecture for vlc.
Two other parts will follow soon:
- config file implementation
- gtk configuration interface.

This part won't change much for end-users as these changes are mostly
internal, you will however notice that the command line interface has
changed. It will maybe be less user-friendly as I almost removed the
short options but it shouldn't a big problem when the config file is
implemented.

What as changed is that it is really easy now to add configuration
options to vlc. Plugins can also implement configuration options. All
you have to do is to declare a MODULE_CONFIG section in your plugin.
If you want to know more about this look at configuration.h and for some
example: main.c, dsp.c or xvideo.c

It would be nice if every developper could now start using configuration
options in there plugins and also enhance old plugins.

That's it, now let's hope I didn't break too many things ;-)
2002-02-24 20:51:10 +00:00
Sam Hocevar
c7b1c474c6 * ./include/modules_inner.h: replaced _X with __VLC_SYMBOL because _X was
already a system macro under MacOS X.
  * ./plugins/dummy/dummy.c: fixed vlc:loop, vlc:quit, etc. entries.
  * ./plugins/glide/glide.c: activated double buffering.
  * ./plugins/mga/xmga.c: started writing an xmga plugin; doesn't work yet.
  * ./src/input/input.c: fixed the input memory leak, and the insane thread
    spawning we got with vlc:loop.
  * ./src/misc/intf_eject.c: disc ejection routine courtesy of Julien Blache,
    currently Linux-only.
2002-01-09 02:01:14 +00:00
Sam Hocevar
cc0f0bb6fd Some heavy changes today:
* Removed duplicate function checks from configure.in.
  * Added extra magic to Makefile.modules so that the module Makefiles
    are now ridiculously simple. And I mean *simple*. Check it! This will
    make a possible switch to full autoconf/automake a lot easier.
  * Added the vlc version name to the plugin symbols, to be sure we only load
    plugins with the same version number. A nasty consequence is that you
    need to rebuild your tree after midnight if you are using a CVS tree :-)
  * Got rid of modules_export.h by #defining exported functions in the same
    header as their prototype.
  * Added modules_inner.h and other commonly used .h files to common.h so
    there are less and less files to include, and renamed common.h to
    <videolan/vlc.h>.
  * First modifications to the module handling system towards my ultimate
    goal to get rid of the *_Probe functions. Got rid of TestMethod and
    TestCPU, as well as src/misc/tests.c.
  * Wrote the chroma plugin handling functions. No YUV functions have been
    ported yet because it'ls a lot of work, but the core system works, I
    tried it with a naive yv12->rgb16 plugin (which will disappear when the
    real functions are ready).
  * Made a lot of functions in dvd_summary.c one-liners to avoid wasting
    too many output lines.
  * Fixed a segfault in input_dvd.c:DVDInit.
  * Added a fixfiles.sh script in plugins/gtk to be run after Glade has
    generated its C files.
  * Did some work on the KDE interface to make it suck a bit less. It still
    segfaults, but at least it runs and it looks less ugly.
  * RGB SDL rendering works again, though in 16bpp only.
  * Made plugins/vcd/linux_cdrom_tools.c independent of any vlc structure
    so that it'll be easily put in a library. Maybe libdvdcss?
  * Fixed VCD date display.
  * Merged vout_xvideo.c, vout_x11.c and vout_common.c into xcommon.c.
  * Wrote non-Shm XVideo output.
  * Made X11 output work again. Still pretty unstable, only works for 16bpp.
  * Additional french translation in po/fr.po. Any taker for the rest?
  * Fixed a segfault in video_output.c when the allocated pictures were
    not direct buffers.
  * If $DISPLAY isn't set, don't try to run the Gtk+ interface.
  * Replaced 48x48 .xpm images with 32x32 ones to conform to Debian policy
    (Closes Debian bug #126939).
  * Removed the automatic ./configure launch when running `make all' for
    the first time.

Stuff currently more broken than it ought to be:
  * The wall filter. Being fixed.
  * x11 and sdl plugins for depth != 16bpp.
  * Software YUV.
  * gvlc, gnome-vlc, kvlc shortcuts. Use --intf instead for the moment.
2001-12-30 07:09:56 +00:00
Sam Hocevar
db648a570b * Fixed an issue in Makefile.dep causing to rebuild unnecessary files
in the gtk/gnome and x11/xvideo plugins.
  * Fixed CFLAGS_XVIDEO.
2001-12-11 15:31:37 +00:00
Sam Hocevar
003c2ab300 * Removed unused code (intf_channels.c, keystrokes.h).
* Put common_win32.h back into common.h -- it wasn't that big and we
    should not multiply header files.
  * Added gettext support by Thomas Graf <reeler@reeler.org>, may be
    broken on other platforms but we'll only see it when I'm finished
    with vout 4 :-)
  * Fixed a segfault on exit when no fast_memcpy module was found.
2001-12-10 04:53:11 +00:00
Sam Hocevar
440f9992ee * Fixed the BeOS compile typo.
* The ALSA plugin is back.
  * A gift for Gildas: plugins don't rely on backlinking any more. The
    drawback is the dirty magic in include/modules_export.h which has to
    be included whenever a module needs one of the functions in it. But
     a) we should less and less rely on those functions
     b) no plugin code modification was needed

   The BeOS and MacOS X modules may be broken when compiled as plugins,
   I'll check this later when I can reboot under BeOS.
2001-05-30 17:03:13 +00:00
Sam Hocevar
4f551c2bf0 * Header cleaning: filled all empty authors fields, added CVS $Id stuff.
* Fixes to aout_darwin.c by Colin Delacroix <colin@zoy.org>.
  * Fixes to configure.in, Makefile.in and main.c (Altivec detection)
    by Eugenio Jarosiewicz <ej0@cise.ufl.edu>.
  * Added Colin and Eugenio to the AUTHORS file.
2001-03-21 13:42:35 +00:00
Sam Hocevar
52f0fa6821 * Function prototypes for the forthcoming Darwin and MacOS X port.
* Gtk+ interface: fixed a precision issue in the scale.
  * Qt interface: somebody pop up us the menu!!
2001-03-18 00:01:13 +00:00
Sam Hocevar
583c6553f6 * Ported Glide and MGA plugins to the new module API. MGA never worked,
so this didn't make it work better.
  * Started thinking about built-in modules, and added some code to
    make it easier eventually.
  * Added Oct in the AUTHORS file.
  * Fixed a mistake in configure.in.
  * All your base are belong to us.
  * Fixed a bug in src/misc/modules which prevented loading modules
    when launched from the Tracker.
  * Fixed a similar bug in src/video_output/video_text.c.
  * BeOS CSS support, thanks to Markus Kuespert <ltlBeBoy@beosmail.com>
    who ported the Linux DVD ioctls. We can now read encrypted DVDs
    under BeOS ! Woohoo.
2001-02-20 07:49:13 +00:00
Sam Hocevar
fd1220a285 . removed a few useless malloc() and unused variables in the audio SDL stuff
. prepared the work for built-in modules (not yet finished)
2001-01-17 17:25:13 +00:00
Sam Hocevar
9f553534b0 . complete commenting of modules_core.h and small modifications
. separated MODULE_CONFIG_START and ADD_WINDOW (Henri, beware)
 . fixed a very, very old bug that caused namespace collision between
   plugins (Henri, beware: call your aout_getplugin function like this,
   not alsa_aout_getplugin)
 . removed the Debian specific clean rules from the Makefile, since they
   are already handled by the debian/rules script.
 . tidied a few compilation rules (-lfoo should always be at the end)
2001-01-10 02:33:59 +00:00
Sam Hocevar
32d3e55a6e . Added files needed for the forthcoming module management.
Notes:

   Plugins are now called modules, because we will be able to compile
   them either as a dynamic plugin, or within the program. And, more
   important, I can commit this without having to break the vlc :)

   I tried to be as clear as possible in my comments, please tell me
   if a few prototypes still have an unclear beahaviour.

   Current features:
    . none, files haven't even been added to the Makefile yet.

   Future features:
    . dynamic loading (done)
    . built-in modules (still to do)
    . automatic unloading of plugins (done)
    . dynamic configuration (still to do)
    . automatic choosing of the most appropriate plugin for a given
       task (still to do but well prepared)
2001-01-05 13:57:12 +00:00