diff options
| author | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-04-03 00:38:22 +0200 |
|---|---|---|
| committer | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-04-03 00:38:22 +0200 |
| commit | 0ed2cd4f34189ec303dfac5a30de0abae0decba8 (patch) | |
| tree | 7a8d08d25ca7c81daa9d6cd65fd4f633fd676b41 /include | |
| parent | 6081bc9a06ee97333769f77a9e5c18a15afb29da (diff) | |
| parent | 3dd7d925c2feb7868a49e7a1a0b953a5aab233f0 (diff) | |
| download | xine-lib-0ed2cd4f34189ec303dfac5a30de0abae0decba8.tar.gz xine-lib-0ed2cd4f34189ec303dfac5a30de0abae0decba8.tar.bz2 | |
Merge changes happened in 1.1 development.
Diffstat (limited to 'include')
| -rw-r--r-- | include/.hgignore (renamed from include/.cvsignore) | 0 | ||||
| -rw-r--r-- | include/xine.h.in | 106 |
2 files changed, 103 insertions, 3 deletions
diff --git a/include/.cvsignore b/include/.hgignore index dac399d97..dac399d97 100644 --- a/include/.cvsignore +++ b/include/.hgignore diff --git a/include/xine.h.in b/include/xine.h.in index 2352cb2a9..e4210d314 100644 --- a/include/xine.h.in +++ b/include/xine.h.in @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine.h.in,v 1.160 2006/10/28 18:51:08 miguelfreitas Exp $ + * $Id: xine.h.in,v 1.168 2007/03/26 11:48:01 dgp85 Exp $ * * public xine-lib (libxine) interface and documentation * @@ -176,6 +176,7 @@ void xine_close_video_driver (xine_t *self, xine_video_port_t *driver) XINE_PRO #define XINE_VISUAL_TYPE_DIRECTX 7 /* used by the win32/msvc port */ #define XINE_VISUAL_TYPE_CACA 8 #define XINE_VISUAL_TYPE_MACOSX 9 +#define XINE_VISUAL_TYPE_XCB 11 /* * free all resources, close all plugins, close engine. @@ -804,7 +805,7 @@ void xine_vlog(xine_t *self, int buf, #endif /* get log messages of specified section */ -const char *const *xine_get_log (xine_t *self, int buf) XINE_PROTECTED; +char *const *xine_get_log (xine_t *self, int buf) XINE_PROTECTED; /* log callback will be called whenever something is logged */ typedef void (*xine_log_cb_t) (void *user_data, int section); @@ -843,6 +844,8 @@ int xine_get_status (xine_stream_t *stream) XINE_PROTECTED; * try to find out audio/spu language of given channel * (use -1 for current channel) * + * lang must point to a buffer of at least XINE_LANG_MAX bytes + * * returns 1 on success, 0 on failure */ int xine_get_audio_lang (xine_stream_t *stream, int channel, @@ -1192,6 +1195,82 @@ typedef struct { } x11_visual_t; /* + * this is the visual data struct any xcb gui + * must supply to the xine_open_video_driver call + * ("data" parameter) + */ +typedef struct { + + /* some information about the display */ + void *connection; /* xcb_connection_t */ + void *screen; /* xcb_screen_t */ + + /* window to display the video in / on */ + unsigned int window; /* xcb_window_t */ + + void *user_data; + + /* + * dest size callback + * + * this will be called by the video driver to find out + * how big the video output area size will be for a + * given video size. The ui should _not_ adjust it's + * video out area, just do some calculations and return + * the size. This will be called for every frame, ui + * implementation should be fast. + * dest_pixel_aspect should be set to the used display pixel aspect. + * NOTE: Semantics has changed: video_width and video_height + * are no longer pixel aspect corrected. Get the old semantics + * in the UI with + * *dest_pixel_aspect = display_pixel_aspect; + * if (video_pixel_aspect >= display_pixel_aspect) + * video_width = video_width * video_pixel_aspect / display_pixel_aspect + .5; + * else + * video_height = video_height * display_pixel_aspect / video_pixel_aspect + .5; + */ + void (*dest_size_cb) (void *user_data, + int video_width, int video_height, + double video_pixel_aspect, + int *dest_width, int *dest_height, + double *dest_pixel_aspect); + + /* + * frame output callback + * + * this will be called by the video driver for every frame + * it's about to draw. ui can adapt it's size if necessary + * here. + * note: the ui doesn't have to adjust itself to this + * size, this is just to be taken as a hint. + * ui must return the actual size of the video output + * area and the video output driver will do it's best + * to adjust the video frames to that size (while + * preserving aspect ratio and stuff). + * dest_x, dest_y: offset inside window + * dest_width, dest_height: available drawing space + * dest_pixel_aspect: display pixel aspect + * win_x, win_y: window absolute screen position + * NOTE: Semantics has changed: video_width and video_height + * are no longer pixel aspect corrected. Get the old semantics + * in the UI with + * *dest_pixel_aspect = display_pixel_aspect; + * if (video_pixel_aspect >= display_pixel_aspect) + * video_width = video_width * video_pixel_aspect / display_pixel_aspect + .5; + * else + * video_height = video_height * display_pixel_aspect / video_pixel_aspect + .5; + */ + void (*frame_output_cb) (void *user_data, + int video_width, int video_height, + double video_pixel_aspect, + int *dest_x, int *dest_y, + int *dest_width, int *dest_height, + double *dest_pixel_aspect, + int *win_x, int *win_y); + +} xcb_visual_t; + +/* * this is the visual data struct any fb gui * may supply to the xine_open_video_driver call * ("data" parameter) to get frame_output_cd calls @@ -1313,6 +1392,12 @@ xine_health_check_t* xine_health_check(xine_health_check_t*, int check_num) XINE #define XINE_CONFIG_TYPE_NUM 4 #define XINE_CONFIG_TYPE_BOOL 5 +/* For the string type (1.1.4 and later). These are stored in num_value. */ +#define XINE_CONFIG_STRING_IS_STRING 0 +#define XINE_CONFIG_STRING_IS_FILENAME 1 +#define XINE_CONFIG_STRING_IS_DEVICE_NAME 2 +#define XINE_CONFIG_STRING_IS_DIRECTORY_NAME 3 + typedef struct xine_cfg_entry_s xine_cfg_entry_t; typedef void (*xine_config_cb_t) (void *user_data, @@ -1334,7 +1419,10 @@ struct xine_cfg_entry_s { void *dummy; #endif - /* common to range, enum, num, bool: */ + /* common to range, enum, num, bool; + * num_value is also used by string to indicate what's required: + * plain string, file name, device name, directory name + */ int num_value; int num_default; @@ -1377,6 +1465,16 @@ const char *xine_config_register_string (xine_t *self, xine_config_cb_t changed_cb, void *cb_data) XINE_PROTECTED; +const char *xine_config_register_filename (xine_t *self, + const char *key, + const char *def_value, + int req_type, /* XINE_CONFIG_STRING_IS_* */ + const char *description, + const char *help, + int exp_level, + xine_config_cb_t changed_cb, + void *cb_data) XINE_PROTECTED; + int xine_config_register_range (xine_t *self, const char *key, int def_value, @@ -1484,6 +1582,7 @@ void xine_config_reset (xine_t *self) XINE_PROTECTED; #define XINE_EVENT_SPU_BUTTON 11 /* the mouse pointer enter/leave a button */ #define XINE_EVENT_DROPPED_FRAMES 12 /* number of dropped frames is too high */ #define XINE_EVENT_MRL_REFERENCE_EXT 13 /* demuxer->frontend: MRL reference(s) for the real stream */ +#define XINE_EVENT_AUDIO_AMP_LEVEL 14 /* report current audio amp level (l/r/mute) */ /* input events coming from frontend */ @@ -1561,6 +1660,7 @@ void xine_config_reset (xine_t *self) XINE_PROTECTED; #define XINE_EVENT_VDR_MUTE 331 #define XINE_EVENT_VDR_AUDIO 332 #define XINE_EVENT_VDR_INFO 333 +#define XINE_EVENT_VDR_CHANNELPREVIOUS 334 /* some space for further keys */ #define XINE_EVENT_VDR_SETVIDEOWINDOW 350 #define XINE_EVENT_VDR_FRAMESIZECHANGED 351 |
