X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc%2Flibvlc_events.h;h=94968395a250aff75832452cfd3b55a25ac1b9c6;hb=e22624799da7c67a3cfa6ab366927d2ddc985a01;hp=f72ee6cab594f9e1be8978c5f2d27c3c0b0f4537;hpb=e7e8927bd342060b6d95ef0622a308f3b93718d4;p=vlc diff --git a/include/vlc/libvlc_events.h b/include/vlc/libvlc_events.h index f72ee6cab5..94968395a2 100644 --- a/include/vlc/libvlc_events.h +++ b/include/vlc/libvlc_events.h @@ -1,7 +1,7 @@ /***************************************************************************** * libvlc_events.h: libvlc_events external API structure ***************************************************************************** - * Copyright (C) 1998-2008 the VideoLAN team + * Copyright (C) 1998-2010 the VideoLAN team * $Id $ * * Authors: Filippo Carone @@ -17,9 +17,9 @@ * 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., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + * 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., + * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ #ifndef LIBVLC_EVENTS_H @@ -44,49 +44,88 @@ extern "C" { * @{ */ -typedef enum libvlc_event_type_t { - libvlc_MediaMetaChanged, - libvlc_MediaSubItemAdded, - libvlc_MediaDurationChanged, - libvlc_MediaPreparsedChanged, - libvlc_MediaFreed, - libvlc_MediaStateChanged, - - libvlc_MediaPlayerNothingSpecial, - libvlc_MediaPlayerOpening, - libvlc_MediaPlayerBuffering, - libvlc_MediaPlayerPlaying, - libvlc_MediaPlayerPaused, - libvlc_MediaPlayerStopped, - libvlc_MediaPlayerForward, - libvlc_MediaPlayerBackward, - libvlc_MediaPlayerEndReached, - libvlc_MediaPlayerEncounteredError, - libvlc_MediaPlayerTimeChanged, - libvlc_MediaPlayerPositionChanged, - libvlc_MediaPlayerSeekableChanged, - libvlc_MediaPlayerPausableChanged, - - libvlc_MediaListItemAdded, - libvlc_MediaListWillAddItem, - libvlc_MediaListItemDeleted, - libvlc_MediaListWillDeleteItem, - - libvlc_MediaListViewItemAdded, - libvlc_MediaListViewWillAddItem, - libvlc_MediaListViewItemDeleted, - libvlc_MediaListViewWillDeleteItem, - - libvlc_MediaListPlayerPlayed, - libvlc_MediaListPlayerNextItemSet, - libvlc_MediaListPlayerStopped, - - libvlc_MediaDiscovererStarted, - libvlc_MediaDiscovererEnded, - - libvlc_MediaPlayerTitleChanged - -} libvlc_event_type_t; + /* Append new event types at the end. Do not remove, insert or + * re-order any entry. The cpp will prepend libvlc_ to the symbols. */ +#define DEFINE_LIBVLC_EVENT_TYPES \ + DEF( MediaMetaChanged ), \ + DEF( MediaSubItemAdded ), \ + DEF( MediaDurationChanged ), \ + DEF( MediaPreparsedChanged ), \ + DEF( MediaFreed ), \ + DEF( MediaStateChanged ), \ + \ + DEF( MediaPlayerNothingSpecial ), \ + DEF( MediaPlayerOpening ), \ + DEF( MediaPlayerBuffering ), \ + DEF( MediaPlayerPlaying ), \ + DEF( MediaPlayerPaused ), \ + DEF( MediaPlayerStopped ), \ + DEF( MediaPlayerForward ), \ + DEF( MediaPlayerBackward ), \ + DEF( MediaPlayerEndReached ), \ + DEF( MediaPlayerEncounteredError ), \ + DEF( MediaPlayerTimeChanged ), \ + DEF( MediaPlayerPositionChanged ), \ + DEF( MediaPlayerSeekableChanged ), \ + DEF( MediaPlayerPausableChanged ), \ + \ + DEF( MediaListItemAdded ), \ + DEF( MediaListWillAddItem ), \ + DEF( MediaListItemDeleted ), \ + DEF( MediaListWillDeleteItem ), \ + \ + DEF( MediaListViewItemAdded ), \ + DEF( MediaListViewWillAddItem ), \ + DEF( MediaListViewItemDeleted ), \ + DEF( MediaListViewWillDeleteItem ), \ + \ + DEF( MediaListPlayerPlayed ), \ + DEF( MediaListPlayerNextItemSet ), \ + DEF( MediaListPlayerStopped ), \ + \ + DEF( MediaDiscovererStarted ), \ + DEF( MediaDiscovererEnded ), \ + \ + DEF( MediaPlayerTitleChanged ), \ + DEF( MediaPlayerSnapshotTaken ), \ + DEF( MediaPlayerLengthChanged ), \ + \ + DEF( VlmMediaAdded ), \ + DEF( VlmMediaRemoved ), \ + DEF( VlmMediaChanged ), \ + DEF( VlmMediaInstanceStarted ), \ + DEF( VlmMediaInstanceStopped ), \ + DEF( VlmMediaInstanceStatusInit ), \ + DEF( VlmMediaInstanceStatusOpening ), \ + DEF( VlmMediaInstanceStatusPlaying ), \ + DEF( VlmMediaInstanceStatusPause ), \ + DEF( VlmMediaInstanceStatusEnd ), \ + DEF( VlmMediaInstanceStatusError ), \ + \ + DEF( MediaPlayerMediaChanged ), \ + \ + DEF( MediaPlayerMouseMoved ), \ + DEF( MediaPlayerMouseButton ), \ + DEF( MediaPlayerMouseClick ), \ + DEF( MediaPlayerMouseObject ), \ + \ +/* New event types HERE */ + +#ifdef __cplusplus +enum libvlc_event_type_e { +#else +enum libvlc_event_type_t { +#endif +#define DEF(a) libvlc_##a + DEFINE_LIBVLC_EVENT_TYPES + libvlc_num_event_types +#undef DEF +}; + +/* Implementing libvlc_event_type_name() needs the definition too. */ +#ifndef LIBVLC_EVENT_TYPES_KEEP_DEFINE +#undef DEFINE_LIBVLC_EVENT_TYPES +#endif /** * An Event @@ -95,7 +134,7 @@ typedef enum libvlc_event_type_t { * \param u Event dependent content */ -typedef struct libvlc_event_t +struct libvlc_event_t { libvlc_event_type_t type; void * p_obj; @@ -142,11 +181,11 @@ typedef struct libvlc_event_t } media_player_title_changed; struct { - libvlc_time_t new_seekable; + int new_seekable; } media_player_seekable_changed; struct { - libvlc_time_t new_pausable; + int new_pausable; } media_player_pausable_changed; /* media list */ @@ -171,54 +210,66 @@ typedef struct libvlc_event_t int index; } media_list_will_delete_item; - /* media list view */ + /* media list player */ struct { libvlc_media_t * item; - int index; - } media_list_view_item_added; + } media_list_player_next_item_set; + + /* snapshot taken */ struct { - libvlc_media_t * item; - int index; - } media_list_view_will_add_item; + char* psz_filename ; + } media_player_snapshot_taken ; + + /* Length changed */ struct { - libvlc_media_t * item; - int index; - } media_list_view_item_deleted; + libvlc_time_t new_length; + } media_player_length_changed; + + /* VLM media */ struct { - libvlc_media_t * item; - int index; - } media_list_view_will_delete_item; + const char * psz_media_name; + const char * psz_instance_name; + } vlm_media_event; - /* media discoverer */ + /* Extra MediaPlayer */ struct { - void * unused; - } media_media_discoverer_started; + libvlc_media_t * new_media; + } media_player_media_changed; + + /* Mouse events */ struct { - void * unused; - } media_media_discoverer_ended; + int x; + int y; + } media_player_mouse_moved; - } u; -} libvlc_event_t; + struct + { + int mb_left; + int mb_center; + int mb_right; + int mb_wheel_up; + int mb_wheel_down; + } media_player_mouse_button; -/** - * Event manager that belongs to a libvlc object, and from whom events can - * be received. - */ + struct + { + int clicked; + } media_player_mouse_clicked; -typedef struct libvlc_event_manager_t libvlc_event_manager_t; + struct + { + int moved; + } media_player_mouse_object; -/** - * Callback function notification - * \param p_event the event triggering the callback - */ + } u; +}; -typedef void ( *libvlc_callback_t )( const libvlc_event_t *, void * ); /**@} */