enventor - support data path set in edc compiling
This commit is contained in:
parent
77a9d74817
commit
9cc06885dc
2
README
2
README
|
@ -60,7 +60,7 @@ Ctrl+- = Font Size Down
|
|||
- Command Line Usage:
|
||||
|
||||
enventor --help
|
||||
enventor [input file] [-id image path] [-sd sound path] [-fd font path]
|
||||
enventor [input file] [-id image path] [-sd sound path] [-fd font path] [-dd data path]
|
||||
|
||||
|
||||
* FOR ANY ISSUES PLEASE EMAIL *
|
||||
|
|
|
@ -9,9 +9,11 @@ struct config_s
|
|||
Eina_List *edc_img_path_list;
|
||||
Eina_List *edc_snd_path_list;
|
||||
Eina_List *edc_fnt_path_list;
|
||||
Eina_List *edc_data_path_list;
|
||||
Eina_Strbuf *edc_img_path_buf; //pre-stored image paths for edc compile.
|
||||
Eina_Strbuf *edc_snd_path_buf; //pre-stored sound paths for edc compile.
|
||||
Eina_Strbuf *edc_fnt_path_buf; //pre-stored sound paths for edc compile.
|
||||
Eina_Strbuf *edc_fnt_path_buf; //pre-stored font paths for edc compile.
|
||||
Eina_Strbuf *edc_data_path_buf; //pre-stored data paths for edc compile.
|
||||
|
||||
float font_size;
|
||||
|
||||
|
@ -68,7 +70,8 @@ config_edc_path_set(config_data *cd, const char *edc_path)
|
|||
|
||||
config_data *
|
||||
config_init(const char *edc_path, const char *edc_img_path,
|
||||
const char *edc_snd_path, const char *edc_fnt_path)
|
||||
const char *edc_snd_path, const char *edc_fnt_path,
|
||||
const char *edc_data_path)
|
||||
{
|
||||
config_data *cd = calloc(1, sizeof(config_data));
|
||||
|
||||
|
@ -77,6 +80,7 @@ config_init(const char *edc_path, const char *edc_img_path,
|
|||
config_edc_img_path_set(cd, edc_img_path);
|
||||
config_edc_snd_path_set(cd, edc_snd_path);
|
||||
config_edc_fnt_path_set(cd, edc_fnt_path);
|
||||
config_edc_data_path_set(cd, edc_data_path);
|
||||
|
||||
cd->font_size = 1.0f;
|
||||
cd->linenumber = EINA_TRUE;
|
||||
|
@ -111,9 +115,15 @@ config_term(config_data *cd)
|
|||
eina_stringshare_del(str);
|
||||
eina_list_free(cd->edc_fnt_path_list);
|
||||
|
||||
//free the data paths
|
||||
EINA_LIST_FOREACH(cd->edc_data_path_list, l, str)
|
||||
eina_stringshare_del(str);
|
||||
eina_list_free(cd->edc_data_path_list);
|
||||
|
||||
if (cd->edc_img_path_buf) eina_strbuf_free(cd->edc_img_path_buf);
|
||||
if (cd->edc_snd_path_buf) eina_strbuf_free(cd->edc_snd_path_buf);
|
||||
if (cd->edc_fnt_path_buf) eina_strbuf_free(cd->edc_fnt_path_buf);
|
||||
if (cd->edc_data_path_buf) eina_strbuf_free(cd->edc_data_path_buf);
|
||||
|
||||
free(cd);
|
||||
}
|
||||
|
@ -161,6 +171,49 @@ config_edc_snd_path_set(config_data *cd, const char *edc_snd_path)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
config_edc_data_path_set(config_data *cd, const char *edc_data_path)
|
||||
{
|
||||
//Free the existing paths
|
||||
Eina_List *l;
|
||||
const char *s;
|
||||
EINA_LIST_FOREACH(cd->edc_data_path_list, l, s)
|
||||
eina_stringshare_del(s);
|
||||
cd->edc_data_path_list = eina_list_free(cd->edc_data_path_list);
|
||||
|
||||
if (cd->edc_data_path_buf) eina_strbuf_free(cd->edc_data_path_buf);
|
||||
cd->edc_data_path_buf = eina_strbuf_new();
|
||||
|
||||
//parse paths by ';'
|
||||
const char *lex;
|
||||
Eina_Stringshare *append;
|
||||
|
||||
while(edc_data_path && (strlen(edc_data_path) > 0))
|
||||
{
|
||||
lex = strstr(edc_data_path, ";");
|
||||
if (lex)
|
||||
{
|
||||
append = eina_stringshare_add_length(edc_data_path,
|
||||
(lex - edc_data_path));
|
||||
cd->edc_data_path_list = eina_list_append(cd->edc_data_path_list,
|
||||
append);
|
||||
eina_strbuf_append(cd->edc_data_path_buf, " -fd ");
|
||||
eina_strbuf_append(cd->edc_data_path_buf, append);
|
||||
lex++;
|
||||
}
|
||||
else
|
||||
{
|
||||
append = eina_stringshare_add(edc_data_path);
|
||||
cd->edc_data_path_list = eina_list_append(cd->edc_data_path_list,
|
||||
append);
|
||||
eina_strbuf_append(cd->edc_data_path_buf, " -fd ");
|
||||
eina_strbuf_append(cd->edc_data_path_buf, append);
|
||||
}
|
||||
|
||||
edc_data_path = lex;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
config_edc_fnt_path_set(config_data *cd, const char *edc_fnt_path)
|
||||
{
|
||||
|
@ -265,6 +318,12 @@ config_edc_snd_path_list_get(config_data *cd)
|
|||
return cd->edc_snd_path_list;
|
||||
}
|
||||
|
||||
const Eina_List *
|
||||
config_edc_data_path_list_get(config_data *cd)
|
||||
{
|
||||
return cd->edc_data_path_list;
|
||||
}
|
||||
|
||||
const Eina_List *
|
||||
config_edc_fnt_path_list_get(config_data *cd)
|
||||
{
|
||||
|
@ -285,6 +344,13 @@ config_edc_snd_path_get(config_data *cd)
|
|||
return eina_strbuf_string_get(cd->edc_snd_path_buf);
|
||||
}
|
||||
|
||||
const char *
|
||||
config_edc_data_path_get(config_data *cd)
|
||||
{
|
||||
if (!cd->edc_data_path_buf) return NULL;
|
||||
return eina_strbuf_string_get(cd->edc_data_path_buf);
|
||||
}
|
||||
|
||||
const char *
|
||||
config_edc_fnt_path_get(config_data *cd)
|
||||
{
|
||||
|
|
|
@ -58,12 +58,13 @@ edje_cc_cmd_set(config_data *cd)
|
|||
{
|
||||
Eina_Strbuf *buf = eina_strbuf_new();
|
||||
if (!buf) return EINA_FALSE;
|
||||
eina_strbuf_append_printf(buf, "edje_cc -fastcomp %s %s %s %s %s",
|
||||
eina_strbuf_append_printf(buf, "edje_cc -fastcomp %s %s %s %s %s %s",
|
||||
config_edc_path_get(cd),
|
||||
config_edj_path_get(cd),
|
||||
config_edc_img_path_get(cd),
|
||||
config_edc_snd_path_get(cd),
|
||||
config_edc_fnt_path_get(cd));
|
||||
config_edc_fnt_path_get(cd),
|
||||
config_edc_data_path_get(cd));
|
||||
eina_strbuf_append(buf, " > /dev/null");
|
||||
EDJE_CC_CMD = eina_strbuf_string_steal(buf);
|
||||
eina_strbuf_free(buf);
|
||||
|
@ -387,12 +388,13 @@ config_update_cb(void *data, config_data *cd)
|
|||
|
||||
static void
|
||||
args_dispatch(int argc, char **argv, char *edc_path, char *img_path,
|
||||
char *snd_path, char *fnt_path)
|
||||
char *snd_path, char *fnt_path, char *data_path)
|
||||
{
|
||||
Eina_Bool default_edc = EINA_TRUE;
|
||||
Eina_Bool default_img = EINA_TRUE;
|
||||
Eina_Bool default_snd = EINA_TRUE;
|
||||
Eina_Bool default_fnt = EINA_TRUE;
|
||||
Eina_Bool default_data = EINA_TRUE;
|
||||
|
||||
//No arguments. set defaults
|
||||
if (argc == 1) goto defaults;
|
||||
|
@ -400,7 +402,7 @@ args_dispatch(int argc, char **argv, char *edc_path, char *img_path,
|
|||
//Help
|
||||
if ((argc >=2 ) && !strcmp(argv[1], "--help"))
|
||||
{
|
||||
fprintf(stdout, "Usage: enventor [input file] [-id image path] [-sd sound path] [-fd font path]\n");
|
||||
fprintf(stdout, "Usage: enventor [input file] [-id image path] [-sd sound path] [-fd font path] [-dd data path]\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
@ -434,6 +436,11 @@ args_dispatch(int argc, char **argv, char *edc_path, char *img_path,
|
|||
sprintf(fnt_path, "%s", argv[cur_arg + 1]);
|
||||
default_fnt = EINA_FALSE;
|
||||
}
|
||||
else if (!strcmp("-dd", argv[cur_arg]))
|
||||
{
|
||||
sprintf(data_path, "%s", argv[cur_arg + 1]);
|
||||
default_data = EINA_FALSE;
|
||||
}
|
||||
}
|
||||
cur_arg += 2;
|
||||
}
|
||||
|
@ -443,6 +450,7 @@ defaults:
|
|||
if (default_img) sprintf(img_path, "%s/images", elm_app_data_dir_get());
|
||||
if (default_snd) sprintf(snd_path, "%s/sounds", elm_app_data_dir_get());
|
||||
if (default_fnt) sprintf(fnt_path, "%s/fonts", elm_app_data_dir_get());
|
||||
if (default_data) sprintf(data_path, "%s/data", elm_app_data_dir_get());
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -452,9 +460,11 @@ config_data_set(app_data *ad, int argc, char **argv)
|
|||
char img_path[PATH_MAX];
|
||||
char snd_path[PATH_MAX];
|
||||
char fnt_path[PATH_MAX];
|
||||
char data_path[PATH_MAX];
|
||||
|
||||
args_dispatch(argc, argv, edc_path, img_path, snd_path, fnt_path);
|
||||
config_data *cd = config_init(edc_path, img_path, snd_path, fnt_path);
|
||||
args_dispatch(argc, argv, edc_path, img_path, snd_path, fnt_path, data_path);
|
||||
config_data *cd = config_init(edc_path, img_path, snd_path, fnt_path,
|
||||
data_path);
|
||||
config_update_cb_set(cd, config_update_cb, ad);
|
||||
ad->cd = cd;
|
||||
}
|
||||
|
|
|
@ -1,17 +1,21 @@
|
|||
config_data *config_init(const char *edc_path, const char *edc_img_path,
|
||||
const char *edc_snd_path, const char *edc_fnt_path);
|
||||
const char *edc_snd_path, const char *edc_fnt_path,
|
||||
const char *edc_data_path);
|
||||
void config_term(config_data *cd);
|
||||
const char *config_edc_path_get(config_data *cd);
|
||||
const char *config_edj_path_get(config_data *cd);
|
||||
const char *config_edc_img_path_get(config_data *cd);
|
||||
const char *config_edc_snd_path_get(config_data *cd);
|
||||
const char *config_edc_fnt_path_get(config_data *cd);
|
||||
const char *config_edc_data_path_get(config_data *cd);
|
||||
void config_edc_img_path_set(config_data *cd, const char *edc_img_path);
|
||||
void config_edc_snd_path_set(config_data *cd, const char *edc_snd_path);
|
||||
void config_edc_fnt_path_set(config_data *cd, const char *edc_fnt_path);
|
||||
void config_edc_data_path_set(config_data *cd, const char *edc_fnt_path);
|
||||
const Eina_List *config_edc_img_path_list_get(config_data *cd);
|
||||
const Eina_List *config_edc_snd_path_list_get(config_data *cd);
|
||||
const Eina_List *config_edc_fnt_path_list_get(config_data *cd);
|
||||
const Eina_List *config_edc_data_path_list_get(config_data *cd);
|
||||
void config_update_cb_set(config_data *cd,
|
||||
void (*cb)(void *data, config_data *cd),
|
||||
void *data);
|
||||
|
|
Loading…
Reference in New Issue