]> git.sesse.net Git - vlc/commitdiff
Added vlc_get_libvlc_object to libvlccore
authorBasos G <noxelia@gmail.com>
Fri, 12 Dec 2008 15:12:17 +0000 (17:12 +0200)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Mon, 15 Dec 2008 19:37:41 +0000 (21:37 +0200)
It is intented to expose the libvlc_int_t (the main vlc object)
to enable extented vlc hacking.. E.g. when you need to make something
with configuration or modules that it is not provided by the PUBLIC API,
you expose the libvlc_int_t as an vlc_object_t and act upon it with
the internal (libvlccore) API...

Signed-off-by: Rémi Denis-Courmont <rdenis@simphalempin.com>
Put back to libvlc rather than libvlccore (a stupid idea of mine).

include/vlc/libvlc.h
src/control/core.c
src/libvlc.sym

index df79fb28868a5fe4666c04fc0168c5cc3874def9..182bfca467e36f08f1bfbfbbd90595e561513287 100644 (file)
@@ -211,6 +211,19 @@ VLC_PUBLIC_API const char * libvlc_get_compiler(void);
  */
 VLC_PUBLIC_API const char * libvlc_get_changeset(void);
 
+struct vlc_object_t;
+
+/**
+ * Return the libvlc internal object, the main object that all other depend on.
+ * Any of of this function should be considered an ugly hack and avoided at all
+ * cost. E.g. you need to expose some functionality that is not provided by the
+ * libvlc API directly with libvlccore.
+ * Remember to release the object with vlc_object_release( obj* )
+ *
+ * \param p_instance the libvlc instance
+ */
+VLC_PUBLIC_API struct vlc_object_t *libvlc_get_vlc_instance(libvlc_instance_t *);
+
 /** @}*/
 
 /*****************************************************************************
index c31e264d941370ea0ce9019db67957beacf7262a..297131f46c4311345b4c428a86ec4831671258fb 100644 (file)
@@ -211,3 +211,10 @@ const char * libvlc_get_changeset(void)
 {
     return VLC_Changeset();
 }
+
+/* export internal libvlc_instance for ugly hacks with libvlccore */
+vlc_object_t *libvlc_get_vlc_instance( libvlc_instance_t* p_instance )
+{
+    vlc_object_hold( p_instance->p_libvlc_int ) ;
+    return (vlc_object_t*) p_instance->p_libvlc_int ;
+}
index 4c7efb17d10539f99666b632aae45489ae1dc6ba..3a0229504ff2b94cab42f61e6c07ac6115fc5787 100644 (file)
@@ -38,6 +38,7 @@ libvlc_get_input_thread
 libvlc_get_log_verbosity
 libvlc_get_version
 libvlc_get_vlc_id
+libvlc_get_vlc_instance
 libvlc_log_clear
 libvlc_log_close
 libvlc_log_count