]> git.sesse.net Git - vlc/blobdiff - modules/video_output/opengl.c
Kill stupid VOUT_SNAPSHOT control.
[vlc] / modules / video_output / opengl.c
index 568217ed10ebfa96a62affba93cadd748a758f5b..2147d0c20430e95eda32a18cc66be19efe09e9bb 100644 (file)
@@ -124,7 +124,7 @@ vlc_module_begin ()
     add_shortcut( "opengl" )
     /* Allow opengl provider plugin selection */
     add_string( "opengl-provider", "default", NULL, PROVIDER_TEXT, 
-                    PROVIDER_LONGTEXT, true );
+                    PROVIDER_LONGTEXT, true )
     set_callbacks( CreateVout, DestroyVout )
 vlc_module_end ()
 
@@ -190,7 +190,8 @@ static int CreateVout( vlc_object_t *p_this )
     p_sys->p_vout->render.i_aspect = p_vout->render.i_aspect;
     p_sys->p_vout->fmt_render = p_vout->fmt_render;
     p_sys->p_vout->fmt_in = p_vout->fmt_in;
-    p_sys->p_vout->b_scale = p_vout->b_scale;
+    p_sys->p_vout->b_autoscale = p_vout->b_autoscale;
+    p_sys->p_vout->i_zoom = p_vout->i_zoom;
     p_sys->p_vout->i_alignment = p_vout->i_alignment;
 
     psz = config_GetPsz( p_vout, "opengl-provider" );
@@ -224,12 +225,18 @@ static int CreateVout( vlc_object_t *p_this )
     var_Create( p_sys->p_vout, "mouse-button-down", VLC_VAR_INTEGER );
     var_Create( p_sys->p_vout, "video-on-top",
                 VLC_VAR_BOOL | VLC_VAR_DOINHERIT );
+    var_Create( p_sys->p_vout, "autoscale",
+                VLC_VAR_BOOL | VLC_VAR_DOINHERIT );
+    var_Create( p_sys->p_vout, "scale",
+                VLC_VAR_FLOAT | VLC_VAR_DOINHERIT );
 
     var_AddCallback( p_sys->p_vout, "mouse-x", SendEvents, p_vout );
     var_AddCallback( p_sys->p_vout, "mouse-y", SendEvents, p_vout );
     var_AddCallback( p_sys->p_vout, "mouse-moved", SendEvents, p_vout );
     var_AddCallback( p_sys->p_vout, "mouse-clicked", SendEvents, p_vout );
     var_AddCallback( p_sys->p_vout, "mouse-button-down", SendEvents, p_vout );
+    var_AddCallback( p_vout, "autoscale", SendEvents, p_sys->p_vout );
+    var_AddCallback( p_vout, "scale", SendEvents, p_sys->p_vout );
 
     return VLC_SUCCESS;
 }
@@ -454,9 +461,27 @@ static int Manage( vout_thread_t *p_vout )
 // to align in real time in OPENGL
     if (p_sys->p_vout->i_alignment != p_vout->i_alignment)
     {
-        p_vout->i_changes = VOUT_CROP_CHANGE;        //to force change
+        p_vout->i_changes |= VOUT_CROP_CHANGE;        //to force change
         p_sys->p_vout->i_alignment = p_vout->i_alignment;    
     }
+
+    /* forward signal that autoscale toggle has changed */
+    if (p_vout->i_changes & VOUT_SCALE_CHANGE )
+    {
+        p_vout->i_changes &= ~VOUT_SCALE_CHANGE;
+
+        p_sys->p_vout->i_changes |= VOUT_SCALE_CHANGE;
+    }
+
+    /* forward signal that scale has changed */
+    if (p_vout->i_changes & VOUT_ZOOM_CHANGE )
+    {
+        p_vout->i_changes &= ~VOUT_ZOOM_CHANGE;
+
+        p_sys->p_vout->i_changes |= VOUT_ZOOM_CHANGE;
+    }
+
+
     return i_ret;
 }
 
@@ -603,9 +628,6 @@ static int Control( vout_thread_t *p_vout, int i_query, va_list args )
 
     switch( i_query )
     {
-    case VOUT_SNAPSHOT:
-        return vout_vaControlDefault( p_vout, i_query, args );
-
     default:
         if( p_sys->p_vout->pf_control )
             return p_sys->p_vout->pf_control( p_sys->p_vout, i_query, args );