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 */