VLC  4.0.0-dev
libvlc_events.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * libvlc_events.h: libvlc_events external API structure
3  *****************************************************************************
4  * Copyright (C) 1998-2010 VLC authors and VideoLAN
5  *
6  * Authors: Filippo Carone <littlejohn@videolan.org>
7  * Pierre d'Herbemont <pdherbemont@videolan.org>
8  *
9  * This program is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public License
20  * along with this program; if not, write to the Free Software Foundation,
21  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23 
24 #ifndef LIBVLC_EVENTS_H
25 #define LIBVLC_EVENTS_H 1
26 
27 /**
28  * \file
29  * This file defines libvlc_event external API
30  */
31 
32 # ifdef __cplusplus
33 extern "C" {
34 # endif
35 
37 
38 /**
39  * \ingroup libvlc_event
40  * @{
41  */
42 
43 /**
44  * Event types
45  */
47  /* Append new event types at the end of a category.
48  * Do not remove, insert or re-order any entry.
49  */
50 
51  /**
52  * Metadata of a \link #libvlc_media_t media item\endlink changed
53  */
55  /**
56  * Subitem was added to a \link #libvlc_media_t media item\endlink
57  * \see libvlc_media_subitems()
58  */
60  /**
61  * Duration of a \link #libvlc_media_t media item\endlink changed
62  * \see libvlc_media_get_duration()
63  */
65  /**
66  * Parsing state of a \link #libvlc_media_t media item\endlink changed
67  * \see libvlc_media_parse_with_options(),
68  * libvlc_media_get_parsed_status(),
69  * libvlc_media_parse_stop()
70  */
72  /**
73  * A \link #libvlc_media_t media item\endlink was freed
74  */
76  /**
77  * \link #libvlc_state_t State\endlink of the \link
78  * #libvlc_media_t media item\endlink changed
79  * \see libvlc_media_get_state()
80  */
82  /**
83  * Subitem tree was added to a \link #libvlc_media_t media item\endlink
84  */
86  /**
87  * A thumbnail generation for this \link #libvlc_media_t media \endlink completed.
88  * \see libvlc_media_get_thumbnail()
89  */
91 
122 
123  /**
124  * A \link #libvlc_media_t media item\endlink was added to a
125  * \link #libvlc_media_list_t media list\endlink.
126  */
128  /**
129  * A \link #libvlc_media_t media item\endlink is about to get
130  * added to a \link #libvlc_media_list_t media list\endlink.
131  */
133  /**
134  * A \link #libvlc_media_t media item\endlink was deleted from
135  * a \link #libvlc_media_list_t media list\endlink.
136  */
138  /**
139  * A \link #libvlc_media_t media item\endlink is about to get
140  * deleted from a \link #libvlc_media_list_t media list\endlink.
141  */
143  /**
144  * A \link #libvlc_media_list_t media list\endlink has reached the
145  * end.
146  * All \link #libvlc_media_t items\endlink were either added (in
147  * case of a \ref libvlc_media_discoverer_t) or parsed (preparser).
148  */
150 
151  /**
152  * \deprecated No longer used.
153  * This belonged to the removed libvlc_media_list_view_t
154  */
156  /**
157  * \deprecated No longer used.
158  * This belonged to the removed libvlc_media_list_view_t
159  */
161  /**
162  * \deprecated No longer used.
163  * This belonged to the removed libvlc_media_list_view_t
164  */
166  /**
167  * \deprecated No longer used.
168  * This belonged to the removed libvlc_media_list_view_t
169  */
171 
172  /**
173  * Playback of a \link #libvlc_media_list_player_t media list
174  * player\endlink has started.
175  */
177 
178  /**
179  * The current \link #libvlc_media_t item\endlink of a
180  * \link #libvlc_media_list_player_t media list player\endlink
181  * has changed to a different item.
182  */
184 
185  /**
186  * Playback of a \link #libvlc_media_list_player_t media list
187  * player\endlink has stopped.
188  */
190 
191  /**
192  * A new \link #libvlc_renderer_item_t renderer item\endlink was found by a
193  * \link #libvlc_renderer_discoverer_t renderer discoverer\endlink.
194  * The renderer item is valid until deleted.
195  */
197 
198  /**
199  * A previously discovered \link #libvlc_renderer_item_t renderer item\endlink
200  * was deleted by a \link #libvlc_renderer_discoverer_t renderer discoverer\endlink.
201  * The renderer item is no longer valid.
202  */
204 };
205 
206 /**
207  * A LibVLC event
208  */
209 typedef struct libvlc_event_t
210 {
211  int type; /**< Event type (see @ref libvlc_event_e) */
212  void *p_obj; /**< Object emitting the event */
213  union
214  {
215  /* media descriptor */
216  struct
217  {
220  struct
221  {
224  struct
225  {
226  int64_t new_duration;
228  struct
229  {
230  int new_status; /**< see @ref libvlc_media_parsed_status_t */
232  struct
233  {
235  } media_freed;
236  struct
237  {
238  int new_state; /**< see @ref libvlc_state_t */
240  struct
241  {
244  struct
245  {
248 
249  /* media instance */
250  struct
251  {
252  float new_cache;
254  struct
255  {
258  struct
259  {
262  struct
263  {
266  struct
267  {
270  struct
271  {
274  struct
275  {
278  struct
279  {
282  struct
283  {
286 
287  /* media list */
288  struct
289  {
291  int index;
293  struct
294  {
296  int index;
298  struct
299  {
301  int index;
303  struct
304  {
306  int index;
308 
309  /* media list player */
310  struct
311  {
314 
315  /* snapshot taken */
316  struct
317  {
318  char* psz_filename ;
320 
321  /* Length changed */
322  struct
323  {
326 
327  /* Extra MediaPlayer */
328  struct
329  {
332 
333  struct
334  {
336  int i_id;
338 
339  struct
340  {
341  float volume;
343 
344  struct
345  {
346  const char *device;
348 
349  struct
350  {
353  struct
354  {
357  } u; /**< Type-dependent event description */
359 
360 
361 /**@} */
362 
363 # ifdef __cplusplus
364 }
365 # endif
366 
367 #endif /* _LIBVLC_EVENTS_H */
Definition: libvlc_events.h:103
struct libvlc_event_t::@142::@145 media_duration_changed
libvlc_track_type_t
Definition: libvlc_media.h:105
struct libvlc_event_t::@142::@152 media_player_chapter_changed
struct libvlc_event_t::@142::@151 media_player_buffering
int new_status
see libvlc_media_parsed_status_t
Definition: libvlc_events.h:230
Playback of a media list player has started.
Definition: libvlc_events.h:176
libvlc_event_e
Event types.
Definition: libvlc_events.h:46
struct libvlc_event_t::@142::@159 media_player_vout
Metadata of a media item changed.
Definition: libvlc_events.h:54
struct libvlc_event_t::@142::@156 media_player_seekable_changed
A thumbnail generation for this media completed.
Definition: libvlc_events.h:90
Definition: libvlc_events.h:97
Definition: libvlc_events.h:116
Parsing state of a media item changed.
Definition: libvlc_events.h:71
Definition: libvlc_events.h:119
Definition: libvlc_events.h:106
A new renderer item was found by a renderer discoverer.
Definition: libvlc_events.h:196
struct libvlc_event_t::@142::@168 media_player_es_changed
struct libvlc_event_t::@142::@163 media_list_will_delete_item
A media item was freed.
Definition: libvlc_events.h:75
Definition: libvlc_events.h:95
State of the media item changed
Definition: libvlc_events.h:81
union libvlc_event_t::@142 u
Type-dependent event description.
struct libvlc_event_t::@142::@165 media_player_snapshot_taken
struct libvlc_event_t::@142::@144 media_subitem_added
Definition: libvlc_events.h:155
libvlc_meta_t
Meta data types.
Definition: libvlc_media.h:46
int new_count
Definition: libvlc_events.h:284
struct libvlc_event_t::@142::@148 media_state_changed
struct libvlc_media_t libvlc_media_t
Definition: libvlc_media.h:43
int new_pausable
Definition: libvlc_events.h:276
const char * device
Definition: libvlc_events.h:346
struct libvlc_event_t::@142::@167 media_player_media_changed
float volume
Definition: libvlc_events.h:341
struct libvlc_event_t::@142::@149 media_thumbnail_generated
libvlc_media_t * new_child
Definition: libvlc_events.h:222
Definition: libvlc_events.h:117
float new_cache
Definition: libvlc_events.h:252
struct libvlc_event_t::@142::@155 media_player_title_changed
libvlc_picture_t * p_thumbnail
Definition: libvlc_events.h:242
libvlc_track_type_t i_type
Definition: libvlc_events.h:335
struct libvlc_event_t::@142::@146 media_parsed_changed
struct libvlc_picture_t libvlc_picture_t
Definition: libvlc_picture.h:30
A media list has reached the end.
Definition: libvlc_events.h:149
Definition: libvlc_events.h:102
Definition: libvlc_events.h:112
Definition: libvlc_events.h:170
A media item is about to get deleted from a media list.
Definition: libvlc_events.h:142
int index
Definition: libvlc_events.h:291
Definition: libvlc_events.h:113
Definition: libvlc_events.h:94
struct libvlc_event_t::@142::@166 media_player_length_changed
Definition: libvlc_events.h:118
Playback of a media list player has stopped.
Definition: libvlc_events.h:189
libvlc_time_t new_length
Definition: libvlc_events.h:324
struct libvlc_event_t::@142::@147 media_freed
Definition: libvlc_events.h:109
struct libvlc_event_t::@142::@164 media_list_player_next_item_set
Definition: libvlc_events.h:115
int new_title
Definition: libvlc_events.h:268
Definition: libvlc_events.h:105
A previously discovered renderer item was deleted by a renderer discoverer.
Definition: libvlc_events.h:203
Subitem tree was added to a media item.
Definition: libvlc_events.h:85
int i_id
Definition: libvlc_events.h:336
int new_seekable
Definition: libvlc_events.h:272
The current item of a media list player has changed to a different item.
Definition: libvlc_events.h:183
Definition: libvlc_events.h:114
A media item is about to get added to a media list.
Definition: libvlc_events.h:132
struct libvlc_event_t::@142::@150 media_subitemtree_added
struct libvlc_event_t::@142::@154 media_player_time_changed
Definition: libvlc_events.h:107
void * p_obj
Object emitting the event.
Definition: libvlc_events.h:212
int new_state
see libvlc_state_t
Definition: libvlc_events.h:238
struct libvlc_event_t libvlc_event_t
A LibVLC event.
struct libvlc_event_t::@142::@160 media_list_item_added
int new_scrambled
Definition: libvlc_events.h:280
int new_chapter
Definition: libvlc_events.h:256
struct libvlc_event_t::@142::@172 renderer_discoverer_item_deleted
struct libvlc_event_t::@142::@143 media_meta_changed
Definition: libvlc_events.h:110
struct libvlc_event_t::@142::@170 media_player_audio_device
A media item was added to a media list.
Definition: libvlc_events.h:127
libvlc_time_t new_time
Definition: libvlc_events.h:264
struct libvlc_event_t::@142::@169 media_player_audio_volume
struct libvlc_event_t::@142::@161 media_list_will_add_item
A LibVLC event.
Definition: libvlc_events.h:209
Duration of a media item changed.
Definition: libvlc_events.h:64
libvlc_meta_t meta_type
Definition: libvlc_events.h:218
A media item was deleted from a media list.
Definition: libvlc_events.h:137
struct libvlc_renderer_item_t libvlc_renderer_item_t
Definition: libvlc_events.h:36
Definition: libvlc_events.h:96
int64_t libvlc_time_t
Definition: libvlc.h:78
Definition: libvlc_events.h:160
struct libvlc_event_t::@142::@153 media_player_position_changed
struct libvlc_event_t::@142::@158 media_player_scrambled_changed
struct libvlc_event_t::@142::@157 media_player_pausable_changed
libvlc_media_t * item
Definition: libvlc_events.h:246
Definition: libvlc_events.h:100
Definition: libvlc_events.h:99
float new_position
Definition: libvlc_events.h:260
Definition: libvlc_events.h:120
Definition: libvlc_events.h:111
libvlc_media_t * md
Definition: libvlc_events.h:234
libvlc_renderer_item_t * item
Definition: libvlc_events.h:351
Definition: libvlc_events.h:121
int64_t new_duration
Definition: libvlc_events.h:226
libvlc_media_t * new_media
Definition: libvlc_events.h:330
char * psz_filename
Definition: libvlc_events.h:318
Definition: libvlc_events.h:104
Definition: libvlc_events.h:98
struct libvlc_event_t::@142::@162 media_list_item_deleted
Definition: libvlc_events.h:108
Definition: libvlc_events.h:92
struct libvlc_event_t::@142::@171 renderer_discoverer_item_added
Definition: libvlc_events.h:165
Definition: libvlc_events.h:101
Definition: libvlc_events.h:93
Subitem was added to a media item.
Definition: libvlc_events.h:59
int type
Event type (see libvlc_event_e)
Definition: libvlc_events.h:211