1 /*****************************************************************************
2 * libvlc_events.h: libvlc_events external API structure
3 *****************************************************************************
4 * Copyright (C) 1998-2010 the VideoLAN team
7 * Authors: Filippo Carone <littlejohn@videolan.org>
8 * Pierre d'Herbemont <pdherbemont@videolan.org>
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License along
21 * with this program; if not, write to the Free Software Foundation, Inc.,
22 * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
23 *****************************************************************************/
25 #ifndef LIBVLC_EVENTS_H
26 #define LIBVLC_EVENTS_H 1
30 * This file defines libvlc_event external API
38 * \ingroup libvlc_event
46 /* Append new event types at the end of a category.
47 * Do not remove, insert or re-order any entry.
48 * Keep this in sync with lib/event.c:libvlc_event_type_name(). */
49 libvlc_MediaMetaChanged=0,
50 libvlc_MediaSubItemAdded,
51 libvlc_MediaDurationChanged,
52 libvlc_MediaParsedChanged,
54 libvlc_MediaStateChanged,
56 libvlc_MediaPlayerMediaChanged=0x100,
57 libvlc_MediaPlayerNothingSpecial,
58 libvlc_MediaPlayerOpening,
59 libvlc_MediaPlayerBuffering,
60 libvlc_MediaPlayerPlaying,
61 libvlc_MediaPlayerPaused,
62 libvlc_MediaPlayerStopped,
63 libvlc_MediaPlayerForward,
64 libvlc_MediaPlayerBackward,
65 libvlc_MediaPlayerEndReached,
66 libvlc_MediaPlayerEncounteredError,
67 libvlc_MediaPlayerTimeChanged,
68 libvlc_MediaPlayerPositionChanged,
69 libvlc_MediaPlayerSeekableChanged,
70 libvlc_MediaPlayerPausableChanged,
71 libvlc_MediaPlayerTitleChanged,
72 libvlc_MediaPlayerSnapshotTaken,
73 libvlc_MediaPlayerLengthChanged,
74 libvlc_MediaPlayerVout,
76 libvlc_MediaListItemAdded=0x200,
77 libvlc_MediaListWillAddItem,
78 libvlc_MediaListItemDeleted,
79 libvlc_MediaListWillDeleteItem,
81 libvlc_MediaListViewItemAdded=0x300,
82 libvlc_MediaListViewWillAddItem,
83 libvlc_MediaListViewItemDeleted,
84 libvlc_MediaListViewWillDeleteItem,
86 libvlc_MediaListPlayerPlayed=0x400,
87 libvlc_MediaListPlayerNextItemSet,
88 libvlc_MediaListPlayerStopped,
90 libvlc_MediaDiscovererStarted=0x500,
91 libvlc_MediaDiscovererEnded,
93 libvlc_VlmMediaAdded=0x600,
94 libvlc_VlmMediaRemoved,
95 libvlc_VlmMediaChanged,
96 libvlc_VlmMediaInstanceStarted,
97 libvlc_VlmMediaInstanceStopped,
98 libvlc_VlmMediaInstanceStatusInit,
99 libvlc_VlmMediaInstanceStatusOpening,
100 libvlc_VlmMediaInstanceStatusPlaying,
101 libvlc_VlmMediaInstanceStatusPause,
102 libvlc_VlmMediaInstanceStatusEnd,
103 libvlc_VlmMediaInstanceStatusError
109 typedef struct libvlc_event_t
111 int type; /**< Event type (see @ref libvlc_event_e) */
112 void *p_obj; /**< Object emitting the event */
115 /* media descriptor */
118 libvlc_meta_t meta_type;
119 } media_meta_changed;
122 libvlc_media_t * new_child;
123 } media_subitem_added;
126 int64_t new_duration;
127 } media_duration_changed;
131 } media_parsed_changed;
138 libvlc_state_t new_state;
139 } media_state_changed;
145 } media_player_buffering;
149 } media_player_position_changed;
152 libvlc_time_t new_time;
153 } media_player_time_changed;
157 } media_player_title_changed;
161 } media_player_seekable_changed;
165 } media_player_pausable_changed;
174 libvlc_media_t * item;
176 } media_list_item_added;
179 libvlc_media_t * item;
181 } media_list_will_add_item;
184 libvlc_media_t * item;
186 } media_list_item_deleted;
189 libvlc_media_t * item;
191 } media_list_will_delete_item;
193 /* media list player */
196 libvlc_media_t * item;
197 } media_list_player_next_item_set;
203 } media_player_snapshot_taken ;
208 libvlc_time_t new_length;
209 } media_player_length_changed;
214 const char * psz_media_name;
215 const char * psz_instance_name;
218 /* Extra MediaPlayer */
221 libvlc_media_t * new_media;
222 } media_player_media_changed;
223 } u; /**< Type-dependent event description */
233 #endif /* _LIBVLC_EVENTS_H */