]> git.sesse.net Git - vlc/blobdiff - include/vlc/libvlc.h
Add a proper API to set the user agent
[vlc] / include / vlc / libvlc.h
index 480774e1949b640b9a1e3b2c43f53a4c8bbd52f1..36b263feef32c270754f3b06ff778ecaeb363666 100644 (file)
@@ -67,13 +67,13 @@ extern "C" {
  * You can create one (or more) instance(s) of LibVLC in a given process,
  * with libvlc_new() and destroy them with libvlc_release().
  *
- * \version This documents LibVLC version 1.1.
- * Earlier versions (0.9 and 1.0) are <b>not</b> compatible.
+ * \version Unless otherwise stated, these functions are available
+ * from LibVLC versions numbered 1.1.0 or more.
+ * Earlier versions (0.9.x and 1.0.x) are <b>not</b> compatible.
  * @{
  */
 
 /** \defgroup libvlc_error LibVLC error handling
- * \ingroup libvlc_error
  * @{
  */
 
@@ -97,14 +97,14 @@ VLC_PUBLIC_API void libvlc_clearerr (void);
 /**
  * Sets the LibVLC error status and message for the current thread.
  * Any previous error is overriden.
- * @return a nul terminated string in any case
+ * \return a nul terminated string in any case
  */
 const char *libvlc_vprinterr (const char *fmt, va_list ap);
 
 /**
  * Sets the LibVLC error status and message for the current thread.
  * Any previous error is overriden.
- * @return a nul terminated string in any case
+ * \return a nul terminated string in any case
  */
 const char *libvlc_printerr (const char *fmt, ...);
 
@@ -146,6 +146,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().
@@ -155,6 +171,19 @@ int libvlc_add_intf( libvlc_instance_t *p_instance, const char *name );
 VLC_PUBLIC_API
 void libvlc_wait( libvlc_instance_t *p_instance );
 
+/**
+ * Sets the application name. LibVLC passes this as the user agent string
+ * when a protocol requires it.
+ *
+ * \param p_instance LibVLC instance
+ * \param name human-readable application name, e.g. "FooBar player 1.2.3"
+ * \param http HTTP User Agent, e.g. "FooBar/1.2.3 Python/2.6.0"
+ * \version LibVLC 1.1.1 or later
+ */
+VLC_PUBLIC_API
+void libvlc_set_user_agent( libvlc_instance_t *p_instance,
+                            const char *name, const char *http );
+
 /**
  * Retrieve libvlc version.
  *