X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc%2Flibvlc_events.h;h=1055262253c9fa0963985e33c04cd93c7f6fb481;hb=87ffb90bc35977f6c79be6482158682f371734de;hp=1f59a1a157bb3c6d38abd186258bb95712b7ab6d;hpb=5ba2255e622499a3bb545e89c84a675f0adde07f;p=vlc diff --git a/include/vlc/libvlc_events.h b/include/vlc/libvlc_events.h index 1f59a1a157..1055262253 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-2007 the VideoLAN team + * Copyright (C) 1998-2008 the VideoLAN team * $Id $ * * Authors: Filippo Carone @@ -17,13 +17,18 @@ * 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 -#define _LIBVLC_EVENTS_H 1 +#ifndef LIBVLC_EVENTS_H +#define LIBVLC_EVENTS_H 1 + +/** + * \file + * This file defines libvlc_event external API + */ # ifdef __cplusplus extern "C" { @@ -39,42 +44,82 @@ extern "C" { * @{ */ -typedef enum libvlc_event_type_t { - libvlc_MediaMetaChanged, - libvlc_MediaSubItemAdded, - libvlc_MediaDurationChanged, - libvlc_MediaPreparsedChanged, - libvlc_MediaFreed, - libvlc_MediaStateChanged, - - libvlc_MediaPlayerPlayed, - libvlc_MediaPlayerPaused, - libvlc_MediaPlayerEndReached, - libvlc_MediaPlayerStopped, - 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_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 ), \ +/* 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 @@ -83,7 +128,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; @@ -126,11 +171,15 @@ typedef struct libvlc_event_t } media_player_time_changed; struct { - libvlc_time_t new_seekable; + int new_title; + } media_player_title_changed; + struct + { + int new_seekable; } media_player_seekable_changed; struct { - libvlc_time_t new_pausable; + int new_pausable; } media_player_pausable_changed; /* media list */ @@ -177,32 +226,39 @@ typedef struct libvlc_event_t int index; } media_list_view_will_delete_item; - /* media discoverer */ + /* media list player */ struct { - void * unused; - } media_media_discoverer_started; + libvlc_media_t * item; + } media_list_player_next_item_set; + + /* snapshot taken */ struct { - void * unused; - } media_media_discoverer_ended; - - } u; -} libvlc_event_t; + char* psz_filename ; + } media_player_snapshot_taken ; -/** - * Event manager that belongs to a libvlc object, and from whom events can - * be received. - */ + /* Length changed */ + struct + { + libvlc_time_t new_length; + } media_player_length_changed; -typedef struct libvlc_event_manager_t libvlc_event_manager_t; + /* VLM media */ + struct + { + const char * psz_media_name; + const char * psz_instance_name; + } vlm_media_event; -/** - * Callback function notification - * \param p_event the event triggering the callback - */ + /* Extra MediaPlayer */ + struct + { + libvlc_media_t * new_media; + } media_player_media_changed; + } u; +}; -typedef void ( *libvlc_callback_t )( const libvlc_event_t *, void * ); /**@} */