diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/xine.h.tmpl.in | 903 |
1 files changed, 662 insertions, 241 deletions
diff --git a/include/xine.h.tmpl.in b/include/xine.h.tmpl.in index e57aaa4b9..75a38c1ab 100644 --- a/include/xine.h.tmpl.in +++ b/include/xine.h.tmpl.in @@ -3,33 +3,32 @@ * \author Guenter Bartsch <guenter@users.sourceforge.net> * \author Siegfried Langauf <siggi@users.sourceforge.net> * \author Daniel Caujolle-Bert <f1rmb@users.sourceforge.net> - * \date 2000-2001 + * \date 25/07/2001 * * API of XINE library. - * - * \verbatim + \verbatim Copyright (C) 2000-2001 the xine project - + This file is part of xine, a unix video player. - + xine 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. - + xine 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 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - - \endverbatim + + \endverbatim */ /* - * $Id: xine.h.tmpl.in,v 1.32 2001/07/24 21:42:05 guenter Exp $ + * $Id: xine.h.tmpl.in,v 1.33 2001/07/26 11:12:26 f1rmb Exp $ * */ @@ -44,195 +43,104 @@ extern "C" { #include <unistd.h> #include <sys/types.h> -#include <xine/events.h> - - -/** - * \defgroup versgroup Version constants - * @{ - */ -/** \brief Major version constant */ -#define XINE_MAJOR_VERSION @XINE_MAJOR@ -/** \brief Minor version constant */ -#define XINE_MINOR_VERSION @XINE_MINOR@ -/** \brief Sub version constant */ -#define XINE_SUB_VERSION @XINE_SUB@ -/** @} end of versgroup */ - -#define XINE_BUILD_CC "@XINE_BUILD_CC@" -#define XINE_BUILD_OS "@XINE_BUILD_OS@" -#define XINE_BUILD_DATE "@XINE_BUILD_DATE@" - #ifndef DOC_HIDDEN -typedef void ao_functions_t; -typedef void xine_t; +#include <xine/events.h> #endif -typedef struct config_values_s config_values_t; - -struct config_values_s { - /* - * lookup config values - */ - char* (*lookup_str) (config_values_t *self, - char *key, char *str_default); - - int (*lookup_int) (config_values_t *self, - char *key, int n_default); - - /* - * set config values - */ - - void (*set_str) (config_values_t *self, - char *key, char *value) ; - - void (*set_int) (config_values_t *self, - char *key, int value) ; - - /* - * write config file to disk - */ - void (*save) (config_values_t *self); +/** + * \def XINE_SKINDIR + * Skin file location + */ +#define XINE_SKINDIR "@XINE_SKINPATH@" - /* - * read config file from disk, ovverriding values in memory - * if you also want to clear values that are not in the file, - * use _init instead! - */ - void (*read) (config_values_t *self, char *filename); -}; + /** + * \defgroup build_info Build informations + * @{ + */ -/* - * video driver capabilities +/** + * \def XINE_BUILD_CC + * Compiler used to build xine-lib */ -/* driver can set HUE value */ -#define VO_CAP_HUE 0x00000010 /* driver can set HUE value */ -#define VO_CAP_SATURATION 0x00000020 /* driver can set SATURATION value */ -#define VO_CAP_BRIGHTNESS 0x00000040 /* driver can set BRIGHTNESS value */ -#define VO_CAP_CONTRAST 0x00000080 /* driver can set CONTRAST value */ -#define VO_CAP_COLORKEY 0x00000100 /* driver can set COLORKEY value */ - -/* - * constants for the get/set property functions +#define XINE_BUILD_CC "@XINE_BUILD_CC@" +/** \def XINE_BUILD_OS + * OS used to build xine-lib */ -#define VO_PROP_INTERLACED 0 -#define VO_PROP_ASPECT_RATIO 1 -#define VO_PROP_HUE 2 -#define VO_PROP_SATURATION 3 -#define VO_PROP_CONTRAST 4 -#define VO_PROP_BRIGHTNESS 5 -#define VO_PROP_COLORKEY 6 -#define VO_NUM_PROPERTIES 7 - -/* possible ratios for the VO_PROP_ASPECT_RATIO call */ - -#define ASPECT_AUTO 0 -#define ASPECT_ANAMORPHIC 1 /* 16:9 */ -#define ASPECT_FULL 2 /* 4:3 */ -#define ASPECT_DVB 3 /* 1:2 */ - -typedef struct vo_driver_s vo_driver_t; -typedef void vo_frame_t; -typedef void vo_overlay_t; - -struct vo_driver_s { - - uint32_t (*get_capabilities) (vo_driver_t *self); /* for constants see above */ - - /* - * allocate an vo_frame_t struct, - * the driver must supply the copy, field and dispose functions - */ - vo_frame_t* (*alloc_frame) (vo_driver_t *self); - - - /* - * check if the given image fullfills the format specified - * (re-)allocate memory if necessary - */ - void (*update_frame_format) (vo_driver_t *self, vo_frame_t *img, - uint32_t width, uint32_t height, - int ratio_code, int format); - - /* display a given frame */ - void (*display_frame) (vo_driver_t *self, vo_frame_t *vo_img); - - /* overlay functions */ - void (*overlay_blend) (vo_driver_t *self, vo_frame_t *vo_img, vo_overlay_t *overlay); - - /* - * these can be used by the gui directly: - */ - - int (*get_property) (vo_driver_t *self, int property); - int (*set_property) (vo_driver_t *self, - int property, int value); - void (*get_property_min_max) (vo_driver_t *self, - int property, int *min, int *max); - - /* - * general purpose communication channel between gui and driver - * - * this should be used to propagate events, display data, window sizes - * etc. to the driver - */ +#define XINE_BUILD_OS "@XINE_BUILD_OS@" +/** \def XINE_BUILD_DATE + * Build time + */ +#define XINE_BUILD_DATE "@XINE_BUILD_DATE@" - int (*gui_data_exchange) (vo_driver_t *self, int data_type, - void *data); + /** @} end of build_info */ - void (*exit) (vo_driver_t *self); + /** + * \defgroup xine_api API functions + * @{ + */ -}; + /** + * \defgroup status_group Player status constants + * @{ + */ /** - * \brief xine ui callback function pointer types - * @see xine_init() - * - */ -typedef void (*gui_stream_end_cb_t)(int nStatus); -typedef char* (*gui_get_next_mrl_cb_t) (void); -typedef void (*gui_branched_cb_t) (void); - -/** - * \defgroup statgroup Player status constants - * @{ - */ -/** \brief Stop status - * @see xine_get_status() + * \def XINE_STOP + * Stop status. + * \sa xine_get_status() */ #define XINE_STOP 0 -/** \brief Play status - * @see xine_get_status() +/** + * \def XINE_PLAY + * Play status. + * \sa xine_get_status() */ #define XINE_PLAY 1 -/** \brief Pause status - * @see xine_get_status() +/** + * \def XINE_PAUSE + * Pause status. + * \sa xine_get_status() */ #define XINE_PAUSE 2 -/** \brief Quit status - * @see xine_get_status() +/** + * \def XINE_QUIT + * Quit status. + * \sa xine_get_status() */ #define XINE_QUIT 3 -/** @} end of statgroup */ -#define DEMUX_DEFAULT_STRATEGY 0 -#define DEMUX_REVERT_STRATEGY 1 -#define DEMUX_CONTENT_STRATEGY 2 -#define DEMUX_EXTENSION_STRATEGY 3 + /** @} end of status_group */ + + /** + * \defgroup version_group Version constants + * @{ + */ /** - * @defgroup xine_api API functions - * @{ + * \def XINE_MAJOR_VERSION + * Major version constant. */ - +#define XINE_MAJOR_VERSION @XINE_MAJOR@ /** - * @defgroup xine_version API functions - * @ingroup xine_api - * @{ + * \def XINE_MINOR_VERSION + * Minor version constant. */ +#define XINE_MINOR_VERSION @XINE_MINOR@ /** - * \fn *xine_get_str_version(void); + * \def XINE_SUB_VERSION + * Sub version constant. + */ +#define XINE_SUB_VERSION @XINE_SUB@ + + /** @} end of version_group */ + + /** + * \defgroup xine_version Version functions + * @{ + */ + +/** + * \fn char *xine_get_str_version(void); * \brief return string version, like "0.5.0" * \param None. * \return string version @@ -279,33 +187,380 @@ int xine_get_sub_version(void); */ int xine_check_version(int major, int minor, int sub); -/** @} end of xine_version */ + /** @} end of xine_version */ + + /** + * \defgroup video_group Video. + * @{ + */ + + /** + * + * \defgroup video_cap video driver capabilities + * @{ + */ +/** + * \def VO_CAP_HUE + * Driver can set HUE value. + */ +#define VO_CAP_HUE 0x00000010 +/** + * \def VO_CAP_SATURATION + * Driver can set SATURATION value. + */ +#define VO_CAP_SATURATION 0x00000020 +/** + * \def VO_CAP_BRIGHTNESS + * Driver can set BRIGHTNESS value. + */ +#define VO_CAP_BRIGHTNESS 0x00000040 +/** + * \def VO_CAP_CONTRAST + * Driver can set CONTRAST value. + */ +#define VO_CAP_CONTRAST 0x00000080 +/** + * \def VO_CAP_COLORKEY + * Driver can set COLORKEY value. + */ +#define VO_CAP_COLORKEY 0x00000100 + + /** @} end of video_cap */ + + /** + * + * \defgroup video_prop Constants for the get/set properties functions. + * @{ + */ +/** + * \def VO_PROP_INTERLACED + * Interleave property. + * \sa vo_driver_t + */ +#define VO_PROP_INTERLACED 0 +/** + * \def VO_PROP_ASPECT_RATIO + * Aspect ratio property. + * \sa vo_driver_t, video_ratio + */ +#define VO_PROP_ASPECT_RATIO 1 +/** + * \def VO_PROP_HUE + * Hue property. + * \sa vo_driver_t + */ +#define VO_PROP_HUE 2 +/** + * \def VO_PROP_SATURATION + * Saturation property. + * \sa vo_driver_t + */ +#define VO_PROP_SATURATION 3 +/** + * \def VO_PROP_CONTRAST + * Contrast property. + * \sa vo_driver_t + */ +#define VO_PROP_CONTRAST 4 +/** + * \def VO_PROP_BRIGHTNESS + * Brightness property. + * \sa vo_driver_t + */ +#define VO_PROP_BRIGHTNESS 5 +/** + * \def VO_PROP_COLORKEY + * Colorkey property. + * \sa vo_driver_t + */ +#define VO_PROP_COLORKEY 6 +/** + * \def VO_NUM_PROPERTIES + * Number of available properties property. + * \sa vo_driver_t + */ +#define VO_NUM_PROPERTIES 7 + + /** @} end of video_prop */ + /** + * \defgroup video_ratio Possible ratios for the VO_PROP_ASPECT_RATIO call + * \sa VO_PROP_ASPECT_RATIO, vo_driver_t + * @{ + */ -/** @defgroup xine_init_api Init functions - * @ingroup xine_api - * @{ +/** + * \def ASPECT_AUTO + * Let video driver guessing aspect ratio. + * \sa VO_PROP_ASPECT_RATIO + */ +#define ASPECT_AUTO 0 +/** + * \def ASPECT_ANAMORPHIC + * Set aspect ration to 16:9. + * \sa VO_PROP_ASPECT_RATIO + */ +#define ASPECT_ANAMORPHIC 1 +/** + * \def ASPECT_FULL + * Set aspect ration to 4:3. + * \sa VO_PROP_ASPECT_RATIO + */ +#define ASPECT_FULL 2 +/** + * \def ASPECT_DVB + * Set aspect ration to 1:2. + * \sa VO_PROP_ASPECT_RATIO + */ +#define ASPECT_DVB 3 + + /** @} end of video_ratio */ + +/** + * \struct vo_frame_t + * Opaque data type. + * \sa vo_driver_t + */ +typedef void vo_frame_t; +/** + * \struct vo_overlay_t + * Opaque data type. + * \sa vo_driver_t */ +typedef void vo_overlay_t; + +/** + * \struct vo_driver_t + * \brief Data type of structure vo_driver_s. + * \sa structure vo_driver_s. + */ +typedef struct vo_driver_s vo_driver_t; + +/** + * \struct vo_driver_s + * Video driver fonctions. + */ +struct vo_driver_s { + /** + * Get capabilities of video driver. + * \sa video_cap + */ + uint32_t (*get_capabilities) (vo_driver_t *self); + /** + * Allocate an vo_frame_t struct, + * the driver must supply the copy, field and dispose functions + */ + vo_frame_t* (*alloc_frame) (vo_driver_t *self); + /** + * Check if the given image fullfills the format specified + * (re-)allocate memory if necessary + */ + void (*update_frame_format) (vo_driver_t *self, vo_frame_t *img, + uint32_t width, uint32_t height, + int ratio_code, int format); + /** + * Display a given frame + */ + void (*display_frame) (vo_driver_t *self, vo_frame_t *vo_img); + /** + * Overlay functions + */ + void (*overlay_blend) (vo_driver_t *self, vo_frame_t *vo_img, vo_overlay_t *overlay); + /** + * These can be used by the gui directly: + */ + /** + * Get value if property. + * \sa video_prop + */ + int (*get_property) (vo_driver_t *self, int property); + /** + * Set value of property. + * \sa video_prop + */ + int (*set_property) (vo_driver_t *self, + int property, int value); + /** + * Get min/max values of property. + * \sa video_prop + */ + void (*get_property_min_max) (vo_driver_t *self, + int property, int *min, int *max); + /** + * General purpose communication channel between gui and driver + * + * this should be used to propagate events, display data, window sizes + * etc. to the driver + */ + int (*gui_data_exchange) (vo_driver_t *self, int data_type, + void *data); + /** + * Leaving video driver. + */ + void (*exit) (vo_driver_t *self); + +}; + + /** @} end of video_group */ + + /** + * \defgroup xine_init Init functions + * @{ + */ + + /** + * \defgroup config_group Configuration structure type. + * @{ + */ + +/** + * \struct xine_t + * Opaque data type. + * \sa xine_load_audio_output_plugin + */ +typedef void xine_t; +/** + * \struct ao_functions_t + * Opaque data type. + */ +typedef void ao_functions_t; +/** + * \struct cfg_data_t + * Opaque data type. + */ +typedef void cfg_data_t; +/** + * \struct config_values_t + * \brief Data type of structure config_values_s. + * \sa config_values_s. + */ +typedef struct config_values_s config_values_t; +/** + * \struct config_values_s + * Configuration file manipulation. + * \sa config_file_init() + */ +struct config_values_s { + /** + * Lookup string values in configuration file. + */ + char* (*lookup_str) (config_values_t *self, + char *key, char *str_default); + /** + * Lookup integer values in configuration file. + */ + int (*lookup_int) (config_values_t *self, + char *key, int n_default); + /** + * Set string values in configuration file. + */ + void (*set_str) (config_values_t *self, + char *key, char *value) ; + /** + * Set integer values in configuration file. + */ + void (*set_int) (config_values_t *self, + char *key, int value) ; + /** + * Write configuration file to disk. + */ + void (*save) (config_values_t *self); + /** + * Read configuration file from disk, overriding values in memory. + * If you also want to clear values that are not in the file, + * use config_file_init() instead! + */ + void (*read) (config_values_t *self, char *filename); + /** + * Contains private data of this configuration file. + */ + cfg_data_t *data; +}; + + /** @} end of config_group */ + + /** * \fn config_values_t *config_file_init (char *filename) * \brief Configuration file initialisation. * \param filename Pathname of configuration file. * \return Current config + * \sa config_values_t + * \warning This function should be called at least one time before xine_init() call. * - * Read config file and init a config object * (if it exists) + * Read config file and init a config object of config_values_t type (if it exists) */ config_values_t *config_file_init (char *filename); + /** + * \defgroup ui_callbacks UI communication callbacks. + * @{ + * + */ + +/** + * Notify UI when the stream is finished. + * \sa xine_init() + */ +typedef void (*gui_stream_end_cb_t) (int nStatus); +/** + * Called when xine tries to branch seamlessly to the next mrl. + * \sa xine_init() + */ +typedef char* (*gui_get_next_mrl_cb_t) (void); +/** + * Called when xine branched successfully to the next mrl. + * \sa xine_init() + */ +typedef void (*gui_branched_cb_t) (void); + + /** @} end of ui_callbacks */ + + /** + * \defgroup demux_strategy Possible demuxer guessing strategy. + * "demux_strategy" should be set to one of these value in configuration file ( #see @ref config_group) before xine_init() call. + * \sa config_values_t + * @{ + */ + +/** + * \def DEMUX_DEFAULT_STRATEGY + * Recognize by content then by extension. + * \sa config_values_t + */ +#define DEMUX_DEFAULT_STRATEGY 0 +/** + * \def DEMUX_REVERT_STRATEGY + * Recognize by extension then by content. + * \sa config_values_t + */ +#define DEMUX_REVERT_STRATEGY 1 +/** + * \def DEMUX_CONTENT_STRATEGY + * Recognize by content only. + * \sa config_values_t + */ +#define DEMUX_CONTENT_STRATEGY 2 +/** + * \def DEMUX_EXTENSION_STRATEGY + * Recognize by extension only. + * \sa config_values_t + */ +#define DEMUX_EXTENSION_STRATEGY 3 + + /** @} end of demux_strategy */ + /** - * \fn xine_t *xine_init (vo_driver_t *vo, ao_functions_t *ao, gui_status_callback_func_t gui_status_callback, config_values_t *config) + * \fn xine_t *xine_init (vo_driver_t *vo, ao_functions_t *ao, config_values_t *config, gui_stream_end_cb_t stream_end_cb, gui_get_next_mrl_cb_t get_next_mrl_cb, gui_branched_cb_t branched_cb); * \brief Initialisation of xine. - * \param vo video driver ( should be previously initialized by vo_init() ) - * \param ao audio driver ( should be previously initializef by ao_init() ) + * \param vo video driver ( #see @ref xine_load_video_output_plugin() ) + * \param ao audio driver ( #see @ref xine_load_audio_output_plugin() ) * \param config current configuration ( #see config_file_init() ) * \param stream_end cb called on stream end * \param get_next_mrl_cb called to find out next mrl for seamless branching * \param branched_cb called if seamless branch was taken * \return Current xine engine configuration + * \sa vo_driver_t, ao_functions_t, config_values_t, gui_stream_end_cb_t, gui_get_next_mrl_cb_t, gui_branched_cb_t * \warning This function should be called before any other xine_*() function. * * Init of xine. It should called once at startup. @@ -323,20 +578,20 @@ xine_t *xine_init (vo_driver_t *vo, /** * \fn void xine_exit (xine_t *self) * \brief De-initialisation of xine - * \param self Current xine engine configuration ( #see xine_init() ) + * \param self Current xine engine configuration. * \return Nothing + * \sa xine_init() * - * De init xine engine. + * De-init xine engine. */ void xine_exit (xine_t *self); -/** @} end of xine_init_api */ + /** @} end of xine_init */ -/** - * @defgroup xine_management_api Engine management - * @ingroup xine_api - * @{ - */ + /** + * \defgroup xine_management Engine management + * @{ + */ /** * \fn void xine_play (xine_t *self, char *MRL, int pos) * \brief Start to play a stream @@ -350,7 +605,6 @@ void xine_exit (xine_t *self); */ void xine_play (xine_t *self, char *MRL, int pos); - /** * \fn void xine_pause (xine_t *self) * \brief Pause toggle @@ -361,7 +615,6 @@ void xine_play (xine_t *self, char *MRL, int pos); */ void xine_pause (xine_t *self); - /** * \fn void xine_stop (xine_t *self) * \brief Stop playing @@ -386,7 +639,7 @@ int xine_eject(xine_t *self); * \fn int xine_get_status (xine_t *self) * \brief Get current xine status * \param self Current xine engine configuration ( #see xine_init() ) - * \return Current status ( #see @ref statgroup ) + * \return Current status ( #see @ref status_group ) * * Return the current state of xine engine. */ @@ -442,12 +695,13 @@ int xine_get_spu_channel (xine_t *self); */ void xine_select_spu_channel (xine_t *self, int channel); + /** @} end of xine_management */ + + /** + * \defgroup browse_group Browsing support + * @{ + */ -/** - * @defgroup browsegroup Browsing support - * @ingroup xine_api - * @{ - */ /** * \fn char **xine_get_browsable_input_plugin_ids (xine_t *self) * \brief Request list of browsable featured plugins @@ -459,27 +713,122 @@ void xine_select_spu_channel (xine_t *self, int channel); */ char **xine_get_browsable_input_plugin_ids (xine_t *self) ; -/* Types of mrls returned by get_dir() */ + /** + * \defgroup mrl_types Types of available mrls + * These types are bit field, can be used ORed/ANDed. + * \sa mrl_t + * @{ + */ + +/** + * \def mrl_unknown + * Unknow mrl type. + * \sa mrl_t + */ #define mrl_unknown (0 << 0) +/** + * \def mrl_dvd + * DVD mrl type. + * \sa mrl_t + */ #define mrl_dvd (1 << 0) +/** + * \def mrl_vcd + * VCD mrl type. + * \sa mrl_t + */ #define mrl_vcd (1 << 1) +/** + * \def mrl_net + * Network mrl type. + * \sa mrl_t + */ #define mrl_net (1 << 2) +/** + * \def mrl_rtp + * Multicast mrl type. + * \sa mrl_t + */ #define mrl_rtp (1 << 3) +/** + * \def mrl_stdin + * Standart input mrl type. + * \sa mrl_t + */ #define mrl_stdin (1 << 4) +/** + * \def mrl_file + * File mrl type. + * \sa mrl_t + */ #define mrl_file (1 << 5) +/** + * \def mrl_file_fifo + * Fifo file mrl type. + * \sa mrl_t + */ #define mrl_file_fifo (1 << 6) +/** + * \def mrl_file_chardev + * Char device file mrl type. + * \sa mrl_t + */ #define mrl_file_chardev (1 << 7) +/** + * \def mrl_file_directory + * Directory file mrl type. + * \sa mrl_t + */ #define mrl_file_directory (1 << 8) +/** + * \def mrl_file_blockdev + * Block device file mrl type. + * \sa mrl_t + */ #define mrl_file_blockdev (1 << 9) +/** + * \def mrl_file_normal + * Normal file mrl type. + * \sa mrl_t + */ #define mrl_file_normal (1 << 10) +/** + * \def mrl_file_symlink + * Soft link file mrl type. + * \sa mrl_t + */ #define mrl_file_symlink (1 << 11) +/** + * \def mrl_file_sock + * Socket file mrl type. + * \sa mrl_t + */ #define mrl_file_sock (1 << 12) +/** + * \def mrl_file_exec + * Executable file mrl type. + * \sa mrl_t + */ #define mrl_file_exec (1 << 13) +/** + * \def mrl_file_backup + * Backup file mrl type. + * \sa mrl_t + */ #define mrl_file_backup (1 << 14) +/** + * \def mrl_file_hidden + * Hidden file mrl type. + * \sa mrl_t + */ #define mrl_file_hidden (1 << 15) -/* + /** @} end of mrl_types */ + +/** + * \def MRL_ZERO(m) * Freeing/zeroing all of entries of given mrl. + * \sa mrl_t, xine_get_browse_mrls() */ #define MRL_ZERO(m) { \ if((m)) { \ @@ -497,8 +846,10 @@ char **xine_get_browsable_input_plugin_ids (xine_t *self) ; } \ } -/* +/** + * \def MRL_DUPLICATE(s, d) * Duplicate two mrls entries (s = source, d = destination). + * \sa mrl_t, xine_get_browse_mrls() */ #define MRL_DUPLICATE(s, d) { \ assert((s) != NULL); \ @@ -541,8 +892,10 @@ char **xine_get_browsable_input_plugin_ids (xine_t *self) ; (d)->size = (s)->size; \ } -/* +/** + * \def MRLS_DUPLICATE(s, d) * Duplicate two arrays of mrls (s = source, d = destination). + * \sa mrl_t, xine_get_browse_mrls() */ #define MRLS_DUPLICATE(s, d) { \ int i = 0; \ @@ -557,20 +910,31 @@ char **xine_get_browsable_input_plugin_ids (xine_t *self) ; } \ } +/** + * \struct mrl_t + * mrl type. + * \sa xine_get_browse_mrls(), MRL_ZERO, MRL_DUPLICATE, MRLS_DUPLICATE, mrl_types + */ typedef struct { - char *origin; /* Origin of grabbed mrls (eg: path for file plugin */ - char *mrl; /* <type>://<location> */ - char *link; /* name of link, if exist, otherwise NULL */ - uint32_t type; /* match to mrl_type enum */ - off_t size; /* size of this source, may be 0 */ + /** Origin of grabbed mrls (eg: path for file plugin */ + char *origin; + /** <type>://<location> */ + char *mrl; + /** name of link, if exist, otherwise NULL */ + char *link; + /** match to mrl_type enum */ + uint32_t type; + /** size of this source, may be 0 */ + off_t size; } mrl_t; /** - * \fn mrl_t **xine_get_browse_mrls (xine_t *self, char *plugin_id, char *start_mrl) + * \fn mrl_t **xine_get_browse_mrls (xine_t *self, char *plugin_id, char *start_mrl, int *num_mrls) * \brief Request available MRLs from plugins * \param self Current xine engine configuration ( #see xine_init() ) * \param plugin_id Plugin name ( #see xine_get_browsable_input_plugin_ids() ) * \param start_mrl MRL + * \param num_mrl how many mrls was found * \return start_mrl on success, NULL on failure. * * Asks input plugin named <plugin_id> to return @@ -583,12 +947,12 @@ typedef struct { mrl_t **xine_get_browse_mrls (xine_t *self, char *plugin_id, char *start_mrl, int *num_mrls); -/** @} end of browsegroup*/ + /** @} end of browse_group */ -/** - * @defgroup autoplaygroup Autoplay support - * @{ - */ + /** + * \defgroup autoplay_group Autoplay support + * @{ + */ /** * \fn char **xine_get_autoplay_input_plugin_ids (xine_t *self) * \brief Request playlist from plugin @@ -601,100 +965,157 @@ mrl_t **xine_get_browse_mrls (xine_t *self, char *plugin_id, char *start_mrl, in char **xine_get_autoplay_input_plugin_ids (xine_t *self) ; /** - * \fn char **xine_get_autoplay_mrls (xine_t *self, char *plugin_id) + * \fn char **xine_get_autoplay_mrls (xine_t *self, char *plugin_id, int *num_mrls) * \brief Request MRL list from plugin * \param self Current xine engine configuration ( #see xine_init() ) * \param plugin_id Plugin name ( #see xine_get_autoplay_input_plugin_ids() ) + * \param num_mrls Entries in return array. * \return MRL list. * * Get autoplay MRL list for input plugin named <plugin_id>. - */ + */ char **xine_get_autoplay_mrls (xine_t *self, char *plugin_id, int *num_mrls); -/** @} end of autoplaygroup */ + /** @} end of autoplay_group */ + + /** + * \defgroup loadplugins_group Loading plugins + * output plugin load support functions + * @{ + */ /** - * @defgroup loadpluginsgroup Loading plugins - * output plugin load support functions - * @{ + * \def XINE_PLUGINDIR + * Plugin files location. + * \ingroup loadplugins_group */ +#define XINE_PLUGINDIR "@XINE_PLUGINPATH@" + + /** + * \defgroup visual_types Valid visual types + * @{ + */ +/** + * \def VISUAL_TYPE_X11 + * X11 visual type. + * \sa xine_list_video_output_plugins, xine_load_video_output_plugin +*/ #define VISUAL_TYPE_X11 1 +/** + * \def VISUAL_TYPE_AA + * Asci Art visual type. + * \sa xine_list_video_output_plugins, xine_load_video_output_plugin + */ #define VISUAL_TYPE_AA 2 +/** + * \def VISUAL_TYPE_FB + * Framebuffer visual type + * \sa xine_list_video_output_plugins, xine_load_video_output_plugin + */ #define VISUAL_TYPE_FB 3 +/** + * \def VISUAL_TYPE_GTK + * GTK visual type + * \sa xine_list_video_output_plugins, xine_load_video_output_plugin + */ #define VISUAL_TYPE_GTK 4 + /** @} end of visual_types */ + /** - * \fn char **list_video_output_plugins (int visual_type) + * \fn char **xine_list_video_output_plugins (int visual_type) * \brief list available video output plugins + * \param visual_type #see @ref visual_types * \return a list of available video output plugins for the specified visual type - the list is sorted by plugin priority + * \sa visual_types */ char **xine_list_video_output_plugins (int visual_type); /** - * \fn vo_driver_t *load_video_output_plugin(config_values_t *config, char *id, int visual_type, void *visual) + * \fn vo_driver_t *xine_load_video_output_plugin(config_values_t *config, char *id, int visual_type, void *visual) + * \param config current configuration ( #see config_file_init() ) + * \param id driver name. + * \param visual_type #see @ref visual_types + * \param visual visual type dependant data pointer. * \brief load a specific video output plugin + * \sa vo_driver_t, visual_types */ vo_driver_t *xine_load_video_output_plugin(config_values_t *config, - char *id, int visual_type, void *visual); + char *id, int visual_type, void *visual); /** - * \fn char **list_audio_output_plugins (void) + * \fn char **xine_list_audio_output_plugins (void) * \brief generate a list of all available audio output plugins * \return a list of available audio output plugins the list returned is sorted by plugin priority */ - char **xine_list_audio_output_plugins (void); /** - * \fn ao_functions_t *load_audio_output_plugin(config_values_t *config, char *id) - * \brief load a specific audio output plugin + * \fn ao_functions_t *xine_load_audio_output_plugin(config_values_t *config, char *id) + * \param config current configuration ( #see config_file_init() ) + * \param id driver name. + * \brief load a specific audio output plugin. + * \sa ao_functions_t */ - ao_functions_t *xine_load_audio_output_plugin(config_values_t *config, char *id); -/** @} end of loadpluginsgroup */ + /** @} end of loadplugins_group */ -#define XINE_PLUGINDIR "@XINE_PLUGINPATH@" -#define XINE_SKINDIR "@XINE_SKINPATH@" + /** + * \defgroup event_group Sending events + * Event dispatcher mechanism + * @{ + */ -/** @} end of xine_api */ +#ifdef DOC_HIDDEN /** - * @defgroup eventgroup Sending events - * Event dispatcher mechanism - * @{ + * Opaque data type. + * \sa event_listener_t, xine_send_event */ +typedef void event_t; +#endif /** * Event listener callback. + * \sa xine_register_event_listener, xine_remove_event_listener */ typedef void (*event_listener_t) (xine_t *xine, event_t *event, void *data); /** - * \fn xine_register_event_listener(event_listener_t *listener) + * \fn int xine_register_event_listener(xine_t *self, event_listener_t listener) + * \param self Current xine engine configuration ( #see xine_init() ) + * \param listener callback function. * \brief registers an event listener callback. * \return 0 if the listener was registerd, non-zero if it could not. + * \sa event_listener_t */ - -int xine_register_event_listener(xine_t *self, event_listener_t *listener); +int xine_register_event_listener(xine_t *self, event_listener_t listener); /** - * \fn xine_remove_event_listener(event_listener_t *listener) + * \fn int xine_remove_event_listener(xine_t *self, event_listener_t listener) + * \param self Current xine engine configuration ( #see xine_init() ) + * \param listener callback function. * \brief Attempts to remove a registered event listener. * \return 0 if the listener was removes, non-zero if it wasn't (e.g. not found). + * \sa event_listener_t */ - -int xine_remove_event_listener(xine_t *self, event_listener_t *listener); +int xine_remove_event_listener(xine_t *self, event_listener_t listener); /** - * \fn xine_send_event(event_t *event) + * \fn void xine_send_event(xine_t *self, event_t *event, void *data) + * \param self Current xine engine configuration ( #see xine_init() ) + * \param event FILLME + * \param data FILLME. * \brief sends an event to all listeners. + * \sa event_t */ - void xine_send_event(xine_t *self, event_t *event, void *data); -/** @} end of eventgroup */ + /** @} end of event_group */ + + /** @} end of xine_api */ #ifdef __cplusplus } |