]> git.sesse.net Git - vlc/blobdiff - src/libvlc-module.c
Updated update code to vlc_clone().
[vlc] / src / libvlc-module.c
index 670188930b9d5b34a8900eaf363ad4fb17773669..3756b10fe359f7fabfb1fc55a636aad58fb12f91 100644 (file)
@@ -27,7 +27,6 @@
 // Pretend we are a builtin module
 #define MODULE_NAME main
 #define MODULE_PATH main
-#define __BUILTIN__
 
 
 #ifdef HAVE_CONFIG_H
@@ -270,11 +269,6 @@ static const char *const ppsz_snap_formats[] =
     "You can set the default audio output volume here, in a range from 0 to " \
     "1024.")
 
-#define VOLUME_SAVE_TEXT N_("Audio output saved volume")
-#define VOLUME_SAVE_LONGTEXT N_( \
-    "This saves the audio output volume when you use the mute function. " \
-    "You should not change this option manually.")
-
 #define VOLUME_STEP_TEXT N_("Audio output volume step")
 #define VOLUME_STEP_LONGTEXT N_( \
     "The step size of the volume is adjustable using this option, " \
@@ -431,11 +425,6 @@ static const char *const ppsz_align_descriptions[] =
 #define EMBEDDED_LONGTEXT N_( \
     "Embed the video output in the main interface." )
 
-#define DISPLAY_TEXT N_("X11 display")
-#define DISPLAY_LONGTEXT N_( \
-    "X11 hardware display to use. By default VLC will " \
-    "use the value of the DISPLAY environment variable.")
-
 #define FULLSCREEN_TEXT N_("Fullscreen video output")
 #define FULLSCREEN_LONGTEXT N_( \
     "Start video in fullscreen mode" )
@@ -487,11 +476,13 @@ static const char * const  ppsz_deinterlace_text[] = {
     "Deinterlace method to use for video processing.")
 static const char * const ppsz_deinterlace_mode[] = {
     "discard", "blend", "mean", "bob",
-    "linear", "x", "yadif", "yadif2x"
+    "linear", "x", "yadif", "yadif2x", "phosphor",
+    "ivtc"
 };
 static const char * const ppsz_deinterlace_mode_text[] = {
     N_("Discard"), N_("Blend"), N_("Mean"), N_("Bob"),
-    N_("Linear"), "X", "Yadif", "Yadif (2x)"
+    N_("Linear"), "X", "Yadif", "Yadif (2x)", N_("Phosphor"),
+    N_("Film NTSC (IVTC)")
 };
 
 static const int pi_pos_values[] = { 0, 1, 2, 4, 8, 5, 6, 9, 10 };
@@ -791,12 +782,18 @@ static const char *const ppsz_clock_descriptions[] =
     "This is the maximum size in bytes of the temporary files " \
     "that will be used to store the timeshifted streams." )
 
+#define INPUT_TITLE_FORMAT_TEXT N_( "Change title according to current media" )
+#define INPUT_TITLE_FORMAT_LONGTEXT N_( "This option allows you to set the title according to what's being played<br>"  \
+    "$a: Artist<br>$b: Album<br>$c: Copyright<br>$t: Title<br>$g: Genre<br>"  \
+    "$n: Track num<br>$p: Now playing<br>$A: Date<br>$D: Duration<br>"  \
+    "$Z: \"Now playing\" (Fall back on Title - Artist)" )
+
 // DEPRECATED
 #define SUB_CAT_LONGTEXT N_( \
     "These options allow you to modify the behavior of the subpictures " \
-    "subsystem. You can for example enable subpictures filters (logo, etc.). " \
+    "subsystem. You can for example enable subpictures sources (logo, etc.). " \
     "Enable these filters here and configure them in the " \
-    "\"subpictures filters\" modules section. You can also set many " \
+    "\"subsources filters\" modules section. You can also set many " \
     "miscellaneous subpictures options." )
 
 #define SUB_MARGIN_TEXT N_("Force subtitle position")
@@ -817,10 +814,15 @@ static const char *const ppsz_clock_descriptions[] =
 #define TEXTRENDERER_LONGTEXT N_( \
     "VLC normally uses Freetype for rendering, but this allows you to use svg for instance.")
 
+#define SUB_SOURCE_TEXT N_("Subpictures source module")
+#define SUB_SOURCE_LONGTEXT N_( \
+    "This adds so-called \"subpicture sources\". These filters overlay " \
+    "some images or text over the video (like a logo, arbitrary text, ...)." )
+
 #define SUB_FILTER_TEXT N_("Subpictures filter module")
 #define SUB_FILTER_LONGTEXT N_( \
-    "This adds so-called \"subpicture filters\". These filters overlay " \
-    "some images or text over the video (like a logo, arbitrary text, ...)." )
+    "This adds so-called \"subpicture filters\". These filter subpictures " \
+    "created by subtitles decoders or other subpictures sources." )
 
 #define SUB_AUTO_TEXT N_("Autodetect subtitle files")
 #define SUB_AUTO_LONGTEXT N_( \
@@ -852,7 +854,7 @@ static const char *const ppsz_clock_descriptions[] =
 #define VCD_DEV_TEXT N_("VCD device")
 #define CDAUDIO_DEV_TEXT N_("Audio CD device")
 
-#ifdef WIN32
+#if defined( WIN32 ) || defined( __OS2__ )
 # define DVD_DEV_LONGTEXT N_( \
     "This is the default DVD drive (or file) to use. Don't forget the colon " \
     "after the drive letter (e.g. D:)")
@@ -960,11 +962,6 @@ static const char *const ppsz_clock_descriptions[] =
     "This allows you to select a list of encoders that VLC will use in " \
     "priority.")
 
-#define SYSTEM_CODEC_TEXT N_("Prefer system plugins over VLC")
-#define SYSTEM_CODEC_LONGTEXT N_( \
-    "Indicates whether VLC will prefer native plugins installed " \
-    "on system over VLC owns plugins whenever a choice is available." )
-
 /*****************************************************************************
  * Sout
  ****************************************************************************/
@@ -1581,7 +1578,7 @@ const char vlc_usage[] = N_(
                b_advanced_option )
  * add_loadfile( option_name, psz_value, N_(text), N_(longtext) )
  * add_savefile( option_name, psz_value, N_(text), N_(longtext) )
- * add_module( option_name, psz_value, i_capability, p_callback,
+ * add_module( option_name, psz_value, i_capability,
  *             N_(text), N_(longtext) )
  * add_integer( option_name, i_value, N_(text), N_(longtext),
  *              b_advanced_option )
@@ -1598,10 +1595,10 @@ vlc_module_begin ()
     add_bool( "audio", 1, AUDIO_TEXT, AUDIO_LONGTEXT, false )
         change_safe ()
     add_integer_with_range( "volume", AOUT_VOLUME_DEFAULT, AOUT_VOLUME_MIN,
-                            AOUT_VOLUME_MAX, NULL, VOLUME_TEXT,
+                            AOUT_VOLUME_MAX, VOLUME_TEXT,
                             VOLUME_LONGTEXT, false )
     add_integer_with_range( "volume-step", AOUT_VOLUME_STEP, AOUT_VOLUME_MIN,
-                            AOUT_VOLUME_MAX, NULL, VOLUME_STEP_TEXT,
+                            AOUT_VOLUME_MAX, VOLUME_STEP_TEXT,
                             VOLUME_STEP_LONGTEXT, true )
     add_integer( "aout-rate", -1, AOUT_RATE_TEXT,
                  AOUT_RATE_LONGTEXT, true )
@@ -1632,15 +1629,14 @@ vlc_module_begin ()
               AUDIO_TIME_STRETCH_TEXT, AUDIO_TIME_STRETCH_LONGTEXT, false )
 
     set_subcategory( SUBCAT_AUDIO_AOUT )
