[vlc-devel] Re: Writing VLC interface plug-in
ipkiss at via.ecp.fr
Sat Feb 7 10:14:47 CET 2004
On Sat, Feb 07, 2004, Sooyoung wrote:
> I'm trying to write a simple GUI interface plug-in (for practice. I'll
> try write a more complicated one later), but the "VideoLAN Client API
> Documentation" on the web does not provide much information.
> Specifically, 'section 2.7 How to write an interface plugin' is only a
> half-page long and I cannot find 'plugins' directory at all. Could
> anyone provide some general instructions? I've just downloaded and
> compiled "VLC source code tarball (0.7.0)" on Cygwin under Windows
You are right, the developer documentation is quite outdated on many
aspects. Until now, noody as volunteered to write a new one :)
First of all, the existing GUI modules can be found in ./modules/gui/*.
The ones that work on windows are 'wxwindows', 'skins' and 'skins2'
(perhaps also 'gtk', but it's not maintained anymore)
An interface module (graphical or not) is made of 3 entry functions and
a module description:
* The module description, made of macros, declares the capabilities
of the module (interface, in this case) with their priority, the
module description as it will appear in the preferences of GUI
modules that implement them, some configuration variables specific
to the module, shortcuts, sub-modules, etc.
* The 'Open' function is called by VLC to initialize the module The
* 'Run' function really does the job of the interface module
(waiting for user input and displaying info)
* The 'Close' function is called by VLC to uninitialize the module
(basically, this consists in destroying whatever have been
allocated by 'Open')
These 3 functions take a vlc_object_t* as argument (which may need to be
cast into a intf_thread_t* depending on your needs). This structure is
often needed as a parameter for exported VLC functions, such as msg_Err,
See examples of use in existing modules. The GUI ones are not very easy
to understand, since they are quite big. I suggest to start digging into
a non-graphical interface module first (they can be found in
./modules/control/*), mainly the 'hotkeys' one.
Do not hesitate to ask further questions on this mailing-list, or on
This is the vlc-devel mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://developers.videolan.org/lists.html
If you are in trouble, please contact <postmaster at videolan.org>
More information about the vlc-devel