diff options
-rw-r--r-- | AFBClient.cpp | 31 | ||||
-rw-r--r-- | AFBClient.h | 4 |
2 files changed, 32 insertions, 3 deletions
diff --git a/AFBClient.cpp b/AFBClient.cpp index 2c200bc..7abdd78 100644 --- a/AFBClient.cpp +++ b/AFBClient.cpp @@ -1,5 +1,11 @@ #include "AFBClient.h" +#include <stdlib.h> +#include <stdio.h> +#include <errno.h> +#include <string.h> + +#ifdef AFB /* the callback interface for wsj1 */ static struct afb_wsj1_itf itf = { @@ -7,22 +13,31 @@ static struct afb_wsj1_itf itf = .on_call = AFBClient::onCall, .on_event = AFBClient::onEvent }; +#endif AFBClient::AFBClient() { +} + +bool AFBClient::init() +{ /* get the default event loop */ int rc = sd_event_default(&loop); if (rc < 0) { fprintf(stderr, "Connection to default event loop failed: %s\n", strerror(-rc)); - return 1; + return false; } +#ifdef AFB /* connect the websocket wsj1 to the uri given by the first argument */ wsj1 = afb_ws_client_connect_wsj1(loop, wmURI, &itf, NULL); if (wsj1 == NULL) { fprintf(stderr, "Connection to %s failed: %m\n", wmURI); - return 1; + return false; } +#endif + + return true; } void AFBClient::requestSurface(const char *label) @@ -58,23 +73,27 @@ void AFBClient::endDraw(const char *label) /* called when wsj1 receives a method invocation */ void AFBClient::onCall(void *closure, afb_wsj1 *wsj1) { +#ifdef AFB int rc; - printf("ON-CALL %s/%s:\n%s\n", api, verb, + printf("ON-CALL %s/%s:\n%s\n", wmAPI, verb, json_object_to_json_string_ext(afb_wsj1_msg_object_j(msg), JSON_C_TO_STRING_PRETTY)); fflush(stdout); rc = afb_wsj1_reply_error_s(msg, "\"unimplemented\"", NULL); if (rc < 0) fprintf(stderr, "replying failed: %m\n"); +#endif } /* called when wsj1 receives an event */ void AFBClient::onEvent(void *closure, const char *event, afb_wsj1_msg *msg) { +#ifdef AFB printf("ON-EVENT %s:\n%s\n", event, json_object_to_json_string_ext(afb_wsj1_msg_object_j(msg), JSON_C_TO_STRING_PRETTY)); fflush(stdout); +#endif } /* called when wsj1 hangsup */ @@ -88,17 +107,20 @@ void AFBClient::onHangup(void *closure, afb_wsj1 *wsj1) /* called when wsj1 receives a reply */ void AFBClient::onReply(void *closure, afb_wsj1_msg *msg) { +#ifdef AFB printf("ON-REPLY %s: %s\n%s\n", (char*)closure, afb_wsj1_msg_is_reply_ok(msg) ? "OK" : "ERROR", json_object_to_json_string_ext(afb_wsj1_msg_object_j(msg), JSON_C_TO_STRING_PRETTY)); fflush(stdout); free(closure); +#endif } /* makes a call */ void AFBClient::call(const char *api, const char *verb, const char *object) { +#ifdef AFB static int num = 0; char *key; int rc; @@ -110,16 +132,19 @@ void AFBClient::call(const char *api, const char *verb, const char *object) rc = afb_wsj1_call_s(wsj1, api, verb, object, AFBClient::onReply, key); if (rc < 0) fprintf(stderr, "calling %s/%s(%s) failed: %m\n", api, verb, object); +#endif } /* sends an event */ void AFBClient::event(const char *event, const char *object) { +#ifdef AFB int rc; rc = afb_wsj1_send_event_s(wsj1, event, object); if (rc < 0) fprintf(stderr, "sending !%s(%s) failed: %m\n", event, object); +#endif } void AFBClient::emitSignalOrCall(const char *api, const char *verb, const char *object) diff --git a/AFBClient.h b/AFBClient.h index d93817b..6947629 100644 --- a/AFBClient.h +++ b/AFBClient.h @@ -2,15 +2,19 @@ #define AFBCLIENT_H #include <systemd/sd-event.h> + +#ifdef AFB #include <json-c/json.h> #include "afb-wsj1.h" #include "afb-ws-client.h" +#endif class AFBClient { public: AFBClient(); + bool init(); void requestSurface(const char *label); void activateSurface(const char *label); void deactivateSurface(const char *label); |