summaryrefslogtreecommitdiff
path: root/src/xine-engine/events.h
blob: da77d42182c652209fca52ccce56bd42f0573dee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
/* 
 * Copyright (C) 2000-2001 the xine project
 * 
 * Copyright (C) Rich Wareham <richwareham@users.sourceforge.net> - July 2001
 *
 * 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
 *
 */

#ifndef HAVE_EVENTS_H
#define HAVE_EVENTS_H

#ifdef __cplusplus
extern "C" {
#endif

#include <inttypes.h>

/*
 * This file defines types for many events which can be sent in xine.
 */

/* event types */

#define XINE_EVENT_MOUSE_BUTTON          1
#define XINE_EVENT_MOUSE_MOVE            2
#define XINE_EVENT_SPU_BUTTON            3
#define XINE_EVENT_SPU_CLUT              4
#define XINE_EVENT_UI_CHANNELS_CHANGED   5 /* inform ui that new channel info is available */
#define XINE_EVENT_UI_SET_TITLE          6 /* request title display change in ui */
#define XINE_EVENT_INPUT_MENU1           7
#define XINE_EVENT_INPUT_MENU2           8
#define XINE_EVENT_INPUT_MENU3           9
#define XINE_EVENT_INPUT_UP             10
#define XINE_EVENT_INPUT_DOWN           11
#define XINE_EVENT_INPUT_LEFT           12
#define XINE_EVENT_INPUT_RIGHT          13
#define XINE_EVENT_INPUT_SELECT         14
#define XINE_EVENT_PLAYBACK_FINISHED    15
#define XINE_EVENT_BRANCHED             16
#define XINE_EVENT_NEED_NEXT_MRL        17 
#define XINE_EVENT_INPUT_NEXT           18
#define XINE_EVENT_INPUT_PREVIOUS       19
#define XINE_EVENT_INPUT_ANGLE_NEXT     20
#define XINE_EVENT_INPUT_ANGLE_PREVIOUS 21
#define XINE_EVENT_SPU_FORCEDISPLAY	22
#define XINE_EVENT_FRAME_CHANGE         23
#define XINE_EVENT_CLOSED_CAPTION       24
#define XINE_EVENT_INPUT_BUTTON_FORCE   25

#define XINE_EVENT_INPUT_NUMBER_0       30
#define XINE_EVENT_INPUT_NUMBER_1       31
#define XINE_EVENT_INPUT_NUMBER_2       32
#define XINE_EVENT_INPUT_NUMBER_3       33
#define XINE_EVENT_INPUT_NUMBER_4       34
#define XINE_EVENT_INPUT_NUMBER_5       35
#define XINE_EVENT_INPUT_NUMBER_6       36
#define XINE_EVENT_INPUT_NUMBER_7       37
#define XINE_EVENT_INPUT_NUMBER_8       38
#define XINE_EVENT_INPUT_NUMBER_9       39
#define XINE_EVENT_INPUT_NUMBER_10_ADD  40

#define XINE_EVENT_ASPECT_CHANGE	41 /* Generally should be viewed as a hint to the GUI */



/*
 * generic event type.
 */
typedef struct {
  uint32_t type;  /* The event type (determines remainder of struct) */

  /* Event dependent data goes after this. */
} xine_event_t;

/*
 * input events
 */
typedef struct {
  xine_event_t     event;
  uint8_t          button; /* Generally 1 = left, 2 = mid, 3 = right */
  uint16_t         x,y;    /* In Image space */
} 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 {
  xine_event_t     event;
  void            *data;
} xine_spu_event_t;

/*
 * UI event - send information to/from UI.
 */

typedef struct {
  xine_event_t     event;
  void            *data;
  uint32_t         data_len;
  int              handled;
} xine_ui_event_t;

/*
 * next_mrl
 */
typedef struct {
  xine_event_t     event;
  char            *mrl;
  int              handled;
} xine_next_mrl_event_t;

/*
 * notify frame change
 */
typedef struct {
  xine_event_t     event;
  int              width;
  int              height;
} xine_frame_change_event_t;

/*
 * closed caption
 */
typedef struct {
  xine_event_t     event;
  uint8_t         *buffer;
  uint32_t         buf_len;
  int64_t          pts;
  uint32_t         scr;
} xine_closed_caption_event_t;

/*
 * Aspect ratio change (suggested)
 */
typedef struct {
  xine_event_t     event;
  int              ratio_code;
} xine_aspect_ratio_event_t;

#ifdef __cplusplus
}
#endif

#endif /* HAVE_EVENTS_H */