-    add_module( "aout", "audio output", NULL, NULL, AOUT_TEXT, AOUT_LONGTEXT,
+    add_module( "aout", "audio output", NULL, AOUT_TEXT, AOUT_LONGTEXT,
                 true )
         change_short('A')
     set_subcategory( SUBCAT_AUDIO_AFILTER )
-    add_module_list_cat( "audio-filter", SUBCAT_AUDIO_AFILTER, 0,
-                         NULL, AUDIO_FILTER_TEXT,
-                         AUDIO_FILTER_LONGTEXT, false )
+    add_module_list_cat( "audio-filter", SUBCAT_AUDIO_AFILTER, NULL,
+                         AUDIO_FILTER_TEXT, AUDIO_FILTER_LONGTEXT, false )
     set_subcategory( SUBCAT_AUDIO_VISUAL )
-    add_module( "audio-visual", "visualization2",NULL, NULL,AUDIO_VISUAL_TEXT,
+    add_module( "audio-visual", "visualization2", NULL,AUDIO_VISUAL_TEXT,
                 AUDIO_VISUAL_LONGTEXT, false )
 
 /* Video options */
@@ -1666,10 +1662,6 @@ vlc_module_begin ()
 #ifdef __APPLE__
        add_deprecated_alias( "macosx-embedded" ) /*deprecated since 0.9.0 */
 #endif
-    add_string( "x11-display", NULL,
-                DISPLAY_TEXT, DISPLAY_LONGTEXT, true )
-        add_deprecated_alias( "xvideo-display" ) /* deprecated since 1.1.0 */
-        //add_deprecated_alias( "glx-display" ) cannot have more than one
     add_bool( "xlib", true, "", "", true )
         change_private ()
     add_bool( "drop-late-frames", 1, DROP_LATE_FRAMES_TEXT,
@@ -1771,14 +1763,13 @@ vlc_module_begin ()
         change_safe()
 
     set_subcategory( SUBCAT_VIDEO_VOUT )
-    add_module( "vout", "vout display", NULL, NULL, VOUT_TEXT, VOUT_LONGTEXT,
-                true )
+    add_module( "vout", "vout display", NULL, VOUT_TEXT, VOUT_LONGTEXT, true )
         change_short('V')
 
     set_subcategory( SUBCAT_VIDEO_VFILTER )
-    add_module_list_cat( "video-filter", SUBCAT_VIDEO_VFILTER, NULL, NULL,
+    add_module_list_cat( "video-filter", SUBCAT_VIDEO_VFILTER, NULL,
                 VIDEO_FILTER_TEXT, VIDEO_FILTER_LONGTEXT, false )
-    add_module_list_cat( "video-splitter", SUBCAT_VIDEO_VFILTER, NULL, NULL,
+    add_module_list_cat( "video-splitter", SUBCAT_VIDEO_VFILTER, NULL,
                         VIDEO_SPLITTER_TEXT, VIDEO_SPLITTER_LONGTEXT, false )
     add_deprecated_alias( "vout-filter" )
 #if 0
@@ -1793,7 +1784,7 @@ vlc_module_begin ()
     add_bool( "spu", 1, SPU_TEXT, SPU_LONGTEXT, true )
         change_safe ()
     add_bool( "osd", 1, OSD_TEXT, OSD_LONGTEXT, false )
-    add_module( "text-renderer", "text renderer", NULL, NULL, TEXTRENDERER_TEXT,
+    add_module( "text-renderer", "text renderer", NULL, TEXTRENDERER_TEXT,
                 TEXTRENDERER_LONGTEXT, true )
 
     set_section( N_("Subtitles") , NULL )
@@ -1804,7 +1795,7 @@ vlc_module_begin ()
                  SUB_AUTO_TEXT, SUB_AUTO_LONGTEXT, false )
     add_integer( "sub-autodetect-fuzzy", 3,
                  SUB_FUZZY_TEXT, SUB_FUZZY_LONGTEXT, true )
-#ifdef WIN32
+#if defined( WIN32 ) || defined( __OS2__ )
 #   define SUB_PATH ".\\subtitles"
 #else
 #   define SUB_PATH "./Subtitles, ./subtitles"
@@ -1814,7 +1805,9 @@ vlc_module_begin ()
     add_integer( "sub-margin", 0, SUB_MARGIN_TEXT,
                  SUB_MARGIN_LONGTEXT, true )
     set_section( N_( "Overlays" ) , NULL )
-    add_module_list_cat( "sub-filter", SUBCAT_VIDEO_SUBPIC, NULL, NULL,
+    add_module_list_cat( "sub-source", SUBCAT_VIDEO_SUBPIC, NULL,
+                SUB_SOURCE_TEXT, SUB_SOURCE_LONGTEXT, false )
+    add_module_list_cat( "sub-filter", SUBCAT_VIDEO_SUBPIC, NULL,
                 SUB_FILTER_TEXT, SUB_FILTER_LONGTEXT, false )
 
 /* Input options */
@@ -1957,6 +1950,8 @@ vlc_module_begin ()
     add_integer( "input-timeshift-granularity", -1, INPUT_TIMESHIFT_GRANULARITY_TEXT,
                  INPUT_TIMESHIFT_GRANULARITY_LONGTEXT, true )
 
+    add_string( "input-title-format", "$Z", INPUT_TITLE_FORMAT_TEXT, INPUT_TITLE_FORMAT_LONGTEXT, false );
+
 /* Decoder options */
     add_category_hint( N_("Decoders"), CODEC_CAT_LONGTEXT , true )
     add_string( "codec", NULL, CODEC_TEXT,
@@ -1966,20 +1961,17 @@ vlc_module_begin ()
 
     set_subcategory( SUBCAT_INPUT_ACCESS )
     add_category_hint( N_("Input"), INPUT_CAT_LONGTEXT , false )
-    add_module( "access", "access", NULL, NULL, ACCESS_TEXT,
-                ACCESS_LONGTEXT, true )
+    add_module( "access", "access", NULL, ACCESS_TEXT, ACCESS_LONGTEXT, true )
 
     set_subcategory( SUBCAT_INPUT_DEMUX )
-    add_module( "demux", "demux", NULL, NULL, DEMUX_TEXT,
-                DEMUX_LONGTEXT, true )
+    add_module( "demux", "demux", NULL, DEMUX_TEXT, DEMUX_LONGTEXT, true )
     set_subcategory( SUBCAT_INPUT_VCODEC )
     set_subcategory( SUBCAT_INPUT_ACODEC )
     set_subcategory( SUBCAT_INPUT_SCODEC )
-    add_bool( "prefer-system-codecs", false, SYSTEM_CODEC_TEXT,
-                                SYSTEM_CODEC_LONGTEXT, false )
+    add_obsolete_bool( "prefer-system-codecs" )
 
     set_subcategory( SUBCAT_INPUT_STREAM_FILTER )
-    add_module_list_cat( "stream-filter", SUBCAT_INPUT_STREAM_FILTER, NULL, NULL,
+    add_module_list_cat( "stream-filter", SUBCAT_INPUT_STREAM_FILTER, NULL,
                 STREAM_FILTER_TEXT, STREAM_FILTER_LONGTEXT, false )
 
 
@@ -2005,17 +1997,16 @@ vlc_module_begin ()
                                 SOUT_MUX_CACHING_LONGTEXT, true )
 
     set_section( N_("VLM"), NULL )
-    add_string( "vlm-conf", NULL, VLM_CONF_TEXT,
+    add_loadfile( "vlm-conf", NULL, VLM_CONF_TEXT,
                     VLM_CONF_LONGTEXT, true )
 
 
 
     set_subcategory( SUBCAT_SOUT_STREAM )
     set_subcategory( SUBCAT_SOUT_MUX )
-    add_module( "mux", "sout mux", NULL, NULL, MUX_TEXT,
-                                MUX_LONGTEXT, true )
+    add_module( "mux", "sout mux", NULL, MUX_TEXT, MUX_LONGTEXT, true )
     set_subcategory( SUBCAT_SOUT_ACO )
-    add_module( "access_output", "sout access", NULL, NULL,
+    add_module( "access_output", "sout access", NULL,
                 ACCESS_OUTPUT_TEXT, ACCESS_OUTPUT_LONGTEXT, true )
     add_integer( "ttl", -1, TTL_TEXT, TTL_LONGTEXT, true )
     add_string( "miface", NULL, MIFACE_TEXT, MIFACE_LONGTEXT, true )
@@ -2023,11 +2014,10 @@ vlc_module_begin ()
     add_integer( "dscp", 0, DSCP_TEXT, DSCP_LONGTEXT, true )
 
     set_subcategory( SUBCAT_SOUT_PACKETIZER )
-    add_module( "packetizer","packetizer", NULL, NULL,
+    add_module( "packetizer", "packetizer", NULL,
                 PACKETIZER_TEXT, PACKETIZER_LONGTEXT, true )
 
     set_subcategory( SUBCAT_SOUT_SAP )
-    add_obsolete_bool( "sap-flow-control" )
     add_integer( "sap-interval", 5, ANN_SAPINTV_TEXT,
                                ANN_SAPINTV_LONGTEXT, true )
 
@@ -2040,67 +2030,43 @@ vlc_module_begin ()
     add_obsolete_bool( "fpu" )
 #if defined( __i386__ ) || defined( __x86_64__ )
     add_bool( "mmx", 1, MMX_TEXT, MMX_LONGTEXT, true )
-        change_need_restart ()
     add_bool( "3dn", 1, THREE_DN_TEXT, THREE_DN_LONGTEXT, true )
-        change_need_restart ()
     add_bool( "mmxext", 1, MMXEXT_TEXT, MMXEXT_LONGTEXT, true )
-        change_need_restart ()
     add_bool( "sse", 1, SSE_TEXT, SSE_LONGTEXT, true )
-        change_need_restart ()
     add_bool( "sse2", 1, SSE2_TEXT, SSE2_LONGTEXT, true )
-        change_need_restart ()
     add_bool( "sse3", 1, SSE3_TEXT, SSE3_LONGTEXT, true )
-        change_need_restart ()
     add_bool( "ssse3", 1, SSSE3_TEXT, SSSE3_LONGTEXT, true )
-        change_need_restart ()
     add_bool( "sse41", 1, SSE4_1_TEXT, SSE4_1_LONGTEXT, true )
-        change_need_restart ()
     add_bool( "sse42", 1, SSE4_2_TEXT, SSE4_2_LONGTEXT, true )
-        change_need_restart ()
 #endif
 #if defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc64__ )
     add_bool( "altivec", 1, ALTIVEC_TEXT, ALTIVEC_LONGTEXT, true )
-        change_need_restart ()
 #endif
 
 /* Misc options */
     set_subcategory( SUBCAT_ADVANCED_MISC )
     set_section( N_("Special modules"), NULL )
     add_category_hint( N_("Miscellaneous"), MISC_CAT_LONGTEXT, true )
-    add_module( "memcpy", "memcpy", NULL, NULL, MEMCPY_TEXT,
-                MEMCPY_LONGTEXT, true )
-        change_need_restart ()
-    add_module( "vod-server", "vod server", NULL, NULL, VOD_SERVER_TEXT,
+    add_module( "memcpy", "memcpy", NULL, MEMCPY_TEXT, MEMCPY_LONGTEXT, true )
+    add_module( "vod-server", "vod server", NULL, VOD_SERVER_TEXT,
                 VOD_SERVER_LONGTEXT, true )
-        change_need_restart ()
 
     set_section( N_("Plugins" ), NULL )
     add_bool( "plugins-cache", true, PLUGINS_CACHE_TEXT,
               PLUGINS_CACHE_LONGTEXT, true )
-        change_need_restart ()
-    add_directory( "plugin-path", NULL, PLUGIN_PATH_TEXT,
-                   PLUGIN_PATH_LONGTEXT, true )
-        change_need_restart ()
+    add_obsolete_string( "plugin-path" )
     add_directory( "data-path", NULL, DATA_PATH_TEXT,
                    DATA_PATH_LONGTEXT, true )
-        change_need_restart ()
 
     set_section( N_("Performance options"), NULL )
-    add_obsolete_bool( "minimize-threads" )
-
-    add_obsolete_bool( "use-stream-immediate" )
-
-    add_obsolete_bool( "auto-adjust-pts-delay" )
 
 #ifdef LIBVLC_USE_PTHREAD
 # ifndef __APPLE__
     add_bool( "rt-priority", false, RT_PRIORITY_TEXT,
               RT_PRIORITY_LONGTEXT, true )
-        change_need_restart ()
 # endif
     add_integer( "rt-offset", 0, RT_OFFSET_TEXT,
                  RT_OFFSET_LONGTEXT, true )
-        change_need_restart ()
 #endif
 
 #if defined(HAVE_DBUS)
@@ -2124,7 +2090,6 @@ vlc_module_begin ()
 #if defined(WIN32)
     add_bool( "high-priority", 0, HPRIORITY_TEXT,
               HPRIORITY_LONGTEXT, false )
-        change_need_restart ()
 #endif
 
 /* Playlist options */
@@ -2153,7 +2118,6 @@ vlc_module_begin ()
     add_bool( "playlist-tree", 0, PLTREE_TEXT, PLTREE_LONGTEXT, false )
 
     add_string( "open", "", OPEN_TEXT, OPEN_LONGTEXT, false )
-        change_need_restart ()
 
     add_bool( "auto-preparse", true, PREPARSE_TEXT,
               PREPARSE_LONGTEXT, false )
@@ -2165,9 +2129,8 @@ vlc_module_begin ()
 
     set_subcategory( SUBCAT_PLAYLIST_SD )
     add_module_list_cat( "services-discovery", SUBCAT_PLAYLIST_SD, NULL,
-                          NULL, SD_TEXT, SD_LONGTEXT, false )
+                         SD_TEXT, SD_LONGTEXT, false )
         change_short('S')
-        change_need_restart ()
 
 /* Interface options */
     set_category( CAT_INTERFACE )
@@ -2183,56 +2146,43 @@ vlc_module_begin ()
 #if !defined(WIN32)
     add_bool( "daemon", 0, DAEMON_TEXT, DAEMON_LONGTEXT, true )
         change_short('d')
-        change_need_restart ()
 
     add_string( "pidfile", NULL, PIDFILE_TEXT, PIDFILE_LONGTEXT,
                                        false )
-        change_need_restart ()
 #endif
 
     add_bool( "file-logging", false, FILE_LOG_TEXT, FILE_LOG_LONGTEXT,
               true )
-        change_need_restart ()
 #ifdef HAVE_SYSLOG_H
     add_bool ( "syslog", false, SYSLOG_TEXT, SYSLOG_LONGTEXT,
                true )
-        change_need_restart ()
 #endif
 
 #if defined (WIN32) || defined (__APPLE__)
     add_string( "language", "auto", LANGUAGE_TEXT, LANGUAGE_LONGTEXT,
                 false )
         change_string_list( ppsz_language, ppsz_language_text, 0 )
-        change_need_restart ()
 #endif
 
     add_bool( "color", true, COLOR_TEXT, COLOR_LONGTEXT, true )
     add_bool( "advanced", false, ADVANCED_TEXT, ADVANCED_LONGTEXT,
                     false )
-        change_need_restart ()
     add_bool( "interact", true, INTERACTION_TEXT,
               INTERACTION_LONGTEXT, false )
 
-    add_obsolete_bool( "show-intf" );
-
     add_bool ( "stats", true, STATS_TEXT, STATS_LONGTEXT, true )
-        change_need_restart ()
 
     set_subcategory( SUBCAT_INTERFACE_MAIN )
-    add_module_cat( "intf", SUBCAT_INTERFACE_MAIN, NULL, NULL, INTF_TEXT,
+    add_module_cat( "intf", SUBCAT_INTERFACE_MAIN, NULL, INTF_TEXT,
                 INTF_LONGTEXT, false )
         change_short('I')
-        change_need_restart ()
-    add_module_list_cat( "extraintf", SUBCAT_INTERFACE_MAIN,
-                         NULL, NULL, EXTRAINTF_TEXT,
-                         EXTRAINTF_LONGTEXT, false )
-        change_need_restart ()
+    add_module_list_cat( "extraintf", SUBCAT_INTERFACE_MAIN, NULL,
+                         EXTRAINTF_TEXT, EXTRAINTF_LONGTEXT, false )
 
 
     set_subcategory( SUBCAT_INTERFACE_CONTROL )
-    add_module_list_cat( "control", SUBCAT_INTERFACE_CONTROL, NULL, NULL,
+    add_module_list_cat( "control", SUBCAT_INTERFACE_CONTROL, NULL,
                          CONTROL_TEXT, CONTROL_LONGTEXT, false )
-        change_need_restart ()
 
 /* Hotkey options*/
     set_subcategory( SUBCAT_INTERFACE_HOTKEYS )
@@ -2241,141 +2191,141 @@ vlc_module_begin ()
 #if defined(__APPLE__)
 /* Don't use the following combo's */
 
-/*  copy                          KEY_MODIFIER_COMMAND|'c'
- *  cut                           KEY_MODIFIER_COMMAND|'x'
- *  paste                         KEY_MODIFIER_COMMAND|'v'
- *  select all                    KEY_MODIFIER_COMMAND|'a'
- *  preferences                   KEY_MODIFIER_COMMAND|','
- *  hide vlc                      KEY_MODIFIER_COMMAND|'h'
- *  hide other                    KEY_MODIFIER_COMMAND|KEY_MODIFIER_ALT|'h'
- *  open file                     KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|'o'
- *  open                          KEY_MODIFIER_COMMAND|'o'
- *  open disk                     KEY_MODIFIER_COMMAND|'d'
- *  open network                  KEY_MODIFIER_COMMAND|'n'
- *  open capture                  KEY_MODIFIER_COMMAND|'r'
- *  save playlist                 KEY_MODIFIER_COMMAND|'s'
- *  playlist repeat all           KEY_MODIFIER_COMMAND|'l'
- *  playlist repeat               KEY_MODIFIER_COMMAND|'r'
- *  video fit to screen           KEY_MODIFIER_COMMAND|'3'
- *  minimize window               KEY_MODIFIER_COMMAND|'m'
- *  close window                  KEY_MODIFIER_COMMAND|'w'
- *  streaming wizard              KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|'w'
- *  show controller               KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|'c'
- *  show playlist                 KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|'p'
- *  show info                     KEY_MODIFIER_COMMAND|'i'
- *  show extended controls        KEY_MODIFIER_COMMAND|'e'
- *  show equaliser                KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|'e'
- *  show bookmarks                KEY_MODIFIER_COMMAND|'b'
- *  show messages                 KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|'m'
- *  show errors and warnings      KEY_MODIFIER_COMMAND|KEY_MODIFIER_CTRL|'m'
- *  help                          KEY_MODIFIER_COMMAND|'?'
- *  readme / FAQ                  KEY_MODIFIER_COMMAND|KEY_MODIFIER_ALT|'?'
+/*  copy                          "Command+c"
+ *  cut                           "Command+x"
+ *  paste                         "Command+v"
+ *  select all                    "Command+a"
+ *  preferences                   "Command+,"
+ *  hide vlc                      "Command+h"
+ *  hide other                    "Command+Alt+h"
+ *  open file                     "Command+Shift+o"
+ *  open                          "Command+o"
+ *  open disk                     "Command+d"
+ *  open network                  "Command+n"
+ *  open capture                  "Command+r"
+ *  save playlist                 "Command+s"
+ *  playlist repeat all           "Command+l"
+ *  playlist repeat               "Command+r"
+ *  video fit to screen           "Command+3"
+ *  minimize window               "Command+m"
+ *  close window                  "Command+w"
+ *  streaming wizard              "Command+Shift+w"
+ *  show controller               "Command+Shift+c"
+ *  show playlist                 "Command+Shift+p"
+ *  show info                     "Command+i"
+ *  show extended controls        "Command+e"
+ *  show equaliser                "Command+Shift+e"
+ *  show bookmarks                "Command+b"
+ *  show messages                 "Command+Shift+m"
+ *  show errors and warnings      "Command+Ctrl+m"
+ *  help                          "Command+?"
+ *  readme / FAQ                  "Command+Alt+?"
  */
-#   define KEY_TOGGLE_FULLSCREEN  KEY_MODIFIER_COMMAND|'f'
-#   define KEY_LEAVE_FULLSCREEN   KEY_ESC
-#   define KEY_PLAY_PAUSE         KEY_MODIFIER_COMMAND|'p'
-#   define KEY_PAUSE              KEY_UNSET
-#   define KEY_PLAY               KEY_UNSET
-#   define KEY_FASTER             KEY_MODIFIER_COMMAND|'='
-#   define KEY_SLOWER             KEY_MODIFIER_COMMAND|'-'
-#   define KEY_RATE_NORMAL        KEY_UNSET
-#   define KEY_RATE_FASTER_FINE   KEY_UNSET
-#   define KEY_RATE_SLOWER_FINE   KEY_UNSET
-#   define KEY_NEXT               KEY_MODIFIER_COMMAND|KEY_RIGHT
-#   define KEY_PREV               KEY_MODIFIER_COMMAND|KEY_LEFT
-#   define KEY_STOP               KEY_MODIFIER_COMMAND|'.'
-#   define KEY_POSITION           't'
-#   define KEY_JUMP_MEXTRASHORT   KEY_MODIFIER_COMMAND|KEY_MODIFIER_CTRL|KEY_LEFT
-#   define KEY_JUMP_PEXTRASHORT   KEY_MODIFIER_COMMAND|KEY_MODIFIER_CTRL|KEY_RIGHT
-#   define KEY_JUMP_MSHORT        KEY_MODIFIER_COMMAND|KEY_MODIFIER_ALT|KEY_LEFT
-#   define KEY_JUMP_PSHORT        KEY_MODIFIER_COMMAND|KEY_MODIFIER_ALT|KEY_RIGHT
-#   define KEY_JUMP_MMEDIUM       KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|KEY_LEFT
-#   define KEY_JUMP_PMEDIUM       KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|KEY_RIGHT
-#   define KEY_JUMP_MLONG         KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|KEY_MODIFIER_ALT|KEY_LEFT
-#   define KEY_JUMP_PLONG         KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|KEY_MODIFIER_ALT|KEY_RIGHT
-#   define KEY_FRAME_NEXT         'e'
-#   define KEY_NAV_ACTIVATE       KEY_ENTER
-#   define KEY_NAV_UP             KEY_UP
-#   define KEY_NAV_DOWN           KEY_DOWN
-#   define KEY_NAV_LEFT           KEY_LEFT
-#   define KEY_NAV_RIGHT          KEY_RIGHT
-#   define KEY_QUIT               KEY_MODIFIER_COMMAND|'q'
-#   define KEY_VOL_UP             KEY_MODIFIER_COMMAND|KEY_UP
-#   define KEY_VOL_DOWN           KEY_MODIFIER_COMMAND|KEY_DOWN
-#   define KEY_VOL_MUTE           KEY_MODIFIER_COMMAND|KEY_MODIFIER_ALT|KEY_DOWN
-#   define KEY_SUBDELAY_UP        'j'
-#   define KEY_SUBDELAY_DOWN      'h'
-#   define KEY_SUBPOS_DOWN        KEY_UNSET
-#   define KEY_SUBPOS_UP          KEY_UNSET
-#   define KEY_AUDIODELAY_UP      'g'
-#   define KEY_AUDIODELAY_DOWN    'f'
-#   define KEY_AUDIO_TRACK        'l'
-#   define KEY_SUBTITLE_TRACK     's'
-#   define KEY_ASPECT_RATIO       'a'
-#   define KEY_CROP               'c'
-#   define KEY_TOGGLE_AUTOSCALE   'o'
-#   define KEY_SCALE_UP           KEY_MODIFIER_ALT|'o'
-#   define KEY_SCALE_DOWN         KEY_MODIFIER_SHIFT|KEY_MODIFIER_ALT|'o'
-#   define KEY_DEINTERLACE        'd'
-#   define KEY_INTF_SHOW          'i'
-#   define KEY_INTF_HIDE          KEY_MODIFIER_SHIFT|'i'
-#   define KEY_DISC_MENU          KEY_MODIFIER_CTRL|'m'
-#   define KEY_TITLE_PREV         KEY_MODIFIER_CTRL|'p'
-#   define KEY_TITLE_NEXT         KEY_MODIFIER_CTRL|'n'
-#   define KEY_CHAPTER_PREV       KEY_MODIFIER_CTRL|'u'
-#   define KEY_CHAPTER_NEXT       KEY_MODIFIER_CTRL|'d'
-#   define KEY_SNAPSHOT           KEY_MODIFIER_COMMAND|KEY_MODIFIER_ALT|'s'
-#   define KEY_ZOOM               'z'
-#   define KEY_UNZOOM             KEY_MODIFIER_SHIFT|'z'
-#   define KEY_RANDOM             KEY_MODIFIER_COMMAND|'z'
-#   define KEY_LOOP               KEY_MODIFIER_SHIFT|'l'
-
-#   define KEY_CROP_TOP           KEY_MODIFIER_ALT|'i'
-#   define KEY_UNCROP_TOP         KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|'i'
-#   define KEY_CROP_LEFT          KEY_MODIFIER_ALT|'j'
-#   define KEY_UNCROP_LEFT        KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|'j'
-#   define KEY_CROP_BOTTOM        KEY_MODIFIER_ALT|'k'
-#   define KEY_UNCROP_BOTTOM      KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|'k'
-#   define KEY_CROP_RIGHT         KEY_MODIFIER_ALT|'l'
-#   define KEY_UNCROP_RIGHT       KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|'l'
+#   define KEY_TOGGLE_FULLSCREEN  "Command+f"
+#   define KEY_LEAVE_FULLSCREEN   "Esc"
+#   define KEY_PLAY_PAUSE         "Command+p"
+#   define KEY_PAUSE              NULL
+#   define KEY_PLAY               NULL
+#   define KEY_FASTER             "Command+="
+#   define KEY_SLOWER             "Command+-"
+#   define KEY_RATE_NORMAL        NULL
+#   define KEY_RATE_FASTER_FINE   NULL
+#   define KEY_RATE_SLOWER_FINE   NULL
+#   define KEY_NEXT               "Command+Right"
+#   define KEY_PREV               "Command+Left"
+#   define KEY_STOP               "Command+."
+#   define KEY_POSITION           "t"
+#   define KEY_JUMP_MEXTRASHORT   "Command+Ctrl+Left"
+#   define KEY_JUMP_PEXTRASHORT   "Command+Ctrl+Right"
+#   define KEY_JUMP_MSHORT        "Command+Alt+Left"
+#   define KEY_JUMP_PSHORT        "Command+Alt+Right"
+#   define KEY_JUMP_MMEDIUM       "Command+Shift+Left"
+#   define KEY_JUMP_PMEDIUM       "Command+Shift+Right"
+#   define KEY_JUMP_MLONG         "Command+Shift+Alt+Left"
+#   define KEY_JUMP_PLONG         "Command+Shift+Alt+Right"
+#   define KEY_FRAME_NEXT         "e"
+#   define KEY_NAV_ACTIVATE       "Enter"
+#   define KEY_NAV_UP             "Up"
+#   define KEY_NAV_DOWN           "Down"
+#   define KEY_NAV_LEFT           "Left"
+#   define KEY_NAV_RIGHT          "Right"
+#   define KEY_QUIT               "Command+q"
+#   define KEY_VOL_UP             "Command+Up"
+#   define KEY_VOL_DOWN           "Command+Down"
+#   define KEY_VOL_MUTE           "Command+Alt+Down"
+#   define KEY_SUBDELAY_UP        "j"
+#   define KEY_SUBDELAY_DOWN      "h"
+#   define KEY_SUBPOS_DOWN        NULL
+#   define KEY_SUBPOS_UP          NULL
+#   define KEY_AUDIODELAY_UP      "g"
+#   define KEY_AUDIODELAY_DOWN    "f"
+#   define KEY_AUDIO_TRACK        "l"
+#   define KEY_SUBTITLE_TRACK     "s"
+#   define KEY_ASPECT_RATIO       "a"
+#   define KEY_CROP               "c"
+#   define KEY_TOGGLE_AUTOSCALE   "o"
+#   define KEY_SCALE_UP           "Alt+o"
+#   define KEY_SCALE_DOWN         "Shift+Alt+o"
+#   define KEY_DEINTERLACE        "d"
+#   define KEY_INTF_SHOW          "i"
+#   define KEY_INTF_HIDE          "Shift+i"
+#   define KEY_DISC_MENU          "Ctrl+m"
+#   define KEY_TITLE_PREV         "Ctrl+p"
+#   define KEY_TITLE_NEXT         "Ctrl+n"
+#   define KEY_CHAPTER_PREV       "Ctrl+u"
+#   define KEY_CHAPTER_NEXT       "Ctrl+d"
+#   define KEY_SNAPSHOT           "Command+Alt+s"
+#   define KEY_ZOOM               "z"
+#   define KEY_UNZOOM             "Shift+z"
+#   define KEY_RANDOM             "Command+z"
+#   define KEY_LOOP               "Shift+l"
+
+#   define KEY_CROP_TOP           "Alt+i"
+#   define KEY_UNCROP_TOP         "Alt+Shift+i"
+#   define KEY_CROP_LEFT          "Alt+j"
+#   define KEY_UNCROP_LEFT        "Alt+Shift+j"
+#   define KEY_CROP_BOTTOM        "Alt+k"
+#   define KEY_UNCROP_BOTTOM      "Alt+Shift+k"
+#   define KEY_CROP_RIGHT         "Alt+l"
+#   define KEY_UNCROP_RIGHT       "Alt+Shift+l"
 
 /* the macosx-interface already has bindings */
-#   define KEY_ZOOM_QUARTER       KEY_UNSET
-#   define KEY_ZOOM_HALF          KEY_MODIFIER_COMMAND|'0'
-#   define KEY_ZOOM_ORIGINAL      KEY_MODIFIER_COMMAND|'1'
-#   define KEY_ZOOM_DOUBLE        KEY_MODIFIER_COMMAND|'2'
-
-#   define KEY_SET_BOOKMARK1      KEY_MODIFIER_COMMAND|KEY_F1
-#   define KEY_SET_BOOKMARK2      KEY_MODIFIER_COMMAND|KEY_F2
-#   define KEY_SET_BOOKMARK3      KEY_MODIFIER_COMMAND|KEY_F3
-#   define KEY_SET_BOOKMARK4      KEY_MODIFIER_COMMAND|KEY_F4
-#   define KEY_SET_BOOKMARK5      KEY_MODIFIER_COMMAND|KEY_F5
-#   define KEY_SET_BOOKMARK6      KEY_MODIFIER_COMMAND|KEY_F6
-#   define KEY_SET_BOOKMARK7      KEY_MODIFIER_COMMAND|KEY_F7
-#   define KEY_SET_BOOKMARK8      KEY_MODIFIER_COMMAND|KEY_F8
-#   define KEY_SET_BOOKMARK9      KEY_UNSET
-#   define KEY_SET_BOOKMARK10     KEY_UNSET
-#   define KEY_PLAY_BOOKMARK1     KEY_F1
-#   define KEY_PLAY_BOOKMARK2     KEY_F2
-#   define KEY_PLAY_BOOKMARK3     KEY_F3
-#   define KEY_PLAY_BOOKMARK4     KEY_F4
-#   define KEY_PLAY_BOOKMARK5     KEY_F5
-#   define KEY_PLAY_BOOKMARK6     KEY_F6
-#   define KEY_PLAY_BOOKMARK7     KEY_F7
-#   define KEY_PLAY_BOOKMARK8     KEY_F8
-#   define KEY_PLAY_BOOKMARK9     KEY_UNSET
-#   define KEY_PLAY_BOOKMARK10    KEY_UNSET
-#   define KEY_RECORD             KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|'r'
-#   define KEY_WALLPAPER          KEY_MODIFIER_COMMAND|'w'
-
-#   define KEY_MENU_ON            KEY_MODIFIER_ALT|'m'
-#   define KEY_MENU_OFF           KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|'m'
-#   define KEY_MENU_RIGHT         KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|KEY_RIGHT
-#   define KEY_MENU_LEFT          KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|KEY_LEFT
-#   define KEY_MENU_UP            KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|KEY_UP
-#   define KEY_MENU_DOWN          KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|KEY_DOWN
-#   define KEY_MENU_SELECT        KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|KEY_ENTER
-#   define KEY_AUDIODEVICE_CYCLE  KEY_MODIFIER_SHIFT|'a'
+#   define KEY_ZOOM_QUARTER       NULL
+#   define KEY_ZOOM_HALF          "Command+0"
+#   define KEY_ZOOM_ORIGINAL      "Command+1"
+#   define KEY_ZOOM_DOUBLE        "Command+2"
+
+#   define KEY_SET_BOOKMARK1      "Command+F1"
+#   define KEY_SET_BOOKMARK2      "Command+F2"
+#   define KEY_SET_BOOKMARK3      "Command+F3"
+#   define KEY_SET_BOOKMARK4      "Command+F4"
+#   define KEY_SET_BOOKMARK5      "Command+F5"
+#   define KEY_SET_BOOKMARK6      "Command+F6"
+#   define KEY_SET_BOOKMARK7      "Command+F7"
+#   define KEY_SET_BOOKMARK8      "Command+F8"
+#   define KEY_SET_BOOKMARK9      NULL
+#   define KEY_SET_BOOKMARK10     NULL
+#   define KEY_PLAY_BOOKMARK1     "F1"
+#   define KEY_PLAY_BOOKMARK2     "F2"
+#   define KEY_PLAY_BOOKMARK3     "F3"
+#   define KEY_PLAY_BOOKMARK4     "F4"
+#   define KEY_PLAY_BOOKMARK5     "F5"
+#   define KEY_PLAY_BOOKMARK6     "F6"
+#   define KEY_PLAY_BOOKMARK7     "F7"
+#   define KEY_PLAY_BOOKMARK8     "F8"
+#   define KEY_PLAY_BOOKMARK9     NULL
+#   define KEY_PLAY_BOOKMARK10    NULL
+#   define KEY_RECORD             "Command+Shift+r"
+#   define KEY_WALLPAPER          "w"
+
+#   define KEY_MENU_ON            "Alt+m"
+#   define KEY_MENU_OFF           "Alt+Shift+m"
+#   define KEY_MENU_RIGHT         "Alt+Shift+Right"
+#   define KEY_MENU_LEFT          "Alt+Shift+Left"
+#   define KEY_MENU_UP            "Alt+Shift+Up"
+#   define KEY_MENU_DOWN          "Alt+Shift+Down"
+#   define KEY_MENU_SELECT        "Alt+Shift+Enter"
+#   define KEY_AUDIODEVICE_CYCLE  "Shift+a"
 
 #else /* Non Mac OS X */
     /*
@@ -2385,118 +2335,118 @@ vlc_module_begin ()
        alt + letter key, because they are usually for menu accelerators and you
        don't know how the translator is going to do it.
      */
-#   define KEY_TOGGLE_FULLSCREEN  'f'
-#   define KEY_LEAVE_FULLSCREEN   KEY_ESC
-#   define KEY_PLAY_PAUSE         ' '
-#   define KEY_PAUSE              KEY_UNSET
-#   define KEY_PLAY               KEY_UNSET
-#   define KEY_FASTER             '+'
-#   define KEY_SLOWER             '-'
-#   define KEY_RATE_NORMAL        '='
-#   define KEY_RATE_FASTER_FINE   ']'
-#   define KEY_RATE_SLOWER_FINE   '['
-#   define KEY_NEXT               'n'
-#   define KEY_PREV               'p'
-#   define KEY_STOP               's'
-#   define KEY_POSITION           't'
-#   define KEY_JUMP_MEXTRASHORT   KEY_MODIFIER_SHIFT|KEY_LEFT
-#   define KEY_JUMP_PEXTRASHORT   KEY_MODIFIER_SHIFT|KEY_RIGHT
-#   define KEY_JUMP_MSHORT        KEY_MODIFIER_ALT|KEY_LEFT
-#   define KEY_JUMP_PSHORT        KEY_MODIFIER_ALT|KEY_RIGHT
-#   define KEY_JUMP_MMEDIUM       KEY_MODIFIER_CTRL|KEY_LEFT
-#   define KEY_JUMP_PMEDIUM       KEY_MODIFIER_CTRL|KEY_RIGHT
-#   define KEY_JUMP_MLONG         KEY_MODIFIER_CTRL|KEY_MODIFIER_ALT|KEY_LEFT
-#   define KEY_JUMP_PLONG         KEY_MODIFIER_CTRL|KEY_MODIFIER_ALT|KEY_RIGHT
-#   define KEY_FRAME_NEXT         'e'
-#   define KEY_NAV_ACTIVATE       KEY_ENTER
-#   define KEY_NAV_UP             KEY_UP
-#   define KEY_NAV_DOWN           KEY_DOWN
-#   define KEY_NAV_LEFT           KEY_LEFT
-#   define KEY_NAV_RIGHT          KEY_RIGHT
-#   define KEY_QUIT               KEY_MODIFIER_CTRL|'q'
-#   define KEY_VOL_UP             KEY_MODIFIER_CTRL|KEY_UP
-#   define KEY_VOL_DOWN           KEY_MODIFIER_CTRL|KEY_DOWN
-#   define KEY_VOL_MUTE           'm'
-#   define KEY_SUBDELAY_UP        'h'
-#   define KEY_SUBDELAY_DOWN      'g'
-#   define KEY_SUBPOS_DOWN        KEY_UNSET
-#   define KEY_SUBPOS_UP          KEY_UNSET
-#   define KEY_AUDIODELAY_UP      'k'
-#   define KEY_AUDIODELAY_DOWN    'j'
-#   define KEY_RANDOM             'r'
-#   define KEY_LOOP               'l'
-
-#   define KEY_AUDIO_TRACK        'b'
-#   define KEY_SUBTITLE_TRACK     'v'
-#   define KEY_ASPECT_RATIO       'a'
-#   define KEY_CROP               'c'
-#   define KEY_TOGGLE_AUTOSCALE   'o'
-#   define KEY_SCALE_UP           KEY_MODIFIER_ALT|'o'
-#   define KEY_SCALE_DOWN         KEY_MODIFIER_SHIFT|KEY_MODIFIER_ALT|'o'
-#   define KEY_DEINTERLACE        'd'
-#   define KEY_INTF_SHOW          'i'
-#   define KEY_INTF_HIDE          KEY_MODIFIER_SHIFT|'i'
-#   define KEY_DISC_MENU          KEY_MODIFIER_SHIFT|'m'
-#   define KEY_TITLE_PREV         KEY_MODIFIER_SHIFT|'o'
-#   define KEY_TITLE_NEXT         KEY_MODIFIER_SHIFT|'b'
-#   define KEY_CHAPTER_PREV       KEY_MODIFIER_SHIFT|'p'
-#   define KEY_CHAPTER_NEXT       KEY_MODIFIER_SHIFT|'n'
-#   define KEY_SNAPSHOT           KEY_MODIFIER_SHIFT|'s'
-
-#   define KEY_ZOOM               'z'
-#   define KEY_UNZOOM             KEY_MODIFIER_SHIFT|'z'
-
-#   define KEY_AUDIODEVICE_CYCLE  KEY_MODIFIER_SHIFT|'a'
-
-#   define KEY_RECORD             KEY_MODIFIER_SHIFT|'r'
-#   define KEY_WALLPAPER          'w'
+#   define KEY_TOGGLE_FULLSCREEN  "f"
+#   define KEY_LEAVE_FULLSCREEN   "Esc"
+#   define KEY_PLAY_PAUSE         "Space"
+#   define KEY_PAUSE              NULL
+#   define KEY_PLAY               NULL
+#   define KEY_FASTER             "+"
+#   define KEY_SLOWER             "-"
+#   define KEY_RATE_NORMAL        "="
+#   define KEY_RATE_FASTER_FINE   "]"
+#   define KEY_RATE_SLOWER_FINE   "["
+#   define KEY_NEXT               "n"
+#   define KEY_PREV               "p"
+#   define KEY_STOP               "s"
+#   define KEY_POSITION           "t"
+#   define KEY_JUMP_MEXTRASHORT   "Shift+Left"
+#   define KEY_JUMP_PEXTRASHORT   "Shift+Right"
+#   define KEY_JUMP_MSHORT        "Alt+Left"
+#   define KEY_JUMP_PSHORT        "Alt+Right"
+#   define KEY_JUMP_MMEDIUM       "Ctrl+Left"
+#   define KEY_JUMP_PMEDIUM       "Ctrl+Right"
+#   define KEY_JUMP_MLONG         "Ctrl+Alt+Left"
+#   define KEY_JUMP_PLONG         "Ctrl+Alt+Right"
+#   define KEY_FRAME_NEXT         "e"
+#   define KEY_NAV_ACTIVATE       "Enter"
+#   define KEY_NAV_UP             "Up"
+#   define KEY_NAV_DOWN           "Down"
+#   define KEY_NAV_LEFT           "Left"
+#   define KEY_NAV_RIGHT          "Right"
+#   define KEY_QUIT               "Ctrl+q"
+#   define KEY_VOL_UP             "Ctrl+Up"
+#   define KEY_VOL_DOWN           "Ctrl+Down"
+#   define KEY_VOL_MUTE           "m"
+#   define KEY_SUBDELAY_UP        "h"
+#   define KEY_SUBDELAY_DOWN      "g"
+#   define KEY_SUBPOS_DOWN        NULL
+#   define KEY_SUBPOS_UP          NULL
+#   define KEY_AUDIODELAY_UP      "k"
+#   define KEY_AUDIODELAY_DOWN    "j"
+#   define KEY_RANDOM             "r"
+#   define KEY_LOOP               "l"
+
+#   define KEY_AUDIO_TRACK        "b"
+#   define KEY_SUBTITLE_TRACK     "v"
+#   define KEY_ASPECT_RATIO       "a"
+#   define KEY_CROP               "c"
+#   define KEY_TOGGLE_AUTOSCALE   "o"
+#   define KEY_SCALE_UP           "Alt+o"
+#   define KEY_SCALE_DOWN         "Alt+Shift+o"
+#   define KEY_DEINTERLACE        "d"
+#   define KEY_INTF_SHOW          "i"
+#   define KEY_INTF_HIDE          "Shift+i"
+#   define KEY_DISC_MENU          "Shift+m"
+#   define KEY_TITLE_PREV         "Shift+o"
+#   define KEY_TITLE_NEXT         "Shift+b"
+#   define KEY_CHAPTER_PREV       "Shift+p"
+#   define KEY_CHAPTER_NEXT       "Shift+n"
+#   define KEY_SNAPSHOT           "Shift+s"
+
+#   define KEY_ZOOM               "z"
+#   define KEY_UNZOOM             "Shift+z"
+
+#   define KEY_AUDIODEVICE_CYCLE  "Shift+a"
+
+#   define KEY_RECORD             "Shift+r"
+#   define KEY_WALLPAPER          "w"
 
 /* Cropping */
-#   define KEY_CROP_TOP           KEY_MODIFIER_ALT|'r'
-#   define KEY_UNCROP_TOP         KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|'r'
-#   define KEY_CROP_LEFT          KEY_MODIFIER_ALT|'d'
-#   define KEY_UNCROP_LEFT        KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|'d'
-#   define KEY_CROP_BOTTOM        KEY_MODIFIER_ALT|'c'
-#   define KEY_UNCROP_BOTTOM      KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|'c'
-#   define KEY_CROP_RIGHT         KEY_MODIFIER_ALT|'f'
-#   define KEY_UNCROP_RIGHT       KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|'f'
+#   define KEY_CROP_TOP           "Alt+r"
+#   define KEY_UNCROP_TOP         "Alt+Shift+r"
+#   define KEY_CROP_LEFT          "Alt+d"
+#   define KEY_UNCROP_LEFT        "Alt+Shift+d"
+#   define KEY_CROP_BOTTOM        "Alt+c"
+#   define KEY_UNCROP_BOTTOM      "Alt+Shift+c"
+#   define KEY_CROP_RIGHT         "Alt+f"
+#   define KEY_UNCROP_RIGHT       "Alt+Shift+f"
 
 /* Zooming */
-#   define KEY_ZOOM_QUARTER       KEY_MODIFIER_ALT|'1'
-#   define KEY_ZOOM_HALF          KEY_MODIFIER_ALT|'2'
-#   define KEY_ZOOM_ORIGINAL      KEY_MODIFIER_ALT|'3'
-#   define KEY_ZOOM_DOUBLE        KEY_MODIFIER_ALT|'4'
+#   define KEY_ZOOM_QUARTER       "Alt+1"
+#   define KEY_ZOOM_HALF          "Alt+2"
+#   define KEY_ZOOM_ORIGINAL      "Alt+3"
+#   define KEY_ZOOM_DOUBLE        "Alt+4"
 
 /* Bookmarks */
-#   define KEY_SET_BOOKMARK1      KEY_MODIFIER_CTRL|KEY_F1
-#   define KEY_SET_BOOKMARK2      KEY_MODIFIER_CTRL|KEY_F2
-#   define KEY_SET_BOOKMARK3      KEY_MODIFIER_CTRL|KEY_F3
-#   define KEY_SET_BOOKMARK4      KEY_MODIFIER_CTRL|KEY_F4
-#   define KEY_SET_BOOKMARK5      KEY_MODIFIER_CTRL|KEY_F5
-#   define KEY_SET_BOOKMARK6      KEY_MODIFIER_CTRL|KEY_F6
-#   define KEY_SET_BOOKMARK7      KEY_MODIFIER_CTRL|KEY_F7
-#   define KEY_SET_BOOKMARK8      KEY_MODIFIER_CTRL|KEY_F8
-#   define KEY_SET_BOOKMARK9      KEY_MODIFIER_CTRL|KEY_F9
-#   define KEY_SET_BOOKMARK10     KEY_MODIFIER_CTRL|KEY_F10
-#   define KEY_PLAY_BOOKMARK1     KEY_F1
-#   define KEY_PLAY_BOOKMARK2     KEY_F2
-#   define KEY_PLAY_BOOKMARK3     KEY_F3
-#   define KEY_PLAY_BOOKMARK4     KEY_F4
-#   define KEY_PLAY_BOOKMARK5     KEY_F5
-#   define KEY_PLAY_BOOKMARK6     KEY_F6
-#   define KEY_PLAY_BOOKMARK7     KEY_F7
-#   define KEY_PLAY_BOOKMARK8     KEY_F8
-#   define KEY_PLAY_BOOKMARK9     KEY_F9
-#   define KEY_PLAY_BOOKMARK10    KEY_F10
+#   define KEY_SET_BOOKMARK1      "Ctrl+F1"
+#   define KEY_SET_BOOKMARK2      "Ctrl+F2"
+#   define KEY_SET_BOOKMARK3      "Ctrl+F3"
+#   define KEY_SET_BOOKMARK4      "Ctrl+F4"
+#   define KEY_SET_BOOKMARK5      "Ctrl+F5"
+#   define KEY_SET_BOOKMARK6      "Ctrl+F6"
+#   define KEY_SET_BOOKMARK7      "Ctrl+F7"
+#   define KEY_SET_BOOKMARK8      "Ctrl+F8"
+#   define KEY_SET_BOOKMARK9      "Ctrl+F9"
+#   define KEY_SET_BOOKMARK10     "Ctrl+F10"
+#   define KEY_PLAY_BOOKMARK1     "F1"
+#   define KEY_PLAY_BOOKMARK2     "F2"
+#   define KEY_PLAY_BOOKMARK3     "F3"
+#   define KEY_PLAY_BOOKMARK4     "F4"
+#   define KEY_PLAY_BOOKMARK5     "F5"
+#   define KEY_PLAY_BOOKMARK6     "F6"
+#   define KEY_PLAY_BOOKMARK7     "F7"
+#   define KEY_PLAY_BOOKMARK8     "F8"
+#   define KEY_PLAY_BOOKMARK9     "F9"
+#   define KEY_PLAY_BOOKMARK10    "F10"
 
 /* OSD menu */
-#   define KEY_MENU_ON            KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|'m'
-#   define KEY_MENU_OFF           KEY_MODIFIER_ALT|KEY_MODIFIER_CTRL|'m'
-#   define KEY_MENU_RIGHT         KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|KEY_RIGHT
-#   define KEY_MENU_LEFT          KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|KEY_LEFT
-#   define KEY_MENU_UP            KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|KEY_UP
-#   define KEY_MENU_DOWN          KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|KEY_DOWN
-#   define KEY_MENU_SELECT        KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|KEY_ENTER
+#   define KEY_MENU_ON            "Alt+Shift+m"
+#   define KEY_MENU_OFF           "Ctrl+Alt+m"
+#   define KEY_MENU_RIGHT         "Alt+Shift+Right"
+#   define KEY_MENU_LEFT          "Alt+Shift+Left"
+#   define KEY_MENU_UP            "Alt+Shift+Up"
+#   define KEY_MENU_DOWN          "Alt+Shift+Down"
+#   define KEY_MENU_SELECT        "Alt+Shift+Enter"
 #endif
 
     add_key( "key-toggle-fullscreen", KEY_TOGGLE_FULLSCREEN, TOGGLE_FULLSCREEN_KEY_TEXT,
@@ -2814,115 +2764,3 @@ vlc_module_end ()
 /*****************************************************************************
  * End configuration.
  *****************************************************************************/
-
-/*****************************************************************************
- * Initializer for the libvlc instance structure
- * storing the action / key associations
- *****************************************************************************/
-const struct action libvlc_actions[] =
-{
-    /* *MUST* be sorted (ASCII order) */
-    { "key-aspect-ratio", ACTIONID_ASPECT_RATIO, },
-    { "key-audio-track", ACTIONID_AUDIO_TRACK, },
-    { "key-audiodelay-down", ACTIONID_AUDIODELAY_DOWN, },
-    { "key-audiodelay-up", ACTIONID_AUDIODELAY_UP, },
-    { "key-audiodevice-cycle", ACTIONID_AUDIODEVICE_CYCLE, },
-    { "key-chapter-next", ACTIONID_CHAPTER_NEXT, },
-    { "key-chapter-prev", ACTIONID_CHAPTER_PREV, },
-    { "key-crop", ACTIONID_CROP, },
-    { "key-crop-bottom", ACTIONID_CROP_BOTTOM, },
-    { "key-crop-left", ACTIONID_CROP_LEFT, },
-    { "key-crop-right", ACTIONID_CROP_RIGHT, },
-    { "key-crop-top", ACTIONID_CROP_TOP, },
-    { "key-decr-scalefactor", ACTIONID_SCALE_DOWN, },
-    { "key-deinterlace", ACTIONID_DEINTERLACE, },
-    { "key-disc-menu", ACTIONID_DISC_MENU, },
-    { "key-faster", ACTIONID_FASTER, },
-    { "key-frame-next", ACTIONID_FRAME_NEXT, },
-    { "key-incr-scalefactor", ACTIONID_SCALE_UP, },
-    { "key-intf-hide", ACTIONID_INTF_HIDE, },
-    { "key-intf-show", ACTIONID_INTF_SHOW, },
-    { "key-jump+extrashort", ACTIONID_JUMP_FORWARD_EXTRASHORT, },
-    { "key-jump+long", ACTIONID_JUMP_FORWARD_LONG, },
-    { "key-jump+medium", ACTIONID_JUMP_FORWARD_MEDIUM, },
-    { "key-jump+short", ACTIONID_JUMP_FORWARD_SHORT, },
-    { "key-jump-extrashort", ACTIONID_JUMP_BACKWARD_EXTRASHORT, },
-    { "key-jump-long", ACTIONID_JUMP_BACKWARD_LONG, },
-    { "key-jump-medium", ACTIONID_JUMP_BACKWARD_MEDIUM, },
-    { "key-jump-short", ACTIONID_JUMP_BACKWARD_SHORT, },
-    { "key-leave-fullscreen", ACTIONID_LEAVE_FULLSCREEN, },
-    { "key-loop", ACTIONID_LOOP, },
-    { "key-menu-down", ACTIONID_MENU_DOWN, },
-    { "key-menu-left", ACTIONID_MENU_LEFT, },
-    { "key-menu-off", ACTIONID_MENU_OFF, },
-    { "key-menu-on", ACTIONID_MENU_ON, },
-    { "key-menu-right", ACTIONID_MENU_RIGHT, },
-    { "key-menu-select", ACTIONID_MENU_SELECT, },
-    { "key-menu-up", ACTIONID_MENU_UP, },
-    { "key-nav-activate", ACTIONID_NAV_ACTIVATE, },
-    { "key-nav-down", ACTIONID_NAV_DOWN, },
-    { "key-nav-left", ACTIONID_NAV_LEFT, },
-    { "key-nav-right", ACTIONID_NAV_RIGHT, },
-    { "key-nav-up", ACTIONID_NAV_UP, },
-    { "key-next", ACTIONID_NEXT, },
-    { "key-pause", ACTIONID_PAUSE, },
-    { "key-play", ACTIONID_PLAY, },
-    { "key-play-bookmark1", ACTIONID_PLAY_BOOKMARK1, },
-    { "key-play-bookmark10", ACTIONID_PLAY_BOOKMARK10, },
-    { "key-play-bookmark2", ACTIONID_PLAY_BOOKMARK2, },
-    { "key-play-bookmark3", ACTIONID_PLAY_BOOKMARK3, },
-    { "key-play-bookmark4", ACTIONID_PLAY_BOOKMARK4, },
-    { "key-play-bookmark5", ACTIONID_PLAY_BOOKMARK5, },
-    { "key-play-bookmark6", ACTIONID_PLAY_BOOKMARK6, },
-    { "key-play-bookmark7", ACTIONID_PLAY_BOOKMARK7, },
-    { "key-play-bookmark8", ACTIONID_PLAY_BOOKMARK8, },
-    { "key-play-bookmark9", ACTIONID_PLAY_BOOKMARK9, },
-    { "key-play-pause", ACTIONID_PLAY_PAUSE, },
-    { "key-position", ACTIONID_POSITION, },
-    { "key-prev", ACTIONID_PREV, },
-    { "key-quit", ACTIONID_QUIT, },
-    { "key-random", ACTIONID_RANDOM, },
-    { "key-rate-faster-fine", ACTIONID_RATE_FASTER_FINE, },
-    { "key-rate-normal", ACTIONID_RATE_NORMAL, },
-    { "key-rate-slower-fine", ACTIONID_RATE_SLOWER_FINE, },
-    { "key-record", ACTIONID_RECORD, },
-    { "key-set-bookmark1", ACTIONID_SET_BOOKMARK1, },
-    { "key-set-bookmark10", ACTIONID_SET_BOOKMARK10, },
-    { "key-set-bookmark2", ACTIONID_SET_BOOKMARK2, },
-    { "key-set-bookmark3", ACTIONID_SET_BOOKMARK3, },
-    { "key-set-bookmark4", ACTIONID_SET_BOOKMARK4, },
-    { "key-set-bookmark5", ACTIONID_SET_BOOKMARK5, },
-    { "key-set-bookmark6", ACTIONID_SET_BOOKMARK6, },
-    { "key-set-bookmark7", ACTIONID_SET_BOOKMARK7, },
-    { "key-set-bookmark8", ACTIONID_SET_BOOKMARK8, },
-    { "key-set-bookmark9", ACTIONID_SET_BOOKMARK9, },
-    { "key-slower", ACTIONID_SLOWER, },
-    { "key-snapshot", ACTIONID_SNAPSHOT, },
-    { "key-stop", ACTIONID_STOP, },
-    { "key-subdelay-down", ACTIONID_SUBDELAY_DOWN, },
-    { "key-subdelay-up", ACTIONID_SUBDELAY_UP, },
-    { "key-subpos-down", ACTIONID_SUBPOS_DOWN, },
-    { "key-subpos-up", ACTIONID_SUBPOS_UP, },
-    { "key-subtitle-track", ACTIONID_SUBTITLE_TRACK, },
-    { "key-title-next", ACTIONID_TITLE_NEXT, },
-    { "key-title-prev", ACTIONID_TITLE_PREV, },
-    { "key-toggle-autoscale", ACTIONID_TOGGLE_AUTOSCALE, },
-    { "key-toggle-fullscreen", ACTIONID_TOGGLE_FULLSCREEN, },
-    { "key-uncrop-bottom", ACTIONID_UNCROP_BOTTOM, },
-    { "key-uncrop-left", ACTIONID_UNCROP_LEFT, },
-    { "key-uncrop-right", ACTIONID_UNCROP_RIGHT, },
-    { "key-uncrop-top", ACTIONID_UNCROP_TOP, },
-    { "key-unzoom", ACTIONID_UNZOOM, },
-    { "key-vol-down", ACTIONID_VOL_DOWN, },
-    { "key-vol-mute", ACTIONID_VOL_MUTE, },
-    { "key-vol-up", ACTIONID_VOL_UP, },
-    { "key-wallpaper", ACTIONID_WALLPAPER, },
-    { "key-zoom", ACTIONID_ZOOM, },
-    { "key-zoom-double", ACTIONID_ZOOM_DOUBLE, },
-    { "key-zoom-half", ACTIONID_ZOOM_HALF, },
-    { "key-zoom-original", ACTIONID_ZOOM_ORIGINAL, },
-    { "key-zoom-quarter", ACTIONID_ZOOM_QUARTER, },
-};
-
-const size_t libvlc_actions_count =
-    sizeof (libvlc_actions) / sizeof (libvlc_actions[0]);