]> git.sesse.net Git - vlc/commitdiff
Add libvlc_set_exit_handler(), more powerful than libvlc_wait()
authorRémi Denis-Courmont <remi@remlab.net>
Sun, 30 May 2010 17:28:35 +0000 (20:28 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Sun, 30 May 2010 17:52:23 +0000 (20:52 +0300)
include/vlc/libvlc.h
src/control/core.c
src/libvlc.sym

index cd48aaa2eca58be2ec4b554ab24affd7caabf860..eb6414aafce228716eb07cc09a7bdb24ba8f71f7 100644 (file)
@@ -145,6 +145,22 @@ VLC_PUBLIC_API void libvlc_retain( libvlc_instance_t *p_instance );
 VLC_PUBLIC_API
 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.
  * You should start at least one interface first, using libvlc_add_intf().
index a0a52782361695ab19ba8142fb7e108d6d3ec50f..54e2fd03807d322a675318c2d1f3d0e5bc77bcd0 100644 (file)
@@ -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;
 }
 
+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 )
 {
     libvlc_int_t *p_libvlc = p_i->p_libvlc_int;
index e976c72abf243f2fd8d1a8503d78dbe0e40c94fd..d46a177cc89a76426e734c98ce1b89708d55a392 100644 (file)
@@ -217,4 +217,5 @@ libvlc_vlm_set_mux
 libvlc_vlm_set_output
 libvlc_vlm_show_media
 libvlc_vlm_stop_media
+libvlc_set_exit_handler
 libvlc_wait