X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc%2Flibvlc_events.h;h=f268fb5128ba932b8ce126d150550ea95159a233;hb=8b9e6d1672f569aee20e663bd938266c1b73224b;hp=51c637e1fab7be2568e794379ff61c91ceb71075;hpb=3d0ef0165c1c9189192d6f7dad3fd5901db6034c;p=vlc diff --git a/include/vlc/libvlc_events.h b/include/vlc/libvlc_events.h index 51c637e1fa..f268fb5128 100644 --- a/include/vlc/libvlc_events.h +++ b/include/vlc/libvlc_events.h @@ -1,25 +1,25 @@ /***************************************************************************** * libvlc_events.h: libvlc_events external API structure ***************************************************************************** - * Copyright (C) 1998-2008 the VideoLAN team + * Copyright (C) 1998-2010 VLC authors and VideoLAN * $Id $ * * Authors: Filippo Carone * Pierre d'Herbemont * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser 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 Lesser 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 @@ -34,30 +34,27 @@ extern "C" { # endif -/***************************************************************************** - * Events handling - *****************************************************************************/ - -/** \defgroup libvlc_event libvlc_event - * \ingroup libvlc_core - * LibVLC Available Events +/** + * \ingroup libvlc_event * @{ */ -#ifdef __cplusplus -enum libvlc_event_type_e { -#else -enum libvlc_event_type_t { -#endif - /* Append new event types at the end. - * Do not remove, insert or re-order any entry. */ - libvlc_MediaMetaChanged, +/** + * Event types + */ +enum libvlc_event_e { + /* Append new event types at the end of a category. + * Do not remove, insert or re-order any entry. + * Keep this in sync with lib/event.c:libvlc_event_type_name(). */ + libvlc_MediaMetaChanged=0, libvlc_MediaSubItemAdded, libvlc_MediaDurationChanged, - libvlc_MediaPreparsedChanged, + libvlc_MediaParsedChanged, libvlc_MediaFreed, libvlc_MediaStateChanged, + libvlc_MediaSubItemTreeAdded, + libvlc_MediaPlayerMediaChanged=0x100, libvlc_MediaPlayerNothingSpecial, libvlc_MediaPlayerOpening, libvlc_MediaPlayerBuffering, @@ -72,53 +69,55 @@ enum libvlc_event_type_t { libvlc_MediaPlayerPositionChanged, libvlc_MediaPlayerSeekableChanged, libvlc_MediaPlayerPausableChanged, + libvlc_MediaPlayerTitleChanged, + libvlc_MediaPlayerSnapshotTaken, + libvlc_MediaPlayerLengthChanged, + libvlc_MediaPlayerVout, + libvlc_MediaPlayerScrambledChanged, - libvlc_MediaListItemAdded, + libvlc_MediaListItemAdded=0x200, libvlc_MediaListWillAddItem, libvlc_MediaListItemDeleted, libvlc_MediaListWillDeleteItem, - libvlc_MediaListViewItemAdded, + libvlc_MediaListViewItemAdded=0x300, libvlc_MediaListViewWillAddItem, libvlc_MediaListViewItemDeleted, libvlc_MediaListViewWillDeleteItem, - libvlc_MediaListPlayerPlayed, + libvlc_MediaListPlayerPlayed=0x400, libvlc_MediaListPlayerNextItemSet, libvlc_MediaListPlayerStopped, - libvlc_MediaDiscovererStarted, + libvlc_MediaDiscovererStarted=0x500, libvlc_MediaDiscovererEnded, - libvlc_MediaPlayerTitleChanged, - libvlc_MediaPlayerSnapshotTaken, - libvlc_MediaPlayerLengthChanged, - - libvlc_VlmMediaAdded, + libvlc_VlmMediaAdded=0x600, libvlc_VlmMediaRemoved, libvlc_VlmMediaChanged, libvlc_VlmMediaInstanceStarted, libvlc_VlmMediaInstanceStopped, - /* New event types HERE */ + libvlc_VlmMediaInstanceStatusInit, + libvlc_VlmMediaInstanceStatusOpening, + libvlc_VlmMediaInstanceStatusPlaying, + libvlc_VlmMediaInstanceStatusPause, + libvlc_VlmMediaInstanceStatusEnd, + libvlc_VlmMediaInstanceStatusError }; /** - * An Event - * \param type the even type - * \param p_obj the sender object - * \param u Event dependent content + * A LibVLC event */ - -struct libvlc_event_t +typedef struct libvlc_event_t { - unsigned type; - void * p_obj; - union event_type_specific + int type; /**< Event type (see @ref libvlc_event_e) */ + void *p_obj; /**< Object emitting the event */ + union { /* media descriptor */ struct { - unsigned meta_type; + libvlc_meta_t meta_type; } media_meta_changed; struct { @@ -131,18 +130,26 @@ struct libvlc_event_t struct { int new_status; - } media_preparsed_changed; + } media_parsed_changed; struct { libvlc_media_t * md; } media_freed; struct { - unsigned new_state; + libvlc_state_t new_state; } media_state_changed; + struct + { + libvlc_media_t * item; + } media_subitemtree_added; /* media instance */ struct + { + float new_cache; + } media_player_buffering; + struct { float new_position; } media_player_position_changed; @@ -156,12 +163,20 @@ struct libvlc_event_t } media_player_title_changed; struct { - uint64_t new_seekable; /* FIXME: that's a boolean! */ + int new_seekable; } media_player_seekable_changed; struct { - uint64_t new_pausable; /* FIXME: that's a BOOL!!! */ + int new_pausable; } media_player_pausable_changed; + struct + { + int new_scrambled; + } media_player_scrambled_changed; + struct + { + int new_count; + } media_player_vout; /* media list */ struct @@ -185,27 +200,11 @@ struct libvlc_event_t int index; } media_list_will_delete_item; - /* media list view */ - struct - { - libvlc_media_t * item; - int index; - } media_list_view_item_added; + /* media list player */ struct { libvlc_media_t * item; - int index; - } media_list_view_will_add_item; - struct - { - libvlc_media_t * item; - int index; - } media_list_view_item_deleted; - struct - { - libvlc_media_t * item; - int index; - } media_list_view_will_delete_item; + } media_list_player_next_item_set; /* snapshot taken */ struct @@ -223,10 +222,16 @@ struct libvlc_event_t struct { const char * psz_media_name; + const char * psz_instance_name; } vlm_media_event; - } u; -}; + /* Extra MediaPlayer */ + struct + { + libvlc_media_t * new_media; + } media_player_media_changed; + } u; /**< Type-dependent event description */ +} libvlc_event_t; /**@} */