]> git.sesse.net Git - vlc/commitdiff
Added 'Boss Key' support to the core.
authorLaurent Aimar <fenrir@videolan.org>
Mon, 5 Sep 2011 19:58:50 +0000 (21:58 +0200)
committerLaurent Aimar <fenrir@videolan.org>
Mon, 5 Sep 2011 21:12:27 +0000 (23:12 +0200)
The interfaces that want to implement it can now add a callback on
libvlc::intf-boss.

include/vlc_keys.h
modules/control/hotkeys.c
src/config/keys.c
src/libvlc-module.c
src/libvlc.c

index ca394fda571e73410e2ada001ef3b82f11ff71d9..b95b8c8e01a6bed2d2f0c8ea2915b6578ca25abc 100644 (file)
@@ -149,6 +149,7 @@ typedef enum vlc_action {
     ACTIONID_SUBTITLE_TRACK,
     ACTIONID_INTF_SHOW,
     ACTIONID_INTF_HIDE,
+    ACTIONID_INTF_BOSS,
     /* chapter and title navigation */
     ACTIONID_TITLE_PREV,
     ACTIONID_TITLE_NEXT,
index b7d1725047745cb5adb242114d9db65780afd17a..9919bbaca523f1c2cbc46092d9accc46d16c724a 100644 (file)
@@ -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 )
index a03ff4698b5bd0ed695962421025a2367ef7d869..dd91d5150f4c923cd5a8807822bde429c12f571b 100644 (file)
@@ -254,6 +254,7 @@ static const struct action actions[] =
     { "faster", ACTIONID_FASTER, },
     { "frame-next", ACTIONID_FRAME_NEXT, },
     { "incr-scalefactor", ACTIONID_SCALE_UP, },
+    { "intf-boss", ACTIONID_INTF_BOSS, },
     { "intf-hide", ACTIONID_INTF_HIDE, },
     { "intf-show", ACTIONID_INTF_SHOW, },
     { "jump+extrashort", ACTIONID_JUMP_FORWARD_EXTRASHORT, },
index f454e1dcaeb86fb0c01caa550dbed13e11912311..b104b6290d413a059330dd2261d4c31d6886b6da 100644 (file)
@@ -1474,6 +1474,8 @@ static const char *const ppsz_albumart_descriptions[] =
 #define INTF_SHOW_KEY_LONGTEXT N_("Raise the interface above all other windows.")
 #define INTF_HIDE_KEY_TEXT N_("Hide interface")
 #define INTF_HIDE_KEY_LONGTEXT N_("Lower the interface below all other windows.")
+#define INTF_BOSS_KEY_TEXT N_("Boss key")
+#define INTF_BOSS_KEY_LONGTEXT N_("Hide the interface and pause playback.")
 #define SNAP_KEY_TEXT N_("Take video snapshot")
 #define SNAP_KEY_LONGTEXT N_("Takes a video snapshot and writes it to disk.")
 
@@ -2277,6 +2279,7 @@ vlc_module_begin ()
 #   define KEY_DEINTERLACE        "d"
 #   define KEY_INTF_SHOW          "i"
 #   define KEY_INTF_HIDE          "Shift+i"
+#   define KEY_INTF_BOSS          NULL
 #   define KEY_DISC_MENU          "Ctrl+m"
 #   define KEY_TITLE_PREV         "Ctrl+p"
 #   define KEY_TITLE_NEXT         "Ctrl+n"
@@ -2394,6 +2397,7 @@ vlc_module_begin ()
 #   define KEY_DEINTERLACE        "d"
 #   define KEY_INTF_SHOW          "i"
 #   define KEY_INTF_HIDE          "Shift+i"
+#   define KEY_INTF_BOSS          NULL
 #   define KEY_DISC_MENU          "Shift+m"
 #   define KEY_TITLE_PREV         "Shift+o"
 #   define KEY_TITLE_NEXT         "Shift+b"
@@ -2567,6 +2571,8 @@ vlc_module_begin ()
              INTF_SHOW_KEY_TEXT, INTF_SHOW_KEY_LONGTEXT, true )
     add_key( "key-intf-hide", KEY_INTF_HIDE,
              INTF_HIDE_KEY_TEXT, INTF_HIDE_KEY_LONGTEXT, true )
+    add_key( "key-intf-boss", KEY_INTF_BOSS,
+             INTF_BOSS_KEY_TEXT, INTF_BOSS_KEY_LONGTEXT, true )
     add_key( "key-snapshot", KEY_SNAPSHOT,
         SNAP_KEY_TEXT, SNAP_KEY_LONGTEXT, true )
     add_key( "key-record", KEY_RECORD,
index b8e02bb9cc0cb5022f3ac1f11e8c50435d39e1cb..fc0e65cf3b44a4d0050b5c48e5ea21f3a5996d13 100644 (file)
@@ -533,6 +533,9 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
     var_Create( p_libvlc, "intf-show", VLC_VAR_BOOL );
     var_SetBool( p_libvlc, "intf-show", true );
 
+    /* Create a variable for the Boss Key */
+    var_Create( p_libvlc, "intf-boss", VLC_VAR_VOID );
+
     /* Create a variable for showing the right click menu */
     var_Create( p_libvlc, "intf-popupmenu", VLC_VAR_BOOL );