summaryrefslogtreecommitdiffstats
path: root/src/procedures.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/procedures.c')
-rw-r--r--src/procedures.c222
1 files changed, 131 insertions, 91 deletions
diff --git a/src/procedures.c b/src/procedures.c
index 916367f..21ef87e 100644
--- a/src/procedures.c
+++ b/src/procedures.c
@@ -120,7 +120,14 @@ static void _container_dict_basic_variant_append(Eldbus_Message_Iter *array, int
eldbus_message_iter_container_close(array, dict); /* } */
}
-static void _get_meta_progress(void *data, const void *key, Eldbus_Message_Iter *var)
+void _meta_progress_free(void *meta EINA_UNUSED, void *data EINA_UNUSED)
+{
+ /* This is a dummy function, we dont' need to free anything, as there was no malloced data.
+ * If however we do not supply this function to ecore_event_add() ecore tries to free
+ * the meta that's not free-able */
+}
+
+static void _meta_progress_get(void *data, const void *key, Eldbus_Message_Iter *var)
{
struct procedure_data *procedure = data;
struct print_data *progress = procedure->meta; /* XXX rename to progress data | check meta_type if it is the correct type. */
@@ -170,11 +177,10 @@ static void _get_meta_progress(void *data, const void *key, Eldbus_Message_Iter
}
free(var_sig);
-
- ecore_event_add(procedure->poll.event, NULL, NULL, NULL);
+ ecore_event_add(procedure->event.type, procedure->meta, &_meta_progress_free, NULL);
}
-static void _get_meta_cur_tar(void *data, const void *key, Eldbus_Message_Iter *var)
+static void _meta_cur_tar_get(void *data, const void *key, Eldbus_Message_Iter *var)
{
struct procedure_data *procedure = data;
struct settings_dial_data *dial_data = procedure->meta;
@@ -201,7 +207,7 @@ static void _get_meta_cur_tar(void *data, const void *key, Eldbus_Message_Iter *
}
free(var_sig);
-// ecore_event_add(procedure->poll.event, dial_data, NULL, NULL);
+// ecore_event_add(procedure->event.type, dial_data, NULL, NULL);
}
static void _on_start_print_ret(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
@@ -269,10 +275,10 @@ void procedure_process_step(struct procedure_data *procedure, struct eulogium_da
return;
/* XXX TODO build 'remember previous screen so we don't redraw the same' */
- EINA_LOG_CRIT("%s", procedure->step_active->key);
+ EINA_LOG_CRIT("processing key %s step %s", procedure->key, procedure->step_active->key);
if (procedure->step_active->step == STEP_FIRMWARE_UPDATE_WRITING) {
procedure_metadata_poll(procedure, EINA_TRUE);
- content = ui_widget_progress(eulogium->navi, procedure);
+ content = ui_widget_progress(eulogium->navi, procedure->meta, &procedure->event);
page_state = PAGE_FIRMWARE;
}
if (procedure->step_active->step == STEP_PRINTING) {
@@ -280,7 +286,7 @@ void procedure_process_step(struct procedure_data *procedure, struct eulogium_da
page_state = PAGE_PRINTING;
}
if (procedure->step_active->step == PROC_WAIT_FOR_CLEANUP) {
- ui_stack_page_invalidate(eulogium->navi, PAGE_PRINTING);
+ ui_stack_page_invalidate(eulogium->navi, PAGE_PRINTING); /* XXX Probably move to process_finished */
content = eulogium_clean_print_bed(eulogium);
}
@@ -288,16 +294,23 @@ void procedure_process_step(struct procedure_data *procedure, struct eulogium_da
return;
navi_item = elm_naviframe_item_simple_push(eulogium->navi, content);
- elm_object_item_data_set(navi_item, (void *)page_state);
+ elm_object_item_data_set(navi_item, (void *)page_state); /* TODO remove? why is this still here */
if (page_state == PAGE_PRINTING)
elm_naviframe_item_pop_cb_set(navi_item, _print_progress_cleanup, eulogium);
}
-void procedure_procedure_finish(struct procedure_data *procedure, struct eulogium_data *eulogium)
+void procedure_process_finish(struct procedure_data *procedure, struct eulogium_data *eulogium)
{
if (!procedure)
return;
-
+
+ EINA_LOG_CRIT("finishing key %s", procedure->key);
+ if (procedure->proc_key == PROC_FIRMWARE_UPDATE) {
+ ui_stack_page_invalidate(eulogium->navi, PAGE_FIRMWARE);
+ ui_stack_pop(eulogium->navi);
+ }
+ if (procedure->proc_key == PROC_PRINT) {
+ };
}
static struct procedure_msg print_msgs[] = {
@@ -493,245 +506,261 @@ static struct procedure_step steps_material_change[] = {
static struct procedure_data procedures[] = {
[PROC_FIRMWARE_UPDATE] = {
.key = _PROC_FIRMWARE_UPDATE,
+ .proc_key = PROC_FIRMWARE_UPDATE,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_progress,
+ .parser = _meta_progress_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_firmware_update,
.step_active = NULL,
.meta = NULL, /* struct progress_data */
- .poll = {
+ .event = {
.in = 0.5,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_PRINT] = {
.key = _PROC_PRINT,
+ .proc_key = PROC_PRINT,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_progress,
+ .parser = _meta_progress_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_print,
.step_active = NULL,
.meta = NULL, /* struct print_data */
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_BED_HEATUP] = {
.key = _PROC_BED_HEATUP,
+ .proc_key = PROC_BED_HEATUP,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_bed_temp_set,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_HOTEND_HEATUP_0] = {
.key = _PROC_HOTEND_HEATUP_0,
+ .proc_key = PROC_HOTEND_HEATUP_0,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_hotend_temp_set,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL
},
},
[PROC_HOTEND_HEATUP_1] = {
.key = _PROC_HOTEND_HEATUP_1,
+ .proc_key = PROC_HOTEND_HEATUP_1,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_hotend_temp_set,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_HOTEND_ACTIVE_SET] = {
.key = _PROC_HOTEND_ACTIVE_SET,
+ .proc_key = PROC_HOTEND_ACTIVE_SET,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_hotend_active_set,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_PRINT_SPEED] = {
.key = _PROC_PRINT_SPEED,
+ .proc_key = PROC_PRINT_SPEED,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_print_speed_set,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_FAN_SPEED] = {
.key = _PROC_FAN_SPEED,
+ .proc_key = PROC_FAN_SPEED,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_fan_speed_set,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_FLOW_RATE] = {
.key = _PROC_FLOW_RATE,
+ .proc_key = PROC_FLOW_RATE,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_flow_rate_set,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_RETRACTION_LENGTH] = {
.key = _PROC_RETRACTION_LENGTH,
+ .proc_key = PROC_RETRACTION_LENGTH,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_retraction_length_set,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_RETRACTION_SPEED] = {
.key = _PROC_RETRACTION_SPEED,
+ .proc_key = PROC_RETRACTION_SPEED,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_retraction_speed_set,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_RETRACTION_ZHOP] = {
.key = _PROC_RETRACTION_ZHOP,
+ .proc_key = PROC_RETRACTION_ZHOP,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_retraction_zhop_set,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_BED_LEVEL_AUTO] = {
.key = _PROC_BED_LEVEL_AUTO,
+ .proc_key = PROC_BED_LEVEL_AUTO,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_bed_level_auto,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_BED_RAISE] = {
.key = _PROC_BED_RAISE,
+ .proc_key = PROC_BED_RAISE,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_bed_raise,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_BED_HOME] = {
.key = _PROC_BED_HOME,
+ .proc_key = PROC_BED_HOME,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_bed_home,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_BED_MOVE] = {
.key = _PROC_BED_MOVE,
+ .proc_key = PROC_BED_MOVE,
.wizard = EINA_FALSE,
.status = PROC_READY,
.parser = NULL,
@@ -740,30 +769,32 @@ static struct procedure_data procedures[] = {
._steps = steps_move,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_HEAD_HOME] = {
.key = _PROC_HEAD_HOME,
+ .proc_key = PROC_HEAD_HOME,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_head_home,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_MATERIAL_MOVE_0] = {
.key = _PROC_MATERIAL_MOVE_0,
+ .proc_key = PROC_MATERIAL_MOVE_0,
.wizard = EINA_FALSE,
.status = PROC_READY,
.parser = NULL,
@@ -772,14 +803,15 @@ static struct procedure_data procedures[] = {
._steps = steps_move,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_MATERIAL_MOVE_1] = {
.key = _PROC_MATERIAL_MOVE_1,
+ .proc_key = PROC_MATERIAL_MOVE_1,
.wizard = EINA_FALSE,
.status = PROC_READY,
.parser = NULL,
@@ -788,94 +820,100 @@ static struct procedure_data procedures[] = {
._steps = steps_move,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_JERK_XY] = {
.key = _PROC_JERK_XY,
+ .proc_key = PROC_JERK_XY,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_jerk_xyz_set,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_JERK_Z] = {
.key = _PROC_JERK_Z,
+ .proc_key = PROC_JERK_Z,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_jerk_xyz_set,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_CURRENT_XY] = {
.key = _PROC_CURRENT_XY,
+ .proc_key = PROC_CURRENT_XY,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_current_xyze_set,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_CURRENT_Z] = {
.key = _PROC_CURRENT_Z,
+ .proc_key = PROC_CURRENT_Z,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_current_xyze_set,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_CURRENT_E] = {
.key = _PROC_CURRENT_E,
+ .proc_key = PROC_CURRENT_E,
.wizard = EINA_FALSE,
.status = PROC_READY,
- .parser = _get_meta_cur_tar,
+ .parser = _meta_cur_tar_get,
.executable = EINA_FALSE,
.available = EINA_FALSE,
._steps = steps_current_xyze_set,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_MATERIAL_UNLOAD] = {
.key = _PROC_MATERIAL_UNLOAD,
+ .proc_key = PROC_MATERIAL_UNLOAD,
.wizard = EINA_TRUE,
.status = PROC_READY,
.parser = NULL,
@@ -884,14 +922,15 @@ static struct procedure_data procedures[] = {
._steps = steps_material_unload,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_MATERIAL_LOAD] = {
.key = _PROC_MATERIAL_LOAD,
+ .proc_key = PROC_MATERIAL_LOAD,
.wizard = EINA_TRUE,
.status = PROC_READY,
.parser = NULL,
@@ -900,14 +939,15 @@ static struct procedure_data procedures[] = {
._steps = steps_material_load,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
[PROC_MATERIAL_CHANGE] = {
.key = _PROC_MATERIAL_CHANGE,
+ .proc_key = PROC_MATERIAL_CHANGE,
.wizard = EINA_TRUE,
.status = PROC_READY,
.parser = NULL,
@@ -916,10 +956,10 @@ static struct procedure_data procedures[] = {
._steps = steps_material_change,
.step_active = NULL,
.meta = NULL,
- .poll = {
+ .event = {
.in = 0.0,
.timer = NULL,
- .event = 0,
+ .type = 0,
},
},
};
@@ -1052,14 +1092,14 @@ Eldbus_Pending *procedure_target_set(const enum procedure_key proc_key)
void procedure_metadata_poll(struct procedure_data *procedure, Eina_Bool polling)
{
if (polling)
- if (procedure->poll.timer)
+ if (procedure->event.timer)
return; /* Timer already running */
- // procedure->poll.timer = ecore_timer_add(procedure->poll.in, procedure->poll.func, procedure);
- if (!procedure->poll.timer) {
+ // procedure->event.timer = ecore_timer_add(procedure->event.in, procedure->event.func, procedure);
+ if (!procedure->event.timer) {
EINA_LOG_CRIT("Unable to create metadata polling timer");
} else {
- if (procedure->poll.timer)
- ecore_timer_del(procedure->poll.timer);
+ if (procedure->event.timer)
+ ecore_timer_del(procedure->event.timer);
else
EINA_LOG_CRIT("Unable to delete non-existing timer");
}
@@ -1092,7 +1132,7 @@ struct procedure_data *procedures_init(Eldbus_Proxy *proxy)
for (i = PROC_NONE; i < PROC_LAST; i++) {
if (procedures[i].key)
- procedures[i].poll.event = ecore_event_type_new();
+ procedures[i].event.type = ecore_event_type_new();
}
/* TODO: we probably should do something here to prepare all procedures and their meta data