/* * Copyright (c) 2017 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. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef LIBWINDOWMANAGER_H #define LIBWINDOWMANAGER_H #include #include class LibWindowmanager { public: LibWindowmanager(); ~LibWindowmanager(); LibWindowmanager(const LibWindowmanager &) = delete; LibWindowmanager &operator=(const LibWindowmanager &) = delete; using handler_fun = std::function; /* DrawingArea name (usage: {layout}.{area}) */ const std::string kStrLayoutNormal = "normal"; const std::string kStrLayoutSplit = "split"; const std::string kStrAreaFull = "full"; const std::string kStrAreaMain = "main"; const std::string kStrAreaSub = "sub"; /* Key for json obejct */ const char *kKeyDrawingName = "drawing_name"; const char *kKeyDrawingArea = "drawing_area"; const char *kKeyDrawingRect = "drawing_rect"; const char *kKeyIviId = "ivi_id"; enum EventType { Event_Active = 0, Event_Inactive, Event_Visible, Event_Invisible, Event_SyncDraw, Event_FlushDraw, Event_ScreenUpdated, Event_Error, Event_Val_Max = Event_Error }; int init(int port, char const *token); // WM API int requestSurface(json_object *object); int requestSurfaceXDG(json_object *object); int activateWindow(json_object *object); int deactivateWindow(json_object *object); int endDraw(json_object *object); int getDisplayInfo(json_object *object); int getAreaInfo(json_object *in_obj, json_object *out_obj); int getAreaInfo(const char *label, json_object *out_obj); void set_event_handler(enum EventType et, handler_fun f); struct Impl; // These APIs are deprecated, please use new API THIS_FUNCTION_IS_DEPRECATED(int activateSurface(json_object *object)); THIS_FUNCTION_IS_DEPRECATED(int deactivateSurface(json_object *object)); private: Impl *const d; }; #endif // LIBWINDOWMANAGER_H