From d30b2ecaca0d90c298f6832aef4df663f8b8b6ff Mon Sep 17 00:00:00 2001 From: twinaphex Date: Thu, 15 Aug 2019 01:08:34 +0200 Subject: [PATCH] Merge menu_input_dialog.c into retroarch.c --- Makefile.common | 1 - discord/discord.c | 1 - griffin/griffin.c | 1 - input/input_driver.h | 29 ++++++ managers/cheat_manager.c | 1 - menu/cbs/menu_cbs_ok.c | 1 - menu/drivers/materialui.c | 1 - menu/drivers/ozone/ozone.c | 1 - menu/drivers/ozone/ozone_display.c | 1 - menu/drivers/rgui.c | 1 - menu/drivers/xmb.c | 1 - menu/menu_entries.c | 2 - menu/menu_setting.c | 1 - menu/widgets/menu_input_dialog.c | 135 ---------------------------- menu/widgets/menu_input_dialog.h | 62 ------------- network/netplay/netplay_handshake.c | 4 - retroarch.c | 124 +++++++++++++++++++++++-- 17 files changed, 147 insertions(+), 220 deletions(-) delete mode 100644 menu/widgets/menu_input_dialog.c delete mode 100644 menu/widgets/menu_input_dialog.h diff --git a/Makefile.common b/Makefile.common index f458d97274..5c86cdb8cc 100644 --- a/Makefile.common +++ b/Makefile.common @@ -805,7 +805,6 @@ ifeq ($(HAVE_MENU_COMMON), 1) menu/menu_setting.o \ menu/widgets/menu_filebrowser.o \ menu/widgets/menu_dialog.o \ - menu/widgets/menu_input_dialog.o \ menu/widgets/menu_input_bind_dialog.o \ menu/widgets/menu_osk.o \ menu/menu_cbs.o \ diff --git a/discord/discord.c b/discord/discord.c index 6c0a6354c0..d7d6194d8f 100644 --- a/discord/discord.c +++ b/discord/discord.c @@ -44,7 +44,6 @@ #endif #ifdef HAVE_MENU -#include "../../menu/widgets/menu_input_dialog.h" #include "../../menu/menu_cbs.h" #endif diff --git a/griffin/griffin.c b/griffin/griffin.c index c7441136b2..a2d7d02679 100644 --- a/griffin/griffin.c +++ b/griffin/griffin.c @@ -1241,7 +1241,6 @@ MENU #include "../menu/widgets/menu_filebrowser.c" #include "../menu/widgets/menu_dialog.c" -#include "../menu/widgets/menu_input_dialog.c" #include "../menu/widgets/menu_input_bind_dialog.c" #ifdef HAVE_MENU_WIDGETS #include "../menu/widgets/menu_widgets.c" diff --git a/input/input_driver.h b/input/input_driver.h index 335ef81ae0..9a0f144db9 100644 --- a/input/input_driver.h +++ b/input/input_driver.h @@ -701,6 +701,35 @@ extern hid_driver_t wiiusb_hid; extern hid_driver_t null_hid; #endif +typedef struct menu_input_ctx_line +{ + const char *label; + const char *label_setting; + unsigned type; + unsigned idx; + input_keyboard_line_complete_t cb; +} menu_input_ctx_line_t; + +const char *menu_input_dialog_get_label_setting_buffer(void); + +const char *menu_input_dialog_get_label_buffer(void); + +const char *menu_input_dialog_get_buffer(void); + +unsigned menu_input_dialog_get_kb_type(void); + +unsigned menu_input_dialog_get_kb_idx(void); + +bool menu_input_dialog_start_search(void); + +void menu_input_dialog_set_kb(bool val); + +bool menu_input_dialog_get_display_kb(void); + +bool menu_input_dialog_start(menu_input_ctx_line_t *line); + +void menu_input_dialog_end(void); + RETRO_END_DECLS #endif diff --git a/managers/cheat_manager.c b/managers/cheat_manager.c index d8c7f02635..bbd5b41f2c 100644 --- a/managers/cheat_manager.c +++ b/managers/cheat_manager.c @@ -34,7 +34,6 @@ #ifdef HAVE_MENU #include "../menu/menu_driver.h" -#include "../menu/widgets/menu_input_dialog.h" #include "../menu/widgets/menu_input_bind_dialog.h" #endif diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index ac58694f11..fb06de23b0 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -49,7 +49,6 @@ #endif #include "../widgets/menu_dialog.h" #include "../widgets/menu_filebrowser.h" -#include "../widgets/menu_input_dialog.h" #include "../widgets/menu_input_bind_dialog.h" #include "../menu_input.h" #include "../menu_networking.h" diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 403a08fe97..249d13715f 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -44,7 +44,6 @@ #include "../menu_animation.h" #include "../menu_input.h" -#include "../widgets/menu_input_dialog.h" #include "../widgets/menu_osk.h" #include "../../core_info.h" diff --git a/menu/drivers/ozone/ozone.c b/menu/drivers/ozone/ozone.c index c6a8da31d1..a428fa59ac 100644 --- a/menu/drivers/ozone/ozone.c +++ b/menu/drivers/ozone/ozone.c @@ -43,7 +43,6 @@ #include "../../playlist.h" #include "../../runtime_file.h" -#include "../../widgets/menu_input_dialog.h" #include "../../widgets/menu_osk.h" #include "../../widgets/menu_filebrowser.h" diff --git a/menu/drivers/ozone/ozone_display.c b/menu/drivers/ozone/ozone_display.c index db7e43d61e..ded97b86db 100644 --- a/menu/drivers/ozone/ozone_display.c +++ b/menu/drivers/ozone/ozone_display.c @@ -30,7 +30,6 @@ #include "../../menu_input.h" #include "../../menu_animation.h" -#include "../../widgets/menu_input_dialog.h" #include "../../widgets/menu_osk.h" static void ozone_cursor_animation_cb(void *userdata); diff --git a/menu/drivers/rgui.c b/menu/drivers/rgui.c index 58b53326a9..0b6cf08415 100644 --- a/menu/drivers/rgui.c +++ b/menu/drivers/rgui.c @@ -51,7 +51,6 @@ #include "../menu_driver.h" #include "../menu_animation.h" -#include "../widgets/menu_input_dialog.h" #include "../widgets/menu_osk.h" #include "../../configuration.h" diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 728db83fd7..b61e87d8f8 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -50,7 +50,6 @@ #include "../../core_info.h" #include "../../core.h" -#include "../widgets/menu_input_dialog.h" #include "../widgets/menu_osk.h" #include "../widgets/menu_filebrowser.h" diff --git a/menu/menu_entries.c b/menu/menu_entries.c index c86b94c83a..85255c2ea2 100644 --- a/menu/menu_entries.c +++ b/menu/menu_entries.c @@ -24,8 +24,6 @@ #include "menu_driver.h" #include "menu_cbs.h" -#include "widgets/menu_input_dialog.h" - #include "../core.h" #include "../retroarch.h" #include "../version.h" diff --git a/menu/menu_setting.c b/menu/menu_setting.c index e01eacb03b..c9527afdfa 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -68,7 +68,6 @@ #if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) #include "menu_shader.h" #endif -#include "widgets/menu_input_dialog.h" #include "widgets/menu_input_bind_dialog.h" #include "../core.h" diff --git a/menu/widgets/menu_input_dialog.c b/menu/widgets/menu_input_dialog.c deleted file mode 100644 index 83927fac28..0000000000 --- a/menu/widgets/menu_input_dialog.c +++ /dev/null @@ -1,135 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2010-2014 - Hans-Kristian Arntzen - * Copyright (C) 2011-2017 - Daniel De Matteis - * - * RetroArch is free software: you can redistribute it and/or modify it under the terms - * of the GNU General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; - * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with RetroArch. - * If not, see . - */ - -#include - -#include "menu_input_dialog.h" - -#include "../menu_driver.h" -#include "../../input/input_driver.h" - -static const char **menu_input_dialog_keyboard_buffer = {NULL}; -static unsigned menu_input_dialog_keyboard_type = 0; -static unsigned menu_input_dialog_keyboard_idx = 0; -static char menu_input_dialog_keyboard_label_setting[256] = {0}; -static char menu_input_dialog_keyboard_label[256] = {0}; - -static void menu_input_search_cb(void *userdata, const char *str) -{ - size_t idx = 0; - file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0); - - if (!selection_buf) - return; - - if (str && *str && file_list_search(selection_buf, str, &idx)) - { - menu_navigation_set_selection(idx); - menu_driver_navigation_set(true); - } - - menu_input_dialog_end(); -} - -const char *menu_input_dialog_get_label_buffer(void) -{ - return menu_input_dialog_keyboard_label; -} - -const char *menu_input_dialog_get_label_setting_buffer(void) -{ - return menu_input_dialog_keyboard_label_setting; -} - -void menu_input_dialog_end(void) -{ - menu_input_dialog_keyboard_type = 0; - menu_input_dialog_keyboard_idx = 0; - menu_input_dialog_set_kb(false); - menu_input_dialog_keyboard_label[0] = '\0'; - menu_input_dialog_keyboard_label_setting[0] = '\0'; - - /* Avoid triggering tates on pressing return. */ - input_driver_set_flushing_input(); -} - -const char *menu_input_dialog_get_buffer(void) -{ - if (!(*menu_input_dialog_keyboard_buffer)) - return ""; - return *menu_input_dialog_keyboard_buffer; -} - -unsigned menu_input_dialog_get_kb_type(void) -{ - return menu_input_dialog_keyboard_type; -} - -unsigned menu_input_dialog_get_kb_idx(void) -{ - return menu_input_dialog_keyboard_idx; -} - -bool menu_input_dialog_start_search(void) -{ - menu_handle_t *menu = NULL; - - if (!menu_driver_ctl( - RARCH_MENU_CTL_DRIVER_DATA_GET, &menu)) - return false; - - menu_input_dialog_set_kb(true); - strlcpy(menu_input_dialog_keyboard_label, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SEARCH), - sizeof(menu_input_dialog_keyboard_label)); - - input_keyboard_ctl(RARCH_INPUT_KEYBOARD_CTL_LINE_FREE, NULL); - - menu_input_dialog_keyboard_buffer = - input_keyboard_start_line(menu, menu_input_search_cb); - - return true; -} - -bool menu_input_dialog_start(menu_input_ctx_line_t *line) -{ - menu_handle_t *menu = NULL; - if (!line) - return false; - if (!menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu)) - return false; - - menu_input_dialog_set_kb(true); - - /* Only copy over the menu label and setting if they exist. */ - if (line->label) - strlcpy(menu_input_dialog_keyboard_label, line->label, - sizeof(menu_input_dialog_keyboard_label)); - if (line->label_setting) - strlcpy(menu_input_dialog_keyboard_label_setting, - line->label_setting, - sizeof(menu_input_dialog_keyboard_label_setting)); - - menu_input_dialog_keyboard_type = line->type; - menu_input_dialog_keyboard_idx = line->idx; - - input_keyboard_ctl(RARCH_INPUT_KEYBOARD_CTL_LINE_FREE, NULL); - - menu_input_dialog_keyboard_buffer = - input_keyboard_start_line(menu, line->cb); - - return true; -} diff --git a/menu/widgets/menu_input_dialog.h b/menu/widgets/menu_input_dialog.h deleted file mode 100644 index 0a11be1409..0000000000 --- a/menu/widgets/menu_input_dialog.h +++ /dev/null @@ -1,62 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2010-2014 - Hans-Kristian Arntzen - * Copyright (C) 2011-2017 - Daniel De Matteis - * - * RetroArch is free software: you can redistribute it and/or modify it under the terms - * of the GNU General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; - * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with RetroArch. - * If not, see . - */ - -#ifndef _MENU_INPUT_DIALOG_H -#define _MENU_INPUT_DIALOG_H - -#include -#include - -#include - -#include - -#include "../../input/input_driver.h" - -RETRO_BEGIN_DECLS - -typedef struct menu_input_ctx_line -{ - const char *label; - const char *label_setting; - unsigned type; - unsigned idx; - input_keyboard_line_complete_t cb; -} menu_input_ctx_line_t; - -const char *menu_input_dialog_get_label_setting_buffer(void); - -const char *menu_input_dialog_get_label_buffer(void); - -const char *menu_input_dialog_get_buffer(void); - -unsigned menu_input_dialog_get_kb_type(void); - -unsigned menu_input_dialog_get_kb_idx(void); - -bool menu_input_dialog_start_search(void); - -void menu_input_dialog_set_kb(bool val); - -bool menu_input_dialog_get_display_kb(void); - -bool menu_input_dialog_start(menu_input_ctx_line_t *line); - -void menu_input_dialog_end(void); - -RETRO_END_DECLS - -#endif diff --git a/network/netplay/netplay_handshake.c b/network/netplay/netplay_handshake.c index a964915e4f..5e60853d80 100644 --- a/network/netplay/netplay_handshake.c +++ b/network/netplay/netplay_handshake.c @@ -37,10 +37,6 @@ #include "../../retroarch.h" #include "../../version.h" -#ifdef HAVE_MENU -#include "../../menu/widgets/menu_input_dialog.h" -#endif - const uint32_t netplay_magic = 0x52414E50; /* RANP */ /* TODO/FIXME - replace netplay_log_connection with calls diff --git a/retroarch.c b/retroarch.c index c633a8e032..b2b1c74b21 100644 --- a/retroarch.c +++ b/retroarch.c @@ -122,7 +122,6 @@ #include "menu/menu_animation.h" #include "menu/menu_input.h" #include "menu/widgets/menu_dialog.h" -#include "menu/widgets/menu_input_dialog.h" #include "menu/widgets/menu_input_bind_dialog.h" #ifdef HAVE_MENU_WIDGETS #include "menu/widgets/menu_widgets.h" @@ -927,6 +926,11 @@ enum menu_mouse_action MENU_MOUSE_ACTION_HORIZ_WHEEL_DOWN }; +static const char **menu_input_dialog_keyboard_buffer = {NULL}; +static unsigned menu_input_dialog_keyboard_type = 0; +static unsigned menu_input_dialog_keyboard_idx = 0; +static char menu_input_dialog_keyboard_label_setting[256] = {0}; +static char menu_input_dialog_keyboard_label[256] = {0}; static bool menu_input_dialog_keyboard_display = false; static unsigned char menu_keyboard_key_state[RETROK_LAST] = {0}; @@ -946,6 +950,119 @@ extern u32 __nx_applet_type; extern void libnx_apply_overclock(void); #endif +#ifdef HAVE_LIBNX +#define menu_input_dialog_get_display_kb_internal() menu_input_dialog_get_display_kb() +#else +#define menu_input_dialog_get_display_kb_internal() menu_input_dialog_keyboard_display +#endif + +static void menu_input_search_cb(void *userdata, const char *str) +{ + size_t idx = 0; + file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0); + + if (!selection_buf) + return; + + if (str && *str && file_list_search(selection_buf, str, &idx)) + { + menu_navigation_set_selection(idx); + menu_driver_navigation_set(true); + } + + menu_input_dialog_end(); +} + +const char *menu_input_dialog_get_label_buffer(void) +{ + return menu_input_dialog_keyboard_label; +} + +const char *menu_input_dialog_get_label_setting_buffer(void) +{ + return menu_input_dialog_keyboard_label_setting; +} + +void menu_input_dialog_end(void) +{ + menu_input_dialog_keyboard_type = 0; + menu_input_dialog_keyboard_idx = 0; + menu_input_dialog_set_kb(false); + menu_input_dialog_keyboard_label[0] = '\0'; + menu_input_dialog_keyboard_label_setting[0] = '\0'; + + /* Avoid triggering tates on pressing return. */ + input_driver_set_flushing_input(); +} + +const char *menu_input_dialog_get_buffer(void) +{ + if (!(*menu_input_dialog_keyboard_buffer)) + return ""; + return *menu_input_dialog_keyboard_buffer; +} + +unsigned menu_input_dialog_get_kb_type(void) +{ + return menu_input_dialog_keyboard_type; +} + +unsigned menu_input_dialog_get_kb_idx(void) +{ + return menu_input_dialog_keyboard_idx; +} + +bool menu_input_dialog_start_search(void) +{ + menu_handle_t *menu = NULL; + + if (!menu_driver_ctl( + RARCH_MENU_CTL_DRIVER_DATA_GET, &menu)) + return false; + + menu_input_dialog_set_kb(true); + strlcpy(menu_input_dialog_keyboard_label, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SEARCH), + sizeof(menu_input_dialog_keyboard_label)); + + input_keyboard_ctl(RARCH_INPUT_KEYBOARD_CTL_LINE_FREE, NULL); + + menu_input_dialog_keyboard_buffer = + input_keyboard_start_line(menu, menu_input_search_cb); + + return true; +} + +bool menu_input_dialog_start(menu_input_ctx_line_t *line) +{ + menu_handle_t *menu = NULL; + if (!line) + return false; + if (!menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu)) + return false; + + menu_input_dialog_set_kb(true); + + /* Only copy over the menu label and setting if they exist. */ + if (line->label) + strlcpy(menu_input_dialog_keyboard_label, line->label, + sizeof(menu_input_dialog_keyboard_label)); + if (line->label_setting) + strlcpy(menu_input_dialog_keyboard_label_setting, + line->label_setting, + sizeof(menu_input_dialog_keyboard_label_setting)); + + menu_input_dialog_keyboard_type = line->type; + menu_input_dialog_keyboard_idx = line->idx; + + input_keyboard_ctl(RARCH_INPUT_KEYBOARD_CTL_LINE_FREE, NULL); + + menu_input_dialog_keyboard_buffer = + input_keyboard_start_line(menu, line->cb); + + return true; +} + bool menu_input_dialog_get_display_kb(void) { #ifdef HAVE_LIBNX @@ -1008,11 +1125,6 @@ bool menu_input_dialog_get_display_kb(void) return menu_input_dialog_keyboard_display; } -#ifdef HAVE_LIBNX -#define menu_input_dialog_get_display_kb_internal() menu_input_dialog_get_display_kb() -#else -#define menu_input_dialog_get_display_kb_internal() menu_input_dialog_keyboard_display -#endif void menu_input_dialog_set_kb(bool val) {