Create set_signal_handler_state

This commit is contained in:
twinaphex 2016-07-08 12:48:01 +02:00
parent 8d5f34eeb9
commit e9dc729503
14 changed files with 33 additions and 0 deletions

View File

@ -39,6 +39,11 @@ static int frontend_bsd_get_signal_handler_state(void)
return (int)bsd_sighandler_quit; return (int)bsd_sighandler_quit;
} }
static void frontend_bsd_set_signal_handler_state(int value)
{
bsd_sighandler_quit = value;
}
static void frontend_bsd_destroy_signal_handler_state(void) static void frontend_bsd_destroy_signal_handler_state(void)
{ {
bsd_sighandler_quit = 0; bsd_sighandler_quit = 0;
@ -64,6 +69,7 @@ frontend_ctx_driver_t frontend_ctx_bsd = {
NULL, /* get_mem_free */ NULL, /* get_mem_free */
frontend_bsd_install_signal_handler, frontend_bsd_install_signal_handler,
frontend_bsd_get_signal_handler_state, frontend_bsd_get_signal_handler_state,
frontend_bsd_set_signal_handler_state,
frontend_bsd_destroy_signal_handler_state, frontend_bsd_destroy_signal_handler_state,
"bsd", "bsd",
}; };

View File

@ -282,6 +282,7 @@ frontend_ctx_driver_t frontend_ctx_ctr = {
NULL, /* get_mem_free */ NULL, /* get_mem_free */
NULL, /* install_signal_handler */ NULL, /* install_signal_handler */
NULL, /* get_signal_handler_state */ NULL, /* get_signal_handler_state */
NULL, /* set_signal_handler_state */
NULL, /* destroy_signal_handler_state */ NULL, /* destroy_signal_handler_state */
"ctr", "ctr",
}; };

View File

@ -725,6 +725,7 @@ frontend_ctx_driver_t frontend_ctx_darwin = {
frontend_darwin_get_mem_used, frontend_darwin_get_mem_used,
NULL, /* install_signal_handler */ NULL, /* install_signal_handler */
NULL, /* get_sighandler_state */ NULL, /* get_sighandler_state */
NULL, /* set_sighandler_state */
NULL, /* destroy_signal_handler_state */ NULL, /* destroy_signal_handler_state */
"darwin", "darwin",
}; };

View File

@ -528,6 +528,7 @@ frontend_ctx_driver_t frontend_ctx_gx = {
frontend_gx_get_mem_used, frontend_gx_get_mem_used,
NULL, /* install_signal_handler */ NULL, /* install_signal_handler */
NULL, /* get_sighandler_state */ NULL, /* get_sighandler_state */
NULL, /* set_sighandler_state */
NULL, /* destroy_signal_handler_state */ NULL, /* destroy_signal_handler_state */
"gx", "gx",
}; };

View File

