/*
* Copyright (c) 2017 TOYOTA MOTOR CORPORATION
+ * Copyright (c) 2018,2019 TOYOTA MOTOR CORPORATION
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
class LibHomeScreen
{
public:
- LibHomeScreen();
- ~LibHomeScreen();
+ LibHomeScreen();
+ ~LibHomeScreen();
+
+ LibHomeScreen(const LibHomeScreen &) = delete;
+ LibHomeScreen &operator=(const LibHomeScreen &) = delete;
+
+ using handler_func = std::function<void(json_object*)>;
+
+ enum EventType {
+ Event_Min,
+ Event_ShowWindow = 1,
+ Event_TapShortcut = 1,
+ Event_OnScreenMessage,
+ Event_OnScreenReply,
+ Event_HideWindow,
+ Event_ReplyShowWindow,
+ Event_ShowNotification,
+ Event_ShowInformation,
+ Event_AppListChanged,
+ Event_Max
+ };
+
+ static const std::vector<std::string> api_list;
+ static const std::vector<std::string> event_list;
+
+ /* Method */
+ int init(const char *hostname, const int port, const char *token);
+ int init(const int port, const std::string& token);
+
+ int tapShortcut(const char* application_id);
+ int onScreenMessage(const char* display_message);
+ int onScreenReply(const char* reply_message);
+
+ void set_event_handler(enum EventType et, handler_func f);
+
+ void registerCallback(
+ void (*event_cb)(const std::string& event, struct json_object* event_contents),
+ void (*reply_cb)(struct json_object* reply_contents),
+ void (*hangup_cb)(void) = nullptr);
+
+ int call(const std::string& verb, struct json_object* arg);
+ int call(const char* verb, struct json_object* arg);
+ int subscribe(const std::string& event_name);
+ int unsubscribe(const std::string& event_name);
+
+ int showWindow(const char* application_id, json_object* json);
+ int hideWindow(const char* application_id);
+ int replyShowWindow(const char* application_id, json_object* json);
+ int showNotification(json_object* json);
+ int showInformation(json_object* json);
+ int getRunnables(void);
- LibHomeScreen(const LibHomeScreen &) = delete;
- LibHomeScreen &operator=(const LibHomeScreen &) = delete;
-
- using handler_func = std::function<void(json_object*)>;
-
- enum EventType {
- Event_TapShortcut = 1,
- Event_OnScreenMessage,
- Event_OnScreenReply
- };
-
- static const std::vector<std::string> api_list;
- static const std::vector<std::string> event_list;
-
- /* Method */
- int init(const int port, const std::string& token);
-
- int tapShortcut(const char* application_name);
- int onScreenMessage(const char* display_message);
- int onScreenReply(const char* reply_message);
-
- void set_event_handler(enum EventType et, handler_func f);
-
- void registerCallback(
- void (*event_cb)(const std::string& event, struct json_object* event_contents),
- void (*reply_cb)(struct json_object* reply_contents),
- void (*hangup_cb)(void) = nullptr);
-
- int call(const std::string& verb, struct json_object* arg);
- int call(const char* verb, struct json_object* arg);
- int subscribe(const std::string& event_name);
- int unsubscribe(const std::string& event_name);
private:
- int initialize_websocket();
-
- void (*onEvent)(const std::string& event, struct json_object* event_contents);
- void (*onReply)(struct json_object* reply);
- void (*onHangup)(void);
+ int initialize_websocket();
+ int initialize_websocket(const char *hostname, const int port, const char *token);
- struct afb_wsj1* sp_websock;
- struct afb_wsj1_itf minterface;
- sd_event* mploop;
- std::string muri;
+ void (*onEvent)(const std::string& event, struct json_object* event_contents);
+ void (*onReply)(struct json_object* reply);
+ void (*onHangup)(void);
- int mport = 2000;
- std::string mtoken = "hs";
+ struct afb_wsj1* sp_websock;
+ struct afb_wsj1_itf minterface;
+ sd_event* mploop;
+ std::string muri;
- std::map<EventType, handler_func> handlers;
+ std::map<EventType, handler_func> handlers;
public:
- /* Don't use/ Internal only */
- void on_hangup(void *closure, struct afb_wsj1 *wsj);
- void on_call(void *closure, const char *api, const char *verb, struct afb_wsj1_msg *msg);
- void on_event(void *closure, const char *event, struct afb_wsj1_msg *msg);
- void on_reply(void *closure, struct afb_wsj1_msg *msg);
+ /* Don't use/ Internal only */
+ void on_hangup(void *closure, struct afb_wsj1 *wsj);
+ void on_call(void *closure, const char *api, const char *verb, struct afb_wsj1_msg *msg);
+ void on_event(void *closure, const char *event, struct afb_wsj1_msg *msg);
+ void on_reply(void *closure, struct afb_wsj1_msg *msg);
};
#endif /* LIBHOMESCREEN_H */