vout_window_t.p_sys type safety
[vlc.git] / include / vlc_window.h
index a0fe0ec..144e622 100644 (file)
@@ -29,6 +29,7 @@
 # include <stdarg.h>
 
 typedef struct vout_window_t vout_window_t;
 # include <stdarg.h>
 
 typedef struct vout_window_t vout_window_t;
+typedef struct vout_window_sys_t vout_window_sys_t;
 
 struct vout_window_t
 {
 
 struct vout_window_t
 {
@@ -41,7 +42,7 @@ struct vout_window_t
         void      *hwnd; /* Win32 window handle */
         uint32_t   xid;  /* X11 window ID */
     } handle;
         void      *hwnd; /* Win32 window handle */
         uint32_t   xid;  /* X11 window ID */
     } handle;
-    void          *p_sys;  /* window provider private data */
+    vout_window_sys_t *p_sys;  /* window provider private data */
 
     unsigned       width;  /* pixels width */
     unsigned       height; /* pixels height */
 
     unsigned       width;  /* pixels width */
     unsigned       height; /* pixels height */
@@ -51,8 +52,22 @@ struct vout_window_t
     int (*control) (struct vout_window_t *, int, va_list);
 };
 
     int (*control) (struct vout_window_t *, int, va_list);
 };
 
-VLC_EXPORT( vout_window_t *, vout_RequestWindow, ( vout_thread_t *, int *, int *, unsigned int *, unsigned int * ) );
+VLC_EXPORT( vout_window_t *, vout_RequestWindow, ( vout_thread_t *, const char *, int *, int *, unsigned int *, unsigned int * ) );
 VLC_EXPORT( void,   vout_ReleaseWindow, ( vout_window_t * ) );
 VLC_EXPORT( int, vout_ControlWindow, ( vout_window_t *, int, va_list ) );
 
 VLC_EXPORT( void,   vout_ReleaseWindow, ( vout_window_t * ) );
 VLC_EXPORT( int, vout_ControlWindow, ( vout_window_t *, int, va_list ) );
 
+static inline vout_window_t *
+vout_RequestXWindow (vout_thread_t *vout,
+                     int *x, int *y, unsigned *w, unsigned *h)
+{
+    return vout_RequestWindow (vout, "xwindow", x, y, w, h);
+}
+
+static inline vout_window_t *
+vout_RequestHWND (vout_thread_t *vout,
+                  int *x, int *y, unsigned *w, unsigned *h)
+{
+    return vout_RequestWindow (vout, "hwnd", x, y, w, h);
+}
+
 #endif /* !LIBVLCCORE_WINDOW_H */
 #endif /* !LIBVLCCORE_WINDOW_H */