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 
38 
39 /**
40  * \ingroup libvlc_event
41  * @{
42  */
43 
44 /**
45  * Event types
46  */
48  /* Append new event types at the end of a category.
49  * Do not remove, insert or re-order any entry.
50  */
51 
52  /**
53  * Metadata of a \link #libvlc_media_t media item\endlink changed
54  */
56  /**
57  * Subitem was added to a \link #libvlc_media_t media item\endlink
58  * \see libvlc_media_subitems()
59  */
61  /**
62  * Duration of a \link #libvlc_media_t media item\endlink changed
63  * \see libvlc_media_get_duration()
64  */
66  /**
67  * Parsing state of a \link #libvlc_media_t media item\endlink changed
68  * \see libvlc_media_parse_with_options(),
69  * libvlc_media_get_parsed_status(),
70  * libvlc_media_parse_stop()
71  */
73 
74  /* Removed: libvlc_MediaFreed, */
75 
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  /**
92  * One or more embedded thumbnails were found during the media preparsing
93  * The user can hold these picture(s) using libvlc_picture_retain if they
94  * wish to use them
95  */
97 
113  /* libvlc_MediaPlayerTitleChanged, */
117 
118  /* libvlc_MediaPlayerScrambledChanged, use libvlc_MediaPlayerProgramUpdated */
119 
120  /** A track was added, cf. media_player_es_changed in \ref libvlc_event_t.u
121  * to get the id of the new track. */
123  /** A track was removed, cf. media_player_es_changed in \ref
124  * libvlc_event_t.u to get the id of the removed track. */
126  /** Tracks were selected or unselected, cf.
127  * media_player_es_selection_changed in \ref libvlc_event_t.u to get the
128  * unselected and/or the selected track ids. */
136  /** A track was updated, cf. media_player_es_changed in \ref
137  * libvlc_event_t.u to get the id of the updated track. */
143  /**
144  * The title list changed, call
145  * libvlc_media_player_get_full_title_descriptions() to get the new list.
146  */
148  /**
149  * The title selection changed, cf media_player_title_selection_changed in
150  * \ref libvlc_event_t.u
151  */
154 
155  /**
156  * A \link #libvlc_media_t media item\endlink was added to a
157  * \link #libvlc_media_list_t media list\endlink.
158  */
160  /**
161  * A \link #libvlc_media_t media item\endlink is about to get
162  * added to a \link #libvlc_media_list_t media list\endlink.
163  */
165  /**
166  * A \link #libvlc_media_t media item\endlink was deleted from
167  * a \link #libvlc_media_list_t media list\endlink.
168  */
170  /**
171  * A \link #libvlc_media_t media item\endlink is about to get
172  * deleted from a \link #libvlc_media_list_t media list\endlink.
173  */
175  /**
176  * A \link #libvlc_media_list_t media list\endlink has reached the
177  * end.
178  * All \link #libvlc_media_t items\endlink were either added (in
179  * case of a \ref libvlc_media_discoverer_t) or parsed (preparser).
180  */
182 
183  /**
184  * \deprecated No longer used.
185  * This belonged to the removed libvlc_media_list_view_t
186  */
188  /**
189  * \deprecated No longer used.
190  * This belonged to the removed libvlc_media_list_view_t
191  */
193  /**
194  * \deprecated No longer used.
195  * This belonged to the removed libvlc_media_list_view_t
196  */
198  /**
199  * \deprecated No longer used.
200  * This belonged to the removed libvlc_media_list_view_t
201  */
203 
204  /**
205  * Playback of a \link #libvlc_media_list_player_t media list
206  * player\endlink has started.
207  */
209 
210  /**
211  * The current \link #libvlc_media_t item\endlink of a
212  * \link #libvlc_media_list_player_t media list player\endlink
213  * has changed to a different item.
214  */
216 
217  /**
218  * Playback of a \link #libvlc_media_list_player_t media list
219  * player\endlink has stopped.
220  */
222 
223  /**
224  * A new \link #libvlc_renderer_item_t renderer item\endlink was found by a
225  * \link #libvlc_renderer_discoverer_t renderer discoverer\endlink.
226  * The renderer item is valid until deleted.
227  */
229 
230  /**
231  * A previously discovered \link #libvlc_renderer_item_t renderer item\endlink
232  * was deleted by a \link #libvlc_renderer_discoverer_t renderer discoverer\endlink.
233  * The renderer item is no longer valid.
234  */
236 };
237 
238 /**
239  * A LibVLC event
240  */
241 typedef struct libvlc_event_t
242 {
243  int type; /**< Event type (see @ref libvlc_event_e) */
244  void *p_obj; /**< Object emitting the event */
245  union
246  {
247  /* media descriptor */
248  struct
249  {
252  struct
253  {
256  struct
257  {
258  int64_t new_duration;
260  struct
261  {
262  int new_status; /**< see @ref libvlc_media_parsed_status_t */
264  struct
265  {
266  int new_state; /**< see @ref libvlc_state_t */
268  struct
269  {
272  struct
273  {
276  struct
277  {
280 
281  /* media instance */
282  struct
283  {
284  float new_cache;
286  struct
287  {
290  struct
291  {
294  struct
295  {
298  struct
299  {
301  int index;
303  struct
304  {
307  struct
308  {
311  struct
312  {
315  struct
316  {
319 
320  /* media list */
321  struct
322  {
324  int index;
326  struct
327  {
329  int index;
331  struct
332  {
334  int index;
336  struct
337  {
339  int index;
341 
342  /* media list player */
343  struct
344  {
347 
348  /* snapshot taken */
349  struct
350  {
351  char* psz_filename ;
353 
354  /* Length changed */
355  struct
356  {
359 
360  /* Extra MediaPlayer */
361  struct
362  {
365 
366  /* ESAdded, ESDeleted, ESUpdated */
367  struct
368  {
370  int i_id; /**< Deprecated, use psz_id */
371  /** Call libvlc_media_player_get_track_from_id() to get the track
372  * description. */
373  const char *psz_id;
375 
376  /* ESSelected */
377  struct
378  {
380  const char *psz_unselected_id;
381  const char *psz_selected_id;
383 
384  /* ProgramAdded, ProgramDeleted, ProgramUpdated */
385  struct
386  {
387  int i_id;
389 
390  /* ProgramSelected */
391  struct
392  {
396 
397  struct
398  {
399  float volume;
401 
402  struct
403  {
404  const char *device;
406 
407  struct
408  {
411  struct
412  {
415  } u; /**< Type-dependent event description */
417 
418 
419 /**@} */
420 
421 # ifdef __cplusplus
422 }
423 # endif
424 
425 #endif /* _LIBVLC_EVENTS_H */
libvlc_MediaStateChanged
@ libvlc_MediaStateChanged
State of the media item changed
Definition: libvlc_events.h:81
libvlc_event_t::media_list_item_added
struct libvlc_event_t::@135::@153 media_list_item_added
libvlc_event_t::media_player_snapshot_taken
struct libvlc_event_t::@135::@158 media_player_snapshot_taken
libvlc_MediaSubItemTreeAdded
@ libvlc_MediaSubItemTreeAdded
Subitem tree was added to a media item.
Definition: libvlc_events.h:85
libvlc_event_t::i_selected_id
int i_selected_id
Definition: libvlc_events.h:394
libvlc_MediaPlayerAudioDevice
@ libvlc_MediaPlayerAudioDevice
Definition: libvlc_events.h:135
libvlc_event_t::type
int type
Event type (see libvlc_event_e)
Definition: libvlc_events.h:243
libvlc_MediaPlayerSnapshotTaken
@ libvlc_MediaPlayerSnapshotTaken
Definition: libvlc_events.h:114
libvlc_MediaPlayerOpening
@ libvlc_MediaPlayerOpening
Definition: libvlc_events.h:100
libvlc_MediaPlayerCorked
@ libvlc_MediaPlayerCorked
Definition: libvlc_events.h:130
libvlc_event_t::media_player_audio_device
struct libvlc_event_t::@135::@166 media_player_audio_device
libvlc_event_t::media_state_changed
struct libvlc_event_t::@135::@140 media_state_changed
libvlc_event_t::new_status
int new_status
see libvlc_media_parsed_status_t
Definition: libvlc_events.h:262
libvlc_event_t::i_unselected_id
int i_unselected_id
Definition: libvlc_events.h:393
libvlc_media_t
struct libvlc_media_t libvlc_media_t
Definition: libvlc_media.h:45
libvlc_MediaListViewItemAdded
@ libvlc_MediaListViewItemAdded
Definition: libvlc_events.h:187
libvlc_MediaPlayerBackward
@ libvlc_MediaPlayerBackward
Definition: libvlc_events.h:106
libvlc_event_t::media_player_length_changed
struct libvlc_event_t::@135::@159 media_player_length_changed
libvlc_event_t::media_player_es_changed
struct libvlc_event_t::@135::@161 media_player_es_changed
libvlc_MediaPlayerNothingSpecial
@ libvlc_MediaPlayerNothingSpecial
Definition: libvlc_events.h:99
libvlc_MediaPlayerLengthChanged
@ libvlc_MediaPlayerLengthChanged
Definition: libvlc_events.h:115
libvlc_event_t::new_count
int new_count
Definition: libvlc_events.h:317
libvlc_MediaPlayerEndReached
@ libvlc_MediaPlayerEndReached
Definition: libvlc_events.h:107
libvlc_event_t::new_child
libvlc_media_t * new_child
Definition: libvlc_events.h:254
libvlc_event_t::psz_id
const char * psz_id
Call libvlc_media_player_get_track_from_id() to get the track description.
Definition: libvlc_events.h:373
libvlc_MediaAttachedThumbnailsFound
@ libvlc_MediaAttachedThumbnailsFound
One or more embedded thumbnails were found during the media preparsing The user can hold these pictur...
Definition: libvlc_events.h:96
libvlc_event_t::volume
float volume
Definition: libvlc_events.h:399
libvlc_event_t::media_duration_changed
struct libvlc_event_t::@135::@138 media_duration_changed
libvlc_MediaListWillDeleteItem
@ libvlc_MediaListWillDeleteItem
A media item is about to get deleted from a media list.
Definition: libvlc_events.h:174
libvlc_event_t::new_cache
float new_cache
Definition: libvlc_events.h:284
libvlc_picture_list_t
struct libvlc_picture_list_t libvlc_picture_list_t
Definition: libvlc_picture.h:31
libvlc_event_t::renderer_discoverer_item_added
struct libvlc_event_t::@135::@167 renderer_discoverer_item_added
libvlc_event_t::media_subitemtree_added
struct libvlc_event_t::@135::@142 media_subitemtree_added
libvlc_event_t::media_list_player_next_item_set
struct libvlc_event_t::@135::@157 media_list_player_next_item_set
libvlc_event_t::media_thumbnail_generated
struct libvlc_event_t::@135::@141 media_thumbnail_generated
libvlc_event_t::media_list_item_deleted
struct libvlc_event_t::@135::@155 media_list_item_deleted
libvlc_event_t::new_pausable
int new_pausable
Definition: libvlc_events.h:309
libvlc_event_t::device
const char * device
Definition: libvlc_events.h:404
libvlc_MediaPlayerBuffering
@ libvlc_MediaPlayerBuffering
Definition: libvlc_events.h:101
libvlc_MediaListViewWillDeleteItem
@ libvlc_MediaListViewWillDeleteItem
Definition: libvlc_events.h:202
libvlc_event_t::media_player_media_changed
struct libvlc_event_t::@135::@160 media_player_media_changed
libvlc_event_t::media_player_seekable_changed
struct libvlc_event_t::@135::@149 media_player_seekable_changed
libvlc_event_t::media_player_pausable_changed
struct libvlc_event_t::@135::@150 media_player_pausable_changed
libvlc_MediaPlayerESDeleted
@ libvlc_MediaPlayerESDeleted
A track was removed, cf.
Definition: libvlc_events.h:125
libvlc_event_t::i_type
libvlc_track_type_t i_type
Definition: libvlc_events.h:369
libvlc_MediaPlayerTitleSelectionChanged
@ libvlc_MediaPlayerTitleSelectionChanged
The title selection changed, cf media_player_title_selection_changed in libvlc_event_t::u.
Definition: libvlc_events.h:152
libvlc_MediaParsedChanged
@ libvlc_MediaParsedChanged
Parsing state of a media item changed.
Definition: libvlc_events.h:72
libvlc_MediaPlayerProgramSelected
@ libvlc_MediaPlayerProgramSelected
Definition: libvlc_events.h:141
libvlc_event_t::media_player_time_changed
struct libvlc_event_t::@135::@147 media_player_time_changed
libvlc_MediaPlayerSeekableChanged
@ libvlc_MediaPlayerSeekableChanged
Definition: libvlc_events.h:111
libvlc_event_t::media_player_es_selection_changed
struct libvlc_event_t::@135::@162 media_player_es_selection_changed
libvlc_MediaPlayerPlaying
@ libvlc_MediaPlayerPlaying
Definition: libvlc_events.h:102
libvlc_event_t::psz_unselected_id
const char * psz_unselected_id
Definition: libvlc_events.h:380
libvlc_MediaPlayerForward
@ libvlc_MediaPlayerForward
Definition: libvlc_events.h:105
libvlc_MediaThumbnailGenerated
@ libvlc_MediaThumbnailGenerated
A thumbnail generation for this media completed.
Definition: libvlc_events.h:90
libvlc_MediaPlayerPausableChanged
@ libvlc_MediaPlayerPausableChanged
Definition: libvlc_events.h:112
libvlc_meta_t
libvlc_meta_t
Meta data types.
Definition: libvlc_media.h:48
libvlc_track_type_t
libvlc_track_type_t
Definition: libvlc_media_track.h:42
libvlc_MediaPlayerProgramUpdated
@ libvlc_MediaPlayerProgramUpdated
Definition: libvlc_events.h:142
libvlc_event_t::p_thumbnail
libvlc_picture_t * p_thumbnail
Definition: libvlc_events.h:270
libvlc_event_t::media_player_chapter_changed
struct libvlc_event_t::@135::@145 media_player_chapter_changed
libvlc_event_t::media_list_will_delete_item
struct libvlc_event_t::@135::@156 media_list_will_delete_item
libvlc_MediaPlayerUnmuted
@ libvlc_MediaPlayerUnmuted
Definition: libvlc_events.h:133
libvlc_MediaPlayerTitleListChanged
@ libvlc_MediaPlayerTitleListChanged
The title list changed, call libvlc_media_player_get_full_title_descriptions() to get the new list.
Definition: libvlc_events.h:147
libvlc_event_t::u
union libvlc_event_t::@135 u
Type-dependent event description.
libvlc_event_t::index
int index
Definition: libvlc_events.h:301
libvlc_event_t::media_attached_thumbnails_found
struct libvlc_event_t::@135::@143 media_attached_thumbnails_found
libvlc_RendererDiscovererItemAdded
@ libvlc_RendererDiscovererItemAdded
A new renderer item was found by a renderer discoverer.
Definition: libvlc_events.h:228
libvlc_event_t::media_player_vout
struct libvlc_event_t::@135::@152 media_player_vout
libvlc_MediaPlayerMuted
@ libvlc_MediaPlayerMuted
Definition: libvlc_events.h:132
libvlc_event_t::media_player_title_selection_changed
struct libvlc_event_t::@135::@148 media_player_title_selection_changed
libvlc_MediaPlayerEncounteredError
@ libvlc_MediaPlayerEncounteredError
Definition: libvlc_events.h:108
libvlc_MediaPlayerVout
@ libvlc_MediaPlayerVout
Definition: libvlc_events.h:116
libvlc_title_description_t
Definition: libvlc_media_player.h:53
libvlc_MediaPlayerESUpdated
@ libvlc_MediaPlayerESUpdated
A track was updated, cf.
Definition: libvlc_events.h:138
libvlc_event_t::i_id
int i_id
Deprecated, use psz_id.
Definition: libvlc_events.h:370
libvlc_event_t::media_player_scrambled_changed
struct libvlc_event_t::@135::@151 media_player_scrambled_changed
libvlc_MediaListItemDeleted
@ libvlc_MediaListItemDeleted
A media item was deleted from a media list.
Definition: libvlc_events.h:169
libvlc_MediaPlayerPositionChanged
@ libvlc_MediaPlayerPositionChanged
Definition: libvlc_events.h:110
libvlc_event_t::thumbnails
libvlc_picture_list_t * thumbnails
Definition: libvlc_events.h:278
libvlc_event_t::new_length
libvlc_time_t new_length
Definition: libvlc_events.h:357
libvlc_MediaPlayerProgramAdded
@ libvlc_MediaPlayerProgramAdded
Definition: libvlc_events.h:139
libvlc_event_t::media_player_audio_volume
struct libvlc_event_t::@135::@165 media_player_audio_volume
libvlc_MediaPlayerChapterChanged
@ libvlc_MediaPlayerChapterChanged
Definition: libvlc_events.h:153
libvlc_MediaListPlayerStopped
@ libvlc_MediaListPlayerStopped
Playback of a media list player has stopped.
Definition: libvlc_events.h:221
libvlc_event_t::media_player_program_changed
struct libvlc_event_t::@135::@163 media_player_program_changed
libvlc_RendererDiscovererItemDeleted
@ libvlc_RendererDiscovererItemDeleted
A previously discovered renderer item was deleted by a renderer discoverer.
Definition: libvlc_events.h:235
libvlc_MediaListViewItemDeleted
@ libvlc_MediaListViewItemDeleted
Definition: libvlc_events.h:197
libvlc_MediaPlayerProgramDeleted
@ libvlc_MediaPlayerProgramDeleted
Definition: libvlc_events.h:140
libvlc_event_t
struct libvlc_event_t libvlc_event_t
A LibVLC event.
libvlc_event_t::new_scrambled
int new_scrambled
Definition: libvlc_events.h:313
libvlc_event_t::media_player_position_changed
struct libvlc_event_t::@135::@146 media_player_position_changed
libvlc_event_t::new_seekable
int new_seekable
Definition: libvlc_events.h:305
libvlc_MediaPlayerUncorked
@ libvlc_MediaPlayerUncorked
Definition: libvlc_events.h:131
libvlc_MediaListWillAddItem
@ libvlc_MediaListWillAddItem
A media item is about to get added to a media list.
Definition: libvlc_events.h:164
libvlc_event_t::renderer_discoverer_item_deleted
struct libvlc_event_t::@135::@168 renderer_discoverer_item_deleted
libvlc_event_t::media_player_program_selection_changed
struct libvlc_event_t::@135::@164 media_player_program_selection_changed
libvlc_event_t::new_time
libvlc_time_t new_time
Definition: libvlc_events.h:296
libvlc_MediaPlayerStopped
@ libvlc_MediaPlayerStopped
Definition: libvlc_events.h:104
libvlc_renderer_item_t
struct libvlc_renderer_item_t libvlc_renderer_item_t
Definition: libvlc_events.h:36
libvlc_MediaListEndReached
@ libvlc_MediaListEndReached
A media list has reached the end.
Definition: libvlc_events.h:181
libvlc_event_t::new_state
int new_state
see libvlc_state_t
Definition: libvlc_events.h:266
libvlc_event_t::p_obj
void * p_obj
Object emitting the event.
Definition: libvlc_events.h:244
libvlc_event_t::media_meta_changed
struct libvlc_event_t::@135::@136 media_meta_changed
libvlc_event_t::media_player_buffering
struct libvlc_event_t::@135::@144 media_player_buffering
libvlc_time_t
int64_t libvlc_time_t
Definition: libvlc.h:78
libvlc_event_t::new_chapter
int new_chapter
Definition: libvlc_events.h:288
libvlc_event_t::media_list_will_add_item
struct libvlc_event_t::@135::@154 media_list_will_add_item
libvlc_MediaMetaChanged
@ libvlc_MediaMetaChanged
Metadata of a media item changed.
Definition: libvlc_events.h:55
libvlc_event_t::item
libvlc_media_t * item
Definition: libvlc_events.h:274
libvlc_event_t::meta_type
libvlc_meta_t meta_type
Definition: libvlc_events.h:250
libvlc_MediaPlayerPaused
@ libvlc_MediaPlayerPaused
Definition: libvlc_events.h:103
libvlc_event_t::new_duration
int64_t new_duration
Definition: libvlc_events.h:258
libvlc_MediaPlayerTimeChanged
@ libvlc_MediaPlayerTimeChanged
Definition: libvlc_events.h:109
libvlc_MediaPlayerAudioVolume
@ libvlc_MediaPlayerAudioVolume
Definition: libvlc_events.h:134
libvlc_event_t::item
libvlc_renderer_item_t * item
Definition: libvlc_events.h:409
libvlc_MediaPlayerMediaChanged
@ libvlc_MediaPlayerMediaChanged
Definition: libvlc_events.h:98
libvlc_event_t::psz_filename
char * psz_filename
Definition: libvlc_events.h:351
libvlc_event_e
libvlc_event_e
Event types.
Definition: libvlc_events.h:47
libvlc_MediaListItemAdded
@ libvlc_MediaListItemAdded
A media item was added to a media list.
Definition: libvlc_events.h:159
libvlc_MediaDurationChanged
@ libvlc_MediaDurationChanged
Duration of a media item changed.
Definition: libvlc_events.h:65
libvlc_event_t::new_position
float new_position
Definition: libvlc_events.h:292
libvlc_MediaListViewWillAddItem
@ libvlc_MediaListViewWillAddItem
Definition: libvlc_events.h:192
libvlc_event_t::title
const libvlc_title_description_t * title
Definition: libvlc_events.h:300
libvlc_event_t::new_media
libvlc_media_t * new_media
Definition: libvlc_events.h:363
libvlc_MediaPlayerESAdded
@ libvlc_MediaPlayerESAdded
A track was added, cf.
Definition: libvlc_events.h:122
libvlc_picture_t
struct libvlc_picture_t libvlc_picture_t
Definition: libvlc_picture.h:30
libvlc_event_t::psz_selected_id
const char * psz_selected_id
Definition: libvlc_events.h:381
libvlc_MediaPlayerESSelected
@ libvlc_MediaPlayerESSelected
Tracks were selected or unselected, cf.
Definition: libvlc_events.h:129
libvlc_MediaSubItemAdded
@ libvlc_MediaSubItemAdded
Subitem was added to a media item.
Definition: libvlc_events.h:60
libvlc_event_t::media_parsed_changed
struct libvlc_event_t::@135::@139 media_parsed_changed
libvlc_MediaListPlayerNextItemSet
@ libvlc_MediaListPlayerNextItemSet
The current item of a media list player has changed to a different item.
Definition: libvlc_events.h:215
libvlc_event_t
A LibVLC event.
Definition: libvlc_events.h:241
libvlc_event_t::media_subitem_added
struct libvlc_event_t::@135::@137 media_subitem_added
libvlc_MediaListPlayerPlayed
@ libvlc_MediaListPlayerPlayed
Playback of a media list player has started.
Definition: libvlc_events.h:208