+#ifdef DEBUG_EVENT
+static const char ppsz_event_type_to_name[][33] =
+{
+ [vlc_InputStateChanged] = "vlc_InputStateChanged",
+ [vlc_InputSelectedStreamChanged] = "vlc_InputSelectedStreamChanged",
+
+ [vlc_InputItemMetaChanged] = "vlc_InputItemMetaChanged",
+ [vlc_InputItemSubItemAdded] = "vlc_InputItemSubItemAdded",
+ [vlc_InputItemDurationChanged] = "vlc_InputItemDurationChanged",
+ [vlc_InputItemPreparsedChanged] = "vlc_InputItemPreparsedChanged",
+ [vlc_InputItemNameChanged] = "vlc_InputItemNameChanged",
+ [vlc_InputItemInfoChanged] = "vlc_InputItemInfoChanged",
+ [vlc_InputItemErrorWhenReadingChanged] = "vlc_InputItemErrorWhenReadingChanged",
+
+ [vlc_ServicesDiscoveryItemAdded] = "vlc_ServicesDiscoveryItemAdded",
+ [vlc_ServicesDiscoveryItemRemoved] = "vlc_ServicesDiscoveryItemRemoved"
+ [vlc_ServicesDiscoveryStarted] = "vlc_ServicesDiscoveryStarted"
+ [vlc_ServicesDiscoveryEnded] = "vlc_ServicesDiscoveryEnded"
+};
+#endif
+
+static bool
+listeners_are_equal( vlc_event_listener_t * listener1,
+ vlc_event_listener_t * listener2 )
+{
+ return listener1->pf_callback == listener2->pf_callback &&
+ listener1->p_user_data == listener2->p_user_data;
+}
+
+static bool
+group_contains_listener( vlc_event_listeners_group_t * group,
+ vlc_event_listener_t * searched_listener )
+{
+ vlc_event_listener_t * listener;
+ FOREACH_ARRAY( listener, group->listeners )
+ if( listeners_are_equal(searched_listener, listener) )
+ return true;
+ FOREACH_END()
+ return false;
+}
+