* Control query for vout_window_t
*/
enum {
- VOUT_WINDOW_SET_ON_TOP, /* int b_on_top */
- VOUT_WINDOW_SET_SIZE, /* int i_width, int i_height */
+ VOUT_WINDOW_SET_STATE, /* unsigned state */
+ VOUT_WINDOW_SET_SIZE, /* unsigned i_width, unsigned i_height */
+ VOUT_WINDOW_SET_FULLSCREEN, /* int b_fullscreen */
};
typedef struct {
int x;
int y;
- /* Windows size int */
- int width;
- int height;
+ /* Windows size hint */
+ unsigned width;
+ unsigned height;
} vout_window_cfg_t;
struct vout_window_t {
VLC_COMMON_MEMBERS
- /* Module */
- module_t *module;
-
/* Initial state (reserved).
* Once the open function is called, it will be set to NULL
*/
uint32_t xid; /* X11 windows ID */
} handle;
+ /* display server (mandatory) */
+ union {
+ char *x11; /* X11 display (NULL = use default) */
+ } display;
+
/* Control on the module (mandatory)
*
- * Do not use it directly but use vout_window_Control.
+ * Do not use it directly; use vout_window_Control instead.
*/
int (*control)(vout_window_t *, int query, va_list);
/* Private place holder for the vout_window_t module (optional)
*
- * A module is free to used it as it wishes.
+ * A module is free to use it as it wishes.
*/
vout_window_sys_t *sys;
};
/**
* It creates a new window.
*
- * XXX If you are inside a "vout display", you must use
+ * @note If you are inside a "vout display", you must use
* vout_display_New/DeleteWindow when possible to allow window recycling.
*/
VLC_EXPORT( vout_window_t *, vout_window_New, (vlc_object_t *, const char *module, const vout_window_cfg_t *) );
/**
- * It deletes a window created by vout_window_New.
+ * It deletes a window created by vout_window_New().
*
- * XXX See vout_window_New about window recycling.
+ * @note See vout_window_New() about window recycling.
*/
VLC_EXPORT( void, vout_window_Delete, (vout_window_t *) );
/**
* It allows configuring a window.
*
- * XXX you must own the windows, and vout_window_t are not thread safe.
- * You must not use it directly but prefer the vout_window_* wrappers.
+ * @warning The caller must own the window, as vout_window_t is not thread safe.
+ * You should use it the vout_window_* wrappers instead of this function.
*/
VLC_EXPORT( int, vout_window_Control, (vout_window_t *, int query, ...) );
/**
- * Configure the "On Top" properties of a windows.
+ * Configure the window management state of a windows.
*/
-static inline int vout_window_SetOnTop(vout_window_t *window, bool is_on_top)
+static inline int vout_window_SetState(vout_window_t *window, unsigned state)
{
- return vout_window_Control(window, VOUT_WINDOW_SET_ON_TOP, is_on_top);
+ return vout_window_Control(window, VOUT_WINDOW_SET_STATE, state);
}
/**
* Configure the windows display size.
*/
-static inline int vout_window_SetSize(vout_window_t *window, int width, int height)
+static inline int vout_window_SetSize(vout_window_t *window,
+ unsigned width, unsigned height)
{
return vout_window_Control(window, VOUT_WINDOW_SET_SIZE, width, height);
}
+/**
+ * Configure the windows fullscreen mode.
+ */
+static inline int vout_window_SetFullScreen(vout_window_t *window, bool full)
+{
+ return vout_window_Control(window, VOUT_WINDOW_SET_FULLSCREEN, full);
+}
+
#endif /* VLC_VOUT_WINDOW_H */