From 9e7bd0c75924caa6199ac854d71f627548212710 Mon Sep 17 00:00:00 2001 From: Olliver Schinagl Date: Wed, 29 Jul 2015 15:53:39 +0200 Subject: temp commit --- src/eulogium.c | 64 +++++++++++++++++++++++++++----------------------------- src/eulogium.h | 2 +- src/procedures.c | 17 +++++++++++---- src/ui_widgets.h | 1 + 4 files changed, 46 insertions(+), 38 deletions(-) diff --git a/src/eulogium.c b/src/eulogium.c index d858c41..e34f748 100644 --- a/src/eulogium.c +++ b/src/eulogium.c @@ -2794,67 +2794,65 @@ struct _status_msg { static Eina_Bool _timer_progress_data_update_cb(void *data) { struct eulogium_data *eulogium = data; + struct print_data *progress = eulogium->procedures[PROC_PRINT].meta; static enum printer_status status = -1; static double value = 0; static double time = -1; - procedure_metadata_key_get(PROC_PRINT); - /* XXX This is an ugly hack that doesn't even work to abort the timer, we need to refactor this into something sensible - * Basically we want to stop this time whenever the item gets removed from the stack via the - * clean/free callback. */ - if ((!eulogium->status) && (!eulogium->progress) && (!eulogium->name) && (!eulogium->time)) - return ECORE_CALLBACK_CANCEL; + procedure_metadata_key_get(progress->proc_key); +#if 0 if (eulogium->printer.status != status) { elm_object_text_set(eulogium->status, "TODO (step key)"); if (eulogium->printer.status == COOLING) elm_progressbar_inverted_set(eulogium->progress, EINA_TRUE); status = eulogium->printer.status; } - if (eulogium->print.value != value) { - elm_progressbar_value_set(eulogium->progress, eulogium->print.value); - value = eulogium->print.value; +#endif + if (progress->value != value) { + elm_progressbar_value_set(eulogium->progress, progress->value); + value = progress->value; } - if (eulogium->print.time != time) { + if (progress->time != time) { char buf[255], *str; int_fast32_t time = 0; - if (eulogium->print.time < 1) { + if (progress->time < 1) { str = "Print time unknown"; time = 0; } - if (eulogium->print.time > 0) { + if (progress->time > 0) { str = "Time left: %d second%s"; - time = eulogium->print.time; + time = progress->time; } - if (eulogium->print.time > MINUTE) { + if (progress->time > MINUTE) { str = "Time left: %d minute%s"; - time = eulogium->print.time / MINUTE; + time = progress->time / MINUTE; } - if (eulogium->print.time > HOUR) { + if (progress->time > HOUR) { str = "Time left: %d hour%s"; - time = eulogium->print.time / HOUR; + time = progress->time / HOUR; } - if (eulogium->print.time > DAY) { + if (progress->time > DAY) { str = "Time left: %d day%s"; - time = eulogium->print.time / DAY; + time = progress->time / DAY; } - if (eulogium->print.time > WEEK) { + if (progress->time > WEEK) { str = "Time left: %d week%s"; - time = eulogium->print.time / WEEK; + time = progress->time / WEEK; } - if (eulogium->print.time > MONTH) { + if (progress->time > MONTH) { str = "Time left: %d month%s"; - time = eulogium->print.time / MONTH; + time = progress->time / MONTH; } - if (eulogium->print.time > YEAR) { + if (progress->time > YEAR) { str = "Time left: %d year%s"; - time = eulogium->print.time / YEAR; + time = progress->time / YEAR; } - snprintf(buf, sizeof(buf), str, (int)eulogium->print.time, (time > 1) ? "s" : ""); /* TODO: This won't work with in10 */ + snprintf(buf, sizeof(buf), str, (int)progress->time, (time > 1) ? "s" : ""); /* TODO: This won't work with in10 */ elm_object_text_set(eulogium->time, _(buf)); - eulogium->print.time = time; + progress->time = time; } return ECORE_CALLBACK_RENEW; @@ -2961,7 +2959,7 @@ Evas_Object *eulogium_pre_print(Evas_Object *parent, struct eulogium_data *eulog return eulogium_split_screen(eulogium->navi, _top, _bottom); } -Evas_Object *eulogium_print_progress(Evas_Object *parent, struct eulogium_data *eulogium, const struct print_data *print) /* TODO pass timer var to store timer in */ +Evas_Object *eulogium_print_progress(Evas_Object *parent, struct eulogium_data *eulogium, const struct print_data *progress) /* TODO pass timer var to store timer in */ { Evas_Object *_top, *_bottom; @@ -2995,8 +2993,9 @@ Evas_Object *eulogium_print_progress(Evas_Object *parent, struct eulogium_data * evas_object_show(eulogium->status); elm_box_pack_end(_top, eulogium->status); + printf("jobname: %s\n", progress->jobname); eulogium->name = elm_label_add(_top); - elm_object_text_set(eulogium->name, print->jobname); + elm_object_text_set(eulogium->name, progress->jobname); elm_label_slide_mode_set(eulogium->name, ELM_LABEL_SLIDE_MODE_AUTO); //elm_label_slide_speed_set(object, 2); elm_label_slide_go(eulogium->name); @@ -3009,7 +3008,7 @@ Evas_Object *eulogium_print_progress(Evas_Object *parent, struct eulogium_data * elm_progressbar_horizontal_set(eulogium->progress, EINA_TRUE); elm_progressbar_pulse_set(eulogium->progress, EINA_FALSE); /* TODO: pulse = time-unknown/pause */ elm_progressbar_pulse(eulogium->progress, EINA_FALSE); - elm_progressbar_value_set(eulogium->progress, print->value); + elm_progressbar_value_set(eulogium->progress, progress->value); elm_progressbar_unit_format_set(eulogium->progress, "%1.1f %%"); evas_object_size_hint_align_set(eulogium->progress, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show(eulogium->progress); @@ -3565,8 +3564,8 @@ Evas_Object *eulogium_main_menu(Evas_Object *window, struct eulogium_data *eulog content = eulogium_tripple_button_menu(eulogium->navi, &but_main_print, &but_main_mathot, &but_main_system); ui_stack_push(eulogium->navi, content, PAGE_BOTTOM); /* XXX Test: pop a wizard at the start dev it */ - content = wizard_add(eulogium->navi, &material_unload, 0, EINA_TRUE); - ui_stack_push(eulogium->navi, content, PAGE_WIZARD); +// content = wizard_add(eulogium->navi, &material_unload, 0, EINA_TRUE); +// ui_stack_push(eulogium->navi, content, PAGE_WIZARD); return eulogium->navi; } @@ -4071,7 +4070,6 @@ static void _on_procedure_finished_ret(void *data EINA_UNUSED, const Eldbus_Mess procedure->status = PROC_FINISHED; procedure->step_active = NULL; procedure_process_step(procedure, data); - // XXX procedure_metadata_key_get(key) } static void _on_get_error_ret(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED) diff --git a/src/eulogium.h b/src/eulogium.h index fa11711..61cbaa2 100644 --- a/src/eulogium.h +++ b/src/eulogium.h @@ -85,7 +85,7 @@ Evas_Object *eulogium_tripple_button_menu(Evas_Object *parent, const struct butt Evas_Object *eulogium_dual_button_add(Evas_Object *parent, const struct button_def *left, const struct button_def *right); Evas_Object *eulogium_print_menu(struct eulogium_data *eulogium, char *filepath); Evas_Object *eulogium_print_ignore(struct eulogium_data *eulogium); -Evas_Object *eulogium_print_progress(Evas_Object *parent, struct eulogium_data *eulogium, const struct print_data *print); +Evas_Object *eulogium_print_progress(Evas_Object *parent, struct eulogium_data *eulogium, const struct print_data *progress); Evas_Object *eulogium_pre_print(Evas_Object *parent, struct eulogium_data *eulogium); Evas_Object *eulogium_settings_dial(Evas_Object *parent, struct eulogium_data *eulogium, struct settings_dial_data *dial_data); Evas_Object *eulogium_multi_text_menu(struct eulogium_data *eulogium, Evas_Object *parent, struct button_def *button, struct multi_text *data, const uint_fast8_t pagenum, Eina_Bool pageindex); diff --git a/src/procedures.c b/src/procedures.c index 964e324..916367f 100644 --- a/src/procedures.c +++ b/src/procedures.c @@ -170,7 +170,8 @@ static void _get_meta_progress(void *data, const void *key, Eldbus_Message_Iter } free(var_sig); -// ecore_event_add(procedure->poll.event, progress, NULL, NULL); + + ecore_event_add(procedure->poll.event, NULL, NULL, NULL); } static void _get_meta_cur_tar(void *data, const void *key, Eldbus_Message_Iter *var) @@ -272,7 +273,7 @@ void procedure_process_step(struct procedure_data *procedure, struct eulogium_da if (procedure->step_active->step == STEP_FIRMWARE_UPDATE_WRITING) { procedure_metadata_poll(procedure, EINA_TRUE); content = ui_widget_progress(eulogium->navi, procedure); - page_state = PAGE_NORMAL; + page_state = PAGE_FIRMWARE; } if (procedure->step_active->step == STEP_PRINTING) { content = eulogium_print_progress(eulogium->navi, eulogium, (struct print_data *)procedure->meta); @@ -292,6 +293,13 @@ void procedure_process_step(struct procedure_data *procedure, struct eulogium_da elm_naviframe_item_pop_cb_set(navi_item, _print_progress_cleanup, eulogium); } +void procedure_procedure_finish(struct procedure_data *procedure, struct eulogium_data *eulogium) +{ + if (!procedure) + return; + +} + static struct procedure_msg print_msgs[] = { { .key = _PROC_MSG_PRINTER_CLEANED, @@ -951,7 +959,7 @@ struct procedure_data *procedure_get(const char *key) { enum procedure_key i; - for (i = PROC_PRINT; procedures[i].key; i++) { + for (i = PROC_NONE + 1; procedures[i].key; i++) { if (!strcmp(procedures[i].key, key)) return &procedures[i]; } @@ -1083,7 +1091,8 @@ struct procedure_data *procedures_init(Eldbus_Proxy *proxy) __proxy = proxy; for (i = PROC_NONE; i < PROC_LAST; i++) { - procedures[i].poll.event = ecore_event_type_new(); + if (procedures[i].key) + procedures[i].poll.event = ecore_event_type_new(); } /* TODO: we probably should do something here to prepare all procedures and their meta data diff --git a/src/ui_widgets.h b/src/ui_widgets.h index 2e4fc9d..1620f6c 100644 --- a/src/ui_widgets.h +++ b/src/ui_widgets.h @@ -85,6 +85,7 @@ enum navi_page_state { PAGE_USB, PAGE_FLASH, PAGE_PRINTING, + PAGE_FIRMWARE, PAGE_INVALID, PAGE_ERROR, } _navi_page_state; /* Kind of a hack, to pass a pointer to the enum so we can pass it to functions that only take void* */ -- cgit v0.12