X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_vout_window.h;h=ea5e82188fd5f5153ba7860d9e70e932c307c861;hb=dd648be95a997cf5ac78cf72db96bc1416c900f2;hp=3d7e92966bfa7b430578542eaff498b7d839dfa6;hpb=66ddfd87b6d50bbd879b08518df23a009fc163b8;p=vlc diff --git a/include/vlc_vout_window.h b/include/vlc_vout_window.h index 3d7e92966b..ea5e82188f 100644 --- a/include/vlc_vout_window.h +++ b/include/vlc_vout_window.h @@ -7,19 +7,19 @@ * * Authors: Laurent Aimar * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ #ifndef VLC_VOUT_WINDOW_H @@ -46,6 +46,12 @@ enum { VOUT_WINDOW_TYPE_NSOBJECT, }; +#if defined (WIN32) || defined (__OS2__) +# define VOUT_WINDOW_TYPE_NATIVE VOUT_WINDOW_TYPE_HWND +#elif defined (__unix__) +# define VOUT_WINDOW_TYPE_NATIVE VOUT_WINDOW_TYPE_XID +#endif + /** * Control query for vout_window_t */ @@ -79,11 +85,6 @@ typedef struct { struct vout_window_t { VLC_COMMON_MEMBERS - /* Initial state (reserved). - * Once the open function is called, it will be set to NULL - */ - const vout_window_cfg_t *cfg; - /* window handle (mandatory) * * It must be filled in the open function. @@ -112,31 +113,35 @@ struct vout_window_t { vout_window_sys_t *sys; }; -/** - * It creates a new window. - * +/** + * Creates a new window. + * + * @param module plugin name (usually "$window") * @note If you are inside a "vout display", you must use - * vout_display_New/DeleteWindow when possible to allow window recycling. + / vout_display_NewWindow() and vout_display_DeleteWindow() instead. + * This enables recycling windows. */ -VLC_EXPORT( vout_window_t *, vout_window_New, (vlc_object_t *, const char *module, const vout_window_cfg_t *) ); +VLC_API 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(). + * Deletes a window created by vout_window_New(). * * @note See vout_window_New() about window recycling. */ -VLC_EXPORT( void, vout_window_Delete, (vout_window_t *) ); +VLC_API void vout_window_Delete(vout_window_t *); + /** - * It allows configuring a window. + * Reconfigures a window. + * + * @note The vout_window_* wrappers should be used instead of this function. * * @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, ...) ); +VLC_API int vout_window_Control(vout_window_t *, int query, ...); /** - * Configure the window management state of a windows. + * Configures the window manager state for this window. */ static inline int vout_window_SetState(vout_window_t *window, unsigned state) { @@ -144,7 +149,7 @@ static inline int vout_window_SetState(vout_window_t *window, unsigned state) } /** - * Configure the windows display size. + * Configures the window display (i.e. inner/useful) size. */ static inline int vout_window_SetSize(vout_window_t *window, unsigned width, unsigned height) @@ -153,7 +158,7 @@ static inline int vout_window_SetSize(vout_window_t *window, } /** - * Configure the windows fullscreen mode. + * Sets fullscreen mode. */ static inline int vout_window_SetFullScreen(vout_window_t *window, bool full) { @@ -161,4 +166,3 @@ static inline int vout_window_SetFullScreen(vout_window_t *window, bool full) } #endif /* VLC_VOUT_WINDOW_H */ -