*/
#include "hs-proxy.h"
-#include "hmi-debug.h"
-
-const char _afm_main[] = "afm-main";
+static const char _afm_main[] = "afm-main";
+static const char _windowmanager[] = "windowmanager";
+static const char _event[] = "event";
/**
* the callback function
*/
static void api_callback(void *closure, struct json_object *object, const char *error, const char *info, afb_api_t api)
{
- HMI_DEBUG("homescreen-service","asynchronous call, error=%s, info=%s, object=%s.", error, info, json_object_get_string(object));
+ AFB_INFO("asynchronous call, error=%s, info=%s, object=%s.", error, info, json_object_get_string(object));
+ if(closure != nullptr) {
+ reinterpret_cast<api_cb_func>(closure)(object, error, info);
+ }
}
/**
* None
*
*/
-static void api_call(afb_api_t api, const char *service, const char *verb, struct json_object *args)
+static void api_call(afb_api_t api, const char *service, const char *verb, struct json_object *args, api_cb_func f = nullptr)
{
- HMI_DEBUG("homescreen-service","service=%s verb=%s, args=%s.", service, verb, json_object_get_string(args));
- afb_api_call(api, service, verb, args, api_callback, nullptr);
+ AFB_INFO("service=%s verb=%s, args=%s.", service, verb, json_object_get_string(args));
+ afb_api_call(api, service, verb, args, api_callback, (void*)f);
}
/**
{
char *error = nullptr, *info = nullptr;
int ret = afb_api_call_sync(api, service, verb, args, object, &error, &info);
- HMI_DEBUG("homescreen-service","synchronous call, error=%s, info=%s.", error, info);
+ AFB_INFO("synchronous call, error=%s, info=%s.", error, info);
return ret;
}
+/* -------------------------------------HS_AfmMainProxy------------------------------------------ */
+
/**
* get runnables application list
*
* start application
*
* #### Parameters
- * - request : the request
+ * - api : the api
* - id : the application id liked "dashboard@0.1"
*
* #### Return
* None
*
*/
-void HS_AfmMainProxy::start(afb_req_t request, const std::string &id)
+void HS_AfmMainProxy::start(afb_api_t api, const std::string &id)
{
struct json_object *args = json_object_new_string(id.c_str());
- api_call(request->api, _afm_main, __FUNCTION__, args);
-}
\ No newline at end of file
+ api_call(api, _afm_main, __FUNCTION__, args);
+}
+
+/* -------------------------------------HS_WmProxy------------------------------------------ */
+
+/**
+ * subscribe windowmanager event
+ *
+ * #### Parameters
+ * - api : the api serving the request
+ * - event : windowmanager event
+ * - f : callback function
+ *
+ * #### Return
+ * None
+ *
+ */
+void HS_WmProxy::subscribe(afb_api_t api, EventType event, api_cb_func f)
+{
+ struct json_object* push_obj = json_object_new_object();
+ json_object_object_add(push_obj, _event, json_object_new_int(event));
+ api_call(api, _windowmanager, "wm_subscribe", push_obj, f);
+}