]> git.sesse.net Git - vlc/commitdiff
backport [13049] and [13059]
authorMarian Durkovic <md@videolan.org>
Mon, 31 Oct 2005 07:35:39 +0000 (07:35 +0000)
committerMarian Durkovic <md@videolan.org>
Mon, 31 Oct 2005 07:35:39 +0000 (07:35 +0000)
include/video_output.h
modules/gui/skins2/src/vlcproc.cpp
modules/gui/wxwidgets/video.cpp
modules/video_output/directx/directx.c
modules/video_output/directx/events.c
modules/video_output/directx/glwin32.c
modules/video_output/wingdi.c
modules/video_output/x11/xcommon.c
src/video_output/vout_intf.c

index de9120918b5c0733e9f33af42b22d451d07cecf5..4badb1fe9eab89f0cf542d5bd6710b5c42f34c49 100644 (file)
@@ -254,7 +254,7 @@ static inline int vout_Control( vout_thread_t *p_vout, int i_query, ... )
 
 enum output_query_e
 {
-    VOUT_SET_ZOOM,         /* arg1= double           res=    */
+    VOUT_SET_ZOOM,
     VOUT_SET_STAY_ON_TOP,  /* arg1= vlc_bool_t       res=    */
     VOUT_REPARENT,
     VOUT_SNAPSHOT,
index e3b0fce601d7404936fdf801063d78b59cd1e9c0..d73f0f6eebc8e19033207d588c23f08683b6d79b 100644 (file)
@@ -484,18 +484,13 @@ int VlcProc::controlWindow( intf_thread_t *pIntf, void *pWindow,
     {
         case VOUT_SET_ZOOM:
         {
-            double fArg = va_arg( args, double );
-
             if( pThis->m_pVout )
             {
-                // Compute requested vout dimensions
-                int width = (int)( pThis->m_pVout->i_window_width * fArg );
-                int height = (int)( pThis->m_pVout->i_window_height * fArg );
-
                 // Post a resize vout command
                 CmdResizeVout *pCmd =
                     new CmdResizeVout( pThis->getIntf(), pWindow,
-                                       width, height );
+                                       pThis->m_pVout->i_window_width,
+                                       pThis->m_pVout->i_window_height );
                 AsyncQueue *pQueue = AsyncQueue::instance( pThis->getIntf() );
                 pQueue->remove( "resize vout" );
                 pQueue->push( CmdGenericPtr( pCmd ) );
index b31e8f80c348050e4da80eaf22ea274b1a0d678d..d2e4f1c3a452d77ae83aed4d3af651047e4c1744 100644 (file)
@@ -364,11 +364,9 @@ int VideoWindow::ControlWindow( void *p_window, int i_query, va_list args )
         {
             if( !b_auto_size ) break;
 
-            double f_arg = va_arg( args, double );
-
             /* Update dimensions */
-            wxSizeEvent event( wxSize((int)(p_vout->i_window_width * f_arg),
-                                      (int)(p_vout->i_window_height * f_arg)),
+            wxSizeEvent event( wxSize( p_vout->i_window_width,
+                                       p_vout->i_window_height ),
                                UpdateSize_Event );
 
               
index 5c345c579d73b5f67380ada45020577073fafad7..546a22bfbea6a823be9f47297283e4f480cf9481 100644 (file)
@@ -555,6 +555,7 @@ static int Manage( vout_thread_t *p_vout )
         p_vout->fmt_out.i_sar_den = p_vout->fmt_in.i_sar_den;
         p_vout->output.i_aspect = p_vout->fmt_in.i_aspect;
         E_(DirectXUpdateRects)( p_vout, VLC_TRUE );
+        vout_Control( p_vout, VOUT_SET_ZOOM );
     }
 
     /* We used to call the Win32 PeekMessage function here to read the window
index 0790b8ed23e5cb02cbbfa55dc4426c8cc0c406d1..f7dd749071f630c66014cf6cf917e1232627d4ae 100644 (file)
@@ -900,12 +900,10 @@ static int Control( vout_thread_t *p_vout, int i_query, va_list args )
             return vout_ControlWindow( p_vout,
                     (void *)p_vout->p_sys->hparent, i_query, args );
 
-        f_arg = va_arg( args, double );
-
         /* Update dimensions */
         rect_window.top = rect_window.left = 0;
-        rect_window.right  = p_vout->i_window_width * f_arg;
-        rect_window.bottom = p_vout->i_window_height * f_arg;
+        rect_window.right  = p_vout->i_window_width;
+        rect_window.bottom = p_vout->i_window_height;
         AdjustWindowRect( &rect_window, p_vout->p_sys->i_window_style, 0 );
 
         SetWindowPos( p_vout->p_sys->hwnd, 0, 0, 0,
index 82b78711a0322ea224529a10f861f7afa935a062..961c06778bf0daf22e0a8debe1e9095606b8b67d 100644 (file)
@@ -318,6 +318,7 @@ static int Manage( vout_thread_t *p_vout )
         p_vout->fmt_out.i_sar_den = p_vout->fmt_in.i_sar_den;
         p_vout->output.i_aspect = p_vout->fmt_in.i_aspect;
         E_(DirectXUpdateRects)( p_vout, VLC_TRUE );
+        vout_Control( p_vout, VOUT_SET_ZOOM );
     }
 
     /* We used to call the Win32 PeekMessage function here to read the window
index 00fa366d9804032e8e35bdd9a5ec56ae7ef401d0..34723464a4b29d513565c8d9defb325738d6efb3 100644 (file)
@@ -1294,12 +1294,10 @@ static int Control( vout_thread_t *p_vout, int i_query, va_list args )
             return vout_ControlWindow( p_vout,
                     (void *)p_vout->p_sys->hparent, i_query, args );
 
-        f_arg = va_arg( args, double );
-
         /* Update dimensions */
         rect_window.top = rect_window.left = 0;
-        rect_window.right  = p_vout->i_window_width * f_arg;
-        rect_window.bottom = p_vout->i_window_height * f_arg;
+        rect_window.right  = p_vout->i_window_width;
+        rect_window.bottom = p_vout->i_window_height;
         AdjustWindowRect( &rect_window, p_vout->p_sys->i_window_style, 0 );
 
         SetWindowPos( p_vout->p_sys->hwnd, 0, 0, 0,
index 8533aff8072717efbc1de22be09894429b9e2699..7e2352af9f1bf0f67890b846bd7ad2a6e8752f61 100644 (file)
@@ -2298,16 +2298,13 @@ static int Control( vout_thread_t *p_vout, int i_query, va_list args )
                 return vout_ControlWindow( p_vout,
                     (void *)p_vout->p_sys->p_win->owner_window, i_query, args);
 
-            f_arg = va_arg( args, double );
-
             vlc_mutex_lock( &p_vout->p_sys->lock );
 
             /* Update dimensions */
-            /* FIXME: export InitWindowSize() from vout core */
             XResizeWindow( p_vout->p_sys->p_display,
                            p_vout->p_sys->p_win->base_window,
-                           p_vout->i_window_width * f_arg,
-                           p_vout->i_window_height * f_arg );
+                           p_vout->i_window_width,
+                           p_vout->i_window_height );
 
             vlc_mutex_unlock( &p_vout->p_sys->lock );
             return VLC_SUCCESS;
index 09ff7b7b00b6492b6e941b2690f84aaea854248d..5efca5deac8ca5ca1173f7d071c5d461de265308 100644 (file)
@@ -308,8 +308,6 @@ void vout_IntfInit( vout_thread_t *p_vout )
     /* Initialize the dimensions of the video window */
     InitWindowSize( p_vout, &p_vout->i_window_width,
                     &p_vout->i_window_height );
-    msg_Dbg( p_vout, "window size: %dx%d", p_vout->i_window_width, 
-             p_vout->i_window_height );
 
     /* Add a variable to indicate if the window should be on top of others */
     var_Create( p_vout, "video-on-top", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );
@@ -560,7 +558,7 @@ static void InitWindowSize( vout_thread_t *p_vout, unsigned *pi_width,
     {
         *pi_width = (int)( i_width * ll_zoom / FP_FACTOR );
         *pi_height = (int)( i_height * ll_zoom / FP_FACTOR );
-        return;
+        goto initwsize_end;
     }
     else if( i_width > 0 )
     {
@@ -568,7 +566,7 @@ static void InitWindowSize( vout_thread_t *p_vout, unsigned *pi_width,
         *pi_height = (int)( p_vout->fmt_in.i_visible_height * ll_zoom *
             p_vout->fmt_in.i_sar_den * i_width / p_vout->fmt_in.i_sar_num /
             FP_FACTOR / p_vout->fmt_in.i_visible_width );
-        return;
+        goto initwsize_end;
     }
     else if( i_height > 0 )
     {
@@ -576,7 +574,7 @@ static void InitWindowSize( vout_thread_t *p_vout, unsigned *pi_width,
         *pi_width = (int)( p_vout->fmt_in.i_visible_width * ll_zoom *
             p_vout->fmt_in.i_sar_num * i_height / p_vout->fmt_in.i_sar_den /
             FP_FACTOR / p_vout->fmt_in.i_visible_height );
-        return;
+        goto initwsize_end;
     }
 
     if( p_vout->fmt_in.i_sar_num >= p_vout->fmt_in.i_sar_den )
@@ -594,6 +592,10 @@ static void InitWindowSize( vout_thread_t *p_vout, unsigned *pi_width,
             p_vout->fmt_in.i_sar_den / p_vout->fmt_in.i_sar_num / FP_FACTOR );
     }
 
+initwsize_end:
+    msg_Dbg( p_vout, "window size: %dx%d", p_vout->i_window_width, 
+             p_vout->i_window_height );
+
 #undef FP_FACTOR
 }
 
@@ -604,7 +606,9 @@ static int ZoomCallback( vlc_object_t *p_this, char const *psz_cmd,
                          vlc_value_t oldval, vlc_value_t newval, void *p_data )
 {
     vout_thread_t *p_vout = (vout_thread_t *)p_this;
-    vout_Control( p_vout, VOUT_SET_ZOOM, newval.f_float );
+    InitWindowSize( p_vout, &p_vout->i_window_width,
+                    &p_vout->i_window_height );
+    vout_Control( p_vout, VOUT_SET_ZOOM );
     return VLC_SUCCESS;
 }