summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlliver Schinagl <o.schinagl@ultimaker.com>2015-05-08 13:24:07 (GMT)
committerOlliver Schinagl <o.schinagl@ultimaker.com>2015-05-08 13:24:07 (GMT)
commit44972017887901de0ff95a774bf358a2f2fa43d2 (patch)
tree4ba3b8e17c05acfb3c79237817ecc88a5e026807
parentf51bcffbf5e9d3256e4c27b39f2f38d691d4a824 (diff)
downloadeulogium-44972017887901de0ff95a774bf358a2f2fa43d2.zip
eulogium-44972017887901de0ff95a774bf358a2f2fa43d2.tar.gz
eulogium-44972017887901de0ff95a774bf358a2f2fa43d2.tar.bz2
Add getFileHandlers from griffin, this patch breaks build
Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
-rw-r--r--src/eulogium.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/eulogium.c b/src/eulogium.c
index a8b9d99..60c465a 100644
--- a/src/eulogium.c
+++ b/src/eulogium.c
@@ -1247,26 +1247,28 @@ static void eulogium_printer_status_set(struct eulogium_data *eulogium, struct _
eldbus_proxy_call(eulogium->dbus.proxy[PRINTER], "getError", _on_get_error_ret, eulogium, -1, "");
}
-static void _on_get_status_ret(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
+static void _on_get_file_handlers_ret(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
{
const char *errname, *errmsg;
- struct eulogium_data *eulogium = data;
- Eldbus_Message_Iter *iter;
- struct _status_msg status;
+ Eldbus_Message_Iter *array;
+ uint_fast8_t num_file_handlers, i;
+ char **file_handlers;
if (eldbus_message_error_get(msg, &errname, &errmsg)) {
EINA_LOG_ERR("%s %s", errname, errmsg);
return;
}
- if (!eldbus_message_arguments_get(msg, "(ns)", &iter)) {
- EINA_LOG_ERR("Failed to get printer status.");
+ if (!eldbus_message_arguments_get(msg, "yas", &num_file_handlers, &array)) {
+ EINA_LOG_ERR("Message content does not match expected \"as\" signature.");
return;
}
- if (!eldbus_message_iter_arguments_get(iter, "ns", &status.i, &status.s)) {
- EINA_LOG_ERR("Message content does not match expected \"ns\" signature.");
- return;
+ file_handlers = malloc(num_file_handlers * sizeof(char *));
+ for (i = 0; i < num_file_handlers; i++) {
+ if (!eldbus_message_iter_get_and_next(array, 's', &file_handlers[i]))
+ EINA_LOG_ERR("Message content does not match expected \"s\" signature.");
+ printf("fh: %s\n", file_handlers[i]);
}
- eulogium_printer_status_set(eulogium, &status);
+ free(file_handlers); /* TODO: Return filehandlers via data, free array after use there. Cache results during runtime prob. */
}
static void _on_status_changed_ret(void *data, const Eldbus_Message *msg)
@@ -1344,6 +1346,7 @@ static int eulogium_dbus_init(struct eulogium_data *eulogium)
* and the statusChanged signal may not have been fired yet
*/
/* TODO: put signal/method name strings in macro/LUT */
+ eldbus_proxy_call(eulogium->dbus.proxy[HARMA], "getFileHandlers", _on_get_file_handlers_ret, NULL, -1, "");
eldbus_proxy_call(eulogium->dbus.proxy[PRINTER], "getStatus", _on_get_status_ret, eulogium, -1, "");
eldbus_proxy_signal_handler_add(eulogium->dbus.proxy[PRINTER], "statusChanged", _on_status_changed_ret, eulogium);