From: Jean-Paul Saman Date: Fri, 29 Feb 2008 14:29:40 +0000 (+0000) Subject: Patch by Johannes Buchner (buchner.johannes at gmx do at): Hotkeys for zoom. X-Git-Tag: 0.9.0-test0~2425 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;ds=sidebyside;h=c3a591ae44437c1f36a981a43b1bc3295a27d6d1;p=vlc Patch by Johannes Buchner (buchner.johannes at gmx do at): Hotkeys for zoom. --- diff --git a/THANKS b/THANKS index d2ab80c8c3..abde378339 100644 --- a/THANKS +++ b/THANKS @@ -118,6 +118,7 @@ Jérôme Guilbaud - Update of the WinAmp 5 VLC skin Joel Arvidsson - Swedish translation Joeri van Dooren - OS X icon (v0.4.0) Jörg - VLM seek/show media functions +Johannes BUchner - Hotkeys for zoom Johen Michael Zorko - fix for delay issues in udp sout John Dalgliesh - macosx interface playlist fix John Paul Lorenti - ALSA device selection patch diff --git a/include/vlc_keys.h b/include/vlc_keys.h index 4432f3454a..cce28fcc5d 100644 --- a/include/vlc_keys.h +++ b/include/vlc_keys.h @@ -140,6 +140,16 @@ static const struct key_descriptor_s vlc_keys[] = { "Backspace", KEY_BACKSPACE }, { "Mouse Wheel Up", KEY_MOUSEWHEELUP }, { "Mouse Wheel Down", KEY_MOUSEWHEELDOWN }, + { "0", '0' }, + { "1", '1' }, + { "2", '2' }, + { "3", '3' }, + { "4", '4' }, + { "5", '5' }, + { "6", '6' }, + { "7", '7' }, + { "8", '8' }, + { "9", '9' }, { "a", 'a' }, { "b", 'b' }, { "c", 'c' }, @@ -319,5 +329,10 @@ static inline int StringToKey( char *psz_key ) #define ACTIONID_MENU_UP 89 #define ACTIONID_MENU_DOWN 90 #define ACTIONID_MENU_SELECT 91 +/* Zoom */ +#define ACTIONID_ZOOM_QUARTER 92 +#define ACTIONID_ZOOM_HALF 93 +#define ACTIONID_ZOOM_ORIGINAL 94 +#define ACTIONID_ZOOM_DOUBLE 95 #endif diff --git a/modules/control/hotkeys.c b/modules/control/hotkeys.c index aa0255a534..23242a4228 100644 --- a/modules/control/hotkeys.c +++ b/modules/control/hotkeys.c @@ -352,6 +352,24 @@ static void Run( intf_thread_t *p_intf ) val.b_bool = !val.b_bool; var_Set( p_playlist, "random", val ); } + else if( i_action == ACTIONID_ZOOM_QUARTER || + i_action == ACTIONID_ZOOM_HALF || + i_action == ACTIONID_ZOOM_ORIGINAL || + i_action == ACTIONID_ZOOM_DOUBLE ) + { + if( p_vout ) + { + if( i_action == ACTIONID_ZOOM_QUARTER ) + val.f_float = 0.25; + if( i_action == ACTIONID_ZOOM_HALF ) + val.f_float = 0.5; + if( i_action == ACTIONID_ZOOM_ORIGINAL ) + val.f_float = 1; + if( i_action == ACTIONID_ZOOM_DOUBLE ) + val.f_float = 2; + var_Set( p_vout, "zoom", val ); + } + } else if( i_action == ACTIONID_PLAY_PAUSE ) { val.i_int = PLAYING_S; diff --git a/src/libvlc-module.c b/src/libvlc-module.c index 56829dc8d5..410796c00a 100644 --- a/src/libvlc-module.c +++ b/src/libvlc-module.c @@ -1232,6 +1232,12 @@ static const char *ppsz_pltree_descriptions[] = { N_("Default"), N_("Always"), N #define AUDIODELAY_UP_KEY_LONGTEXT N_("Select the key to increase the audio delay.") #define AUDIODELAY_DOWN_KEY_TEXT N_("Audio delay down") #define AUDIODELAY_DOWN_KEY_LONGTEXT N_("Select the key to decrease the audio delay.") + +#define ZOOM_QUARTER_KEY_TEXT N_("1:4 Quarter") +#define ZOOM_HALF_KEY_TEXT N_("1:2 Half") +#define ZOOM_ORIGINAL_KEY_TEXT N_("1:1 Original") +#define ZOOM_DOUBLE_KEY_TEXT N_("2:1 Double") + #define PLAY_BOOKMARK1_KEY_TEXT N_("Play playlist bookmark 1") #define PLAY_BOOKMARK2_KEY_TEXT N_("Play playlist bookmark 2") #define PLAY_BOOKMARK3_KEY_TEXT N_("Play playlist bookmark 3") @@ -2045,6 +2051,12 @@ vlc_module_begin(); # define KEY_CROP_RIGHT KEY_MODIFIER_ALT|'l' # define KEY_UNCROP_RIGHT KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|'l' +/* the macosx-interface already has bindings */ +# define KEY_ZOOM_QUARTER KEY_UNSET +# define KEY_ZOOM_HALF KEY_UNSET +# define KEY_ZOOM_ORIGINAL KEY_UNSET +# define KEY_ZOOM_DOUBLE KEY_UNSET + # 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 @@ -2141,6 +2153,11 @@ vlc_module_begin(); # define KEY_CROP_RIGHT KEY_MODIFIER_ALT|'l' # define KEY_UNCROP_RIGHT KEY_MODIFIER_ALT|KEY_MODIFIER_SHIFT|'l' +# define KEY_ZOOM_QUARTER KEY_MODIFIER_CTRL|'1' +# define KEY_ZOOM_HALF KEY_MODIFIER_CTRL|'2' +# define KEY_ZOOM_ORIGINAL KEY_MODIFIER_CTRL|'3' +# define KEY_ZOOM_DOUBLE KEY_MODIFIER_CTRL|'4' + # 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 @@ -2319,6 +2336,16 @@ vlc_module_begin(); add_key( "key-loop", KEY_LOOP, NULL, LOOP_KEY_TEXT, LOOP_KEY_LONGTEXT, VLC_FALSE ); + set_section ( N_("Zoom" ), NULL ); + add_key( "key-zoom-quarter", KEY_ZOOM_QUARTER, NULL, + ZOOM_QUARTER_KEY_TEXT, NULL, VLC_FALSE ); + add_key( "key-zoom-half", KEY_ZOOM_HALF, NULL, + ZOOM_HALF_KEY_TEXT, NULL, VLC_FALSE ); + add_key( "key-zoom-original", KEY_ZOOM_ORIGINAL, NULL, + ZOOM_ORIGINAL_KEY_TEXT, NULL, VLC_FALSE ); + add_key( "key-zoom-double", KEY_ZOOM_DOUBLE, NULL, + ZOOM_DOUBLE_KEY_TEXT, NULL, VLC_FALSE ); + set_section ( N_("Jump sizes" ), NULL ); add_integer( "extrashort-jump-size", 3, NULL, JIEXTRASHORT_TEXT, JIEXTRASHORT_LONGTEXT, VLC_FALSE ); @@ -2539,6 +2566,10 @@ const struct hotkey libvlc_hotkeys[] = { "key-title-next", ACTIONID_TITLE_NEXT, 0, 0, 0, 0 }, { "key-chapter-prev", ACTIONID_CHAPTER_PREV, 0, 0, 0, 0 }, { "key-chapter-next", ACTIONID_CHAPTER_NEXT, 0, 0, 0, 0 }, + { "key-zoom-quarter", ACTIONID_ZOOM_QUARTER, 0, 0, 0, 0 }, + { "key-zoom-half", ACTIONID_ZOOM_HALF, 0, 0, 0, 0 }, + { "key-zoom-original", ACTIONID_ZOOM_ORIGINAL, 0, 0, 0, 0 }, + { "key-zoom-double", ACTIONID_ZOOM_DOUBLE, 0, 0, 0, 0 }, { "key-set-bookmark1", ACTIONID_SET_BOOKMARK1, 0, 0, 0, 0 }, { "key-set-bookmark2", ACTIONID_SET_BOOKMARK2, 0, 0, 0, 0 }, { "key-set-bookmark3", ACTIONID_SET_BOOKMARK3, 0, 0, 0, 0 }, diff --git a/src/libvlc.h b/src/libvlc.h index f596b44881..06385dd263 100644 --- a/src/libvlc.h +++ b/src/libvlc.h @@ -137,6 +137,11 @@ struct vlc_object_internals_t vlc_bool_t b_attached; }; +#define ZOOM_SECTION N_("Zoom") +#define ZOOM_QUARTER_KEY_TEXT N_("1:4 Quarter") +#define ZOOM_HALF_KEY_TEXT N_("1:2 Half") +#define ZOOM_ORIGINAL_KEY_TEXT N_("1:1 Original") +#define ZOOM_DOUBLE_KEY_TEXT N_("2:1 Double") static inline vlc_object_internals_t *vlc_internals( vlc_object_t *obj ) {