Merge pull request #2816 from lakkatv/master

More Lakka services
This commit is contained in:
Twinaphex 2016-03-24 00:21:36 +01:00
commit 6f424ebc4c
8 changed files with 89 additions and 11 deletions

View File

@ -428,6 +428,7 @@ endif
ifeq ($(HAVE_LAKKA), 1) ifeq ($(HAVE_LAKKA), 1)
DEFINES += -DHAVE_LAKKA DEFINES += -DHAVE_LAKKA
DEFINES += -DLAKKA_PROJECT=$(LAKKA_PROJECT)
endif endif
ifeq ($(HAVE_MENU_COMMON), 1) ifeq ($(HAVE_MENU_COMMON), 1)

View File

@ -602,6 +602,8 @@ static void config_set_defaults(void)
#ifdef HAVE_LAKKA #ifdef HAVE_LAKKA
settings->ssh_enable = path_file_exists(LAKKA_SSH_PATH); 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 #endif
#ifdef HAVE_MENU #ifdef HAVE_MENU
@ -1731,6 +1733,8 @@ static bool config_load_file(const char *path, bool set_defaults)
#ifdef HAVE_LAKKA #ifdef HAVE_LAKKA
settings->ssh_enable = path_file_exists(LAKKA_SSH_PATH); 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 #endif
#ifdef HAVE_NETWORK_GAMEPAD #ifdef HAVE_NETWORK_GAMEPAD
@ -2858,6 +2862,14 @@ bool config_save_file(const char *path)
fclose(fopen(LAKKA_SSH_PATH, "w")); fclose(fopen(LAKKA_SSH_PATH, "w"));
else else
remove(LAKKA_SSH_PATH); remove(LAKKA_SSH_PATH);
if (settings->samba_enable)
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 #endif
config_set_float(conf, "fastforward_ratio", settings->fastforward_ratio); config_set_float(conf, "fastforward_ratio", settings->fastforward_ratio);

View File

@ -402,6 +402,8 @@ typedef struct settings
#ifdef HAVE_LAKKA #ifdef HAVE_LAKKA
bool ssh_enable; bool ssh_enable;
bool samba_enable;
bool bluetooth_enable;
#endif #endif
} settings_t; } settings_t;

View File

@ -18,5 +18,8 @@
#define __RARCH_LAKKA_H #define __RARCH_LAKKA_H
#define LAKKA_SSH_PATH "/storage/.cache/services/sshd.conf" #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 #endif

View File

@ -38,6 +38,7 @@
#include "../../input/input_remapping.h" #include "../../input/input_remapping.h"
#include "../../retroarch.h" #include "../../retroarch.h"
#include "../../system.h" #include "../../system.h"
#include "../../lakka.h"
enum enum
{ {
@ -1331,7 +1332,7 @@ static void cb_generic_download(void *task_data,
break; break;
} }
case CB_LAKKA_DOWNLOAD: case CB_LAKKA_DOWNLOAD:
dir_path = "/storage/.update/"; /* TODO unhardcode this ? */ dir_path = LAKKA_UPDATE_DIR;
break; break;
default: default:
RARCH_WARN("Unknown transfer type '%u' bailing out.\n", RARCH_WARN("Unknown transfer type '%u' bailing out.\n",

View File

@ -264,6 +264,10 @@ static const char *menu_hash_to_str_us_label(uint32_t hash)
return "netplay_enable"; return "netplay_enable";
case MENU_LABEL_SSH_ENABLE: case MENU_LABEL_SSH_ENABLE:
return "ssh_enable"; 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: case MENU_LABEL_NETPLAY_DELAY_FRAMES:
return "netplay_delay_frames"; return "netplay_delay_frames";
case MENU_LABEL_NETPLAY_MODE: case MENU_LABEL_NETPLAY_MODE:
@ -1012,6 +1016,10 @@ const char *menu_hash_to_str_us(uint32_t hash)
return "Netplay Enable"; return "Netplay Enable";
case MENU_LABEL_VALUE_SSH_ENABLE: case MENU_LABEL_VALUE_SSH_ENABLE:
return "SSH Enable"; 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: case MENU_LABEL_VALUE_NETPLAY_DELAY_FRAMES:
return "Netplay Delay Frames"; return "Netplay Delay Frames";
case MENU_LABEL_VALUE_NETPLAY_MODE: case MENU_LABEL_VALUE_NETPLAY_MODE:

View File

@ -401,6 +401,10 @@ extern "C" {
#define MENU_LABEL_VALUE_NETPLAY_ENABLE 0xbc3e81a9U #define MENU_LABEL_VALUE_NETPLAY_ENABLE 0xbc3e81a9U
#define MENU_LABEL_SSH_ENABLE 0xd9854a79U #define MENU_LABEL_SSH_ENABLE 0xd9854a79U
#define MENU_LABEL_VALUE_SSH_ENABLE 0x0430627aU #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_NETPLAY_CLIENT_SWAP_INPUT 0xd87bbba9U
#define MENU_LABEL_VALUE_NETPLAY_CLIENT_SWAP_INPUT 0x57e5be2dU #define MENU_LABEL_VALUE_NETPLAY_CLIENT_SWAP_INPUT 0x57e5be2dU
#define MENU_LABEL_NETPLAY_DELAY_FRAMES 0x86b2c48dU #define MENU_LABEL_NETPLAY_DELAY_FRAMES 0x86b2c48dU

View File

@ -3091,19 +3091,35 @@ static void overlay_enable_toggle_change_handler(void *data)
#endif #endif
#ifdef HAVE_LAKKA #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) static void ssh_enable_toggle_change_handler(void *data)
{ {
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
rarch_setting_t *setting = (rarch_setting_t *)data; lakka_service_toggle(LAKKA_SSH_PATH,
settings && settings->ssh_enable);
if (!setting) return;
return; }
static void samba_enable_toggle_change_handler(void *data)
if (settings && settings->ssh_enable) {
fclose(fopen(LAKKA_SSH_PATH, "w")); settings_t *settings = config_get_ptr();
else lakka_service_toggle(LAKKA_SAMBA_PATH,
remove(LAKKA_SSH_PATH); settings && settings->samba_enable);
return;
}
static void bluetooth_enable_toggle_change_handler(void *data)
{
settings_t *settings = config_get_ptr();
lakka_service_toggle(LAKKA_BLUETOOTH_PATH,
settings && settings->bluetooth_enable);
return; return;
} }
#endif #endif
@ -6540,6 +6556,37 @@ static bool setting_append_list(
general_write_handler, general_write_handler,
general_read_handler); general_read_handler);
(*list)[list_info->index - 1].change_handler = ssh_enable_toggle_change_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;
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_SUB_GROUP(list, list_info, parent_group);
END_GROUP(list, list_info, parent_group); END_GROUP(list, list_info, parent_group);
#endif #endif