Commit 0c336413 authored by Gildas Bazin's avatar Gildas Bazin

* src/video_output/*: moved fullscreen object var handling in vout_intf.c and...

* src/video_output/*: moved fullscreen object var handling in vout_intf.c and disable video-on-top when in fullscreen.
parent b67e99bb
...@@ -60,8 +60,6 @@ static void InitWindowSize ( vout_thread_t *, int *, int * ); ...@@ -60,8 +60,6 @@ static void InitWindowSize ( vout_thread_t *, int *, int * );
void vout_IntfInit( vout_thread_t * ); void vout_IntfInit( vout_thread_t * );
/* Object variables callbacks */ /* Object variables callbacks */
static int FullscreenCallback( vlc_object_t *, char const *,
vlc_value_t, vlc_value_t, void * );
static int DeinterlaceCallback( vlc_object_t *, char const *, static int DeinterlaceCallback( vlc_object_t *, char const *,
vlc_value_t, vlc_value_t, void * ); vlc_value_t, vlc_value_t, void * );
static int FilterCallback( vlc_object_t *, char const *, static int FilterCallback( vlc_object_t *, char const *,
...@@ -422,17 +420,6 @@ vout_thread_t * __vout_Create( vlc_object_t *p_parent, ...@@ -422,17 +420,6 @@ vout_thread_t * __vout_Create( vlc_object_t *p_parent,
} }
/* Create a few object variables for interface interaction */ /* Create a few object variables for interface interaction */
var_Create( p_vout, "fullscreen", VLC_VAR_BOOL );
text.psz_string = _("Fullscreen");
var_Change( p_vout, "fullscreen", VLC_VAR_SETTEXT, &text, NULL );
var_Change( p_vout, "fullscreen", VLC_VAR_INHERITVALUE, &val, NULL );
if( val.b_bool )
{
/* user requested fullscreen */
p_vout->i_changes |= VOUT_FULLSCREEN_CHANGE;
}
var_AddCallback( p_vout, "fullscreen", FullscreenCallback, NULL );
var_Create( p_vout, "deinterlace", VLC_VAR_STRING | VLC_VAR_HASCHOICE ); var_Create( p_vout, "deinterlace", VLC_VAR_STRING | VLC_VAR_HASCHOICE );
text.psz_string = _("Deinterlace"); text.psz_string = _("Deinterlace");
var_Change( p_vout, "deinterlace", VLC_VAR_SETTEXT, &text, NULL ); var_Change( p_vout, "deinterlace", VLC_VAR_SETTEXT, &text, NULL );
...@@ -1320,31 +1307,6 @@ int vout_VarCallback( vlc_object_t * p_this, const char * psz_variable, ...@@ -1320,31 +1307,6 @@ int vout_VarCallback( vlc_object_t * p_this, const char * psz_variable,
* object variables callbacks: a bunch of object variables are used by the * object variables callbacks: a bunch of object variables are used by the
* interfaces to interact with the vout. * interfaces to interact with the vout.
*****************************************************************************/ *****************************************************************************/
static int FullscreenCallback( vlc_object_t *p_this, char const *psz_cmd,
vlc_value_t oldval, vlc_value_t newval, void *p_data )
{
vout_thread_t *p_vout = (vout_thread_t *)p_this;
input_thread_t *p_input;
vlc_value_t val;
p_vout->i_changes |= VOUT_FULLSCREEN_CHANGE;
p_input = (input_thread_t *)vlc_object_find( p_this, VLC_OBJECT_INPUT,
FIND_PARENT );
if( p_input )
{
/* Modify input as well because the vout might have to be restarted */
var_Create( p_input, "fullscreen", VLC_VAR_BOOL );
var_Set( p_input, "fullscreen", newval );
vlc_object_release( p_input );
}
val.b_bool = VLC_TRUE;
var_Set( p_vout, "intf-change", val );
return VLC_SUCCESS;
}
static int DeinterlaceCallback( vlc_object_t *p_this, char const *psz_cmd, static int DeinterlaceCallback( vlc_object_t *p_this, char const *psz_cmd,
vlc_value_t oldval, vlc_value_t newval, void *p_data ) vlc_value_t oldval, vlc_value_t newval, void *p_data )
{ {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* vout_intf.c : video output interface * vout_intf.c : video output interface
***************************************************************************** *****************************************************************************
* Copyright (C) 2000-2004 VideoLAN * Copyright (C) 2000-2004 VideoLAN
* $Id: video_output.c 6961 2004-03-05 17:34:23Z sam $ * $Id$
* *
* Authors: Gildas Bazin <gbazin@videolan.org> * Authors: Gildas Bazin <gbazin@videolan.org>
* *
...@@ -32,6 +32,8 @@ ...@@ -32,6 +32,8 @@
#include "video_output.h" #include "video_output.h"
#include "vlc_interface.h" #include "vlc_interface.h"
#include <vlc/input.h> /* for input_thread_t */
/***************************************************************************** /*****************************************************************************
* Local prototypes * Local prototypes
*****************************************************************************/ *****************************************************************************/
...@@ -41,6 +43,8 @@ static int ZoomCallback( vlc_object_t *, char const *, ...@@ -41,6 +43,8 @@ static int ZoomCallback( vlc_object_t *, char const *,
vlc_value_t, vlc_value_t, void * ); vlc_value_t, vlc_value_t, void * );
static int OnTopCallback( vlc_object_t *, char const *, static int OnTopCallback( vlc_object_t *, char const *,
vlc_value_t, vlc_value_t, void * ); vlc_value_t, vlc_value_t, void * );
static int FullscreenCallback( vlc_object_t *, char const *,
vlc_value_t, vlc_value_t, void * );
/***************************************************************************** /*****************************************************************************
* vout_RequestWindow: Create/Get a video window if possible. * vout_RequestWindow: Create/Get a video window if possible.
...@@ -177,6 +181,18 @@ void vout_IntfInit( vout_thread_t *p_vout ) ...@@ -177,6 +181,18 @@ void vout_IntfInit( vout_thread_t *p_vout )
text.psz_string = _("Always on top"); text.psz_string = _("Always on top");
var_Change( p_vout, "video-on-top", VLC_VAR_SETTEXT, &text, NULL ); var_Change( p_vout, "video-on-top", VLC_VAR_SETTEXT, &text, NULL );
var_AddCallback( p_vout, "video-on-top", OnTopCallback, NULL ); var_AddCallback( p_vout, "video-on-top", OnTopCallback, NULL );
/* Add a fullscreen variable */
var_Create( p_vout, "fullscreen", VLC_VAR_BOOL );
text.psz_string = _("Fullscreen");
var_Change( p_vout, "fullscreen", VLC_VAR_SETTEXT, &text, NULL );
var_Change( p_vout, "fullscreen", VLC_VAR_INHERITVALUE, &val, NULL );
if( val.b_bool )
{
/* user requested fullscreen */
p_vout->i_changes |= VOUT_FULLSCREEN_CHANGE;
}
var_AddCallback( p_vout, "fullscreen", FullscreenCallback, NULL );
} }
/***************************************************************************** /*****************************************************************************
...@@ -197,3 +213,40 @@ static int OnTopCallback( vlc_object_t *p_this, char const *psz_cmd, ...@@ -197,3 +213,40 @@ static int OnTopCallback( vlc_object_t *p_this, char const *psz_cmd,
vout_Control( p_vout, VOUT_SET_STAY_ON_TOP, newval.b_bool ); vout_Control( p_vout, VOUT_SET_STAY_ON_TOP, newval.b_bool );
return VLC_SUCCESS; return VLC_SUCCESS;
} }
static int FullscreenCallback( vlc_object_t *p_this, char const *psz_cmd,
vlc_value_t oldval, vlc_value_t newval, void *p_data )
{
vout_thread_t *p_vout = (vout_thread_t *)p_this;
input_thread_t *p_input;
vlc_value_t val;
p_vout->i_changes |= VOUT_FULLSCREEN_CHANGE;
p_input = (input_thread_t *)vlc_object_find( p_this, VLC_OBJECT_INPUT,
FIND_PARENT );
if( p_input )
{
/* Modify input as well because the vout might have to be restarted */
var_Create( p_input, "fullscreen", VLC_VAR_BOOL );
var_Set( p_input, "fullscreen", newval );
vlc_object_release( p_input );
}
/* Disable "always on top" in fullscreen mode */
var_Get( p_vout, "video-on-top", &val );
if( newval.b_bool && val.b_bool )
{
val.b_bool = VLC_FALSE;
vout_Control( p_vout, VOUT_SET_STAY_ON_TOP, val.b_bool );
}
else if( !newval.b_bool && val.b_bool )
{
vout_Control( p_vout, VOUT_SET_STAY_ON_TOP, val.b_bool );
}
val.b_bool = VLC_TRUE;
var_Set( p_vout, "intf-change", val );
return VLC_SUCCESS;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment