2 * Copyright (c) 2013-2014, 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 CicoSCWindowController.h
14 * @brief This file is definition of CicoSCWindowController class
16 //==========================================================================
17 #ifndef __CICO_SC_WINDOW_CONTROLLER_H__
18 #define __CICO_SC_WINDOW_CONTROLLER_H__
25 #include "CicoSCWlWinMgrIF.h"
27 //==========================================================================
28 // Forward declaration
29 //==========================================================================
33 class CicoSCDisplayZone;
35 class CicoSCResourceManager;
37 //--------------------------------------------------------------------------
39 * @brief This class is controller of window
41 //--------------------------------------------------------------------------
42 class CicoSCWindowController : public CicoSCWlWinMgrIF
45 // get instance of CicoSCWindowController
46 static CicoSCWindowController* getInstance();
48 // default constructor
49 CicoSCWindowController();
52 virtual ~CicoSCWindowController();
56 void handleCommand(const CicoSCCommand * cmd);
59 void setResourceManager(CicoSCResourceManager *resMgr);
61 int show(int surfaceid,
62 const char *animation,
65 int hide(int surfaceid,
66 const char *animation,
69 int resize(int surfaceid,
72 const char *animation,
75 int move(int surfaceid,
79 const char *animation,
82 int setGeometry(int surfaceid,
89 const char *resizeAnimation,
90 int resizeAnimationTime,
91 const char *moveAnimation,
92 int moveAnimationTime);
94 int setGeometry(int surfaceid,
97 const char *resizeAnimation,
98 int resizeAnimationTime,
99 const char *moveAnimation,
100 int moveAnimationTime);
102 int raise(int surfaceid,
103 const char *animation,
106 int lower(int surfaceid, const char *animation, int animationTime);
108 int setWindowLayer(int surfaceid, int layerid);
110 int showLayer(int displayid, int layerid);
112 int hideLayer(int displayid, int layerid);
114 int active(int surfaceid, int target);
116 int setmapGet(int surfaceid, const char *filepath);
118 int mapSurface(int surfaceid, int framerate, const char *filepath);
120 int unmapSurface(int surfaceid);
122 int getDisplayedWindow(int zoneid);
124 int setAttributes(int surfaceid);
126 static void initializeGeniviNotifications(void);
128 static void wlGeniviLayerNotification(t_ilm_layer layer,
129 struct ilmLayerProperties *LayerProperties,
130 t_ilm_notification_mask mask);
132 static void wlGeniviSurfaceNotification(t_ilm_surface surface,
133 struct ilmSurfaceProperties *SurfaceProperties,
134 t_ilm_notification_mask mask);
136 virtual void activeCB(void *data,
137 struct ico_window_mgr *ico_window_mgr,
141 virtual void mapSurfaceCB(void *data,
142 struct ico_window_mgr *ico_window_mgr,
151 virtual void outputGeometryCB(void *data,
152 struct wl_output *wl_output,
155 int32_t physical_width,
156 int32_t physical_height,
162 virtual void outputModeCB(void *data,
163 struct wl_output *wl_output,
169 virtual void createSurfaceCB(void *data,
170 struct ivi_controller *ivi_controller,
171 uint32_t id_surface);
174 // assignment operator
175 CicoSCWindowController& operator=(const CicoSCWindowController &object);
178 CicoSCWindowController(const CicoSCWindowController &object);
180 // find window object by surface id
181 CicoSCWindow* findWindow(int surfaceid);
183 // find layer object by display id and layer id
184 CicoSCLayer* findLayer(int displayid, int layerid);
186 // fine display zone by id
187 const CicoSCDisplayZone * findDisplayZone(int zoneid);
189 int notifyResourceManager(int surfaceid,
192 const char *animation,
197 static CicoSCWindowController *ms_myInstance;
199 // resource manager instance
200 CicoSCResourceManager *m_resMgr;
202 // window object list
203 map<unsigned int, CicoSCWindow*> m_windowList;
205 // display object list
206 vector<CicoSCDisplay*> m_displayList;
208 // total of physical display
209 unsigned int m_physicalDisplayTotal;
211 #endif // __CICO_SC_WINDOW_CONTROLLER_H__
212 // vim:set expandtab ts=4 sw=4: