libbluray | branch: master | hpi1 <[email protected]> | Fri Apr 22 11:21:12 2011 +0300| [565c24b163aa31bcffacf4c633c01ebbc77b13cc] | committer: hpi1
Implemented selecting button using number keys > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=565c24b163aa31bcffacf4c633c01ebbc77b13cc --- src/libbluray/decoders/graphics_controller.c | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/libbluray/decoders/graphics_controller.c b/src/libbluray/decoders/graphics_controller.c index afc958f..a2c595d 100644 --- a/src/libbluray/decoders/graphics_controller.c +++ b/src/libbluray/decoders/graphics_controller.c @@ -493,6 +493,7 @@ static void _render_page(GRAPHICS_CONTROLLER *gc, #define VK_IS_NUMERIC(vk) (/*vk >= BD_VK_0 &&*/ vk <= BD_VK_9) #define VK_IS_CURSOR(vk) (vk >= BD_VK_UP && vk <= BD_VK_RIGHT) +#define VK_TO_NUMBER(vk) ((vk) - BD_VK_0) static int _user_input(GRAPHICS_CONTROLLER *gc, bd_vk_key_e key, GC_NAV_CMDS *cmds) { @@ -538,7 +539,15 @@ static int _user_input(GRAPHICS_CONTROLLER *gc, bd_vk_key_e key, GC_NAV_CMDS *cm continue; } - if (VK_IS_CURSOR(key) || key == BD_VK_ENTER) { + /* numeric select */ + if (VK_IS_NUMERIC(key)) { + if (button->numeric_select_value == VK_TO_NUMBER(key)) { + new_btn_id = button->id; + } + } + + /* cursor keys */ + else if (VK_IS_CURSOR(key) || key == BD_VK_ENTER) { if (button->id == cur_btn_id) { switch(key) { case BD_VK_UP: @@ -563,9 +572,6 @@ static int _user_input(GRAPHICS_CONTROLLER *gc, bd_vk_key_e key, GC_NAV_CMDS *cm default:; } } - if (VK_IS_NUMERIC(key)) { - // TODO: numeric_select_value - } if (new_btn_id != cur_btn_id) { BD_IG_BUTTON *button = _find_button_page(page, new_btn_id, NULL); _______________________________________________ libbluray-devel mailing list [email protected] http://mailman.videolan.org/listinfo/libbluray-devel
