Commit 96a96f60 authored by JP Dinger's avatar JP Dinger

Use the cpp to auto-update libvlc_event_type_name()'s dictionary.

This breaks the new python bindings' trawling of the source.
parent cd10ad58
...@@ -17,9 +17,9 @@ ...@@ -17,9 +17,9 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License along
* along with this program; if not, write to the Free Software * with this program; if not, write to the Free Software Foundation, Inc.,
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/ *****************************************************************************/
#ifndef LIBVLC_EVENTS_H #ifndef LIBVLC_EVENTS_H
...@@ -44,70 +44,81 @@ extern "C" { ...@@ -44,70 +44,81 @@ extern "C" {
* @{ * @{
*/ */
/* 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 ), \
/* New event types HERE */
#ifdef __cplusplus #ifdef __cplusplus
enum libvlc_event_type_e { enum libvlc_event_type_e {
#else #else
enum libvlc_event_type_t { enum libvlc_event_type_t {
#endif #endif
/* Append new event types at the end. #define DEF(a) libvlc_##a
* Do not remove, insert or re-order any entry. */ DEFINE_LIBVLC_EVENT_TYPES
libvlc_MediaMetaChanged, libvlc_num_event_types
libvlc_MediaSubItemAdded, #undef DEF
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_MediaPlayerSnapshotTaken,
libvlc_MediaPlayerLengthChanged,
libvlc_VlmMediaAdded,
libvlc_VlmMediaRemoved,
libvlc_VlmMediaChanged,
libvlc_VlmMediaInstanceStarted,
libvlc_VlmMediaInstanceStopped,
libvlc_VlmMediaInstanceStatusInit,
libvlc_VlmMediaInstanceStatusOpening,
libvlc_VlmMediaInstanceStatusPlaying,
libvlc_VlmMediaInstanceStatusPause,
libvlc_VlmMediaInstanceStatusEnd,
libvlc_VlmMediaInstanceStatusError,
/* New event types HERE */
}; };
/* Implementing libvlc_event_type_name() needs the definition too. */
#ifndef LIBVLC_EVENT_TYPES_KEEP_DEFINE
#undef DEFINE_LIBVLC_EVENT_TYPES
#endif
/** /**
* An Event * An Event
* \param type the even type * \param type the even type
......
...@@ -17,15 +17,16 @@ ...@@ -17,15 +17,16 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License along
* along with this program; if not, write to the Free Software * with this program; if not, write to the Free Software Foundation, Inc.,
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/ *****************************************************************************/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
# include "config.h" # include "config.h"
#endif #endif
#define LIBVLC_EVENT_TYPES_KEEP_DEFINE
#include <vlc/libvlc.h> #include <vlc/libvlc.h>
#include "libvlc_internal.h" #include "libvlc_internal.h"
...@@ -250,58 +251,19 @@ void libvlc_event_send( libvlc_event_manager_t * p_em, ...@@ -250,58 +251,19 @@ void libvlc_event_send( libvlc_event_manager_t * p_em,
* *
* Get the char * name of an event type. * Get the char * name of an event type.
**************************************************************************/ **************************************************************************/
static const char event_type_to_name[][35] = static const char event_type_to_name[][libvlc_num_event_types] =
{ {
#define EVENT(a) [a]=#a #define DEF(a) [libvlc_##a]=#a
EVENT(libvlc_MediaMetaChanged), DEFINE_LIBVLC_EVENT_TYPES
EVENT(libvlc_MediaSubItemAdded), #undef DEF
EVENT(libvlc_MediaDurationChanged),
EVENT(libvlc_MediaPreparsedChanged),
EVENT(libvlc_MediaFreed),
EVENT(libvlc_MediaStateChanged),
EVENT(libvlc_MediaPlayerNothingSpecial),
EVENT(libvlc_MediaPlayerOpening),
EVENT(libvlc_MediaPlayerBuffering),
EVENT(libvlc_MediaPlayerPlaying),
EVENT(libvlc_MediaPlayerPaused),
EVENT(libvlc_MediaPlayerStopped),
EVENT(libvlc_MediaPlayerForward),
EVENT(libvlc_MediaPlayerBackward),
EVENT(libvlc_MediaPlayerEndReached),
EVENT(libvlc_MediaPlayerTimeChanged),
EVENT(libvlc_MediaPlayerTitleChanged),
EVENT(libvlc_MediaPlayerPositionChanged),
EVENT(libvlc_MediaPlayerSeekableChanged),
EVENT(libvlc_MediaPlayerPausableChanged),
EVENT(libvlc_MediaListItemAdded),
EVENT(libvlc_MediaListWillAddItem),
EVENT(libvlc_MediaListItemDeleted),
EVENT(libvlc_MediaListWillDeleteItem),
EVENT(libvlc_MediaListViewItemAdded),
EVENT(libvlc_MediaListViewWillAddItem),
EVENT(libvlc_MediaListViewItemDeleted),
EVENT(libvlc_MediaListViewWillDeleteItem),
EVENT(libvlc_MediaListPlayerPlayed),
EVENT(libvlc_MediaListPlayerNextItemSet),
EVENT(libvlc_MediaListPlayerStopped),
EVENT(libvlc_MediaDiscovererStarted),
EVENT(libvlc_MediaDiscovererEnded),
EVENT(libvlc_MediaPlayerSnapshotTaken),
#undef EVENT
}; };
static const char unkwown_event_name[] = "Unknown Event"; static const char unknown_event_name[] = "Unknown Event";
const char * libvlc_event_type_name( libvlc_event_type_t event_type ) const char * libvlc_event_type_name( libvlc_event_type_t event_type )
{ {
if( event_type >= sizeof(event_type_to_name)/sizeof(event_type_to_name[0])) if( event_type >= libvlc_num_event_types )
return unkwown_event_name; return unknown_event_name;
return event_type_to_name[event_type]; return event_type_to_name[event_type];
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment