From b82976b206bfa455305eae17a30882d9ed6d814b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Andr=C3=A9=20Santoni?= Date: Wed, 23 Mar 2016 19:58:01 +0700 Subject: [PATCH 1/7] (Menu) Lakka Services, allow enabling or disabling SAMBA --- configuration.c | 6 ++++++ configuration.h | 1 + lakka.h | 1 + menu/intl/menu_hash_us.c | 4 ++++ menu/menu_hash.h | 2 ++ menu/menu_setting.c | 31 +++++++++++++++++++++++++++++++ 6 files changed, 45 insertions(+) diff --git a/configuration.c b/configuration.c index 8507187e07..49fb9e79e3 100644 --- a/configuration.c +++ b/configuration.c @@ -602,6 +602,7 @@ static void config_set_defaults(void) #ifdef HAVE_LAKKA settings->ssh_enable = path_file_exists(LAKKA_SSH_PATH); + settings->samba_enable = path_file_exists(LAKKA_SAMBA_PATH); #endif #ifdef HAVE_MENU @@ -1731,6 +1732,7 @@ static bool config_load_file(const char *path, bool set_defaults) #ifdef HAVE_LAKKA settings->ssh_enable = path_file_exists(LAKKA_SSH_PATH); + settings->ssh_enable = path_file_exists(LAKKA_SAMBA_PATH); #endif #ifdef HAVE_NETWORK_GAMEPAD @@ -2858,6 +2860,10 @@ bool config_save_file(const char *path) fclose(fopen(LAKKA_SSH_PATH, "w")); else remove(LAKKA_SSH_PATH); + if (settings->samba_enable) + fclose(fopen(LAKKA_SAMBA_PATH, "w")); + else + remove(LAKKA_SAMBA_PATH); #endif config_set_float(conf, "fastforward_ratio", settings->fastforward_ratio); diff --git a/configuration.h b/configuration.h index d519e50ef3..0cb0c44d3c 100644 --- a/configuration.h +++ b/configuration.h @@ -402,6 +402,7 @@ typedef struct settings #ifdef HAVE_LAKKA bool ssh_enable; + bool samba_enable; #endif } settings_t; diff --git a/lakka.h b/lakka.h index 926087516f..ab3fb2b320 100644 --- a/lakka.h +++ b/lakka.h @@ -18,5 +18,6 @@ #define __RARCH_LAKKA_H #define LAKKA_SSH_PATH "/storage/.cache/services/sshd.conf" +#define LAKKA_SAMBA_PATH "/storage/.cache/services/samba.conf" #endif diff --git a/menu/intl/menu_hash_us.c b/menu/intl/menu_hash_us.c index b4dbf4e0cd..d839a28ac0 100644 --- a/menu/intl/menu_hash_us.c +++ b/menu/intl/menu_hash_us.c @@ -264,6 +264,8 @@ static const char *menu_hash_to_str_us_label(uint32_t hash) return "netplay_enable"; case MENU_LABEL_SSH_ENABLE: return "ssh_enable"; + case MENU_LABEL_SAMBA_ENABLE: + return "samba_enable"; case MENU_LABEL_NETPLAY_DELAY_FRAMES: return "netplay_delay_frames"; case MENU_LABEL_NETPLAY_MODE: @@ -1012,6 +1014,8 @@ const char *menu_hash_to_str_us(uint32_t hash) return "Netplay Enable"; case MENU_LABEL_VALUE_SSH_ENABLE: return "SSH Enable"; + case MENU_LABEL_VALUE_SAMBA_ENABLE: + return "SAMBA Enable"; case MENU_LABEL_VALUE_NETPLAY_DELAY_FRAMES: return "Netplay Delay Frames"; case MENU_LABEL_VALUE_NETPLAY_MODE: diff --git a/menu/menu_hash.h b/menu/menu_hash.h index fb5f445142..bfc4dddaa4 100644 --- a/menu/menu_hash.h +++ b/menu/menu_hash.h @@ -401,6 +401,8 @@ extern "C" { #define MENU_LABEL_VALUE_NETPLAY_ENABLE 0xbc3e81a9U #define MENU_LABEL_SSH_ENABLE 0xd9854a79U #define MENU_LABEL_VALUE_SSH_ENABLE 0x0430627aU +#define MENU_LABEL_SAMBA_ENABLE 0x379e15efU +#define MENU_LABEL_VALUE_SAMBA_ENABLE 0x9846d9b0U #define MENU_LABEL_NETPLAY_CLIENT_SWAP_INPUT 0xd87bbba9U #define MENU_LABEL_VALUE_NETPLAY_CLIENT_SWAP_INPUT 0x57e5be2dU #define MENU_LABEL_NETPLAY_DELAY_FRAMES 0x86b2c48dU diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 8a2a0055a7..ae994551c8 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -3106,6 +3106,21 @@ static void ssh_enable_toggle_change_handler(void *data) return; } +static void samba_enable_toggle_change_handler(void *data) +{ + settings_t *settings = config_get_ptr(); + rarch_setting_t *setting = (rarch_setting_t *)data; + + if (!setting) + return; + + if (settings && settings->samba_enable) + fclose(fopen(LAKKA_SAMBA_PATH, "w")); + else + remove(LAKKA_SAMBA_PATH); + + return; +} #endif enum settings_list_type @@ -6540,6 +6555,22 @@ static bool setting_append_list( general_write_handler, general_read_handler); (*list)[list_info->index - 1].change_handler = ssh_enable_toggle_change_handler; + + CONFIG_BOOL( + list, list_info, + &settings->samba_enable, + menu_hash_to_str(MENU_LABEL_SAMBA_ENABLE), + menu_hash_to_str(MENU_LABEL_VALUE_SAMBA_ENABLE), + true, + menu_hash_to_str(MENU_VALUE_OFF), + menu_hash_to_str(MENU_VALUE_ON), + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + (*list)[list_info->index - 1].change_handler = samba_enable_toggle_change_handler; + END_SUB_GROUP(list, list_info, parent_group); END_GROUP(list, list_info, parent_group); #endif From 288c2c399662ed8fd82a3effef71b5b1ae05fade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Andr=C3=A9=20Santoni?= Date: Wed, 23 Mar 2016 20:06:53 +0700 Subject: [PATCH 2/7] (Menu) Lakka Services : Bluetooth --- configuration.c | 6 ++++++ configuration.h | 1 + lakka.h | 1 + menu/intl/menu_hash_us.c | 4 ++++ menu/menu_hash.h | 2 ++ menu/menu_setting.c | 30 ++++++++++++++++++++++++++++++ 6 files changed, 44 insertions(+) diff --git a/configuration.c b/configuration.c index 49fb9e79e3..7277d65e23 100644 --- a/configuration.c +++ b/configuration.c @@ -603,6 +603,7 @@ static void config_set_defaults(void) #ifdef HAVE_LAKKA settings->ssh_enable = path_file_exists(LAKKA_SSH_PATH); settings->samba_enable = path_file_exists(LAKKA_SAMBA_PATH); + settings->bluetooth_enable = path_file_exists(LAKKA_BLUETOOTH_PATH); #endif #ifdef HAVE_MENU @@ -1733,6 +1734,7 @@ static bool config_load_file(const char *path, bool set_defaults) #ifdef HAVE_LAKKA settings->ssh_enable = path_file_exists(LAKKA_SSH_PATH); settings->ssh_enable = path_file_exists(LAKKA_SAMBA_PATH); + settings->bluetooth_enable = path_file_exists(LAKKA_BLUETOOTH_PATH); #endif #ifdef HAVE_NETWORK_GAMEPAD @@ -2864,6 +2866,10 @@ bool config_save_file(const char *path) fclose(fopen(LAKKA_SAMBA_PATH, "w")); else remove(LAKKA_SAMBA_PATH); + if (settings->bluetooth_enable) + fclose(fopen(LAKKA_BLUETOOTH_PATH, "w")); + else + remove(LAKKA_BLUETOOTH_PATH); #endif config_set_float(conf, "fastforward_ratio", settings->fastforward_ratio); diff --git a/configuration.h b/configuration.h index 0cb0c44d3c..12d04a490b 100644 --- a/configuration.h +++ b/configuration.h @@ -403,6 +403,7 @@ typedef struct settings #ifdef HAVE_LAKKA bool ssh_enable; bool samba_enable; + bool bluetooth_enable; #endif } settings_t; diff --git a/lakka.h b/lakka.h index ab3fb2b320..e8e6ab50fc 100644 --- a/lakka.h +++ b/lakka.h @@ -19,5 +19,6 @@ #define LAKKA_SSH_PATH "/storage/.cache/services/sshd.conf" #define LAKKA_SAMBA_PATH "/storage/.cache/services/samba.conf" +#define LAKKA_BLUETOOTH_PATH "/storage/.cache/services/bluez.conf" #endif diff --git a/menu/intl/menu_hash_us.c b/menu/intl/menu_hash_us.c index d839a28ac0..22427caf4a 100644 --- a/menu/intl/menu_hash_us.c +++ b/menu/intl/menu_hash_us.c @@ -266,6 +266,8 @@ static const char *menu_hash_to_str_us_label(uint32_t hash) return "ssh_enable"; case MENU_LABEL_SAMBA_ENABLE: return "samba_enable"; + case MENU_LABEL_BLUETOOTH_ENABLE: + return "bluetooth_enable"; case MENU_LABEL_NETPLAY_DELAY_FRAMES: return "netplay_delay_frames"; case MENU_LABEL_NETPLAY_MODE: @@ -1016,6 +1018,8 @@ const char *menu_hash_to_str_us(uint32_t hash) return "SSH Enable"; case MENU_LABEL_VALUE_SAMBA_ENABLE: return "SAMBA Enable"; + case MENU_LABEL_VALUE_BLUETOOTH_ENABLE: + return "Bluetooth Enable"; case MENU_LABEL_VALUE_NETPLAY_DELAY_FRAMES: return "Netplay Delay Frames"; case MENU_LABEL_VALUE_NETPLAY_MODE: diff --git a/menu/menu_hash.h b/menu/menu_hash.h index bfc4dddaa4..bf9ecf3aba 100644 --- a/menu/menu_hash.h +++ b/menu/menu_hash.h @@ -403,6 +403,8 @@ extern "C" { #define MENU_LABEL_VALUE_SSH_ENABLE 0x0430627aU #define MENU_LABEL_SAMBA_ENABLE 0x379e15efU #define MENU_LABEL_VALUE_SAMBA_ENABLE 0x9846d9b0U +#define MENU_LABEL_BLUETOOTH_ENABLE 0xbac1e1e1U +#define MENU_LABEL_VALUE_BLUETOOTH_ENABLE 0xf7e31e22U #define MENU_LABEL_NETPLAY_CLIENT_SWAP_INPUT 0xd87bbba9U #define MENU_LABEL_VALUE_NETPLAY_CLIENT_SWAP_INPUT 0x57e5be2dU #define MENU_LABEL_NETPLAY_DELAY_FRAMES 0x86b2c48dU diff --git a/menu/menu_setting.c b/menu/menu_setting.c index ae994551c8..65754b8832 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -3121,6 +3121,21 @@ static void samba_enable_toggle_change_handler(void *data) return; } +static void bluetooth_enable_toggle_change_handler(void *data) +{ + settings_t *settings = config_get_ptr(); + rarch_setting_t *setting = (rarch_setting_t *)data; + + if (!setting) + return; + + if (settings && settings->bluetooth_enable) + fclose(fopen(LAKKA_BLUETOOTH_PATH, "w")); + else + remove(LAKKA_BLUETOOTH_PATH); + + return; +} #endif enum settings_list_type @@ -6571,6 +6586,21 @@ static bool setting_append_list( general_read_handler); (*list)[list_info->index - 1].change_handler = samba_enable_toggle_change_handler; + CONFIG_BOOL( + list, list_info, + &settings->bluetooth_enable, + menu_hash_to_str(MENU_LABEL_BLUETOOTH_ENABLE), + menu_hash_to_str(MENU_LABEL_VALUE_BLUETOOTH_ENABLE), + true, + menu_hash_to_str(MENU_VALUE_OFF), + menu_hash_to_str(MENU_VALUE_ON), + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + (*list)[list_info->index - 1].change_handler = bluetooth_enable_toggle_change_handler; + END_SUB_GROUP(list, list_info, parent_group); END_GROUP(list, list_info, parent_group); #endif From 17e2458903a5d5d201869cb4a3944eefafdc13f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Andr=C3=A9=20Santoni?= Date: Wed, 23 Mar 2016 20:07:13 +0700 Subject: [PATCH 3/7] Typo --- configuration.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configuration.c b/configuration.c index 7277d65e23..a679bb23a2 100644 --- a/configuration.c +++ b/configuration.c @@ -1733,7 +1733,7 @@ static bool config_load_file(const char *path, bool set_defaults) #ifdef HAVE_LAKKA settings->ssh_enable = path_file_exists(LAKKA_SSH_PATH); - settings->ssh_enable = path_file_exists(LAKKA_SAMBA_PATH); + settings->samba_enable = path_file_exists(LAKKA_SAMBA_PATH); settings->bluetooth_enable = path_file_exists(LAKKA_BLUETOOTH_PATH); #endif From cb7ef6615c2755cda1158ac8f52bfa1640f46424 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Andr=C3=A9=20Santoni?= Date: Wed, 23 Mar 2016 20:24:26 +0700 Subject: [PATCH 4/7] (Menu) Remove useless code --- menu/menu_setting.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 65754b8832..06b3e51d40 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -3094,10 +3094,6 @@ static void overlay_enable_toggle_change_handler(void *data) static void ssh_enable_toggle_change_handler(void *data) { settings_t *settings = config_get_ptr(); - rarch_setting_t *setting = (rarch_setting_t *)data; - - if (!setting) - return; if (settings && settings->ssh_enable) fclose(fopen(LAKKA_SSH_PATH, "w")); @@ -3109,10 +3105,6 @@ static void ssh_enable_toggle_change_handler(void *data) static void samba_enable_toggle_change_handler(void *data) { settings_t *settings = config_get_ptr(); - rarch_setting_t *setting = (rarch_setting_t *)data; - - if (!setting) - return; if (settings && settings->samba_enable) fclose(fopen(LAKKA_SAMBA_PATH, "w")); @@ -3124,10 +3116,6 @@ static void samba_enable_toggle_change_handler(void *data) static void bluetooth_enable_toggle_change_handler(void *data) { settings_t *settings = config_get_ptr(); - rarch_setting_t *setting = (rarch_setting_t *)data; - - if (!setting) - return; if (settings && settings->bluetooth_enable) fclose(fopen(LAKKA_BLUETOOTH_PATH, "w")); From adfb0b5a6d80d5f219d81af169e99e72e4e5ddd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Andr=C3=A9=20Santoni?= Date: Wed, 23 Mar 2016 21:40:41 +0700 Subject: [PATCH 5/7] (Menu) Unhardcode Lakka Update Dir --- lakka.h | 1 + menu/cbs/menu_cbs_ok.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lakka.h b/lakka.h index e8e6ab50fc..0f36c2ac03 100644 --- a/lakka.h +++ b/lakka.h @@ -20,5 +20,6 @@ #define LAKKA_SSH_PATH "/storage/.cache/services/sshd.conf" #define LAKKA_SAMBA_PATH "/storage/.cache/services/samba.conf" #define LAKKA_BLUETOOTH_PATH "/storage/.cache/services/bluez.conf" +#define LAKKA_UPDATE_DIR "/storage/.update/" #endif diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index eff5ca170a..aaf28e4537 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -38,6 +38,7 @@ #include "../../input/input_remapping.h" #include "../../retroarch.h" #include "../../system.h" +#include "../../lakka.h" enum { @@ -1331,7 +1332,7 @@ static void cb_generic_download(void *task_data, break; } case CB_LAKKA_DOWNLOAD: - dir_path = "/storage/.update/"; /* TODO unhardcode this ? */ + dir_path = LAKKA_UPDATE_DIR; break; default: RARCH_WARN("Unknown transfer type '%u' bailing out.\n", From ab09ebe687236f1c5413af31cffbcd8932ebb30d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Andr=C3=A9=20Santoni?= Date: Wed, 23 Mar 2016 21:47:10 +0700 Subject: [PATCH 6/7] Allow passing LAKKA_PROJECT directly to make --- Makefile.common | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile.common b/Makefile.common index d372e25591..f1afbd1f8f 100644 --- a/Makefile.common +++ b/Makefile.common @@ -428,6 +428,7 @@ endif ifeq ($(HAVE_LAKKA), 1) DEFINES += -DHAVE_LAKKA + DEFINES += -DLAKKA_PROJECT=$(LAKKA_PROJECT) endif ifeq ($(HAVE_MENU_COMMON), 1) From 61b044b124664f020b9e03309f2f8906bbbe8e40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Andr=C3=A9=20Santoni?= Date: Thu, 24 Mar 2016 01:20:26 +0700 Subject: [PATCH 7/7] Refactoring --- menu/menu_setting.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 06b3e51d40..b2c47d65ea 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -3091,37 +3091,35 @@ static void overlay_enable_toggle_change_handler(void *data) #endif #ifdef HAVE_LAKKA + +void lakka_service_toggle(const char *path, bool enable) +{ + if (enable) + fclose(fopen(path, "w")); + else + remove(path); + return; +} + static void ssh_enable_toggle_change_handler(void *data) { settings_t *settings = config_get_ptr(); - - if (settings && settings->ssh_enable) - fclose(fopen(LAKKA_SSH_PATH, "w")); - else - remove(LAKKA_SSH_PATH); - + lakka_service_toggle(LAKKA_SSH_PATH, + settings && settings->ssh_enable); return; } static void samba_enable_toggle_change_handler(void *data) { settings_t *settings = config_get_ptr(); - - if (settings && settings->samba_enable) - fclose(fopen(LAKKA_SAMBA_PATH, "w")); - else - remove(LAKKA_SAMBA_PATH); - + lakka_service_toggle(LAKKA_SAMBA_PATH, + settings && settings->samba_enable); return; } static void bluetooth_enable_toggle_change_handler(void *data) { settings_t *settings = config_get_ptr(); - - if (settings && settings->bluetooth_enable) - fclose(fopen(LAKKA_BLUETOOTH_PATH, "w")); - else - remove(LAKKA_BLUETOOTH_PATH); - + lakka_service_toggle(LAKKA_BLUETOOTH_PATH, + settings && settings->bluetooth_enable); return; } #endif