summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-04-03 00:38:22 +0200
committerDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-04-03 00:38:22 +0200
commit0ed2cd4f34189ec303dfac5a30de0abae0decba8 (patch)
tree7a8d08d25ca7c81daa9d6cd65fd4f633fd676b41 /include
parent6081bc9a06ee97333769f77a9e5c18a15afb29da (diff)
parent3dd7d925c2feb7868a49e7a1a0b953a5aab233f0 (diff)
downloadxine-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.in106
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