]> git.sesse.net Git - vlc/blobdiff - modules/gui/wxwidgets/video.cpp
Fix x264 compilation
[vlc] / modules / gui / wxwidgets / video.cpp
index b31e8f80c348050e4da80eaf22ea274b1a0d678d..e94356b3f0b7d0728c83eceafe530b50d88d4dcd 100644 (file)
@@ -28,7 +28,8 @@
 #include <vlc/vout.h>
 #include <vlc/intf.h>
 
-#include "wxwidgets.h"
+#include "video.hpp"
+#include "interface.hpp"
 
 static void *GetWindow( intf_thread_t *p_intf, vout_thread_t *,
                         int *pi_x_hint, int *pi_y_hint,
@@ -49,40 +50,6 @@ enum
     ID_HIDE_TIMER
 };
 
-class VideoWindow: public wxWindow
-{
-public:
-    /* Constructor */
-    VideoWindow( intf_thread_t *_p_intf, wxWindow *p_parent );
-    virtual ~VideoWindow();
-
-    void *GetWindow( vout_thread_t *p_vout, int *, int *,
-                     unsigned int *, unsigned int * );
-    void ReleaseWindow( void * );
-    int  ControlWindow( void *, int, va_list );
-
-    mtime_t i_creation_date;
-
-private:
-    intf_thread_t *p_intf;
-    vout_thread_t *p_vout;
-    wxWindow *p_parent;
-    vlc_mutex_t lock;
-    vlc_bool_t b_shown;
-    vlc_bool_t b_auto_size;
-
-    wxWindow *p_child_window;
-
-    wxTimer m_hide_timer;
-
-    void UpdateSize( wxEvent& event );
-    void UpdateHide( wxEvent& event );
-    void OnControlEvent( wxCommandEvent& event );
-    void OnHideTimer( wxTimerEvent& WXUNUSED(event));
-
-    DECLARE_EVENT_TABLE();
-};
-
 DEFINE_LOCAL_EVENT_TYPE( wxEVT_VLC_VIDEO );
 
 BEGIN_EVENT_TABLE(VideoWindow, wxWindow)
@@ -306,6 +273,7 @@ void VideoWindow::UpdateSize( wxEvent &_event )
         SetFocus();
         b_shown = VLC_TRUE;
     }
+
     p_intf->p_sys->p_video_sizer->SetMinSize( event->GetSize() );
 
     i_creation_date = mdate();
@@ -360,18 +328,32 @@ int VideoWindow::ControlWindow( void *p_window, int i_query, va_list args )
 
     switch( i_query )
     {
-        case VOUT_SET_ZOOM:
+        case VOUT_GET_SIZE:
+        {
+            unsigned int *pi_width  = va_arg( args, unsigned int * );
+            unsigned int *pi_height = va_arg( args, unsigned int * );
+
+           *pi_width = GetSize().GetWidth();
+           *pi_height = GetSize().GetHeight();
+            i_ret = VLC_SUCCESS;
+        }
+        break;
+
+        case VOUT_SET_SIZE:
         {
             if( !b_auto_size ) break;
 
-            double f_arg = va_arg( args, double );
+            unsigned int i_width  = va_arg( args, unsigned int );
+            unsigned int i_height = va_arg( args, unsigned int );
+
+            vlc_mutex_lock( &lock );
+            if( !i_width && p_vout ) i_width = p_vout->i_window_width;
+            if( !i_height && p_vout ) i_height = p_vout->i_window_height;
+            vlc_mutex_unlock( &lock );
 
             /* Update dimensions */
-            wxSizeEvent event( wxSize((int)(p_vout->i_window_width * f_arg),
-                                      (int)(p_vout->i_window_height * f_arg)),
-                               UpdateSize_Event );
+            wxSizeEvent event( wxSize( i_width, i_height ), UpdateSize_Event );
 
-              
             AddPendingEvent( event );
 
             i_ret = VLC_SUCCESS;