From 170005ba00ab8b1249ecdfcd49301a84513ae3e0 Mon Sep 17 00:00:00 2001 From: Olliver Schinagl Date: Thu, 18 Jun 2015 10:04:31 +0200 Subject: [griffin.hmi] start using procedures to start prints Signed-off-by: Olliver Schinagl --- src/eulogium.c | 76 ++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 53 insertions(+), 23 deletions(-) diff --git a/src/eulogium.c b/src/eulogium.c index 2eb4aa1..ac01673 100644 --- a/src/eulogium.c +++ b/src/eulogium.c @@ -2115,28 +2115,6 @@ Evas_Object *eulogium_generic_error(struct eulogium_data *eulogium, uint8_t eulo return box; } -static void _on_start_print_ret(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED) -{ - struct eulogium_data *eulogium = data; - const char *errname, *errmsg; - Eina_Bool print_started = EINA_FALSE; - - if (eldbus_message_error_get(msg, &errname, &errmsg)) { - EINA_LOG_ERR("%s %s", errname, errmsg); - return; - } - if (!eldbus_message_arguments_get(msg, "b", &print_started)) { - EINA_LOG_ERR("Failed to start print."); - return; - } - if (print_started == EINA_TRUE) { - EINA_LOG_INFO("Print has been successfully started"); - eulogium->print.block = EINA_FALSE; - } else { - EINA_LOG_ERR("Unable to start print"); - } -} - static void _on_cleared_printer_ret(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED) { const char *errname, *errmsg; @@ -2213,6 +2191,7 @@ static void _cb_select_file(void *data, Evas_Object *obj EINA_UNUSED, void *even menu_open_dir(eulogium, new_dir); } else { eulogium_print_data_set(eulogium, filepath); + procedure_start_print(eulogium->dbus.proxy[PRINTER], &eulogium->print); //eldbus_proxy_call(eulogium->dbus.proxy[PRINTER], "startPrint", _on_start_print_ret, eulogium, -1, "sss", // eulogium->print.name, eulogium->print.file, eulogium->print.flags); } @@ -3226,7 +3205,7 @@ static void _on_get_active_procedures_ret(void *data, const Eldbus_Message *msg, for (i = 0; eulogium->procedures[i].key ; i++) { if (strncmp(key, eulogium->procedures[i].key, eulogium->procedures[i].keylen)) { - eulogium->procedures[i].step = step; + printf("Step: %s\n", step); } else { EINA_LOG_WARN("Procedure not found: '%s'", key); } @@ -3235,6 +3214,54 @@ static void _on_get_active_procedures_ret(void *data, const Eldbus_Message *msg, } } +static void _on_procedure_start_ret(void *data EINA_UNUSED, const Eldbus_Message *msg) +{ + const char *errname, *errmsg; + const char *key, *step; + + if (eldbus_message_error_get(msg, &errname, &errmsg)) { + EINA_LOG_ERR("%s %s", errname, errmsg); + return; + } + if (!eldbus_message_arguments_get(msg, "ss", &key, &step)) { + EINA_LOG_ERR("Message content does not match expected \"ss\" signature. (%s)", eldbus_message_signature_get(msg)); + return; + } + EINA_LOG_ERR("Key '%s' step %s", key, step); +} + +static void _on_procedure_next_step_ret(void *data EINA_UNUSED, const Eldbus_Message *msg) +{ + const char *errname, *errmsg; + const char *key, *step; + + if (eldbus_message_error_get(msg, &errname, &errmsg)) { + EINA_LOG_ERR("%s %s", errname, errmsg); + return; + } + if (!eldbus_message_arguments_get(msg, "ss", &key, &step)) { + EINA_LOG_ERR("Message content does not match expected \"ss\" signature. (%s)", eldbus_message_signature_get(msg)); + return; + } + EINA_LOG_ERR("next: Key '%s' step %s", key, step); +} + +static void _on_procedure_finished_ret(void *data EINA_UNUSED, const Eldbus_Message *msg) +{ + const char *errname, *errmsg; + const char *key; + + if (eldbus_message_error_get(msg, &errname, &errmsg)) { + EINA_LOG_ERR("%s %s", errname, errmsg); + return; + } + if (!eldbus_message_arguments_get(msg, "s", &key)) { + EINA_LOG_ERR("Message content does not match expected \"s\" signature. (%s)", eldbus_message_signature_get(msg)); + return; + } + EINA_LOG_ERR("finshed Key '%s'", key); +} + static void _on_get_error_ret(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED) { const char *errname, *errmsg, *errormsg; @@ -3320,6 +3347,9 @@ static int eulogium_dbus_init(struct eulogium_data *eulogium) //eldbus_proxy_call(eulogium->dbus.proxy[PRINTER], "getStatus", _on_get_status_ret, eulogium, -1, ""); //eldbus_proxy_call(eulogium->dbus.proxy[PRINTER], "getPrintName", _on_get_print_name_ret, eulogium, -1, ""); //eldbus_proxy_signal_handler_add(eulogium->dbus.proxy[PRINTER], "statusChanged", _on_status_changed_ret, eulogium); + eldbus_proxy_signal_handler_add(eulogium->dbus.proxy[PRINTER], "onProcedureStart", _on_procedure_start_ret, eulogium); + eldbus_proxy_signal_handler_add(eulogium->dbus.proxy[PRINTER], "onProcedureNextStep", _on_procedure_next_step_ret, eulogium); + eldbus_proxy_signal_handler_add(eulogium->dbus.proxy[PRINTER], "onProcedureFinished", _on_procedure_finished_ret, eulogium); eldbus_proxy_signal_handler_add(proxy, "UnitNew", _on_unit_new_ret, eulogium); eldbus_proxy_signal_handler_add(proxy, "UnitRemoved", _on_unit_removed_ret, eulogium); -- cgit v0.12