X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fvideo_output%2Fsdl.c;h=055524d00cb622d3757a7acc0042b6252ff5d791;hb=319a10e66abb7fdd2c43026e1d3ae2b2316c2212;hp=7fcba447859af164f6e351eb3c63d88f6be6ca7c;hpb=e39842845193a0a263ae548fd8e10fce631d2f09;p=vlc diff --git a/modules/video_output/sdl.c b/modules/video_output/sdl.c index 7fcba44785..055524d00c 100644 --- a/modules/video_output/sdl.c +++ b/modules/video_output/sdl.c @@ -120,20 +120,20 @@ static int ConvertKey( SDLKey ); /***************************************************************************** * Module descriptor *****************************************************************************/ -vlc_module_begin(); - set_shortname( "SDL" ); - set_category( CAT_VIDEO ); - set_subcategory( SUBCAT_VIDEO_VOUT ); - set_description( N_("Simple DirectMedia Layer video output") ); - set_capability( "video output", 60 ); - add_shortcut( "sdl" ); - add_string( "sdl-chroma", NULL, NULL, CHROMA_TEXT, CHROMA_LONGTEXT, true ); - set_callbacks( Open, Close ); +vlc_module_begin () + set_shortname( "SDL" ) + set_category( CAT_VIDEO ) + set_subcategory( SUBCAT_VIDEO_VOUT ) + set_description( N_("Simple DirectMedia Layer video output") ) + set_capability( "video output", 60 ) + add_shortcut( "sdl" ) + add_string( "sdl-chroma", NULL, NULL, CHROMA_TEXT, CHROMA_LONGTEXT, true ) + set_callbacks( Open, Close ) #if defined( __i386__ ) || defined( __x86_64__ ) /* On i386, SDL is linked against svgalib */ - linked_with_a_crap_library_which_uses_atexit(); + linked_with_a_crap_library_which_uses_atexit () #endif -vlc_module_end(); +vlc_module_end () static vlc_mutex_t sdl_lock = VLC_STATIC_MUTEX; @@ -154,9 +154,6 @@ static int Open ( vlc_object_t *p_this ) char *psz_method; #endif - if( lock == NULL ) - return VLC_ENOMEM; - p_vout->p_sys = malloc( sizeof( vout_sys_t ) ); if( p_vout->p_sys == NULL ) { @@ -439,8 +436,7 @@ static int Manage( vout_thread_t *p_vout ) val.i_int &= ~1; var_Set( p_vout, "mouse-button-down", val ); - val.b_bool = true; - var_Set( p_vout, "mouse-clicked", val ); + var_SetBool( p_vout, "mouse-clicked", true ); val.b_bool = false; var_Set( p_vout->p_libvlc, "intf-popupmenu", val ); @@ -462,18 +458,9 @@ static int Manage( vout_thread_t *p_vout ) case SDL_BUTTON_RIGHT: { - intf_thread_t *p_intf; - var_Get( p_vout, "mouse-button-down", &val ); val.i_int &= ~4; - var_Set( p_vout, "mous-button-down", val ); - p_intf = vlc_object_find( p_vout, VLC_OBJECT_INTF, - FIND_ANYWHERE ); - if( p_intf ) - { - p_intf->b_menu_change = 1; - vlc_object_release( p_intf ); - } + var_Set( p_vout, "mouse-button-down", val ); val.b_bool = true; var_Set( p_vout->p_libvlc, "intf-popupmenu", val ); @@ -590,6 +577,28 @@ static int Manage( vout_thread_t *p_vout ) p_vout->i_changes |= VOUT_SIZE_CHANGE; } + /* autoscale toggle */ + if( p_vout->i_changes & VOUT_SCALE_CHANGE ) + { + p_vout->i_changes &= ~VOUT_SCALE_CHANGE; + + p_vout->b_autoscale = var_GetBool( p_vout, "autoscale" ); + p_vout->i_zoom = (int) ZOOM_FP_FACTOR; + + p_vout->i_changes |= VOUT_SIZE_CHANGE; + } + + /* scaling factor (if no-autoscale) */ + if( p_vout->i_changes & VOUT_ZOOM_CHANGE ) + { + p_vout->i_changes &= ~VOUT_ZOOM_CHANGE; + + p_vout->b_autoscale = false; + p_vout->i_zoom = (int)( ZOOM_FP_FACTOR * var_GetFloat( p_vout, "scale" ) ); + + p_vout->i_changes |= VOUT_SIZE_CHANGE; + } + /* Crop or Aspect Ratio Changes */ if( p_vout->i_changes & VOUT_CROP_CHANGE || p_vout->i_changes & VOUT_ASPECT_CHANGE )