2 * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
4 * This program is licensed under the terms and conditions of the
5 * Apache License, version 2.0. The full text of the Apache License is at
6 * http://www.apache.org/licenses/LICENSE-2.0
10 //==========================================================================
12 * @file CicoSCWlWinMgrIF.h
14 * @brief This file is definition of CicoSCWlWinMgrIF class
16 //==========================================================================
17 #ifndef __CICO_SC_WL_WINMGR_IF_H__
18 #define __CICO_SC_WL_WINMGR_IF_H__
20 #include <wayland-client.h>
21 #include <ico_window_mgr-client-protocol.h>
23 #include "CicoSCWaylandIF.h"
25 //--------------------------------------------------------------------------
27 * @brief This class is wayland interface of multi window manager
29 //--------------------------------------------------------------------------
30 class CicoSCWlWinMgrIF : public CicoSCWaylandIF {
32 virtual void initInterface(void *data,
33 struct wl_registry *registry,
35 const char *interface,
38 virtual void createdCB(void *data,
39 struct ico_window_mgr *ico_window_mgr,
46 virtual void nameCB(void *data,
47 struct ico_window_mgr *ico_window_mgr,
51 virtual void destroyedCB(void *data,
52 struct ico_window_mgr *ico_window_mgr,
55 virtual void visibleCB(void *data,
56 struct ico_window_mgr *ico_window_mgr,
62 virtual void configureCB(void *data,
63 struct ico_window_mgr *ico_window_mgr,
74 virtual void activeCB(void *data,
75 struct ico_window_mgr *ico_window_mgr,
79 virtual void layerVisibleCB(void *data,
80 struct ico_window_mgr *ico_window_mgr,
84 virtual void appSurfacesCB(void *data,
85 struct ico_window_mgr *ico_window_mgr,
88 struct wl_array *surfaces);
90 virtual void mapSurfaceCB(void *data,
91 struct ico_window_mgr *ico_window_mgr,
102 virtual void outputGeometryCB(void *data,
103 struct wl_output *wl_output,
106 int32_t physical_width,
107 int32_t physical_height,
113 virtual void outputModeCB(void *data,
114 struct wl_output *wl_output,
121 // default constructor
125 virtual ~CicoSCWlWinMgrIF();
127 // assignment operator
128 CicoSCWlWinMgrIF& operator=(const CicoSCWlWinMgrIF &object);
131 CicoSCWlWinMgrIF(const CicoSCWlWinMgrIF &object);
133 // wrapper function ico_window_mgr_declare_manager
134 void declareManager(int32_t manager);
136 // wrapper function ico_window_mgr_set_window_layer
137 void setWindowLayer(uint32_t surfaceid, uint32_t layer);
139 // wrapper function ico_window_mgr_set_positionsize
140 void setPositionsize(uint32_t surfaceid, uint32_t node,
141 int32_t x, int32_t y, int32_t width,
142 int32_t height, int32_t flags);
144 // wrapper function ico_window_mgr_set_visible
145 void setVisible(uint32_t surfaceid, int32_t visible,
146 int32_t raise, int32_t flags);
148 // wrapper function ico_window_mgr_visible_animation
149 void visibleAnimation(uint32_t surfaceid, int32_t visible,
150 int32_t x, int32_t y,
151 int32_t width, int32_t height);
153 // wrapper function of ico_window_mgr_set_animation
154 void setAnimation(uint32_t surfaceid, int32_t type,
155 const char *animation, int32_t time);
157 // wrapper function of ico_window_mgr_set_attributes
158 void setAttributes(uint32_t surfaceid, uint32_t attributes);
160 // wrapper function of ico_window_mgr_set_active
161 void setActive(uint32_t surfaceid, int32_t active);
163 // wrapper function of ico_window_mgr_set_layer_visible
164 void setLayerVisible(uint32_t layer, int32_t visible);
166 // wrapper function of ico_window_mgr_get_surfaces
167 void getSurfaces(const char *appid, int32_t pid);
169 // wrapper function of ico_window_mgr_set_map_buffer
170 void setmapBuffer(const char *shmname, int bufsize, int bufnum);
172 // wrapper function of ico_window_mgr_map_surface
173 void mapSurface(uint32_t surfaceid, int32_t framerate);
175 // wrapper function of ico_window_mgr_unmap_surface
176 void unmapSurface(uint32_t surfaceid);
179 // ico_window_mgr(Multi Window Manager) callback functions
180 static void wlCreatedCB(void *data,
181 struct ico_window_mgr *ico_window_mgr,
188 static void wlNameCB(void *data,
189 struct ico_window_mgr *ico_window_mgr,
191 const char *winname);
193 static void wlDestroyedCB(void *data,
194 struct ico_window_mgr *ico_window_mgr,
197 static void wlVisibleCB(void *data,
198 struct ico_window_mgr *ico_window_mgr,
204 static void wlConfigureCB(void *data,
205 struct ico_window_mgr *ico_window_mgr,
216 static void wlActiveCB(void *data,
217 struct ico_window_mgr *ico_window_mgr,
221 static void wlLayerVisibleCB(void *data,
222 struct ico_window_mgr *ico_window_mgr,
226 static void wlAppSurfacesCB(void *data,
227 struct ico_window_mgr *ico_window_mgr,
230 struct wl_array *surfaces);
232 static void wlMapSurfaceCB(void *data,
233 struct ico_window_mgr *ico_window_mgr,
244 static void wlOutputGeometryCB(void *data,
245 struct wl_output *wl_output,
248 int32_t physical_width,
249 int32_t physical_height,
255 static void wlOutputModeCB(void *data,
256 struct wl_output *wl_output,
263 // ico_window_mgr listener
264 struct ico_window_mgr_listener m_listener;
266 // wayland output listener
267 struct wl_output_listener m_wlOutputListener;
269 // Wayland's Window Manager PlugIn instance
270 struct ico_window_mgr *m_winmgr;
272 // wayland output instance
273 struct wl_output *m_wloutput;
276 #endif // __CICO_SC_WL_WINMGR_IF_H__
277 // vim:set expandtab ts=4 sw=4: