summaryrefslogtreecommitdiff
path: root/src/video_out/video_out_x11.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_out/video_out_x11.h')
-rw-r--r--src/video_out/video_out_x11.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/video_out/video_out_x11.h b/src/video_out/video_out_x11.h
new file mode 100644
index 000000000..62a15211f
--- /dev/null
+++ b/src/video_out/video_out_x11.h
@@ -0,0 +1,88 @@
+/*
+ * 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
+ *
+ * $Id: video_out_x11.h,v 1.1 2001/05/08 23:00:03 guenter Exp $
+ *
+ * structs and defines specific to all x11 related output plugins
+ * (any x11 base xine ui should include this)
+ */
+
+#ifndef HAVE_VIDEO_OUT_X11_H
+#define HAVE_VIDEO_OUT_X11_H
+
+/*
+ * this is the visual data struct any x11 gui should supply
+ * (pass this to init_video_out_plugin or the xine_load_video_output_plugin
+ * utility function)
+ */
+
+typedef struct {
+
+ /* some information about the display */
+ Display *display;
+ int screen;
+ double display_ratio;
+
+ /* drawable to display the video in/on */
+ Drawable d;
+
+ /* area of that drawable to be used by video */
+ int x,y,w,h;
+
+ /*
+ * calc dest size
+ *
+ * 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
+ */
+ void (*calc_dest_size) (int video_width, int video_height,
+ int *dest_width, int *dest_height);
+
+ /*
+ * request dest size
+ *
+ * this will be called by the video driver to request
+ * the video output area to be resized to fit the video.
+ * 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 ration and stuff).
+ */
+
+ void (*reques_dest_size) (int video_width, int video_height,
+ int *dest_x, int *dest_y,
+ int *dest_height, int *dest_width);
+
+} x11_visual_t;
+
+/*
+ * constants for gui_data_exhange's data_type parameter
+ */
+
+#define GUI_DATA_EX_DEST_POS_SIZE_CHANGED 0
+#define GUI_DATA_EX_COMPLETION_EVENT 1
+
+
+#endif
+