]> git.sesse.net Git - vlc/blobdiff - modules/control/hotkeys.c
Fix YV12 support in opengl output (when shader is in use).
[vlc] / modules / control / hotkeys.c
index 5a0664946c1b45ca622c83052e7ec82c9afb1dea..9919bbaca523f1c2cbc46092d9accc46d16c724a 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,11 +104,11 @@ vlc_module_begin ()
     set_category( CAT_INTERFACE )
     set_subcategory( SUBCAT_INTERFACE_HOTKEYS )
 
-    add_integer( "hotkeys-mousewheel-mode", MOUSEWHEEL_VOLUME, NULL,
+    add_integer( "hotkeys-mousewheel-mode", MOUSEWHEEL_VOLUME,
                  N_("MouseWheel x-axis Control"),
                  N_("MouseWheel x-axis can control volume, position or "
                     "mousewheel event can be ignored"), false )
-            change_integer_list( i_mode_list, psz_mode_list_text, NULL )
+            change_integer_list( i_mode_list, psz_mode_list_text )
 
 vlc_module_end ()
 
@@ -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
@@ -226,6 +226,10 @@ static int PutAction( intf_thread_t *p_intf, int i_action )
             var_SetBool( p_intf->p_libvlc, "intf-show", false );
             break;
 
+        case ACTIONID_INTF_BOSS:
+            var_TriggerCallback( p_intf->p_libvlc, "intf-boss" );
+            break;
+
         /* Video Output actions */
         case ACTIONID_SNAPSHOT:
             if( p_vout )
@@ -713,18 +717,17 @@ static int PutAction( intf_thread_t *p_intf, int i_action )
             }
             else if( i_action == ACTIONID_RATE_NORMAL )
             {
-                var_SetFloat( p_input, "rate", 1. );
-                DisplayMessage( p_vout, SPU_DEFAULT_CHANNEL,
-                                "%s", _("1.00x") );
+                var_SetFloat( p_playlist, "rate", 1. );
+                DisplayRate( p_vout, var_GetFloat( p_input, "rate" ) );
             }
             else if( i_action == ACTIONID_FASTER )
             {
-                var_TriggerCallback( p_input, "rate-faster" );
+                var_TriggerCallback( p_playlist, "rate-faster" );
                 DisplayRate( p_vout, var_GetFloat( p_input, "rate" ) );
             }
             else if( i_action == ACTIONID_SLOWER )
             {
-                var_TriggerCallback( p_input, "rate-slower" );
+                var_TriggerCallback( p_playlist, "rate-slower" );
                 DisplayRate( p_vout, var_GetFloat( p_input, "rate" ) );
             }
             else if( i_action == ACTIONID_RATE_FASTER_FINE ||
@@ -733,7 +736,7 @@ static int PutAction( intf_thread_t *p_intf, int i_action )
                 const int i_dir = i_action == ACTIONID_RATE_FASTER_FINE ? 1 : -1;
                 float f_newrate = AdjustRateFine( p_input, i_dir );
 
-                var_SetFloat( p_input, "rate", f_newrate );
+                var_SetFloat( p_playlist, "rate", f_newrate );
                 DisplayRate( p_vout, f_newrate );
             }
             else if( i_action == ACTIONID_POSITION )
@@ -963,22 +966,26 @@ static void PlayBookmark( intf_thread_t *p_intf, int i_num )
 static void SetBookmark( intf_thread_t *p_intf, int i_num )
 {
     char *psz_bookmark_name;
+    char *psz_uri = NULL;
     if( asprintf( &psz_bookmark_name, "bookmark%i", i_num ) == -1 )
         return;
 
     playlist_t *p_playlist = pl_Get( p_intf );
     var_Create( p_intf, psz_bookmark_name,
                 VLC_VAR_STRING|VLC_VAR_DOINHERIT );
+
+    PL_LOCK;
     playlist_item_t * p_item = playlist_CurrentPlayingItem( p_playlist );
+    if( p_item ) psz_uri = input_item_GetURI( p_item->p_input );
+    PL_UNLOCK;
+
     if( p_item )
     {
-        char *psz_uri = input_item_GetURI( p_item->p_input );
         config_PutPsz( p_intf, psz_bookmark_name, psz_uri);
         msg_Info( p_intf, "setting playlist bookmark %i to %s", i_num, psz_uri);
-        free( psz_uri );
-        config_SaveConfigFile( p_intf, "hotkeys" );
     }
 
+    free( psz_uri );
     free( psz_bookmark_name );
 }
 
@@ -1032,11 +1039,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 )