Port the dirs_list IPC to libe - now up to the functionality it was before IPC changes
SVN revision: 15093
This commit is contained in:
parent
d123ead829
commit
1e6c395c55
|
@ -517,6 +517,52 @@ break;
|
||||||
FREE_LIST(dat);
|
FREE_LIST(dat);
|
||||||
}
|
}
|
||||||
END_GENERIC();
|
END_GENERIC();
|
||||||
|
#elif (TYPE == E_LIB_IN)
|
||||||
|
GENERIC(HDL);
|
||||||
|
LIST();
|
||||||
|
DECODE(e_ipc_codec_str_list_dec) {
|
||||||
|
int count;
|
||||||
|
char *p, *type;
|
||||||
|
int res;
|
||||||
|
RESPONSE(r, E_Response_Dirs_List, HDL);
|
||||||
|
|
||||||
|
/* FIXME - this is a mess, needs to be merged into macros... */
|
||||||
|
count = evas_list_count(dat);
|
||||||
|
r->dirs = malloc(sizeof(char *) * count);
|
||||||
|
r->count = count - 1; /* leave off the "type" */
|
||||||
|
|
||||||
|
count = 0;
|
||||||
|
FOR(dat) {
|
||||||
|
if (dat == l)
|
||||||
|
type = l->data;
|
||||||
|
else {
|
||||||
|
r->dirs[count] = l->data;
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("TYPE %s\n", type);
|
||||||
|
if (!strcmp(type, "data"))
|
||||||
|
res = 0;
|
||||||
|
else if (!strcmp(type, "images"))
|
||||||
|
res = 0;
|
||||||
|
else if (!strcmp(type, "fonts"))
|
||||||
|
res = 0;
|
||||||
|
else if (!strcmp(type, "themes"))
|
||||||
|
res = E_RESPONSE_THEME_DIRS_LIST;
|
||||||
|
else if (!strcmp(type, "init"))
|
||||||
|
res = 0;
|
||||||
|
else if (!strcmp(type, "icons"))
|
||||||
|
res = 0;
|
||||||
|
else if (!strcmp(type, "modules"))
|
||||||
|
res = E_RESPONSE_MODULE_DIRS_LIST;
|
||||||
|
else if (!strcmp(type, "backgrounds"))
|
||||||
|
res = E_RESPONSE_BACKGROUND_DIRS_LIST;
|
||||||
|
printf("RES %d\n");
|
||||||
|
END_RESPONSE(r, res); /* FIXME - need a custom free */
|
||||||
|
}
|
||||||
|
END_GENERIC();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#undef HDL
|
#undef HDL
|
||||||
|
|
||||||
|
|
18
src/lib/E.h
18
src/lib/E.h
|
@ -22,10 +22,8 @@
|
||||||
|
|
||||||
typedef struct _E_Response_Module_List E_Response_Module_List;
|
typedef struct _E_Response_Module_List E_Response_Module_List;
|
||||||
typedef struct _E_Response_Module_Data E_Response_Module_Data;
|
typedef struct _E_Response_Module_Data E_Response_Module_Data;
|
||||||
typedef struct _E_Response_Module_Dirs_List E_Response_Module_Dirs_List;
|
typedef struct _E_Response_Dirs_List E_Response_Dirs_List;
|
||||||
typedef struct _E_Response_Background_Get E_Response_Background_Get;
|
typedef struct _E_Response_Background_Get E_Response_Background_Get;
|
||||||
typedef struct _E_Response_Background_Dirs_List E_Response_Background_Dirs_List;
|
|
||||||
typedef struct _E_Response_Theme_Dirs_List E_Response_Theme_Dirs_List;
|
|
||||||
|
|
||||||
struct _E_Response_Module_List
|
struct _E_Response_Module_List
|
||||||
{
|
{
|
||||||
|
@ -39,7 +37,7 @@ struct _E_Response_Module_Data
|
||||||
char enabled;
|
char enabled;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _E_Response_Module_Dirs_List
|
struct _E_Response_Dirs_List
|
||||||
{
|
{
|
||||||
char **dirs;
|
char **dirs;
|
||||||
int count;
|
int count;
|
||||||
|
@ -50,18 +48,6 @@ struct _E_Response_Background_Get
|
||||||
char *file;
|
char *file;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _E_Response_Background_Dirs_List
|
|
||||||
{
|
|
||||||
char **dirs;
|
|
||||||
int count;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _E_Response_Theme_Dirs_List
|
|
||||||
{
|
|
||||||
char **dirs;
|
|
||||||
int count;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern EAPI int E_RESPONSE_MODULE_LIST;
|
extern EAPI int E_RESPONSE_MODULE_LIST;
|
||||||
extern EAPI int E_RESPONSE_BACKGROUND_GET;
|
extern EAPI int E_RESPONSE_BACKGROUND_GET;
|
||||||
extern EAPI int E_RESPONSE_MODULE_DIRS_LIST;
|
extern EAPI int E_RESPONSE_MODULE_DIRS_LIST;
|
||||||
|
|
164
src/lib/e_main.c
164
src/lib/e_main.c
|
@ -63,10 +63,10 @@ static void _e_cb_theme_dir_list_free(void *data __UNUSED__, void *ev);
|
||||||
static Ecore_Ipc_Server *_e_ipc_server = NULL;
|
static Ecore_Ipc_Server *_e_ipc_server = NULL;
|
||||||
|
|
||||||
int E_RESPONSE_MODULE_LIST = 0;
|
int E_RESPONSE_MODULE_LIST = 0;
|
||||||
//int E_RESPONSE_MODULE_DIRS_LIST = 0;
|
int E_RESPONSE_MODULE_DIRS_LIST = 0;
|
||||||
int E_RESPONSE_BACKGROUND_GET = 0;
|
int E_RESPONSE_BACKGROUND_GET = 0;
|
||||||
//int E_RESPONSE_BACKGROUND_DIRS_LIST = 0;
|
int E_RESPONSE_BACKGROUND_DIRS_LIST = 0;
|
||||||
//int E_RESPONSE_THEME_DIRS_LIST = 0;
|
int E_RESPONSE_THEME_DIRS_LIST = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* initialise connection to the current E running on "display".
|
* initialise connection to the current E running on "display".
|
||||||
|
@ -140,10 +140,10 @@ e_init(const char* display)
|
||||||
if (!E_RESPONSE_MODULE_LIST)
|
if (!E_RESPONSE_MODULE_LIST)
|
||||||
{
|
{
|
||||||
E_RESPONSE_MODULE_LIST = ecore_event_type_new();
|
E_RESPONSE_MODULE_LIST = ecore_event_type_new();
|
||||||
// E_RESPONSE_MODULE_DIRS_LIST = ecore_event_type_new();
|
E_RESPONSE_MODULE_DIRS_LIST = ecore_event_type_new();
|
||||||
E_RESPONSE_BACKGROUND_GET = ecore_event_type_new();
|
E_RESPONSE_BACKGROUND_GET = ecore_event_type_new();
|
||||||
// E_RESPONSE_BACKGROUND_DIRS_LIST = ecore_event_type_new();
|
E_RESPONSE_BACKGROUND_DIRS_LIST = ecore_event_type_new();
|
||||||
// E_RESPONSE_THEME_DIRS_LIST = ecore_event_type_new();
|
E_RESPONSE_THEME_DIRS_LIST = ecore_event_type_new();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (free_disp)
|
if (free_disp)
|
||||||
|
@ -211,9 +211,8 @@ e_module_list(void)
|
||||||
void
|
void
|
||||||
e_module_dirs_list(void)
|
e_module_dirs_list(void)
|
||||||
{
|
{
|
||||||
// ecore_ipc_server_send(_e_ipc_server, E_IPC_DOMAIN_REQUEST,
|
char *type = "modules";
|
||||||
// E_IPC_OP_MODULE_DIRS_LIST, 0/*ref*/, 0/*ref_to*/,
|
_e_ipc_call(E_IPC_OP_DIRS_LIST, &type);
|
||||||
// 0/*response*/, NULL, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -234,21 +233,17 @@ e_background_get(void)
|
||||||
void
|
void
|
||||||
e_background_dirs_list(void)
|
e_background_dirs_list(void)
|
||||||
{
|
{
|
||||||
// ecore_ipc_server_send(_e_ipc_server, E_IPC_DOMAIN_REQUEST,
|
char *type = "backgrounds";
|
||||||
// E_IPC_OP_BG_DIRS_LIST, 0/*ref*/,
|
_e_ipc_call(E_IPC_OP_DIRS_LIST, &type);
|
||||||
// 0/*ref_to*/, 0/*response*/, NULL, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_theme_dirs_list(void)
|
e_theme_dirs_list(void)
|
||||||
{
|
{
|
||||||
// ecore_ipc_server_send(_e_ipc_server, E_IPC_DOMAIN_REQUEST,
|
char *type = "themes";
|
||||||
// E_IPC_OP_THEME_DIRS_LIST, 0/*ref*/,
|
_e_ipc_call(E_IPC_OP_DIRS_LIST, &type);
|
||||||
// 0/*ref_to*/, 0/*response*/, NULL, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//static int reply_count = 0;
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_e_ipc_init(const char *display)
|
_e_ipc_init(const char *display)
|
||||||
{
|
{
|
||||||
|
@ -330,117 +325,6 @@ _e_cb_server_data(void *data __UNUSED__, int type, void *event)
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
Ecore_Ipc_Event_Server_Data *e;
|
|
||||||
|
|
||||||
e = event;
|
|
||||||
|
|
||||||
type = E_IPC_OP_MODULE_LIST;
|
|
||||||
switch (e->minor)
|
|
||||||
{
|
|
||||||
|
|
||||||
case E_IPC_OP_MODULE_DIRS_LIST_REPLY:
|
|
||||||
if (e->data)
|
|
||||||
{
|
|
||||||
E_Response_Module_Dirs_List *res;
|
|
||||||
int count = 0;
|
|
||||||
char *p;
|
|
||||||
|
|
||||||
res = calloc(1, sizeof(E_Response_Module_Dirs_List));
|
|
||||||
|
|
||||||
p = e->data;
|
|
||||||
while (p < (char *)(e->data + e->size))
|
|
||||||
{
|
|
||||||
p += strlen(p) + 1;
|
|
||||||
count ++;
|
|
||||||
}
|
|
||||||
|
|
||||||
res->dirs = malloc(sizeof(char *) * count);
|
|
||||||
res->count = count;
|
|
||||||
|
|
||||||
count = 0;
|
|
||||||
p = e->data;
|
|
||||||
while (p < (char *)(e->data + e->size))
|
|
||||||
{
|
|
||||||
res->dirs[count] = p;
|
|
||||||
p += strlen(res->dirs[count]) + 1;
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
ecore_event_add(E_RESPONSE_MODULE_DIRS_LIST, res,
|
|
||||||
_e_cb_module_dir_list_free, NULL);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case E_IPC_OP_BG_DIRS_LIST_REPLY:
|
|
||||||
if (e->data)
|
|
||||||
{
|
|
||||||
E_Response_Background_Dirs_List *res;
|
|
||||||
char *p;
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
res = calloc(1, sizeof(E_Response_Background_Dirs_List));
|
|
||||||
|
|
||||||
p = e->data;
|
|
||||||
while (p < (char *)(e->data + e->size))
|
|
||||||
{
|
|
||||||
p += strlen(p) + 1;
|
|
||||||
count ++;
|
|
||||||
}
|
|
||||||
|
|
||||||
res->dirs = malloc(sizeof(char *) * count);
|
|
||||||
res->count = count;
|
|
||||||
|
|
||||||
count = 0;
|
|
||||||
p = e->data;
|
|
||||||
while (p < (char *)(e->data + e->size))
|
|
||||||
{
|
|
||||||
res->dirs[count] = p;
|
|
||||||
p += strlen(res->dirs[count]) + 1;
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
ecore_event_add(E_RESPONSE_BACKGROUND_DIRS_LIST, res,
|
|
||||||
_e_cb_bg_dir_list_free, NULL);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case E_IPC_OP_THEME_DIRS_LIST_REPLY:
|
|
||||||
if (e->data)
|
|
||||||
{
|
|
||||||
E_Response_Theme_Dirs_List *res;
|
|
||||||
char *p;
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
res = calloc(1, sizeof(E_Response_Theme_Dirs_List));
|
|
||||||
|
|
||||||
p = e->data;
|
|
||||||
while (p < (char *)(e->data + e->size))
|
|
||||||
{
|
|
||||||
p += strlen(p) + 1;
|
|
||||||
count ++;
|
|
||||||
}
|
|
||||||
|
|
||||||
res->dirs = malloc(sizeof(char *) * count);
|
|
||||||
res->count = count;
|
|
||||||
|
|
||||||
count = 0;
|
|
||||||
p = e->data;
|
|
||||||
while (p < (char *)(e->data + e->size))
|
|
||||||
{
|
|
||||||
res->dirs[count] = p;
|
|
||||||
p += strlen(res->dirs[count]) + 1;
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
ecore_event_add(E_RESPONSE_THEME_DIRS_LIST, res,
|
|
||||||
_e_cb_theme_dir_list_free, NULL);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return 1;*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _e_cb_module_list_free(void *data __UNUSED__, void *ev)
|
static void _e_cb_module_list_free(void *data __UNUSED__, void *ev)
|
||||||
|
@ -458,29 +342,9 @@ static void _e_cb_module_list_free(void *data __UNUSED__, void *ev)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_cb_module_dir_list_free(void *data __UNUSED__, void *ev)
|
_e_cb_dir_list_free(void *data __UNUSED__, void *ev)
|
||||||
{
|
{
|
||||||
E_Response_Module_Dirs_List *e;
|
E_Response_Dirs_List *e;
|
||||||
|
|
||||||
e = ev;
|
|
||||||
free(e->dirs);
|
|
||||||
free(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_e_cb_bg_dir_list_free(void *data __UNUSED__, void *ev)
|
|
||||||
{
|
|
||||||
E_Response_Background_Dirs_List *e;
|
|
||||||
|
|
||||||
e = ev;
|
|
||||||
free(e->dirs);
|
|
||||||
free(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_e_cb_theme_dir_list_free(void *data __UNUSED__, void *ev)
|
|
||||||
{
|
|
||||||
E_Response_Theme_Dirs_List *e;
|
|
||||||
|
|
||||||
e = ev;
|
e = ev;
|
||||||
free(e->dirs);
|
free(e->dirs);
|
||||||
|
|
Loading…
Reference in New Issue