summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/xine.h15
-rw-r--r--include/xine/Makefile.am2
-rw-r--r--include/xine/audio_decoder.h22
-rw-r--r--include/xine/audio_out.h20
-rw-r--r--include/xine/buffer.h9
-rw-r--r--include/xine/configfile.h6
-rw-r--r--include/xine/demux.h17
-rw-r--r--include/xine/input_plugin.h27
-rw-r--r--include/xine/metronom.h9
-rw-r--r--include/xine/os_types.h109
-rw-r--r--include/xine/osd.h6
-rw-r--r--include/xine/plugin_catalog.h25
-rw-r--r--include/xine/post.h33
-rw-r--r--include/xine/spu_decoder.h21
-rw-r--r--include/xine/vdr.h616
-rw-r--r--include/xine/video_decoder.h23
-rw-r--r--include/xine/video_out.h28
-rw-r--r--include/xine/video_overlay.h6
-rw-r--r--include/xine/vo_scale.h8
-rw-r--r--include/xine/xine_buffer.h6
-rw-r--r--include/xine/xine_plugin.h4
-rw-r--r--include/xine/xineutils.h36
-rw-r--r--include/xine/xmllexer.h1
23 files changed, 887 insertions, 162 deletions
diff --git a/include/xine.h b/include/xine.h
index da1d394a3..17b8cfbf6 100644
--- a/include/xine.h
+++ b/include/xine.h
@@ -55,12 +55,7 @@ extern "C" {
#include <windowsx.h>
#endif
-#ifdef XINE_COMPILE
-#include <inttypes.h>
-#else
#include <xine/os_types.h>
-#endif
-
#include <xine/attributes.h>
#include <xine/version.h>
@@ -712,14 +707,14 @@ void xine_post_dispose(xine_t *xine, xine_post_t *self) XINE_PROTECTED;
/* defines a single parameter entry. */
typedef struct {
int type; /* POST_PARAM_TYPE_xxx */
- char *name; /* name of this parameter */
+ const char *name; /* name of this parameter */
int size; /* sizeof(parameter) */
int offset; /* offset in bytes from struct ptr */
char **enum_values; /* enumeration (first=0) or NULL */
double range_min; /* minimum value */
double range_max; /* maximum value */
int readonly; /* 0 = read/write, 1=read-only */
- char *description; /* user-friendly description */
+ const char *description; /* user-friendly description */
} xine_post_api_parameter_t;
/* description of parameters struct (params). */
@@ -1340,9 +1335,9 @@ typedef struct {
struct xine_health_check_s {
const char* cdrom_dev;
const char* dvd_dev;
- char* msg;
- char* title;
- char* explanation;
+ const char* msg;
+ const char* title;
+ const char* explanation;
int status;
};
diff --git a/include/xine/Makefile.am b/include/xine/Makefile.am
index 2861460be..cc086dfaf 100644
--- a/include/xine/Makefile.am
+++ b/include/xine/Makefile.am
@@ -8,4 +8,4 @@ xineinclude_HEADERS = version.h buffer.h metronom.h configfile.h vo_scale.h \
io_helper.h broadcaster.h info_helper.h refcounter.h alphablend.h \
demux.h input_plugin.h attributes.h compat.h xine_buffer.h \
xineutils.h xmllexer.h xmlparser.h list.h array.h sorted_array.h \
- pool.h ring_buffer.h
+ pool.h ring_buffer.h os_types.h vdr.h
diff --git a/include/xine/audio_decoder.h b/include/xine/audio_decoder.h
index 307692b81..49194e290 100644
--- a/include/xine/audio_decoder.h
+++ b/include/xine/audio_decoder.h
@@ -23,12 +23,11 @@
#ifndef HAVE_AUDIO_DECODER_H
#define HAVE_AUDIO_DECODER_H
+#include <xine/os_types.h>
+#include <xine/buffer.h>
+
#ifdef XINE_COMPILE
-# include <inttypes.h>
-# include "buffer.h"
-#else
-# include <xine/os_types.h>
-# include <xine/buffer.h>
+# include <xine/plugin_catalog.h>
#endif
#define AUDIO_DECODER_IFACE_VERSION 16
@@ -98,8 +97,17 @@ struct audio_decoder_s {
*/
void (*dispose) (audio_decoder_t *this);
- void *node; /* used by plugin loader */
-
+ /**
+ * @brief Pointer to the loaded plugin node.
+ *
+ * Used by the plugins loader. It's an opaque type when using the
+ * structure outside of xine's build.
+ */
+#ifdef XINE_COMPILE
+ plugin_node_t *node;
+#else
+ void *node;
+#endif
};
#endif
diff --git a/include/xine/audio_out.h b/include/xine/audio_out.h
index bd1b910df..b720110bf 100644
--- a/include/xine/audio_out.h
+++ b/include/xine/audio_out.h
@@ -24,18 +24,14 @@
extern "C" {
#endif
-#if defined(XINE_COMPILE)
-#include <inttypes.h>
-#include "metronom.h"
-#include "configfile.h"
-#include "xineutils.h"
-#else
#include <xine/os_types.h>
#include <xine/metronom.h>
#include <xine/configfile.h>
#include <xine/xineutils.h>
-#endif
+#ifdef XINE_COMPILE
+# include <xine/plugin_catalog.h>
+#endif
#define AUDIO_OUT_IFACE_VERSION 9
@@ -126,7 +122,17 @@ struct ao_driver_s {
*/
int (*control) (ao_driver_t *, int cmd, /* arg */ ...);
+ /**
+ * @brief Pointer to the loaded plugin node.
+ *
+ * Used by the plugins loader. It's an opaque type when using the
+ * structure outside of xine's build.
+ */
+#ifdef XINE_COMPILE
+ plugin_node_t *node;
+#else
void *node;
+#endif
};
typedef struct ao_format_s ao_format_t;
diff --git a/include/xine/buffer.h b/include/xine/buffer.h
index ce209c9da..4af718a1b 100644
--- a/include/xine/buffer.h
+++ b/include/xine/buffer.h
@@ -43,13 +43,8 @@ extern "C" {
#include <pthread.h>
#include <sys/types.h>
-#ifdef XINE_COMPILE
-# include <inttypes.h>
-# include "attributes.h"
-#else
-# include <xine/os_types.h>
-# include <xine/attributes.h>
-#endif
+#include <xine/os_types.h>
+#include <xine/attributes.h>
#define BUF_MAX_CALLBACKS 5
diff --git a/include/xine/configfile.h b/include/xine/configfile.h
index 22a544c00..724a75245 100644
--- a/include/xine/configfile.h
+++ b/include/xine/configfile.h
@@ -29,11 +29,7 @@ extern "C" {
#include <pthread.h>
-#ifdef XINE_COMPILE
-# include "xine.h"
-#else
-# include <xine.h>
-#endif
+#include <xine.h>
#define CONFIG_FILE_VERSION 2
diff --git a/include/xine/demux.h b/include/xine/demux.h
index 476c80b8e..35a5c9a82 100644
--- a/include/xine/demux.h
+++ b/include/xine/demux.h
@@ -25,6 +25,10 @@
#include <xine/buffer.h>
#include <xine/xine_internal.h>
+#ifdef XINE_COMPILE
+# include <xine/plugin_catalog.h>
+#endif
+
#define DEMUXER_PLUGIN_IFACE_VERSION 27
#define DEMUX_OK 0
@@ -169,8 +173,17 @@ struct demux_plugin_s {
demux_class_t *demux_class;
- void *node; /* used by plugin loader */
-
+ /**
+ * @brief Pointer to the loaded plugin node.
+ *
+ * Used by the plugins loader. It's an opaque type when using the
+ * structure outside of xine's build.
+ */
+#ifdef XINE_COMPILE
+ plugin_node_t *node;
+#else
+ void *node;
+#endif
} ;
#define default_demux_plugin_dispose (void (*) (demux_plugin_t *this))free
diff --git a/include/xine/input_plugin.h b/include/xine/input_plugin.h
index 2917721c9..e434dc5a8 100644
--- a/include/xine/input_plugin.h
+++ b/include/xine/input_plugin.h
@@ -23,16 +23,13 @@
#include <sys/types.h>
+#include <xine/os_types.h>
+#include <xine/xineutils.h>
+#include <xine/buffer.h>
+#include <xine/configfile.h>
+
#ifdef XINE_COMPILE
-# include <inttypes.h>
-# include "xineutils.h"
-# include "buffer.h"
-# include "configfile.h"
-#else
-# include <xine/os_types.h>
-# include <xine/xineutils.h>
-# include <xine/buffer.h>
-# include <xine/configfile.h>
+# include <xine/plugin_catalog.h>
#endif
#define INPUT_PLUGIN_IFACE_VERSION 18
@@ -228,7 +225,17 @@ struct input_plugin_s {
input_class_t *input_class;
- void *node; /* used by plugin loader */
+ /**
+ * @brief Pointer to the loaded plugin node.
+ *
+ * Used by the plugins loader. It's an opaque type when using the
+ * structure outside of xine's build.
+ */
+#ifdef XINE_COMPILE
+ plugin_node_t *node;
+#else
+ void *node;
+#endif
};
diff --git a/include/xine/metronom.h b/include/xine/metronom.h
index 77919f16e..df08a0058 100644
--- a/include/xine/metronom.h
+++ b/include/xine/metronom.h
@@ -46,13 +46,8 @@ extern "C" {
#include <pthread.h>
-#ifdef XINE_COMPILE
-# include "video_out.h"
-# include "xine.h"
-#else
-# include <xine/video_out.h>
-# include <xine.h>
-#endif
+#include <xine/video_out.h>
+#include <xine.h>
typedef struct metronom_s metronom_t ;
typedef struct metronom_clock_s metronom_clock_t;
diff --git a/include/xine/os_types.h b/include/xine/os_types.h
new file mode 100644
index 000000000..75ce9b8a5
--- /dev/null
+++ b/include/xine/os_types.h
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2004-2006 the xine project
+ *
+ * This file is part of xine, a free 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * Platform dependent types needed by public xine.h.
+ * Types not needed by xine.h are specified in os_internal.h.
+ *
+ * Heavily based on os_types.h from OggVorbis (BSD License),
+ * not tested on all platforms with xine.
+ */
+
+#ifndef XINE_OS_TYPES_H
+#define XINE_OS_TYPES_H
+
+#if defined(_WIN32) && !defined(__GNUC__)
+
+ /* MSVC/Borland */
+ typedef __int8 int8_t;
+ typedef unsigned __int8 uint8_t;
+ typedef __int16 int16_t;
+ typedef unsigned __int16 uint16_t;
+ typedef __int32 int32_t;
+ typedef unsigned __int32 uint32_t;
+ typedef __int64 int64_t;
+ typedef unsigned __int64 uint64_t;
+
+#elif defined(__MACOS__)
+
+# include <sys/types.h>
+ typedef SInt8 int8_t;
+ typedef UInt8 uint8_t;
+ typedef SInt16 int16_t;
+ typedef UInt16 uint16_t;
+ typedef SInt32 int32_t;
+ typedef UInt32 uint32_t;
+ typedef SInt64 int64_t;
+ typedef UInt64 uint64_t;
+
+#elif defined(__MACOSX__) /* MacOS X Framework build */
+
+# include <sys/types.h>
+ typedef u_int8_t uint8_t;
+ typedef u_int16_t uint16_t;
+ typedef u_int32_t uint32_t;
+ typedef u_int64_t uint64_t;
+
+#elif defined (__EMX__)
+
+ /* OS/2 GCC */
+ typedef signed char int8_t;
+ typedef unsigned char uint8_t;
+ typedef short int16_t;
+ typedef unsigned short uint16_t;
+ typedef int int32_t;
+ typedef unsigned int uint32_t;
+ typedef long long int64_t;
+ typedef unsigned long long int64_t;
+
+#elif defined (DJGPP)
+
+ /* DJGPP */
+ typedef signed char int8_t;
+ typedef unsigned char uint8_t;
+ typedef short int16_t;
+ typedef unsigned short uint16_t;
+ typedef int int32_t;
+ typedef unsigned int uint32_t;
+ typedef long long int64_t;
+ typedef unsigned long long uint64_t;
+
+#elif defined(R5900)
+
+ /* PS2 EE */
+ typedef signed char int8_t;
+ typedef unsigned char uint8_t;
+ typedef short int16_t;
+ typedef unsigned short int16_t;
+ typedef int int32_t;
+ typedef unsigned uint32_t;
+ typedef long int64_t;
+ typedef unsigned long int64_t;
+
+#else
+
+ /*
+ * CygWin: _WIN32 & __GNUC__
+ * BeOS: __BEOS__
+ * Linux, Solaris, Mac and others
+ */
+# include <inttypes.h>
+
+#endif
+
+#endif /* XINE_OS_TYPES_H */
diff --git a/include/xine/osd.h b/include/xine/osd.h
index ed4e2434b..4e34030ee 100644
--- a/include/xine/osd.h
+++ b/include/xine/osd.h
@@ -27,11 +27,7 @@
# include <iconv.h>
#endif
-#ifdef XINE_COMPILE
-# include "video_overlay.h"
-#else
-# include <xine/video_overlay.h>
-#endif
+#include <xine/video_overlay.h>
typedef struct osd_object_s osd_object_t;
typedef struct osd_renderer_s osd_renderer_t;
diff --git a/include/xine/plugin_catalog.h b/include/xine/plugin_catalog.h
index fd9afb959..be02c3649 100644
--- a/include/xine/plugin_catalog.h
+++ b/include/xine/plugin_catalog.h
@@ -23,13 +23,8 @@
#ifndef _PLUGIN_CATALOG_H
#define _PLUGIN_CATALOG_H
-#ifdef XINE_COMPILE
-# include "xine_plugin.h"
-# include "xineutils.h"
-#else
-# include <xine/xine_plugin.h>
-# include <xine/xineutils.h>
-#endif
+#include <xine/xine_plugin.h>
+#include <xine/xineutils.h>
#define DECODER_MAX 128
#define PLUGIN_MAX 256
@@ -76,20 +71,4 @@ struct plugin_catalog_s {
};
typedef struct plugin_catalog_s plugin_catalog_t;
-/*
- * load plugins into catalog
- *
- * all input+demux plugins will be fully loaded+initialized
- * decoder plugins are loaded on demand
- * video/audio output plugins have special load/probe functions
- */
-void _x_scan_plugins (xine_t *this) XINE_PROTECTED;
-
-
-/*
- * dispose all currently loaded plugins (shutdown)
- */
-
-void _x_dispose_plugins (xine_t *this) XINE_PROTECTED;
-
#endif
diff --git a/include/xine/post.h b/include/xine/post.h
index 1995ca82f..10844d03a 100644
--- a/include/xine/post.h
+++ b/include/xine/post.h
@@ -23,21 +23,17 @@
#ifndef XINE_POST_H
#define XINE_POST_H
+#include <xine.h>
+#include <xine/video_out.h>
+#include <xine/audio_out.h>
+#include <xine/xine_internal.h>
+#include <xine/xineutils.h>
+
#ifdef XINE_COMPILE
-# include "xine.h"
-# include "video_out.h"
-# include "audio_out.h"
-# include "xine_internal.h"
-# include "xineutils.h"
-#else
-# include <xine.h>
-# include <xine/video_out.h>
-# include <xine/audio_out.h>
-# include <xine/xine_internal.h>
-# include <xine/xineutils.h>
+# include <xine/plugin_catalog.h>
#endif
-#define POST_PLUGIN_IFACE_VERSION 9
+#define POST_PLUGIN_IFACE_VERSION 10
typedef struct post_class_s post_class_t;
@@ -119,8 +115,17 @@ struct post_plugin_s {
const char **input_ids;
const char **output_ids;
- /* used by plugin loader */
- void *node;
+ /**
+ * @brief Pointer to the loaded plugin node.
+ *
+ * Used by the plugins loader. It's an opaque type when using the
+ * structure outside of xine's build.
+ */
+#ifdef XINE_COMPILE
+ plugin_node_t *node;
+#else
+ void *node;
+#endif
/* has dispose been called */
int dispose_pending;
diff --git a/include/xine/spu_decoder.h b/include/xine/spu_decoder.h
index dcf9107f7..d36b5b691 100644
--- a/include/xine/spu_decoder.h
+++ b/include/xine/spu_decoder.h
@@ -24,12 +24,11 @@
#ifndef HAVE_SPU_API_H
#define HAVE_SPU_API_H
+#include <xine/os_types.h>
+#include <xine/buffer.h>
+
#ifdef XINE_COMPILE
-# include <inttypes.h>
-# include "buffer.h"
-#else
-# include <xine/os_types.h>
-# include <xine/buffer.h>
+# include <xine/plugin_catalog.h>
#endif
#define SPU_DECODER_IFACE_VERSION 17
@@ -118,7 +117,17 @@ struct spu_decoder_s {
*/
void (*set_button) (spu_decoder_t *this_gen, int32_t button, int32_t mode);
- void *node; /* used by plugin loader */
+ /**
+ * @brief Pointer to the loaded plugin node.
+ *
+ * Used by the plugins loader. It's an opaque type when using the
+ * structure outside of xine's build.
+ */
+#ifdef XINE_COMPILE
+ plugin_node_t *node;
+#else
+ void *node;
+#endif
};
diff --git a/include/xine/vdr.h b/include/xine/vdr.h
new file mode 100644
index 000000000..5102d7f77
--- /dev/null
+++ b/include/xine/vdr.h
@@ -0,0 +1,616 @@
+/*
+ * Copyright (C) 2000-2004 the xine project
+ *
+ * This file is part of xine, a free 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ */
+
+#ifndef __VDR_H
+#define __VDR_H
+
+
+#define XINE_VDR_VERSION 801
+
+
+enum funcs
+{
+ func_unknown = -1
+ , func_nop
+ , func_osd_new
+ , func_osd_free
+ , func_osd_show
+ , func_osd_hide
+ , func_osd_set_position
+ , func_osd_draw_bitmap
+ , func_set_color
+ , func_clear
+ , func_mute
+ , func_set_volume
+ , func_set_speed
+ , func_set_prebuffer
+ , func_metronom
+ , func_start
+ , func_wait
+ , func_setup
+ , func_grab_image
+ , func_get_pts
+ , func_flush
+ , func_first_frame
+ , func_still_frame
+ , func_video_size
+ , func_set_video_window
+ , func_osd_flush
+ , func_play_external
+ , func_key
+ , func_frame_size
+ , func_reset_audio
+ , func_select_audio
+ , func_trick_speed_mode
+ , func_get_version
+};
+
+enum keys
+{
+ key_none,
+ key_up,
+ key_down,
+ key_menu,
+ key_ok,
+ key_back,
+ key_left,
+ key_right,
+ key_red,
+ key_green,
+ key_yellow,
+ key_blue,
+ key_0,
+ key_1,
+ key_2,
+ key_3,
+ key_4,
+ key_5,
+ key_6,
+ key_7,
+ key_8,
+ key_9,
+ key_play,
+ key_pause,
+ key_stop,
+ key_record,
+ key_fast_fwd,
+ key_fast_rew,
+ key_power,
+ key_channel_plus,
+ key_channel_minus,
+ key_volume_plus,
+ key_volume_minus,
+ key_mute,
+ key_schedule,
+ key_channels,
+ key_timers,
+ key_recordings,
+ key_setup,
+ key_commands,
+ key_user1,
+ key_user2,
+ key_user3,
+ key_user4,
+ key_user5,
+ key_user6,
+ key_user7,
+ key_user8,
+ key_user9,
+ key_audio,
+ key_info,
+ key_channel_previous,
+ key_next,
+ key_previous,
+ key_subtitles,
+};
+
+
+
+typedef struct __attribute__((packed)) data_header_s
+{
+ uint32_t func:8;
+ uint32_t len:24;
+}
+data_header_t;
+
+
+
+typedef data_header_t result_header_t;
+typedef data_header_t event_header_t;
+
+
+
+typedef struct __attribute__((packed)) data_nop_s
+{
+ data_header_t header;
+}
+data_nop_t;
+
+
+
+typedef struct __attribute__((packed)) data_osd_new_s
+{
+ data_header_t header;
+
+ uint8_t window;
+ int16_t x;
+ int16_t y;
+ uint16_t width;
+ uint16_t height;
+}
+data_osd_new_t;
+
+
+
+typedef struct __attribute__((packed)) data_osd_free_s
+{
+ data_header_t header;
+
+ uint8_t window;
+}
+data_osd_free_t;
+
+
+
+typedef struct __attribute__((packed)) data_osd_show_s
+{
+ data_header_t header;
+
+ uint8_t window;
+}
+data_osd_show_t;
+
+
+
+typedef struct __attribute__((packed)) data_osd_hide_s
+{
+ data_header_t header;
+
+ uint8_t window;
+}
+data_osd_hide_t;
+
+
+
+typedef struct __attribute__((packed)) data_osd_flush_s
+{
+ data_header_t header;
+}
+data_osd_flush_t;
+
+
+
+typedef struct __attribute__((packed)) data_play_external_s
+{
+ data_header_t header;
+}
+data_play_external_t;
+
+
+
+typedef struct __attribute__((packed)) data_osd_set_position_s
+{
+ data_header_t header;
+
+ uint8_t window;
+ int16_t x;
+ int16_t y;
+}
+data_osd_set_position_t;
+
+
+
+typedef struct __attribute__((packed)) data_osd_draw_bitmap_s
+{
+ data_header_t header;
+
+ uint8_t window;
+ int16_t x;
+ int16_t y;
+ uint16_t width;
+ uint16_t height;
+}
+data_osd_draw_bitmap_t;
+
+
+
+typedef struct __attribute__((packed)) data_set_color_s
+{
+ data_header_t header;
+
+ uint8_t window;
+ uint8_t index;
+ uint8_t num;
+}
+data_set_color_t;
+
+
+
+typedef struct __attribute__((packed)) data_flush_s
+{
+ data_header_t header;
+
+ int32_t ms_timeout;
+ uint8_t just_wait;
+}
+data_flush_t;
+
+
+
+typedef struct __attribute__((packed)) result_flush_s
+{
+ result_header_t header;
+
+ uint8_t timed_out;
+}
+result_flush_t;
+
+
+
+typedef struct __attribute__((packed)) data_clear_s
+{
+ data_header_t header;
+
+ int32_t n;
+ int8_t s;
+}
+data_clear_t;
+
+
+
+typedef struct __attribute__((packed)) data_mute_s
+{
+ data_header_t header;
+
+ uint8_t mute;
+}
+data_mute_t;
+
+
+
+typedef struct __attribute__((packed)) data_set_volume_s
+{
+ data_header_t header;
+
+ uint8_t volume;
+}
+data_set_volume_t;
+
+
+
+typedef struct __attribute__((packed)) data_set_speed_s
+{
+ data_header_t header;
+
+ int32_t speed;
+}
+data_set_speed_t;
+
+
+
+typedef struct __attribute__((packed)) data_set_prebuffer_s
+{
+ data_header_t header;
+
+ uint32_t prebuffer;
+}
+data_set_prebuffer_t;
+
+
+
+typedef struct __attribute__((packed)) data_metronom_s
+{
+ data_header_t header;
+
+ int64_t pts;
+ uint32_t flags;
+}
+data_metronom_t;
+
+
+
+typedef struct __attribute__((packed)) data_start_s
+{
+ data_header_t header;
+}
+data_start_t;
+
+
+
+typedef struct __attribute__((packed)) data_wait_s
+{
+ data_header_t header;
+}
+data_wait_t;
+
+
+
+typedef struct __attribute__((packed)) result_wait_s
+{
+ result_header_t header;
+}
+result_wait_t;
+
+
+
+#define XINE_VDR_VOLUME_IGNORE 0
+#define XINE_VDR_VOLUME_CHANGE_HW 1
+#define XINE_VDR_VOLUME_CHANGE_SW 2
+
+#define XINE_VDR_MUTE_IGNORE 0
+#define XINE_VDR_MUTE_EXECUTE 1
+#define XINE_VDR_MUTE_SIMULATE 2
+
+typedef struct __attribute__((packed)) data_setup_s
+{
+ data_header_t header;
+
+ uint8_t osd_unscaled_blending;
+ uint8_t volume_mode;
+ uint8_t mute_mode;
+ uint16_t image4_3_zoom_x;
+ uint16_t image4_3_zoom_y;
+ uint16_t image16_9_zoom_x;
+ uint16_t image16_9_zoom_y;
+}
+data_setup_t;
+
+
+
+typedef struct __attribute__((packed)) data_first_frame_s
+{
+ data_header_t header;
+}
+data_first_frame_t;
+
+
+
+typedef struct __attribute__((packed)) data_still_frame_s
+{
+ data_header_t header;
+}
+data_still_frame_t;
+
+
+
+typedef struct __attribute__((packed)) data_set_video_window_s
+{
+ data_header_t header;
+
+ uint32_t x;
+ uint32_t y;
+ uint32_t w;
+ uint32_t h;
+ uint32_t w_ref;
+ uint32_t h_ref;
+}
+data_set_video_window_t;
+
+
+
+typedef struct __attribute__((packed)) data_grab_image_s
+{
+ data_header_t header;
+}
+data_grab_image_t;
+
+
+
+typedef struct __attribute__((packed)) result_grab_image_s
+{
+ result_header_t header;
+
+ int32_t width;
+ int32_t height;
+ int32_t ratio;
+ int32_t format;
+}
+result_grab_image_t;
+
+
+
+typedef struct __attribute__((packed)) data_get_pts_s
+{
+ data_header_t header;
+}
+data_get_pts_t;
+
+
+
+typedef struct __attribute__((packed)) result_get_pts_s
+{
+ result_header_t header;
+
+ int64_t pts;
+}
+result_get_pts_t;
+
+
+
+typedef struct __attribute__((packed)) data_get_version_s
+{
+ data_header_t header;
+}
+data_get_version_t;
+
+
+
+typedef struct __attribute__((packed)) result_get_version_s
+{
+ result_header_t header;
+
+ int32_t version;
+}
+result_get_version_t;
+
+
+
+typedef struct __attribute__((packed)) data_video_size_s
+{
+ data_header_t header;
+}
+data_video_size_t;
+
+
+
+typedef struct __attribute__((packed)) result_video_size_s
+{
+ result_header_t header;
+
+ int32_t left;
+ int32_t top;
+ int32_t width;
+ int32_t height;
+ int32_t ratio;
+ int32_t zoom_x;
+ int32_t zoom_y;
+}
+result_video_size_t;
+
+
+
+typedef struct __attribute__((packed)) data_reset_audio_s
+{
+ data_header_t header;
+}
+data_reset_audio_t;
+
+
+
+typedef struct __attribute__((packed)) event_key_s
+{
+ event_header_t header;
+
+ uint32_t key;
+}
+event_key_t;
+
+
+
+typedef struct __attribute__((packed)) event_frame_size_s
+{
+ event_header_t header;
+
+ int32_t left;
+ int32_t top;
+ int32_t width;
+ int32_t height;
+ int32_t zoom_x;
+ int32_t zoom_y;
+}
+event_frame_size_t;
+
+
+
+typedef struct __attribute__((packed)) event_play_external_s
+{
+ event_header_t header;
+
+ uint32_t key;
+}
+event_play_external_t;
+
+
+
+typedef struct __attribute__((packed)) data_select_audio_s
+{
+ data_header_t header;
+
+ uint8_t channels;
+}
+data_select_audio_t;
+
+
+
+typedef struct __attribute__((packed)) data_trick_speed_mode_s
+{
+ data_header_t header;
+
+ uint8_t on;
+}
+data_trick_speed_mode_t;
+
+
+
+typedef union __attribute__((packed)) data_union_u
+{
+ data_header_t header;
+ data_nop_t nop;
+ data_osd_new_t osd_new;
+ data_osd_free_t osd_free;
+ data_osd_show_t osd_show;
+ data_osd_hide_t osd_hide;
+ data_osd_set_position_t osd_set_position;
+ data_osd_draw_bitmap_t osd_draw_bitmap;
+ data_set_color_t set_color;
+ data_flush_t flush;
+ data_clear_t clear;
+ data_mute_t mute;
+ data_set_volume_t set_volume;
+ data_set_speed_t set_speed;
+ data_set_prebuffer_t set_prebuffer;
+ data_metronom_t metronom;
+ data_start_t start;
+ data_wait_t wait;
+ data_setup_t setup;
+ data_grab_image_t grab_image;
+ data_get_pts_t get_pts;
+ data_first_frame_t first_frame;
+ data_still_frame_t still_frame;
+ data_video_size_t video_size;
+ data_set_video_window_t set_video_window;
+ data_osd_flush_t osd_flush;
+ data_play_external_t play_external;
+ data_reset_audio_t reset_audio;
+ data_select_audio_t select_audio;
+ data_trick_speed_mode_t trick_speed_mode;
+ data_get_version_t get_version;
+}
+data_union_t;
+
+
+
+typedef union __attribute__((packed)) result_union_u
+{
+ result_header_t header;
+ result_grab_image_t grab_image;
+ result_get_pts_t get_pts;
+ result_flush_t flush;
+ result_video_size_t video_size;
+ result_get_version_t get_version;
+ result_wait_t wait;
+}
+result_union_t;
+
+
+
+typedef union __attribute__((packed)) event_union_u
+{
+ event_header_t header;
+ event_key_t key;
+ event_frame_size_t frame_size;
+ event_play_external_t play_external;
+}
+event_union_t;
+
+
+
+#endif /* __VDR_H */
+
diff --git a/include/xine/video_decoder.h b/include/xine/video_decoder.h
index 705efa3da..916cfe68b 100644
--- a/include/xine/video_decoder.h
+++ b/include/xine/video_decoder.h
@@ -23,12 +23,11 @@
#ifndef HAVE_VIDEO_DECODER_H
#define HAVE_VIDEO_DECODER_H
+#include <xine/os_types.h>
+#include <xine/buffer.h>
+
#ifdef XINE_COMPILE
-# include <inttypes.h>
-# include "buffer.h"
-#else
-# include <xine/os_types.h>
-# include <xine/buffer.h>
+# include <xine/plugin_catalog.h>
#endif
#define VIDEO_DECODER_IFACE_VERSION 19
@@ -103,9 +102,17 @@ struct video_decoder_s {
*/
void (*dispose) (video_decoder_t *this);
-
- void *node; /*used by plugin loader */
-
+ /**
+ * @brief Pointer to the loaded plugin node.
+ *
+ * Used by the plugins loader. It's an opaque type when using the
+ * structure outside of xine's build.
+ */
+#ifdef XINE_COMPILE
+ plugin_node_t *node;
+#else
+ void *node;
+#endif
};
#endif
diff --git a/include/xine/video_out.h b/include/xine/video_out.h
index 8efdae9f6..f34380af1 100644
--- a/include/xine/video_out.h
+++ b/include/xine/video_out.h
@@ -42,15 +42,13 @@ extern "C" {
#include <pthread.h>
+#include <xine.h>
+#include <xine/buffer.h>
+
#ifdef XINE_COMPILE
-# include "xine.h"
-# include "buffer.h"
-#else
-# include <xine.h>
-# include <xine/buffer.h>
+# include <xine/plugin_catalog.h>
#endif
-
typedef struct vo_frame_s vo_frame_t;
typedef struct vo_driver_s vo_driver_t;
typedef struct video_driver_class_s video_driver_class_t;
@@ -249,7 +247,11 @@ struct xine_video_port_s {
#define VO_PROP_WINDOW_HEIGHT 16 /* read-only */
#define VO_PROP_BUFS_IN_FIFO 17 /* read-only */
#define VO_PROP_NUM_STREAMS 18 /* read-only */
-#define VO_NUM_PROPERTIES 19
+#define VO_PROP_OUTPUT_WIDTH 19 /* read-only */
+#define VO_PROP_OUTPUT_HEIGHT 20 /* read-only */
+#define VO_PROP_OUTPUT_XOFFSET 21 /* read-only */
+#define VO_PROP_OUTPUT_YOFFSET 22 /* read-only */
+#define VO_NUM_PROPERTIES 23
/* number of colors in the overlay palette. Currently limited to 256
at most, because some alphablend functions use an 8-bit index into
@@ -359,7 +361,17 @@ struct vo_driver_s {
*/
void (*dispose) (vo_driver_t *self);
- void *node; /* needed by plugin_loader */
+ /**
+ * @brief Pointer to the loaded plugin node.
+ *
+ * Used by the plugins loader. It's an opaque type when using the
+ * structure outside of xine's build.
+ */
+#ifdef XINE_COMPILE
+ plugin_node_t *node;
+#else
+ void *node;
+#endif
};
struct video_driver_class_s {
diff --git a/include/xine/video_overlay.h b/include/xine/video_overlay.h
index 6bb529204..b45f5149e 100644
--- a/include/xine/video_overlay.h
+++ b/include/xine/video_overlay.h
@@ -21,11 +21,7 @@
#ifndef HAVE_VIDEO_OVERLAY_H
#define HAVE_VIDEO_OVERLAY_H
-#ifdef XINE_COMPILE
-# include "xine_internal.h"
-#else
-# include <xine/xine_internal.h>
-#endif
+#include <xine/xine_internal.h>
#ifdef __GNUC__
#define CLUT_Y_CR_CB_INIT(_y,_cr,_cb) {y: (_y), cr: (_cr), cb: (_cb)}
diff --git a/include/xine/vo_scale.h b/include/xine/vo_scale.h
index e502b2f62..686d53c22 100644
--- a/include/xine/vo_scale.h
+++ b/include/xine/vo_scale.h
@@ -33,11 +33,7 @@ extern "C" {
#include "config.h"
#endif
-#ifdef XINE_COMPILE
-# include "configfile.h"
-#else
-# include <xine/configfile.h>
-#endif
+#include <xine/configfile.h>
typedef struct {
int x, y;
@@ -187,7 +183,7 @@ void _x_vo_scale_translate_gui2video(vo_scale_t *self,
* Returns description of a given ratio code
*/
-char *_x_vo_scale_aspect_ratio_name(int a) XINE_PROTECTED;
+extern const char _x_vo_scale_aspect_ratio_name_table[][8] XINE_PROTECTED;
/*
* initialize rescaling struct
diff --git a/include/xine/xine_buffer.h b/include/xine/xine_buffer.h
index 84511bd1b..73699a2d2 100644
--- a/include/xine/xine_buffer.h
+++ b/include/xine/xine_buffer.h
@@ -50,11 +50,7 @@
#ifndef HAVE_XINE_BUFFER_H
#define HAVE_XINE_BUFFER_H
-#ifdef XINE_COMPILE
-# include <inttypes.h>
-#else
-# include <xine/os_types.h>
-#endif
+#include <xine/os_types.h>
/*
* returns an initialized pointer to a buffer.
diff --git a/include/xine/xine_plugin.h b/include/xine/xine_plugin.h
index 74e7523e9..2939b17a9 100644
--- a/include/xine/xine_plugin.h
+++ b/include/xine/xine_plugin.h
@@ -50,7 +50,7 @@
typedef struct {
uint8_t type; /* one of the PLUGIN_* constants above */
uint8_t API; /* API version supported by this plugin */
- char *id; /* a name that identifies this plugin */
+ const char *id; /* a name that identifies this plugin */
uint32_t version; /* version number, increased every release */
const void *special_info; /* plugin-type specific, see structs below */
void *(*init)(xine_t *, void *); /* init the plugin class */
@@ -70,7 +70,7 @@ typedef struct {
/* special_info for a decoder plugin */
typedef struct {
- uint32_t *supported_types; /* streamtypes this decoder can handle */
+ const uint32_t *supported_types; /* streamtypes this decoder can handle */
int priority;
} decoder_info_t;
diff --git a/include/xine/xineutils.h b/include/xine/xineutils.h
index a01f507f9..0ab6fdc07 100644
--- a/include/xine/xineutils.h
+++ b/include/xine/xineutils.h
@@ -33,32 +33,20 @@ extern "C" {
#include <stdarg.h>
#include <pthread.h>
-#ifdef XINE_COMPILE
-# include <inttypes.h>
-# include "attributes.h"
-# include "compat.h"
-# include "xmlparser.h"
-# include "xine_buffer.h"
-# include "configfile.h"
-# include "list.h"
-# include "array.h"
-# include "sorted_array.h"
+#ifdef WIN32
+# include <winsock.h>
#else
-# ifdef WIN32
-# include <winsock.h>
-# else
-# include <sys/time.h>
-# endif
-# include <xine/os_types.h>
-# include <xine/attributes.h>
-# include <xine/compat.h>
-# include <xine/xmlparser.h>
-# include <xine/xine_buffer.h>
-# include <xine/configfile.h>
-# include <xine/list.h>
-# include <xine/array.h>
-# include <xine/sorted_array.h>
+# include <sys/time.h>
#endif
+#include <xine/os_types.h>
+#include <xine/attributes.h>
+#include <xine/compat.h>
+#include <xine/xmlparser.h>
+#include <xine/xine_buffer.h>
+#include <xine/configfile.h>
+#include <xine/list.h>
+#include <xine/array.h>
+#include <xine/sorted_array.h>
#include <stdio.h>
#include <string.h>
diff --git a/include/xine/xmllexer.h b/include/xine/xmllexer.h
index 10bcc8676..e93cb69ff 100644
--- a/include/xine/xmllexer.h
+++ b/include/xine/xmllexer.h
@@ -53,6 +53,7 @@
/* public functions */
void lexer_init(const char * buf, int size) XINE_PROTECTED;
+int lexer_get_token_d(char ** tok, int * tok_size, int fixed) XINE_PROTECTED;
int lexer_get_token(char * tok, int tok_size) XINE_PROTECTED;
char *lexer_decode_entities (const char *tok) XINE_PROTECTED;