summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJames Courtier-Dutton <jcdutton@users.sourceforge.net>2002-03-08 13:50:40 +0000
committerJames Courtier-Dutton <jcdutton@users.sourceforge.net>2002-03-08 13:50:40 +0000
commit4568a6f440de19e4f221a16bf7c3f57bb3bc573a (patch)
tree7c2dcb2c8a0387d7303202750a135d066a6676bb /src
parentc637776abc2a051f9bfa5d10a638fdd46a86726f (diff)
downloadxine-lib-4568a6f440de19e4f221a16bf7c3f57bb3bc573a.tar.gz
xine-lib-4568a6f440de19e4f221a16bf7c3f57bb3bc573a.tar.bz2
Added xine OSD menu structures.
CVS patchset: 1545 CVS date: 2002/03/08 13:50:40
Diffstat (limited to 'src')
-rw-r--r--src/xine-engine/events.h10
-rw-r--r--src/xine-engine/video_overlay.h33
2 files changed, 42 insertions, 1 deletions
diff --git a/src/xine-engine/events.h b/src/xine-engine/events.h
index 2cdf32a88..8874fab3c 100644
--- a/src/xine-engine/events.h
+++ b/src/xine-engine/events.h
@@ -80,6 +80,16 @@ typedef struct {
} xine_input_event_t;
/*
+ * Menu events
+ */
+typedef struct {
+ xine_event_t event;
+ uint8_t button; /* Generally 1 = left, 2 = mid, 3 = right */
+ uint16_t status; /* 0:no status, 1:selected, 2:actioned */
+ uint8_t command[8]; /* DVD virtual machine command. */
+} xine_menu_event_t;
+
+/*
* SPU event - send control events to the spu decoder
*/
typedef struct {
diff --git a/src/xine-engine/video_overlay.h b/src/xine-engine/video_overlay.h
index 08bf6e0a6..4eaca8e6e 100644
--- a/src/xine-engine/video_overlay.h
+++ b/src/xine-engine/video_overlay.h
@@ -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: video_overlay.h,v 1.5 2002/02/09 07:13:24 guenter Exp $
+ * $Id: video_overlay.h,v 1.6 2002/03/08 13:50:41 jcdutton Exp $
*
*/
@@ -46,6 +46,35 @@
#define EVENT_SHOW_OSD 7 /* Not yet implemented */
#define EVENT_FREE_HANDLE 8 /* Frees a handle, previous allocated via get_handle */
+/* number of colors in the overlay palette. Currently limited to 256
+ at most, because some alphablend functions use an 8-bit index into
+ the palette. This should probably be classified as a bug. */
+/* FIXME: Also defines in video_out.h */
+#define OVL_PALETTE_SIZE 256
+
+typedef struct vo_buttons_s {
+ int32_t auto_action; /* -1:Button not valid,
+ 0:Button Valid, no auto_action,
+ 1:Button Valid, auto_action.
+ */
+ int32_t clip_top;
+ int32_t clip_bottom;
+ int32_t clip_left;
+ int32_t clip_right;
+ int32_t up;
+ int32_t down;
+ int32_t left;
+ int32_t right;
+ uint32_t select_color[OVL_PALETTE_SIZE];
+ uint8_t select_trans[OVL_PALETTE_SIZE];
+ xine_menu_event_t select_event;
+ uint32_t active_color[OVL_PALETTE_SIZE];
+ uint8_t active_trans[OVL_PALETTE_SIZE];
+ xine_menu_event_t active_event;
+ int32_t clip_rgb_clut; /* true if clut was converted to rgb*/
+ /* FIXME: Probably not needed ^^^ */
+} vo_buttons_t;
+
typedef struct video_overlay_object_s {
int32_t handle; /* Used to match Show and Hide events. */
uint32_t object_type; /* 0=Subtitle, 1=Menu */
@@ -53,6 +82,8 @@ typedef struct video_overlay_object_s {
vo_overlay_t *overlay; /* The image data. */
uint32_t palette_type; /* 1 Y'CrCB, 2 R'G'B' */
uint32_t *palette; /* If NULL, no palette contained in this event. */
+ int32_t buttonN; /* Current highlighed button. -1 means no buttons present */
+ vo_buttons_t button[32]; /* Info regarding each button on the overlay */
} video_overlay_object_t;
/* This will hold all details of an event item, needed for event queue to function */