]> git.sesse.net Git - vlc/blobdiff - include/video_output.h
* include/vlc_interface.h: forgot that in last commit.
[vlc] / include / video_output.h
index a0972e24ea764c7c7500ffa9b8c47a1aa1298f71..add6be1077f7120496e93360c5b0461f334ca8a7 100644 (file)
@@ -99,6 +99,7 @@ struct vout_thread_t
     int       ( *pf_manage )     ( vout_thread_t * );
     void      ( *pf_render )     ( vout_thread_t *, picture_t * );
     void      ( *pf_display )    ( vout_thread_t *, picture_t * );
+    int       ( *pf_control )    ( vout_thread_t *, int, va_list );
     /**@}*/
 
     /** \name Statistics
@@ -217,6 +218,35 @@ picture_t *     vout_RenderPicture  ( vout_thread_t *, picture_t *,
                                                        subpicture_t * );
 VLC_EXPORT( void *, vout_RequestWindow, ( vout_thread_t *, int *, int *, unsigned int *, unsigned int * ) );
 VLC_EXPORT( void,   vout_ReleaseWindow, ( vout_thread_t *, void * ) );
+VLC_EXPORT( int, vout_ControlWindow, ( vout_thread_t *, void *, int, va_list ) );
+
+static inline int vout_vaControl( vout_thread_t *p_vout, int i_query,
+                                  va_list args )
+{
+    if( p_vout->pf_control )
+        return p_vout->pf_control( p_vout, i_query, args );
+    else
+        return VLC_EGENERIC;
+}
+
+static inline int vout_Control( vout_thread_t *p_vout, int i_query, ... )
+{
+    va_list args;
+    int i_result;
+
+    va_start( args, i_query );
+    i_result = vout_vaControl( p_vout, i_query, args );
+    va_end( args );
+    return i_result;
+}
+
+enum output_query_e
+{
+    VOUT_SET_ZOOM,         /* arg1= double           res=    */
+    VOUT_SET_STAY_ON_TOP,  /* arg1= vlc_bool_t       res=    */
+    VOUT_REPARENT,
+    VOUT_CLOSE
+};
 
 /**
  * \addtogroup subpicture