diff options
author | Olliver Schinagl <o.schinagl@ultimaker.com> | 2015-04-29 13:36:26 (GMT) |
---|---|---|
committer | Olliver Schinagl <o.schinagl@ultimaker.com> | 2015-04-29 13:38:28 (GMT) |
commit | 31d1151f75bcd8610df26d5b6e8bde72567e2402 (patch) | |
tree | ee704be2342a8edc89956ceef0c0d0794fd4b7d0 | |
parent | 1e4dca9a56f4881fe5d73a7fb5f2c020428fc5d7 (diff) | |
download | eulogium-31d1151f75bcd8610df26d5b6e8bde72567e2402.zip eulogium-31d1151f75bcd8610df26d5b6e8bde72567e2402.tar.gz eulogium-31d1151f75bcd8610df26d5b6e8bde72567e2402.tar.bz2 |
improve dbus error handling a bit, i think we try to get a message, even if we allready know we have failed.
Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
-rw-r--r-- | src/eulogium.c | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/src/eulogium.c b/src/eulogium.c index c7631bb..9ce88b2 100644 --- a/src/eulogium.c +++ b/src/eulogium.c @@ -201,8 +201,11 @@ static void _on_print_abort_ret(void *data EINA_UNUSED, const Eldbus_Message *ms if (eldbus_message_error_get(msg, &errname, &errmsg)) { EINA_LOG_ERR("%s %s", errname, errmsg); - } else if (!eldbus_message_arguments_get(msg, "b", &print_abort)) { + return; + } + if (!eldbus_message_arguments_get(msg, "b", &print_abort)) { EINA_LOG_ERR("Failed to abort print."); + return; } } @@ -381,15 +384,19 @@ static void _on_start_print_ret(void *data, const Eldbus_Message *msg, Eldbus_Pe if (eldbus_message_error_get(msg, &errname, &errmsg)) { EINA_LOG_ERR("%s %s", errname, errmsg); - } else if (!eldbus_message_arguments_get(msg, "b", &print_started)) { + return; + } + if (!eldbus_message_arguments_get(msg, "b", &print_started)) { EINA_LOG_ERR("Failed to start print."); + return; } - - if (print_started == EINA_TRUE) + if (print_started == EINA_TRUE) { content = eulogium_print_progress(eulogium); - else - content = eulogium_generic_error(eulogium, 0); /* TODO make enum/table of error codes and pass that. */ - /* TODO: check why the print failed, and possibly show progress */ + } else { + EINA_LOG_WARN("Bed was unable to be Cleared."); + content = eulogium_generic_error(eulogium, 0); /* TODO, proper error codes LUT */ + } + /* TODO: check why the print failed, and possibly show progress. Currently the status_changed does print the error */ elm_naviframe_item_simple_push(eulogium->navi, content); } @@ -1028,11 +1035,13 @@ static void _on_get_status_ret(void *data, const Eldbus_Message *msg, Eldbus_Pen if (eldbus_message_error_get(msg, &errname, &errmsg)) { EINA_LOG_ERR("%s %s", errname, errmsg); - } else if (eldbus_message_arguments_get(msg, "(ns)", &status)) { + return; + } + if (eldbus_message_arguments_get(msg, "(ns)", &status)) { EINA_LOG_ERR("Failed to get printer status."); - } else { - eulogium_printer_status_set(eulogium, &status); + return; } + eulogium_printer_status_set(eulogium, &status); } static void _on_status_changed_ret(void *data, const Eldbus_Message *msg) @@ -1043,11 +1052,13 @@ static void _on_status_changed_ret(void *data, const Eldbus_Message *msg) if (eldbus_message_error_get(msg, &errname, &errmsg)) { EINA_LOG_ERR("%s %s", errname, errmsg); - } else if (eldbus_message_arguments_get(msg, "(ns)", &status)) { + return; + } + if (eldbus_message_arguments_get(msg, "(ns)", &status)) { EINA_LOG_ERR("Failed to get printer status."); - } else { - eulogium_printer_status_set(eulogium, &status); + return; } + eulogium_printer_status_set(eulogium, &status); } static int eulogium_dbus_init(struct eulogium_data *eulogium) |