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);
|
||||
}
|
||||
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
|
||||
#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_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_Dirs_List E_Response_Background_Dirs_List;
|
||||
typedef struct _E_Response_Theme_Dirs_List E_Response_Theme_Dirs_List;
|
||||
|
||||
struct _E_Response_Module_List
|
||||
{
|
||||
|
@ -39,7 +37,7 @@ struct _E_Response_Module_Data
|
|||
char enabled;
|
||||
};
|
||||
|
||||
struct _E_Response_Module_Dirs_List
|
||||
struct _E_Response_Dirs_List
|
||||
{
|
||||
char **dirs;
|
||||
int count;
|
||||
|
@ -50,18 +48,6 @@ struct _E_Response_Background_Get
|
|||
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_BACKGROUND_GET;
|
||||
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;
|
||||
|
||||
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_DIRS_LIST = 0;
|
||||
//int E_RESPONSE_THEME_DIRS_LIST = 0;
|
||||
int E_RESPONSE_BACKGROUND_DIRS_LIST = 0;
|
||||
int E_RESPONSE_THEME_DIRS_LIST = 0;
|
||||
|
||||
/*
|
||||
* initialise connection to the current E running on "display".
|
||||
|
@ -140,10 +140,10 @@ e_init(const char* display)
|
|||
if (!E_RESPONSE_MODULE_LIST)
|
||||
{
|
||||
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_DIRS_LIST = ecore_event_type_new();
|
||||
// E_RESPONSE_THEME_DIRS_LIST = ecore_event_type_new();
|
||||
E_RESPONSE_BACKGROUND_DIRS_LIST = ecore_event_type_new();
|
||||
E_RESPONSE_THEME_DIRS_LIST = ecore_event_type_new();
|
||||
}
|
||||
|
||||
if (free_disp)
|
||||
|
@ -211,9 +211,8 @@ e_module_list(void)
|
|||
void
|
||||
e_module_dirs_list(void)
|
||||
{
|
||||
// ecore_ipc_server_send(_e_ipc_server, E_IPC_DOMAIN_REQUEST,
|
||||
// E_IPC_OP_MODULE_DIRS_LIST, 0/*ref*/, 0/*ref_to*/,
|
||||
// 0/*response*/, NULL, 0);
|
||||
char *type = "modules";
|
||||
_e_ipc_call(E_IPC_OP_DIRS_LIST, &type);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -234,21 +233,17 @@ e_background_get(void)
|
|||
void
|
||||
e_background_dirs_list(void)
|
||||
{
|
||||
// ecore_ipc_server_send(_e_ipc_server, E_IPC_DOMAIN_REQUEST,
|
||||
// E_IPC_OP_BG_DIRS_LIST, 0/*ref*/,
|
||||
// 0/*ref_to*/, 0/*response*/, NULL, 0);
|
||||
char *type = "backgrounds";
|
||||
_e_ipc_call(E_IPC_OP_DIRS_LIST, &type);
|
||||
}
|
||||
|
||||
void
|
||||
e_theme_dirs_list(void)
|
||||
{
|
||||
// ecore_ipc_server_send(_e_ipc_server, E_IPC_DOMAIN_REQUEST,
|
||||
// E_IPC_OP_THEME_DIRS_LIST, 0/*ref*/,
|
||||
// 0/*ref_to*/, 0/*response*/, NULL, 0);
|
||||
char *type = "themes";
|
||||
_e_ipc_call(E_IPC_OP_DIRS_LIST, &type);
|
||||
}
|
||||
|
||||
//static int reply_count = 0;
|
||||
|
||||
static int
|
||||
_e_ipc_init(const char *display)
|
||||
{
|
||||
|
@ -330,117 +325,6 @@ _e_cb_server_data(void *data __UNUSED__, int type, void *event)
|
|||
default:
|
||||
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)
|
||||
|
@ -458,29 +342,9 @@ static void _e_cb_module_list_free(void *data __UNUSED__, void *ev)
|
|||
}
|
||||
|
||||
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 = 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_Response_Dirs_List *e;
|
||||
|
||||
e = ev;
|
||||
free(e->dirs);
|
||||
|
|
Loading…
Reference in New Issue