summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlliver Schinagl <o.schinagl@ultimaker.com>2015-06-18 08:04:31 (GMT)
committerOlliver Schinagl <o.schinagl@ultimaker.com>2015-06-18 08:04:31 (GMT)
commit170005ba00ab8b1249ecdfcd49301a84513ae3e0 (patch)
treed2b8530d5a474923481f26bb499912f4524db690
parentf162d53b569c7b83967d524c19bc31d4a5538839 (diff)
downloadeulogium-170005ba00ab8b1249ecdfcd49301a84513ae3e0.zip
eulogium-170005ba00ab8b1249ecdfcd49301a84513ae3e0.tar.gz
eulogium-170005ba00ab8b1249ecdfcd49301a84513ae3e0.tar.bz2
[griffin.hmi] start using procedures to start prints
Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
-rw-r--r--src/eulogium.c76
1 files 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);