Commit cb435e27 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Add libvlc_set_exit_handler(), more powerful than libvlc_wait()

parent 6197b056
...@@ -145,6 +145,22 @@ VLC_PUBLIC_API void libvlc_retain( libvlc_instance_t *p_instance ); ...@@ -145,6 +145,22 @@ VLC_PUBLIC_API void libvlc_retain( libvlc_instance_t *p_instance );
VLC_PUBLIC_API VLC_PUBLIC_API
int libvlc_add_intf( libvlc_instance_t *p_instance, const char *name ); int libvlc_add_intf( libvlc_instance_t *p_instance, const char *name );
/**
* Registers a callback for the LibVLC exit event. This is mostly useful if
* you have started at least one interface with libvlc_add_intf().
* Typically, this function will wake up your application main loop (from
* another thread).
*
* \param p_instance LibVLC instance
* \param cb callback to invoke when LibVLC wants to exit
* \param opaque data pointer for the callback
* \warning This function and libvlc_wait() cannot be used at the same time.
* Use either or none of them but not both.
*/
VLC_PUBLIC_API
void libvlc_set_exit_handler( libvlc_instance_t *p_instance,
void (*cb) (void *), void *opaque );
/** /**
* Waits until an interface causes the instance to exit. * Waits until an interface causes the instance to exit.
* You should start at least one interface first, using libvlc_add_intf(). * You should start at least one interface first, using libvlc_add_intf().
......
...@@ -114,6 +114,13 @@ int libvlc_add_intf( libvlc_instance_t *p_i, const char *name ) ...@@ -114,6 +114,13 @@ int libvlc_add_intf( libvlc_instance_t *p_i, const char *name )
return libvlc_InternalAddIntf( p_i->p_libvlc_int, name ) ? -1 : 0; return libvlc_InternalAddIntf( p_i->p_libvlc_int, name ) ? -1 : 0;
} }
void libvlc_set_exit_handler( libvlc_instance_t *p_i, void (*cb) (void *),
void *data )
{
libvlc_int_t *p_libvlc = p_i->p_libvlc_int;
libvlc_SetExitHandler( p_libvlc, cb, data );
}
void libvlc_wait( libvlc_instance_t *p_i ) void libvlc_wait( libvlc_instance_t *p_i )
{ {
libvlc_int_t *p_libvlc = p_i->p_libvlc_int; libvlc_int_t *p_libvlc = p_i->p_libvlc_int;
......
...@@ -217,4 +217,5 @@ libvlc_vlm_set_mux ...@@ -217,4 +217,5 @@ libvlc_vlm_set_mux
libvlc_vlm_set_output libvlc_vlm_set_output
libvlc_vlm_show_media libvlc_vlm_show_media
libvlc_vlm_stop_media libvlc_vlm_stop_media
libvlc_set_exit_handler
libvlc_wait libvlc_wait
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