summaryrefslogtreecommitdiff
path: root/xine_frontend.h
diff options
context:
space:
mode:
Diffstat (limited to 'xine_frontend.h')
-rw-r--r--xine_frontend.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/xine_frontend.h b/xine_frontend.h
new file mode 100644
index 00000000..9bc5cc75
--- /dev/null
+++ b/xine_frontend.h
@@ -0,0 +1,100 @@
+/*
+ * xine_frontend.h:
+ *
+ * See the main source file 'xineliboutput.c' for copyright information and
+ * how to reach the author.
+ *
+ * $Id: xine_frontend.h,v 1.1 2006-06-03 09:50:54 phintuka Exp $
+ *
+ */
+
+#ifndef _XINE_FRONTEND_H
+#define _XINE_FRONTEND_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define FE_VERSION_STR "0.9.9"
+#define FE_VERSION 0x99 /*(((0)<<16) | ((9)<<8) | ((9)))*/
+
+typedef void (*fe_keypress_f)(char *keymap, char *name);
+
+typedef struct frontend_config_s frontend_config_t;
+typedef struct frontend_s frontend_t;
+
+#if 0
+struct frontend_config_s {
+ /* Display */
+ int width;
+ int height;
+ int fullscreen;
+ int modeswitch;
+ char *modeline;
+ int aspect;
+
+ char *video_port;
+
+ int scale_video;
+ int field_order;
+
+ fe_keypress_f keypresshandler;
+
+ /* Xine engine */
+ char *audio_driver;
+ char *audio_port;
+ char *video_driver;
+ int pes_buffers;
+ int priority;
+};
+#endif
+
+struct frontend_s {
+ /* Display */
+ int (*fe_display_open)(frontend_t*, int winwidth, int winheight,
+ int fullscreen,
+ int modeswitch, char *modeline, int aspect,
+ fe_keypress_f keypresshandler, char *video_port,
+ int scale_video, int field_order);
+ int (*fe_display_config)(frontend_t *, int width, int height,
+ int fullscreen,
+ int modeswitch, char *modeline,
+ int aspect, int scale_video, int field_order);
+ void (*fe_display_close)(frontend_t*);
+
+ /* Xine engine */
+ int (*xine_init)(frontend_t*, char *audio_driver, char *audio_port,
+ char *video_driver, int pes_buffers,
+ int priority, char *static_post);
+ int (*xine_open)(frontend_t*, char *mrl);
+ int (*xine_play)(frontend_t*);
+ int (*xine_stop)(frontend_t*);
+ void (*xine_close)(frontend_t*);
+ void (*xine_exit)(frontend_t*);
+
+ /* Execution control */
+ int (*fe_run)(frontend_t*);
+ void (*fe_interrupt)(frontend_t*);
+ void (*fe_free)(frontend_t*);
+
+ /* Data transfer */
+ int (*xine_is_finished)(frontend_t*);
+ int (*xine_osd_command)(frontend_t*, struct osd_command_s *cmd);
+ int (*xine_control)(frontend_t*, char *cmd);
+ int (*xine_queue_pes_packet)(frontend_t*, char *data, int len);
+
+ char *(*grab)(frontend_t*, int *size, int jpeg, int quality,
+ int width, int height);
+#if 0
+ frontend_config_t config;
+#endif
+};
+
+typedef frontend_t *(*fe_creator_f)(void);
+
+#ifdef __cplusplus
+} /* extern "C" { */
+#endif
+
+#endif /* _XINE_FRONTEND_H */
+