|
|
|
@ -12,8 +12,10 @@ |
|
|
|
|
#ifndef E_IPC_HANDLERS_H |
|
|
|
|
# define E_IPC_HANDLERS_H |
|
|
|
|
|
|
|
|
|
# define STRING(__str, HANDLER) \ |
|
|
|
|
case HANDLER: \
|
|
|
|
|
# define OP(__a, __b, __c, __d, __e) \ |
|
|
|
|
{__a, __b, __c, __d, __e}, |
|
|
|
|
# define STRING(__str, HDL) \ |
|
|
|
|
case HDL: \
|
|
|
|
|
if (e->data) { \
|
|
|
|
|
char *__str = NULL; \
|
|
|
|
|
if (e_ipc_codec_str_dec(e->data, e->size, &__str)) { |
|
|
|
@ -25,19 +27,19 @@ break; |
|
|
|
|
|
|
|
|
|
# define SAVE e_config_save_queue() |
|
|
|
|
|
|
|
|
|
# define REQ_STRING(__str, HANDLER) \ |
|
|
|
|
case HANDLER: { void *data; int bytes; \
|
|
|
|
|
# define REQ_STRING(__str, HDL) \ |
|
|
|
|
case HDL: { void *data; int bytes; \
|
|
|
|
|
data = e_ipc_codec_str_enc(__str, &bytes); \
|
|
|
|
|
if (data) { \
|
|
|
|
|
ecore_ipc_server_send(e->server, E_IPC_DOMAIN_REQUEST, HANDLER, 0, 0, 0, data, bytes); \
|
|
|
|
|
ecore_ipc_server_send(e->server, E_IPC_DOMAIN_REQUEST, HDL, 0, 0, 0, data, bytes); \
|
|
|
|
|
free(data); \
|
|
|
|
|
} \
|
|
|
|
|
} \
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
# define REQ_NULL(HANDLER) \ |
|
|
|
|
case HANDLER: \
|
|
|
|
|
ecore_ipc_server_send(e->server, E_IPC_DOMAIN_REQUEST, HANDLER, 0, 0, 0, NULL, 0); \
|
|
|
|
|
# define REQ_NULL(HDL) \ |
|
|
|
|
case HDL: \
|
|
|
|
|
ecore_ipc_server_send(e->server, E_IPC_DOMAIN_REQUEST, HDL, 0, 0, 0, NULL, 0); \
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
# define FREE_LIST(__list) \ |
|
|
|
@ -50,8 +52,8 @@ while (__list) { \ |
|
|
|
|
ecore_ipc_client_send(e->client, E_IPC_DOMAIN_REPLY, __opcode, 0, 0, 0, data, bytes); \
|
|
|
|
|
free(data); |
|
|
|
|
|
|
|
|
|
# define STRING_INT_LIST(__v, HANDLER) \ |
|
|
|
|
case HANDLER: { \
|
|
|
|
|
# define STRING_INT_LIST(__v, HDL) \ |
|
|
|
|
case HDL: { \
|
|
|
|
|
Evas_List *dat = NULL, *l; \
|
|
|
|
|
if (e_ipc_codec_str_int_list_dec(e->data, e->size, &dat)) { \
|
|
|
|
|
for (l = dat; l; l = l->next) { \
|
|
|
|
@ -67,8 +69,8 @@ free(data); |
|
|
|
|
} \
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
#define SEND_STRING_INT_LIST(__list, __typ1, __v1, __v2, HANDLER) \ |
|
|
|
|
case HANDLER: { \
|
|
|
|
|
#define SEND_STRING_INT_LIST(__list, __typ1, __v1, __v2, HDL) \ |
|
|
|
|
case HDL: { \
|
|
|
|
|
Evas_List *dat = NULL, *l; \
|
|
|
|
|
void *data; int bytes; \
|
|
|
|
|
for (l = e_module_list(); l; l = l->next) { \
|
|
|
|
@ -85,8 +87,8 @@ free(data); |
|
|
|
|
} \
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
#define SEND_STRING(__str, __op, HANDLER) \ |
|
|
|
|
case HANDLER: { void *data; int bytes; \
|
|
|
|
|
#define SEND_STRING(__str, __op, HDL) \ |
|
|
|
|
case HDL: { void *data; int bytes; \
|
|
|
|
|
data = e_ipc_codec_str_enc(__str, &bytes); \
|
|
|
|
|
if (data) { \
|
|
|
|
|
ecore_ipc_client_send(e->client, E_IPC_DOMAIN_REPLY, __op, 0, 0, 0, data, bytes); \
|
|
|
|
@ -104,8 +106,8 @@ break; |
|
|
|
|
|
|
|
|
|
#define FOR(__start) \ |
|
|
|
|
for (l = __start; l; l = l->next) |
|
|
|
|
#define GENERIC(HANDLER) \ |
|
|
|
|
case HANDLER: { |
|
|
|
|
#define GENERIC(HDL) \ |
|
|
|
|
case HDL: { |
|
|
|
|
|
|
|
|
|
#define END_GENERIC() \ |
|
|
|
|
} \
|
|
|
|
@ -138,7 +140,7 @@ break; |
|
|
|
|
/* what a handler looks like
|
|
|
|
|
*
|
|
|
|
|
* E_REMOTE_OPTIONS |
|
|
|
|
* (opt, num_params, description, num_expected_replies, HANDLER), |
|
|
|
|
* OP(opt, num_params, description, num_expected_replies, HDL) |
|
|
|
|
* E_REMOTE_OUT |
|
|
|
|
* ... |
|
|
|
|
* E_WM_IN |
|
|
|
@ -156,13 +158,13 @@ break; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/****************************************************************************/ |
|
|
|
|
#define HANDLER E_IPC_OP_MODULE_LOAD |
|
|
|
|
#define HDL E_IPC_OP_MODULE_LOAD |
|
|
|
|
#if (TYPE == E_REMOTE_OPTIONS) |
|
|
|
|
{"-module-load", 1, "Loads the module named 'OPT1' into memory", 0, HANDLER}, |
|
|
|
|
OP("-module-load", 1, "Loads the module named 'OPT1' into memory", 0, HDL) |
|
|
|
|
#elif (TYPE == E_REMOTE_OUT) |
|
|
|
|
REQ_STRING(params[0], HANDLER); |
|
|
|
|
REQ_STRING(params[0], HDL); |
|
|
|
|
#elif (TYPE == E_WM_IN) |
|
|
|
|
STRING(s, HANDLER); |
|
|
|
|
STRING(s, HDL); |
|
|
|
|
if (!e_module_find(s)) { |
|
|
|
|
e_module_new(s); |
|
|
|
|
SAVE; |
|
|
|
@ -170,16 +172,16 @@ break; |
|
|
|
|
END_STRING(s); |
|
|
|
|
#elif (TYPE == E_REMOTE_IN) |
|
|
|
|
#endif |
|
|
|
|
#undef HANDLER |
|
|
|
|
#undef HDL |
|
|
|
|
|
|
|
|
|
/****************************************************************************/ |
|
|
|
|
#define HANDLER E_IPC_OP_MODULE_UNLOAD |
|
|
|
|
#define HDL E_IPC_OP_MODULE_UNLOAD |
|
|
|
|
#if (TYPE == E_REMOTE_OPTIONS) |
|
|
|
|
{"-module-unload", 1, "Unloads the module named 'OPT1' from memory", 0, HANDLER}, |
|
|
|
|
OP("-module-unload", 1, "Unloads the module named 'OPT1' from memory", 0, HDL) |
|
|
|
|
#elif (TYPE == E_REMOTE_OUT) |
|
|
|
|
REQ_STRING(params[0], HANDLER); |
|
|
|
|
REQ_STRING(params[0], HDL); |
|
|
|
|
#elif (TYPE == E_WM_IN) |
|
|
|
|
STRING(s, HANDLER); |
|
|
|
|
STRING(s, HDL); |
|
|
|
|
E_Module *m; |
|
|
|
|
if ((m = e_module_find(s))) { |
|
|
|
|
e_module_disable(m); |
|
|
|
@ -189,16 +191,16 @@ break; |
|
|
|
|
END_STRING(s); |
|
|
|
|
#elif (TYPE == E_REMOTE_IN) |
|
|
|
|
#endif |
|
|
|
|
#undef HANDLER |
|
|
|
|
#undef HDL |
|
|
|
|
|
|
|
|
|
/****************************************************************************/ |
|
|
|
|
#define HANDLER E_IPC_OP_MODULE_ENABLE |
|
|
|
|
#define HDL E_IPC_OP_MODULE_ENABLE |
|
|
|
|
#if (TYPE == E_REMOTE_OPTIONS) |
|
|
|
|
{"-module-enable", 1, "Enable the module named 'OPT1'", 0, HANDLER}, |
|
|
|
|
OP("-module-enable", 1, "Enable the module named 'OPT1'", 0, HDL) |
|
|
|
|
#elif (TYPE == E_REMOTE_OUT) |
|
|
|
|
REQ_STRING(params[0], HANDLER); |
|
|
|
|
REQ_STRING(params[0], HDL); |
|
|
|
|
#elif (TYPE == E_WM_IN) |
|
|
|
|
STRING(s, HANDLER); |
|
|
|
|
STRING(s, HDL); |
|
|
|
|
E_Module *m; |
|
|
|
|
if ((m = e_module_find(s))) { |
|
|
|
|
e_module_enable(m); |
|
|
|
@ -207,16 +209,16 @@ break; |
|
|
|
|
END_STRING(s); |
|
|
|
|
#elif (TYPE == E_REMOTE_IN) |
|
|
|
|
#endif |
|
|
|
|
#undef HANDLER |
|
|
|
|
#undef HDL |
|
|
|
|
|
|
|
|
|
/****************************************************************************/ |
|
|
|
|
#define HANDLER E_IPC_OP_MODULE_DISABLE |
|
|
|
|
#define HDL E_IPC_OP_MODULE_DISABLE |
|
|
|
|
#if (TYPE == E_REMOTE_OPTIONS) |
|
|
|
|
{"-module-disable", 1, "Disable the module named 'OPT1'", 0, HANDLER}, |
|
|
|
|
OP("-module-disable", 1, "Disable the module named 'OPT1'", 0, HDL) |
|
|
|
|
#elif (TYPE == E_REMOTE_OUT) |
|
|
|
|
REQ_STRING(params[0], HANDLER); |
|
|
|
|
REQ_STRING(params[0], HDL); |
|
|
|
|
#elif (TYPE == E_WM_IN) |
|
|
|
|
STRING(s, HANDLER); |
|
|
|
|
STRING(s, HDL); |
|
|
|
|
E_Module *m; |
|
|
|
|
if ((m = e_module_find(s))) { |
|
|
|
|
e_module_disable(m); |
|
|
|
@ -225,43 +227,43 @@ break; |
|
|
|
|
END_STRING(s); |
|
|
|
|
#elif (TYPE == E_REMOTE_IN) |
|
|
|
|
#endif |
|
|
|
|
#undef HANDLER |
|
|
|
|
#undef HDL |
|
|
|
|
|
|
|
|
|
/****************************************************************************/ |
|
|
|
|
#define HANDLER E_IPC_OP_MODULE_LIST |
|
|
|
|
#define HDL E_IPC_OP_MODULE_LIST |
|
|
|
|
#if (TYPE == E_REMOTE_OPTIONS) |
|
|
|
|
{"-module-list", 0, "List all loaded modules", 1, HANDLER}, |
|
|
|
|
OP("-module-list", 0, "List all loaded modules", 1, HDL) |
|
|
|
|
#elif (TYPE == E_REMOTE_OUT) |
|
|
|
|
REQ_NULL(HANDLER); |
|
|
|
|
REQ_NULL(HDL); |
|
|
|
|
#elif (TYPE == E_WM_IN) |
|
|
|
|
SEND_STRING_INT_LIST(e_module_list(), E_Module, mod, v, HANDLER); |
|
|
|
|
SEND_STRING_INT_LIST(e_module_list(), E_Module, mod, v, HDL); |
|
|
|
|
v->str = mod->name; |
|
|
|
|
v->val = mod->enabled; |
|
|
|
|
END_SEND_STRING_INT_LIST(v, E_IPC_OP_MODULE_LIST_REPLY); |
|
|
|
|
#elif (TYPE == E_REMOTE_IN) |
|
|
|
|
#endif |
|
|
|
|
#undef HANDLER |
|
|
|
|
#undef HDL |
|
|
|
|
|
|
|
|
|
/****************************************************************************/ |
|
|
|
|
#define HANDLER E_IPC_OP_MODULE_LIST_REPLY |
|
|
|
|
#define HDL E_IPC_OP_MODULE_LIST_REPLY |
|
|
|
|
#if (TYPE == E_REMOTE_OPTIONS) |
|
|
|
|
#elif (TYPE == E_REMOTE_OUT) |
|
|
|
|
#elif (TYPE == E_WM_IN) |
|
|
|
|
#elif (TYPE == E_REMOTE_IN) |
|
|
|
|
STRING_INT_LIST(v, HANDLER); |
|
|
|
|
STRING_INT_LIST(v, HDL); |
|
|
|
|
printf("REPLY: \"%s\" ENABLED %i\n", v->str, v->val); |
|
|
|
|
END_STRING_INT_LIST(v); |
|
|
|
|
#endif |
|
|
|
|
#undef HANDLER |
|
|
|
|
#undef HDL |
|
|
|
|
|
|
|
|
|
/****************************************************************************/ |
|
|
|
|
#define HANDLER E_IPC_OP_BG_SET |
|
|
|
|
#define HDL E_IPC_OP_BG_SET |
|
|
|
|
#if (TYPE == E_REMOTE_OPTIONS) |
|
|
|
|
{"-default-bg-set", 1, "Set the default background edje to the desktop background in the file 'OPT1' (must be a full path)", 0, HANDLER}, |
|
|
|
|
OP("-default-bg-set", 1, "Set the default background edje to the desktop background in the file 'OPT1' (must be a full path)", 0, HDL) |
|
|
|
|
#elif (TYPE == E_REMOTE_OUT) |
|
|
|
|
REQ_STRING(params[0], HANDLER); |
|
|
|
|
REQ_STRING(params[0], HDL); |
|
|
|
|
#elif (TYPE == E_WM_IN) |
|
|
|
|
STRING(s, HANDLER); |
|
|
|
|
STRING(s, HDL); |
|
|
|
|
Evas_List *l, *ll; |
|
|
|
|
E_Manager *man; |
|
|
|
|
E_Container *con; |
|
|
|
@ -280,40 +282,40 @@ break; |
|
|
|
|
END_STRING(s); |
|
|
|
|
#elif (TYPE == E_REMOTE_IN) |
|
|
|
|
#endif |
|
|
|
|
#undef HANDLER |
|
|
|
|
#undef HDL |
|
|
|
|
|
|
|
|
|
/****************************************************************************/ |
|
|
|
|
#define HANDLER E_IPC_OP_BG_GET |
|
|
|
|
#define HDL E_IPC_OP_BG_GET |
|
|
|
|
#if (TYPE == E_REMOTE_OPTIONS) |
|
|
|
|
{"-default-bg-get", 0, "Get the default background edje file path", 1, HANDLER}, |
|
|
|
|
OP("-default-bg-get", 0, "Get the default background edje file path", 1, HDL) |
|
|
|
|
#elif (TYPE == E_REMOTE_OUT) |
|
|
|
|
REQ_NULL(HANDLER); |
|
|
|
|
REQ_NULL(HDL); |
|
|
|
|
#elif (TYPE == E_WM_IN) |
|
|
|
|
SEND_STRING(e_config->desktop_default_background, E_IPC_OP_MODULE_LIST_REPLY, HANDLER); |
|
|
|
|
SEND_STRING(e_config->desktop_default_background, E_IPC_OP_MODULE_LIST_REPLY, HDL); |
|
|
|
|
#elif (TYPE == E_REMOTE_IN) |
|
|
|
|
#endif |
|
|
|
|
#undef HANDLER |
|
|
|
|
#undef HDL |
|
|
|
|
|
|
|
|
|
/****************************************************************************/ |
|
|
|
|
#define HANDLER E_IPC_OP_BG_GET_REPLY |
|
|
|
|
#define HDL E_IPC_OP_BG_GET_REPLY |
|
|
|
|
#if (TYPE == E_REMOTE_OPTIONS) |
|
|
|
|
#elif (TYPE == E_REMOTE_OUT) |
|
|
|
|
#elif (TYPE == E_WM_IN) |
|
|
|
|
#elif (TYPE == E_REMOTE_IN) |
|
|
|
|
STRING(s, HANDLER); |
|
|
|
|
STRING(s, HDL); |
|
|
|
|
printf("REPLY: \"%s\"\n", s); |
|
|
|
|
END_STRING(s); |
|
|
|
|
#endif |
|
|
|
|
#undef HANDLER |
|
|
|
|
#undef HDL |
|
|
|
|
|
|
|
|
|
/****************************************************************************/ |
|
|
|
|
#define HANDLER E_IPC_OP_FONT_AVAILABLE_LIST |
|
|
|
|
#define HDL E_IPC_OP_FONT_AVAILABLE_LIST |
|
|
|
|
#if (TYPE == E_REMOTE_OPTIONS) |
|
|
|
|
{"-font-available-list", 0, "List all available fonts", 1, HANDLER}, |
|
|
|
|
OP("-font-available-list", 0, "List all available fonts", 1, HDL) |
|
|
|
|
#elif (TYPE == E_REMOTE_OUT) |
|
|
|
|
REQ_NULL(HANDLER); |
|
|
|
|
REQ_NULL(HDL); |
|
|
|
|
#elif (TYPE == E_WM_IN) |
|
|
|
|
GENERIC(HANDLER); |
|
|
|
|
GENERIC(HDL); |
|
|
|
|
LIST_DATA(); |
|
|
|
|
E_Font_Available *fa; |
|
|
|
|
Evas_List *fa_list; |
|
|
|
@ -328,15 +330,15 @@ break; |
|
|
|
|
END_GENERIC(); |
|
|
|
|
#elif (TYPE == E_REMOTE_IN) |
|
|
|
|
#endif |
|
|
|
|
#undef HANDLER |
|
|
|
|
#undef HDL |
|
|
|
|
|
|
|
|
|
/****************************************************************************/ |
|
|
|
|
#define HANDLER E_IPC_OP_FONT_AVAILABLE_LIST_REPLY |
|
|
|
|
#define HDL E_IPC_OP_FONT_AVAILABLE_LIST_REPLY |
|
|
|
|
#if (TYPE == E_REMOTE_OPTIONS) |
|
|
|
|
#elif (TYPE == E_REMOTE_OUT) |
|
|
|
|
#elif (TYPE == E_WM_IN) |
|
|
|
|
#elif (TYPE == E_REMOTE_IN) |
|
|
|
|
GENERIC(HANDLER); |
|
|
|
|
GENERIC(HDL); |
|
|
|
|
LIST(); |
|
|
|
|
DECODE(e_ipc_codec_str_list_dec) { |
|
|
|
|
FOR(dat) { |
|
|
|
@ -346,8 +348,37 @@ break; |
|
|
|
|
} |
|
|
|
|
END_GENERIC(); |
|
|
|
|
#endif |
|
|
|
|
#undef HANDLER |
|
|
|
|
|
|
|
|
|
#undef HDL |
|
|
|
|
|
|
|
|
|
/****************************************************************************/ |
|
|
|
|
#define HDL E_IPC_OP_FONT_APPLY |
|
|
|
|
#if (TYPE == E_REMOTE_OPTIONS) |
|
|
|
|
OP("-font-apply", 0, "Apply font settings changes", 0, HDL) |
|
|
|
|
#elif (TYPE == E_REMOTE_OUT) |
|
|
|
|
#elif (TYPE == E_WM_IN) |
|
|
|
|
GENERIC(HDL); |
|
|
|
|
e_font_apply(); |
|
|
|
|
SAVE; |
|
|
|
|
END_GENERIC(); |
|
|
|
|
#elif (TYPE == E_REMOTE_IN) |
|
|
|
|
#endif |
|
|
|
|
#undef HDL |
|
|
|
|
|
|
|
|
|
/****************************************************************************/ |
|
|
|
|
#define HDL E_IPC_OP_FONT_FALLBACK_CLEAR |
|
|
|
|
#if (TYPE == E_REMOTE_OPTIONS) |
|
|
|
|
OP("-font-fallback-clear", 0, "Clear list of fallback fonts", 0, HDL) |
|
|
|
|
#elif (TYPE == E_REMOTE_OUT) |
|
|
|
|
#elif (TYPE == E_WM_IN) |
|
|
|
|
GENERIC(HDL); |
|
|
|
|
e_font_fallback_clear(); |
|
|
|
|
SAVE; |
|
|
|
|
END_GENERIC(); |
|
|
|
|
#elif (TYPE == E_REMOTE_IN) |
|
|
|
|
#endif |
|
|
|
|
#undef HDL |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|