@ -1988,6 +1988,11 @@ static int frontend_linux_get_signal_handler_state(void)
return (int)linux_sighandler_quit; return (int)linux_sighandler_quit;
} }
static void frontend_linux_set_signal_handler_state(int value)
{
linux_sighandler_quit = value;
}
static void frontend_linux_destroy_signal_handler_state(void) static void frontend_linux_destroy_signal_handler_state(void)
{ {
linux_sighandler_quit = 0; linux_sighandler_quit = 0;
@ -2031,6 +2036,7 @@ frontend_ctx_driver_t frontend_ctx_linux = {
frontend_linux_get_mem_used, frontend_linux_get_mem_used,
frontend_linux_install_signal_handlers, frontend_linux_install_signal_handlers,
frontend_linux_get_signal_handler_state, frontend_linux_get_signal_handler_state,
frontend_linux_set_signal_handler_state,
frontend_linux_destroy_signal_handler_state, frontend_linux_destroy_signal_handler_state,
#ifdef ANDROID #ifdef ANDROID
"android" "android"

View File

@ -39,6 +39,7 @@ frontend_ctx_driver_t frontend_ctx_null = {
NULL, /* get_mem_free */ NULL, /* get_mem_free */
NULL, /* install_signal_handler */ NULL, /* install_signal_handler */
NULL, /* get_sighandler_state */ NULL, /* get_sighandler_state */
NULL, /* set_sighandler_state */
NULL, /* destroy_sighandler_state */ NULL, /* destroy_sighandler_state */
"null", "null",
}; };

View File

@ -544,6 +544,7 @@ frontend_ctx_driver_t frontend_ctx_ps3 = {
NULL, /* get_mem_free */ NULL, /* get_mem_free */
NULL, /* install_signal_handler */ NULL, /* install_signal_handler */
NULL, /* get_sighandler_state */ NULL, /* get_sighandler_state */
NULL, /* set_sighandler_state */
NULL, /* destroy_sighandler_state */ NULL, /* destroy_sighandler_state */
"ps3", "ps3",
}; };

View File

@ -409,6 +409,7 @@ frontend_ctx_driver_t frontend_ctx_psp = {
NULL, /* get_mem_free */ NULL, /* get_mem_free */
NULL, /* install_signal_handler */ NULL, /* install_signal_handler */
NULL, /* get_sighandler_state */ NULL, /* get_sighandler_state */
NULL, /* set_sighandler_state */
NULL, /* destroy_sighandler_state */ NULL, /* destroy_sighandler_state */
#ifdef VITA #ifdef VITA
"vita", "vita",

View File

@ -88,6 +88,7 @@ frontend_ctx_driver_t frontend_ctx_qnx = {
NULL, /* get_mem_free */ NULL, /* get_mem_free */
NULL, /* install_signal_handler */ NULL, /* install_signal_handler */
NULL, /* get_sighandler_state */ NULL, /* get_sighandler_state */
NULL, /* set_sighandler_state */
NULL, /* destroy_sighandler_state */ NULL, /* destroy_sighandler_state */
"qnx", "qnx",
}; };

View File

@ -335,6 +335,7 @@ frontend_ctx_driver_t frontend_ctx_win32 = {
frontend_win32_get_mem_used, frontend_win32_get_mem_used,
NULL, /* install_signal_handler */ NULL, /* install_signal_handler */
NULL, /* get_sighandler_state */ NULL, /* get_sighandler_state */
NULL, /* set_sighandler_state */
NULL, /* destroy_sighandler_state */ NULL, /* destroy_sighandler_state */
"win32" "win32"
}; };

View File

@ -1410,6 +1410,7 @@ frontend_ctx_driver_t frontend_ctx_xdk = {
NULL, /* get_mem_free */ NULL, /* get_mem_free */
NULL, /* install_signal_handler */ NULL, /* install_signal_handler */
NULL, /* get_sighandler_state */ NULL, /* get_sighandler_state */
NULL, /* set_sighandler_state */
NULL, /* destroy_sighandler_state */ NULL, /* destroy_sighandler_state */
"xdk", "xdk",
}; };

View File

@ -87,6 +87,7 @@ frontend_ctx_driver_t frontend_ctx_qnx = {
NULL, /* get_mem_total */ NULL, /* get_mem_total */
NULL, /* install_signal_handler */ NULL, /* install_signal_handler */
NULL, /* get_sighandler_state */ NULL, /* get_sighandler_state */
NULL, /* set_sighandler_state */
NULL, /* destroy_sighandler_state */ NULL, /* destroy_sighandler_state */
"xenon", "xenon",
}; };

View File

@ -344,6 +344,14 @@ int frontend_driver_get_signal_handler_state(void)
return frontend->get_signal_handler_state(); return frontend->get_signal_handler_state();
} }
void frontend_driver_set_signal_handler_state(int value)
{
frontend_ctx_driver_t *frontend = frontend_get_ptr();
if (!frontend || !frontend->set_signal_handler_state)
return;
frontend->set_signal_handler_state(value);
}
void frontend_driver_destroy_signal_handler_state(void) void frontend_driver_destroy_signal_handler_state(void)
{ {
frontend_ctx_driver_t *frontend = frontend_get_ptr(); frontend_ctx_driver_t *frontend = frontend_get_ptr();

View File

@ -84,6 +84,7 @@ typedef struct frontend_ctx_driver
uint64_t (*get_used_mem)(void); uint64_t (*get_used_mem)(void);
void (*install_signal_handler)(void); void (*install_signal_handler)(void);
int (*get_signal_handler_state)(void); int (*get_signal_handler_state)(void);
void (*set_signal_handler_state)(int value);
void (*destroy_signal_handler_state)(void); void (*destroy_signal_handler_state)(void);
const char *ident; const char *ident;
@ -167,6 +168,8 @@ void frontend_driver_install_signal_handler(void);
int frontend_driver_get_signal_handler_state(void); int frontend_driver_get_signal_handler_state(void);
void frontend_driver_set_signal_handler_state(int value);
void frontend_driver_destroy_signal_handler_state(void); void frontend_driver_destroy_signal_handler_state(void);
RETRO_END_DECLS RETRO_END_DECLS