#define BOOKMARK_LONGTEXT N_( \
"This option allows you to define playlist bookmarks.")
+#define JIEXTRASHORT_TEXT N_("Extra short jump key interval")
+#define JIEXTRASHORT_LONGTEXT N_("Extra short jump key interval in seconds")
+#define JISHORT_TEXT N_("Short jump key interval")
+#define JISHORT_LONGTEXT N_("Short jump key interval in seconds")
+#define JIMEDIUM_TEXT N_("Medium jump key interval")
+#define JIMEDIUM_LONGTEXT N_("Medium jump key interval in seconds")
+#define JILONG_TEXT N_("Long jump key interval")
+#define JILONG_LONGTEXT N_("Long jump key interval in seconds")
+
vlc_module_begin();
+ set_shortname( _("Hotkeys") );
set_description( _("Hotkeys management interface") );
+ set_category( CAT_INTERFACE );
+// set_subcategory( SUBCAT_INTERFACE_GENERAL );
+
+ /* jump key user defined time intervals */
+ add_integer( "key-jump-extrashort-interval", 3, NULL, JIEXTRASHORT_TEXT,
+ JIEXTRASHORT_LONGTEXT, VLC_FALSE );
+ add_integer( "key-jump-short-interval", 10, NULL, JISHORT_TEXT,
+ JISHORT_LONGTEXT, VLC_FALSE );
+ add_integer( "key-jump-medium-interval", 60, NULL, JIMEDIUM_TEXT,
+ JIMEDIUM_LONGTEXT, VLC_FALSE );
+ add_integer( "key-jump-long-interval", 300, NULL, JILONG_TEXT,
+ JILONG_LONGTEXT, VLC_FALSE );
+
add_string( "bookmark1", NULL, NULL,
BOOKMARK1_TEXT, BOOKMARK_LONGTEXT, VLC_FALSE );
add_string( "bookmark2", NULL, NULL,
* That's not that easy with some special stream
*/
vlc_bool_t b_seekable = VLC_TRUE;
+ int i_interval =0;
if( i_action == ACTIONID_PAUSE )
{
val.i_int = PAUSE_S;
var_Set( p_input, "state", val );
}
- else if( i_action == ACTIONID_JUMP_BACKWARD_3SEC && b_seekable )
+ else if( i_action == ACTIONID_JUMP_BACKWARD_EXTRASHORT && b_seekable )
{
- val.i_time = (-3000000L * ((mtime_t)(1 << i_times)));
- var_Set( p_input, "time-offset", val );
- DisplayPosition( p_intf, p_vout, p_input );
+#define SET_TIME( a, b ) \
+ i_interval = config_GetInt( p_input, "key-jump-" a "-interval" ); \
+ if( i_interval > 0 ) { \
+ val.i_time = ( (mtime_t)(i_interval * b) * 1000000L \
+ * ((mtime_t)(1 << i_times))); \
+ var_Set( p_input, "time-offset", val ); \
+ DisplayPosition( p_intf, p_vout, p_input ); \
+ }
+ SET_TIME( "extrashort", -1 );
}
- else if( i_action == ACTIONID_JUMP_FORWARD_3SEC && b_seekable )
+ else if( i_action == ACTIONID_JUMP_FORWARD_EXTRASHORT && b_seekable )
{
- val.i_time = (3000000L * ((mtime_t)(1 << i_times)));
- var_Set( p_input, "time-offset", val );
- DisplayPosition( p_intf, p_vout, p_input );
+ SET_TIME( "extrashort", 1 );
}
- else if( i_action == ACTIONID_JUMP_BACKWARD_10SEC && b_seekable )
+ else if( i_action == ACTIONID_JUMP_BACKWARD_SHORT && b_seekable )
{
- val.i_time = (-10000000L * ((mtime_t)(1 << i_times)));
- var_Set( p_input, "time-offset", val );
- DisplayPosition( p_intf, p_vout, p_input );
+ SET_TIME( "short", -1 );
}
- else if( i_action == ACTIONID_JUMP_FORWARD_10SEC && b_seekable )
+ else if( i_action == ACTIONID_JUMP_FORWARD_SHORT && b_seekable )
{
- val.i_time = (10000000L * ((mtime_t)(1 << i_times)));
- var_Set( p_input, "time-offset", val );
- DisplayPosition( p_intf, p_vout, p_input );
+ SET_TIME( "short", 1 );
}
- else if( i_action == ACTIONID_JUMP_BACKWARD_1MIN && b_seekable )
+ else if( i_action == ACTIONID_JUMP_BACKWARD_MEDIUM && b_seekable )
{
- val.i_time = (-60000000L * ((mtime_t)(1 << i_times)));
- var_Set( p_input, "time-offset", val );
- DisplayPosition( p_intf, p_vout, p_input );
+ SET_TIME( "medium", -1 );
}
- else if( i_action == ACTIONID_JUMP_FORWARD_1MIN && b_seekable )
+ else if( i_action == ACTIONID_JUMP_FORWARD_MEDIUM && b_seekable )
{
- val.i_time = (60000000L * ((mtime_t)(1 << i_times)));
- var_Set( p_input, "time-offset", val );
- DisplayPosition( p_intf, p_vout, p_input );
+ SET_TIME( "medium", 1 );
}
- else if( i_action == ACTIONID_JUMP_BACKWARD_5MIN && b_seekable )
+ else if( i_action == ACTIONID_JUMP_BACKWARD_LONG && b_seekable )
{
- val.i_time = (-300000000L * ((mtime_t)(1 << i_times)));
- var_Set( p_input, "time-offset", val );
- DisplayPosition( p_intf, p_vout, p_input );
+ SET_TIME( "long", -1 );
}
- else if( i_action == ACTIONID_JUMP_FORWARD_5MIN && b_seekable )
+ else if( i_action == ACTIONID_JUMP_FORWARD_LONG && b_seekable )
{
- val.i_time = (300000000L * ((mtime_t)(1 << i_times)));
- var_Set( p_input, "time-offset", val );
- DisplayPosition( p_intf, p_vout, p_input );
+ SET_TIME( "long", 1 );
+#undef SET_TIME
}
else if( i_action == ACTIONID_AUDIO_TRACK )
{
#define POSITION_KEY_TEXT N_("Position")
#define POSITION_KEY_LONGTEXT N_("Select the hotkey to display the position.")
-#define JB3SEC_KEY_TEXT N_("Jump 3 seconds backwards")
-#define JB3SEC_KEY_LONGTEXT N_("Select the hotkey to jump 3 seconds backwards.")
-#define JB10SEC_KEY_TEXT N_("Jump 10 seconds backwards")
-#define JB10SEC_KEY_LONGTEXT N_("Select the hotkey to jump 10 seconds backwards.")
-
-#define JB1MIN_KEY_TEXT N_("Jump 1 minute backwards")
-#define JB1MIN_KEY_LONGTEXT N_("Select the hotkey to jump 1 minute backwards.")
-#define JB5MIN_KEY_TEXT N_("Jump 5 minutes backwards")
-#define JB5MIN_KEY_LONGTEXT N_("Select the hotkey to jump 5 minutes backwards.")
-
-#define JF3SEC_KEY_TEXT N_("Jump 3 seconds forward")
-#define JF3SEC_KEY_LONGTEXT N_("Select the hotkey to jump 3 seconds forward.")
-#define JF10SEC_KEY_TEXT N_("Jump 10 seconds forward")
-#define JF10SEC_KEY_LONGTEXT N_("Select the hotkey to jump 10 seconds forward.")
-
-#define JF1MIN_KEY_TEXT N_("Jump 1 minute forward")
-#define JF1MIN_KEY_LONGTEXT N_("Select the hotkey to jump 1 minute forward.")
-#define JF5MIN_KEY_TEXT N_("Jump 5 minutes forward")
-#define JF5MIN_KEY_LONGTEXT N_("Select the hotkey to jump 5 minutes forward.")
+/* FIXME : jump keys descriptions */
+#define JBEXTRASHORT_KEY_TEXT N_("Jump 'extrashort' seconds backwards")
+#define JBEXTRASHORT_KEY_LONGTEXT \
+ N_("Select the hotkey to jump 'extrashort' seconds backwards.")
+#define JBSHORT_KEY_TEXT N_("Jump 'short' seconds backwards")
+#define JBSHORT_KEY_LONGTEXT \
+ N_("Select the hotkey to jump 'short' seconds backwards.")
+
+#define JBMEDIUM_KEY_TEXT N_("Jump 'medium' seconds backwards")
+#define JBMEDIUM_KEY_LONGTEXT \
+ N_("Select the hotkey to jump 'medium' seconds backwards.")
+#define JBLONG_KEY_TEXT N_("Jump 'long' seconds backwards")
+#define JBLONG_KEY_LONGTEXT \
+ N_("Select the hotkey to jump 'long seconds' backwards.")
+
+#define JFEXTRASHORT_KEY_TEXT N_("Jump 'extrashort' seconds forward")
+#define JFEXTRASHORT_KEY_LONGTEXT \
+ N_("Select the hotkey to jump 'extrashort' seconds forward.")
+#define JFSHORT_KEY_TEXT N_("Jump 'short' seconds forward")
+#define JFSHORT_KEY_LONGTEXT \
+ N_("Select the hotkey to jump 'short' seconds forward.")
+
+#define JFMEDIUM_KEY_TEXT N_("Jump 'medium' seconds forward")
+#define JFMEDIUM_KEY_LONGTEXT \
+ N_("Select the hotkey to jump 'medium' seconds forward.")
+#define JFLONG_KEY_TEXT N_("Jump 'long' seconds forward")
+#define JFLONG_KEY_LONGTEXT \
+ N_("Select the hotkey to jump 'long' seconds forward.")
#define QUIT_KEY_TEXT N_("Quit")
#define QUIT_KEY_LONGTEXT N_("Select the hotkey to quit the application.")
# define KEY_PREV KEY_MODIFIER_COMMAND|KEY_LEFT
# define KEY_STOP KEY_MODIFIER_COMMAND|'.'
# define KEY_POSITION 't'
-# define KEY_JUMP_M3SEC KEY_MODIFIER_COMMAND|KEY_MODIFIER_CTRL|KEY_LEFT
-# define KEY_JUMP_P3SEC KEY_MODIFIER_COMMAND|KEY_MODIFIER_CTRL|KEY_RIGHT
-# define KEY_JUMP_M10SEC KEY_MODIFIER_COMMAND|KEY_MODIFIER_ALT|KEY_LEFT
-# define KEY_JUMP_P10SEC KEY_MODIFIER_COMMAND|KEY_MODIFIER_ALT|KEY_RIGHT
-# define KEY_JUMP_M1MIN KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|KEY_LEFT
-# define KEY_JUMP_P1MIN KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|KEY_RIGHT
-# define KEY_JUMP_M5MIN KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|KEY_MODIFIER_ALT|KEY_LEFT
-# define KEY_JUMP_P5MIN KEY_MODIFIER_COMMAND|KEY_MODIFIER_SHIFT|KEY_MODIFIER_ALT|KEY_RIGHT
+# 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_NAV_ACTIVATE KEY_ENTER
# define KEY_NAV_UP KEY_UP
# define KEY_NAV_DOWN KEY_DOWN
# define KEY_PREV 'p'
# define KEY_STOP 's'
# define KEY_POSITION 't'
-# define KEY_JUMP_M3SEC KEY_MODIFIER_SHIFT|KEY_LEFT
-# define KEY_JUMP_P3SEC KEY_MODIFIER_SHIFT|KEY_RIGHT
-# define KEY_JUMP_M10SEC KEY_MODIFIER_ALT|KEY_LEFT
-# define KEY_JUMP_P10SEC KEY_MODIFIER_ALT|KEY_RIGHT
-# define KEY_JUMP_M1MIN KEY_MODIFIER_CTRL|KEY_LEFT
-# define KEY_JUMP_P1MIN KEY_MODIFIER_CTRL|KEY_RIGHT
-# define KEY_JUMP_M5MIN KEY_MODIFIER_CTRL|KEY_MODIFIER_ALT|KEY_LEFT
-# define KEY_JUMP_P5MIN KEY_MODIFIER_CTRL|KEY_MODIFIER_ALT|KEY_RIGHT
+# 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_NAV_ACTIVATE KEY_ENTER
# define KEY_NAV_UP KEY_UP
# define KEY_NAV_DOWN KEY_DOWN
STOP_KEY_LONGTEXT, VLC_FALSE );
add_key( "key-position", KEY_POSITION, NULL, POSITION_KEY_TEXT,
POSITION_KEY_LONGTEXT, VLC_TRUE );
- add_key( "key-jump-3sec", KEY_JUMP_M3SEC, NULL, JB3SEC_KEY_TEXT,
- JB3SEC_KEY_LONGTEXT, VLC_FALSE );
- add_key( "key-jump+3sec", KEY_JUMP_P3SEC, NULL, JF3SEC_KEY_TEXT,
- JF3SEC_KEY_LONGTEXT, VLC_FALSE );
- add_key( "key-jump-10sec", KEY_JUMP_M10SEC, NULL, JB10SEC_KEY_TEXT,
- JB10SEC_KEY_LONGTEXT, VLC_FALSE );
- add_key( "key-jump+10sec", KEY_JUMP_P10SEC, NULL, JF10SEC_KEY_TEXT,
- JF10SEC_KEY_LONGTEXT, VLC_FALSE );
- add_key( "key-jump-1min", KEY_JUMP_M1MIN, NULL, JB1MIN_KEY_TEXT,
- JB1MIN_KEY_LONGTEXT, VLC_FALSE );
- add_key( "key-jump+1min", KEY_JUMP_P1MIN, NULL, JF1MIN_KEY_TEXT,
- JF1MIN_KEY_LONGTEXT, VLC_FALSE );
- add_key( "key-jump-5min", KEY_JUMP_M5MIN, NULL, JB5MIN_KEY_TEXT,
- JB5MIN_KEY_LONGTEXT, VLC_FALSE );
- add_key( "key-jump+5min", KEY_JUMP_P5MIN, NULL, JF5MIN_KEY_TEXT,
- JF5MIN_KEY_LONGTEXT, VLC_FALSE );
+ add_key( "key-jump-extrashort", KEY_JUMP_MEXTRASHORT, NULL,
+ JBEXTRASHORT_KEY_TEXT, JBEXTRASHORT_KEY_LONGTEXT, VLC_FALSE );
+ add_key( "key-jump+extrashort", KEY_JUMP_PEXTRASHORT, NULL,
+ JFEXTRASHORT_KEY_TEXT, JFEXTRASHORT_KEY_LONGTEXT, VLC_FALSE );
+ add_key( "key-jump-short", KEY_JUMP_MSHORT, NULL, JBSHORT_KEY_TEXT,
+ JBSHORT_KEY_LONGTEXT, VLC_FALSE );
+ add_key( "key-jump+short", KEY_JUMP_PSHORT, NULL, JFSHORT_KEY_TEXT,
+ JFSHORT_KEY_LONGTEXT, VLC_FALSE );
+ add_key( "key-jump-medium", KEY_JUMP_MMEDIUM, NULL, JBMEDIUM_KEY_TEXT,
+ JBMEDIUM_KEY_LONGTEXT, VLC_FALSE );
+ add_key( "key-jump+medium", KEY_JUMP_PMEDIUM, NULL, JFMEDIUM_KEY_TEXT,
+ JFMEDIUM_KEY_LONGTEXT, VLC_FALSE );
+ add_key( "key-jump-long", KEY_JUMP_MLONG, NULL, JBLONG_KEY_TEXT,
+ JBLONG_KEY_LONGTEXT, VLC_FALSE );
+ add_key( "key-jump+long", KEY_JUMP_PLONG, NULL, JFLONG_KEY_TEXT,
+ JFLONG_KEY_LONGTEXT, VLC_FALSE );
add_key( "key-nav-activate", KEY_NAV_ACTIVATE, NULL, NAV_ACTIVATE_KEY_TEXT,
NAV_ACTIVATE_KEY_LONGTEXT, VLC_TRUE );
{ "key-pause", ACTIONID_PAUSE, 0, 0, 0, 0 },
{ "key-stop", ACTIONID_STOP, 0, 0, 0, 0 },
{ "key-position", ACTIONID_POSITION, 0, 0, 0, 0 },
- { "key-jump-3sec", ACTIONID_JUMP_BACKWARD_3SEC, 0, 1000000, 0, 0 },
- { "key-jump+3sec", ACTIONID_JUMP_FORWARD_3SEC, 0, 1000000, 0, 0 },
- { "key-jump-10sec", ACTIONID_JUMP_BACKWARD_10SEC, 0, 1000000, 0, 0 },
- { "key-jump+10sec", ACTIONID_JUMP_FORWARD_10SEC, 0, 1000000, 0, 0 },
- { "key-jump-1min", ACTIONID_JUMP_BACKWARD_1MIN, 0, 1000000, 0, 0 },
- { "key-jump+1min", ACTIONID_JUMP_FORWARD_1MIN, 0, 1000000, 0, 0 },
- { "key-jump-5min", ACTIONID_JUMP_BACKWARD_5MIN, 0, 1000000, 0, 0 },
- { "key-jump+5min", ACTIONID_JUMP_FORWARD_5MIN, 0, 1000000, 0, 0 },
+ { "key-jump-extrashort", ACTIONID_JUMP_BACKWARD_EXTRASHORT, 0, 1000000, 0, 0 },
+ { "key-jump+extrashort", ACTIONID_JUMP_FORWARD_EXTRASHORT, 0, 1000000, 0, 0 },
+ { "key-jump-short", ACTIONID_JUMP_BACKWARD_SHORT, 0, 1000000, 0, 0 },
+ { "key-jump+short", ACTIONID_JUMP_FORWARD_SHORT, 0, 1000000, 0, 0 },
+ { "key-jump-medium", ACTIONID_JUMP_BACKWARD_MEDIUM, 0, 1000000, 0, 0 },
+ { "key-jump+medium", ACTIONID_JUMP_FORWARD_MEDIUM, 0, 1000000, 0, 0 },
+ { "key-jump-long", ACTIONID_JUMP_BACKWARD_LONG, 0, 1000000, 0, 0 },
+ { "key-jump+long", ACTIONID_JUMP_FORWARD_LONG, 0, 1000000, 0, 0 },
{ "key-prev", ACTIONID_PREV, 0, 0, 0, 0 },
{ "key-next", ACTIONID_NEXT, 0, 0, 0, 0 },
{ "key-faster", ACTIONID_FASTER, 0, 0, 0, 0 },