]> git.sesse.net Git - vlc/blobdiff - modules/control/hotkeys.c
Fix OSD when auto-scaling
[vlc] / modules / control / hotkeys.c
index 8191f0c870af5f157b7ff543225162336b5828b5..74e74f0f8ca1fe26a8ac0b40c0c45af1b51756c3 100644 (file)
@@ -35,7 +35,7 @@
 #include <vlc_interface.h>
 #include <vlc_input.h>
 #include <vlc_vout.h>
-#include <vlc_aout.h>
+#include <vlc_aout_intf.h>
 #include <vlc_osd.h>
 #include <vlc_playlist.h>
 #include <vlc_keys.h>
@@ -75,8 +75,8 @@ static void DisplayRate ( vout_thread_t *, float );
 static float AdjustRateFine( input_thread_t *, const int );
 static void ClearChannels  ( intf_thread_t *, vout_thread_t * );
 
-#define DisplayMessage(vout, fmt, ...) \
-    do { if(vout) vout_OSDMessage(vout, fmt, __VA_ARGS__); } while(0)
+#define DisplayMessage(vout, ch, fmt, ...) \
+    do { if(vout) vout_OSDMessage(vout, ch, fmt, __VA_ARGS__); } while(0)
 #define DisplayIcon(vout, icon) \
     do { if(vout) vout_OSDIcon(vout, SPU_DEFAULT_CHANNEL, icon); } while(0)
 
@@ -104,9 +104,9 @@ vlc_module_begin ()
     set_category( CAT_INTERFACE )
     set_subcategory( SUBCAT_INTERFACE_HOTKEYS )
 
-    add_integer( "hotkeys-mousewheel-mode", MOUSEWHEEL_VOLUME, NULL,
-                 N_("MouseWheel x-axis Control"),
-                 N_("MouseWheel x-axis can control volume, position or "
+    add_integer( "hotkeys-mousewheel-mode", MOUSEWHEEL_VOLUME,
+                 N_("MouseWheel up-down axis Control"),
+                 N_("The MouseWheel up-down (vertical) axis can control volume, position or "
                     "mousewheel event can be ignored"), false )
             change_integer_list( i_mode_list, psz_mode_list_text )
 
@@ -162,7 +162,7 @@ static int PutAction( intf_thread_t *p_intf, int i_action )
     vout_thread_t *p_vout = p_input ? input_GetVout( p_input ) : NULL;
 
     /* Update the aout */
-    aout_instance_t *p_aout = p_input ? input_GetAout( p_input ) : NULL;
+    vlc_object_t *p_aout = p_input ? (vlc_object_t *)input_GetAout( p_input ) : NULL;
 
     /* Register OSD channels */
     /* FIXME: this check can fail if the new vout is reallocated at the same
@@ -218,12 +218,13 @@ static int PutAction( intf_thread_t *p_intf, int i_action )
         }
 
         /* Interface showing */
-        case ACTIONID_INTF_SHOW:
-            var_SetBool( p_intf->p_libvlc, "intf-show", true );
+        case ACTIONID_INTF_TOGGLE_FSC:
+        case ACTIONID_INTF_HIDE:
+            var_TriggerCallback( p_intf->p_libvlc, "intf-toggle-fscontrol" );
             break;
 
-        case ACTIONID_INTF_HIDE:
-            var_SetBool( p_intf->p_libvlc, "intf-show", false );
+        case ACTIONID_INTF_BOSS:
+            var_TriggerCallback( p_intf->p_libvlc, "intf-boss" );
             break;
 
         /* Video Output actions */
@@ -300,17 +301,8 @@ static int PutAction( intf_thread_t *p_intf, int i_action )
                 ClearChannels( p_intf, p_vout );
 
                 int state = var_GetInteger( p_input, "state" );
-                if( state != PAUSE_S )
-                {
-                    DisplayIcon( p_vout, OSD_PAUSE_ICON );
-                    state = PAUSE_S;
-                }
-                else
-                {
-                    DisplayIcon( p_vout, OSD_PLAY_ICON );
-                    state = PLAYING_S;
-                }
-                var_SetInteger( p_input, "state", state );
+                DisplayIcon( p_vout, state != PAUSE_S ? OSD_PAUSE_ICON : OSD_PLAY_ICON );
+                playlist_Pause( p_playlist );
             }
             else
                 playlist_Play( p_playlist );
@@ -714,8 +706,7 @@ static int PutAction( intf_thread_t *p_intf, int i_action )
             else if( i_action == ACTIONID_RATE_NORMAL )
             {
                 var_SetFloat( p_playlist, "rate", 1. );
-                DisplayMessage( p_vout, SPU_DEFAULT_CHANNEL,
-                                "%s", _("1.00x") );
+                DisplayRate( p_vout, var_GetFloat( p_input, "rate" ) );
             }
             else if( i_action == ACTIONID_FASTER )
             {
@@ -980,7 +971,6 @@ static void SetBookmark( intf_thread_t *p_intf, int i_num )
     {
         config_PutPsz( p_intf, psz_bookmark_name, psz_uri);
         msg_Info( p_intf, "setting playlist bookmark %i to %s", i_num, psz_uri);
-        config_SaveConfigFile( p_intf, "hotkeys" );
     }
 
     free( psz_uri );
@@ -1037,11 +1027,8 @@ static void DisplayVolume( intf_thread_t *p_intf, vout_thread_t *p_vout,
         vout_OSDSlider( p_vout, VOLUME_WIDGET_CHAN,
             i_vol*100/AOUT_VOLUME_MAX, OSD_VERT_SLIDER );
     }
-    else
-    {
-        DisplayMessage( p_vout, VOLUME_TEXT_CHAN, _( "Volume %d%%" ),
-                        i_vol*400/AOUT_VOLUME_MAX );
-    }
+    DisplayMessage( p_vout, VOLUME_TEXT_CHAN, _( "Volume %d%%" ),
+                    i_vol*100/AOUT_VOLUME_DEFAULT );
 }
 
 static void DisplayRate( vout_thread_t *p_vout, float f_rate )