]> git.sesse.net Git - vlc/commitdiff
Remove core support for global drawable
authorRémi Denis-Courmont <remi@remlab.net>
Wed, 13 May 2009 15:41:12 +0000 (18:41 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Wed, 13 May 2009 15:52:21 +0000 (18:52 +0300)
modules/video_output/drawable.c
src/libvlc.c

index b041adaf3dda284cc67626bd2a03abba9adaaa59..39513690c8cfb96cf46bff8ac188404792a3df5e 100644 (file)
@@ -69,44 +69,17 @@ static int Control (vout_window_t *, int, va_list);
  */
 static int Open (vlc_object_t *obj, const char *varname, bool ptr)
 {
-    static vlc_mutex_t serializer = VLC_STATIC_MUTEX;
     vout_window_t *wnd = (vout_window_t *)obj;
-    vlc_value_t val, globval;
+    vlc_value_t val;
 
-    if (var_Create (obj->p_libvlc, "drawable-busy", VLC_VAR_BOOL)
-     || var_Create (obj, varname, VLC_VAR_DOINHERIT
+    if (var_Create (obj, varname, VLC_VAR_DOINHERIT
                                   | (ptr ? VLC_VAR_ADDRESS : VLC_VAR_INTEGER)))
         return VLC_ENOMEM;
     var_Get (obj, varname, &val);
-
-    vlc_mutex_lock (&serializer);
-    /* Note: We cannot simply clear the drawable variable.
-     * It would break libvlc_video_get_parent(). */
-    var_Get (obj->p_libvlc, varname, &globval);
-    if (ptr ? (val.p_address == globval.p_address)
-            : (val.i_int == globval.i_int))
-    {
-        if (var_GetBool (obj->p_libvlc, "drawable-busy"))
-        {   /* LibVLC-wide drawable already in use */
-            if (ptr)
-                val.p_address = NULL;
-            else
-                val.i_int = 0;
-        }
-        else
-            var_SetBool (obj->p_libvlc, "drawable-busy", true);
-    }
-    /* If we got a drawable _not_ from the root object (from the input?),
-     * We assume it is not busy. This is a bug. */
-    vlc_mutex_unlock (&serializer);
-
     var_Destroy (obj, varname);
 
     if (ptr ? (val.p_address == NULL) : (val.i_int == 0))
-    {
-        var_Destroy (obj->p_libvlc, "drawable-busy");
         return VLC_EGENERIC;
-    }
 
     if (ptr)
         wnd->handle.hwnd = val.p_address;
@@ -136,11 +109,7 @@ static int  OpenHWND (vlc_object_t *obj)
  */
 static void Close (vlc_object_t *obj)
 {
-    /* This is atomic with regards to var_GetBool() in Open(): */
-    var_SetBool (obj->p_libvlc, "drawable-busy", false);
-
-    /* Variables are reference-counted... */
-    var_Destroy (obj->p_libvlc, "drawable-busy");
+    (void)obj;
 }
 
 
index 2f5d2f13f87773ce0600426db22478553188abfd..0fb54b02469b35346f7f80fbfa0fd2207009d535 100644 (file)
@@ -973,14 +973,6 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
     }
 #endif
 
-    /*
-     * FIXME: kludge to use a p_libvlc-local variable for the Mozilla plugin
-     */
-    var_Create( p_libvlc, "drawable-xid", VLC_VAR_DOINHERIT|VLC_VAR_INTEGER );
-    var_Create( p_libvlc, "drawable-hwnd", VLC_VAR_ADDRESS );
-    var_Create( p_libvlc, "drawable-agl", VLC_VAR_INTEGER );
-    var_Create( p_libvlc, "drawable-gl", VLC_VAR_INTEGER );
-
     var_Create( p_libvlc, "drawable-view-top", VLC_VAR_INTEGER );
     var_Create( p_libvlc, "drawable-view-left", VLC_VAR_INTEGER );
     var_Create( p_libvlc, "drawable-view-bottom", VLC_VAR_INTEGER );