Commit 4c401bde authored by Pierre d'Herbemont's avatar Pierre d'Herbemont

control/event.c: Add some comments.

parent b826a37d
...@@ -31,6 +31,11 @@ ...@@ -31,6 +31,11 @@
* Private functions * Private functions
*/ */
/**************************************************************************
* handle_event (private)
*
* Callback from the vlc variables
**************************************************************************/
static int handle_event( vlc_object_t *p_this, char const *psz_cmd, static int handle_event( vlc_object_t *p_this, char const *psz_cmd,
vlc_value_t oldval, vlc_value_t newval, vlc_value_t oldval, vlc_value_t newval,
void *p_data ) void *p_data )
...@@ -76,7 +81,12 @@ static int handle_event( vlc_object_t *p_this, char const *psz_cmd, ...@@ -76,7 +81,12 @@ static int handle_event( vlc_object_t *p_this, char const *psz_cmd,
return VLC_SUCCESS; return VLC_SUCCESS;
} }
/* Utility function: Object should be released by vlc_object_release afterwards */ /**************************************************************************
* get_input (private) :
*
* Utility function, Object should be released by vlc_object_release
* afterwards
**************************************************************************/
static input_thread_t * get_input(libvlc_instance_t * p_instance) static input_thread_t * get_input(libvlc_instance_t * p_instance)
{ {
libvlc_exception_t p_e_unused; /* FIXME: error checking here */ libvlc_exception_t p_e_unused; /* FIXME: error checking here */
...@@ -93,6 +103,12 @@ static input_thread_t * get_input(libvlc_instance_t * p_instance) ...@@ -93,6 +103,12 @@ static input_thread_t * get_input(libvlc_instance_t * p_instance)
return p_input; return p_input;
} }
/**************************************************************************
* install_input_event (private) :
*
* vlc variables callback, used to install input event.
* Can be called manually though.
**************************************************************************/
static int install_input_event( vlc_object_t *p_this, char const *psz_cmd, static int install_input_event( vlc_object_t *p_this, char const *psz_cmd,
vlc_value_t oldval, vlc_value_t newval, vlc_value_t oldval, vlc_value_t newval,
void *p_data ) void *p_data )
...@@ -121,6 +137,11 @@ static int install_input_event( vlc_object_t *p_this, char const *psz_cmd, ...@@ -121,6 +137,11 @@ static int install_input_event( vlc_object_t *p_this, char const *psz_cmd,
return VLC_SUCCESS; return VLC_SUCCESS;
} }
/**************************************************************************
* add_callback_to_list (private) :
*
* callback list utility function.
**************************************************************************/
static inline void add_callback_to_list( struct libvlc_callback_entry_t *entry, static inline void add_callback_to_list( struct libvlc_callback_entry_t *entry,
struct libvlc_callback_entry_list_t **list ) struct libvlc_callback_entry_list_t **list )
{ {
...@@ -143,6 +164,11 @@ static inline void add_callback_to_list( struct libvlc_callback_entry_t *entry, ...@@ -143,6 +164,11 @@ static inline void add_callback_to_list( struct libvlc_callback_entry_t *entry,
*list = new_listitem; *list = new_listitem;
} }
/**************************************************************************
* remove_variable_callback (private) :
*
* Delete the appropriate vlc variables callback for an event.
**************************************************************************/
static int remove_variable_callback( libvlc_instance_t *p_instance, static int remove_variable_callback( libvlc_instance_t *p_instance,
struct libvlc_callback_entry_t * p_entry ) struct libvlc_callback_entry_t * p_entry )
{ {
...@@ -174,6 +200,12 @@ static int remove_variable_callback( libvlc_instance_t *p_instance, ...@@ -174,6 +200,12 @@ static int remove_variable_callback( libvlc_instance_t *p_instance,
/* /*
* Internal libvlc functions * Internal libvlc functions
*/ */
/**************************************************************************
* libvlc_event_init (internal) :
*
* initialization function.
**************************************************************************/
void libvlc_event_init( libvlc_instance_t *p_instance, libvlc_exception_t *p_e ) void libvlc_event_init( libvlc_instance_t *p_instance, libvlc_exception_t *p_e )
{ {
playlist_t *p_playlist = p_instance->p_libvlc_int->p_playlist; playlist_t *p_playlist = p_instance->p_libvlc_int->p_playlist;
...@@ -187,6 +219,11 @@ void libvlc_event_init( libvlc_instance_t *p_instance, libvlc_exception_t *p_e ) ...@@ -187,6 +219,11 @@ void libvlc_event_init( libvlc_instance_t *p_instance, libvlc_exception_t *p_e )
install_input_event, p_instance ); install_input_event, p_instance );
} }
/**************************************************************************
* libvlc_event_fini (internal) :
*
* finalization function.
**************************************************************************/
void libvlc_event_fini( libvlc_instance_t *p_instance, libvlc_exception_t *p_e ) void libvlc_event_fini( libvlc_instance_t *p_instance, libvlc_exception_t *p_e )
{ {
playlist_t *p_playlist = p_instance->p_libvlc_int->p_playlist; playlist_t *p_playlist = p_instance->p_libvlc_int->p_playlist;
...@@ -205,6 +242,11 @@ void libvlc_event_fini( libvlc_instance_t *p_instance, libvlc_exception_t *p_e ) ...@@ -205,6 +242,11 @@ void libvlc_event_fini( libvlc_instance_t *p_instance, libvlc_exception_t *p_e )
* Public libvlc functions * Public libvlc functions
*/ */
/**************************************************************************
* libvlc_event_add_callback (public) :
*
* Add a callback for an event.
**************************************************************************/
void libvlc_event_add_callback( libvlc_instance_t *p_instance, void libvlc_event_add_callback( libvlc_instance_t *p_instance,
libvlc_event_type_t i_event_type, libvlc_event_type_t i_event_type,
libvlc_callback_t f_callback, libvlc_callback_t f_callback,
...@@ -257,26 +299,11 @@ void libvlc_event_add_callback( libvlc_instance_t *p_instance, ...@@ -257,26 +299,11 @@ void libvlc_event_add_callback( libvlc_instance_t *p_instance,
return; return;
} }
void libvlc_event_remove_all_callbacks( libvlc_instance_t *p_instance, /**************************************************************************
libvlc_exception_t *p_e ) * libvlc_event_remove_callback (public) :
{ *
struct libvlc_callback_entry_list_t *p_listitem; * Remove a callback for an event.
**************************************************************************/
vlc_mutex_lock( &p_instance->instance_lock );
p_listitem = p_instance->p_callback_list;
while( p_listitem )
{
remove_variable_callback( p_instance, p_listitem->elmt ); /* FIXME: We could warn on error */
p_listitem = p_listitem->next;
}
p_instance->p_callback_list = NULL;
vlc_mutex_unlock( &p_instance->instance_lock );
}
void libvlc_event_remove_callback( libvlc_instance_t *p_instance, void libvlc_event_remove_callback( libvlc_instance_t *p_instance,
libvlc_event_type_t i_event_type, libvlc_event_type_t i_event_type,
libvlc_callback_t f_callback, libvlc_callback_t f_callback,
...@@ -317,3 +344,28 @@ void libvlc_event_remove_callback( libvlc_instance_t *p_instance, ...@@ -317,3 +344,28 @@ void libvlc_event_remove_callback( libvlc_instance_t *p_instance,
} }
vlc_mutex_unlock( &p_instance->instance_lock ); vlc_mutex_unlock( &p_instance->instance_lock );
} }
/**************************************************************************
* libvlc_event_remove_all_callbacks (public) :
*
* Remove all callbacks for all events.
**************************************************************************/
void libvlc_event_remove_all_callbacks( libvlc_instance_t *p_instance,
libvlc_exception_t *p_e )
{
struct libvlc_callback_entry_list_t *p_listitem;
vlc_mutex_lock( &p_instance->instance_lock );
p_listitem = p_instance->p_callback_list;
while( p_listitem )
{
remove_variable_callback( p_instance, p_listitem->elmt ); /* FIXME: We could warn on error */
p_listitem = p_listitem->next;
}
p_instance->p_callback_list = NULL;
vlc_mutex_unlock( &p_instance->instance_lock );
}
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