* 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 14:32:02 +02:00
|
|
|
/*****************************************************************************
|
2006-12-01 21:13:46 +01:00
|
|
|
* libvlc.h: Internal libvlc generic/misc declaration
|
* 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 14:32:02 +02:00
|
|
|
*****************************************************************************
|
2007-05-20 15:35:37 +02:00
|
|
|
* Copyright (C) 1999, 2000, 2001, 2002 the VideoLAN team
|
2007-05-20 00:02:15 +02:00
|
|
|
* Copyright © 2006-2007 Rémi Denis-Courmont
|
2004-03-05 20:24:14 +01:00
|
|
|
* $Id$
|
* 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 14:32:02 +02:00
|
|
|
*
|
2007-05-20 15:35:37 +02:00
|
|
|
* Authors: Vincent Seguin <seguin@via.ecp.fr>
|
|
|
|
*
|
* 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 14:32:02 +02:00
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
2006-01-13 00:10:04 +01:00
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
* 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 14:32:02 +02:00
|
|
|
*****************************************************************************/
|
|
|
|
|
2006-12-01 21:13:46 +01:00
|
|
|
#ifndef LIBVLC_LIBVLC_H
|
|
|
|
# define LIBVLC_LIBVLC_H 1
|
2002-06-01 19:09:25 +02:00
|
|
|
|
2006-12-01 21:13:46 +01:00
|
|
|
extern const char vlc_usage[];
|
2006-01-09 23:01:57 +01:00
|
|
|
|
2006-12-01 21:13:46 +01:00
|
|
|
extern const module_config_t libvlc_config[];
|
|
|
|
extern const size_t libvlc_config_count;
|
* 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 14:32:02 +02:00
|
|
|
|
2006-12-01 21:13:46 +01:00
|
|
|
extern const struct hotkey libvlc_hotkeys[];
|
|
|
|
extern const size_t libvlc_hotkeys_size;
|
* 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 14:32:02 +02:00
|
|
|
|
2006-12-01 21:26:05 +01:00
|
|
|
extern vlc_object_t *
|
|
|
|
vlc_custom_create (vlc_object_t *p_this, size_t i_size, int i_type,
|
|
|
|
const char *psz_type);
|
|
|
|
|
2007-05-20 00:02:15 +02:00
|
|
|
/*****************************************************************************
|
|
|
|
* libvlc_global_data_t (global variable)
|
|
|
|
*****************************************************************************
|
|
|
|
* This structure has an unique instance, statically allocated in main and
|
|
|
|
* never accessed from the outside. It stores once-initialized data such as
|
|
|
|
* the CPU capabilities or the global lock.
|
|
|
|
*****************************************************************************/
|
|
|
|
struct libvlc_global_data_t
|
|
|
|
{
|
|
|
|
VLC_COMMON_MEMBERS
|
|
|
|
|
|
|
|
vlc_bool_t b_ready; ///< Initialization boolean
|
|
|
|
|
|
|
|
/* Object structure data */
|
|
|
|
int i_counter; ///< object counter
|
|
|
|
int i_objects; ///< Attached objects count
|
|
|
|
vlc_object_t ** pp_objects; ///< Array of all objects
|
|
|
|
|
|
|
|
module_bank_t * p_module_bank; ///< The module bank
|
|
|
|
intf_thread_t *p_probe; ///< Devices prober
|
|
|
|
|
|
|
|
/* Arch-specific variables */
|
|
|
|
#if !defined( WIN32 )
|
|
|
|
vlc_bool_t b_daemon;
|
|
|
|
#endif
|
|
|
|
#if defined( SYS_BEOS )
|
|
|
|
vlc_object_t * p_appthread;
|
|
|
|
char * psz_vlcpath;
|
|
|
|
#elif defined( __APPLE__ )
|
|
|
|
char * psz_vlcpath;
|
|
|
|
vlc_iconv_t iconv_macosx; /* for HFS+ file names */
|
|
|
|
vlc_mutex_t iconv_lock;
|
|
|
|
#elif defined( WIN32 )
|
|
|
|
char * psz_vlcpath;
|
|
|
|
#endif
|
|
|
|
};
|
|
|
|
|
2007-05-20 16:42:13 +02:00
|
|
|
#define vlc_global( a ) __vlc_global( VLC_OBJECT( a ) )
|
|
|
|
static inline libvlc_global_data_t *__vlc_global( vlc_object_t *p_this )
|
2007-05-20 12:03:51 +02:00
|
|
|
{
|
|
|
|
return (libvlc_global_data_t *)p_this->p_libvlc_global;
|
|
|
|
}
|
2007-05-20 00:02:15 +02:00
|
|
|
|
|
|
|
extern uint32_t cpu_flags;
|
2007-06-08 16:55:43 +02:00
|
|
|
uint32_t CPUCapabilities( void );
|
2007-05-20 00:02:15 +02:00
|
|
|
|
2007-08-16 17:43:28 +02:00
|
|
|
/* Private LibVLC data for each objects */
|
|
|
|
struct vlc_object_internals_t
|
|
|
|
{
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
static inline vlc_object_internals_t *vlc_internals( vlc_object_t *obj )
|
|
|
|
{
|
|
|
|
return obj->p_internals;
|
|
|
|
}
|
|
|
|
|
2002-07-31 22:56:53 +02:00
|
|
|
#endif
|