Adapt the AIL filter used to new ones
[profile/ivi/ico-uxf-homescreen.git] / lib / system-controller / CicoSCWindowController.h
1 /*
2  * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
3  *
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
7  *
8  */
9
10 //==========================================================================
11 /**
12  *  @file   CicoSCWindowController.h
13  *
14  *  @brief  This file is definition of CicoSCWindowController class
15  */
16 //==========================================================================
17 #ifndef __CICO_SC_WINDOW_CONTROLLER_H__
18 #define __CICO_SC_WINDOW_CONTROLLER_H__
19
20 #include <vector>
21 #include <map>
22
23 using namespace std;
24
25 #include "CicoSCWlWinMgrIF.h"
26
27 #define ICO_SC_APPID_DEFAULT_ONS    "org.tizen.ico.onscreen"
28 #define ICO_SC_LAYERID_SCREENBASE   1000
29
30 //==========================================================================
31 //  Forward declaration
32 //==========================================================================
33 class CicoSCCommand;
34 class CicoSCDisplay;
35 class CicoSCLayer;
36 class CicoSCDisplayZone;
37 class CicoSCWindow;
38 class CicoSCResourceManager;
39
40 //--------------------------------------------------------------------------
41 /**
42  *  @brief  This class is controller of window
43  */
44 //--------------------------------------------------------------------------
45 class CicoSCWindowController : public CicoSCWlWinMgrIF
46 {
47 public:
48     // get instance of CicoSCWindowController
49     static CicoSCWindowController* getInstance();
50
51     // default constructor
52     CicoSCWindowController();
53
54     // copy constructor
55     virtual ~CicoSCWindowController();
56
57     int initDB(void);
58
59     void handleCommand(const CicoSCCommand * cmd);
60
61     //
62     void setResourceManager(CicoSCResourceManager *resMgr);
63
64     int show(int         surfaceid,
65              const char  *animation,
66              int         animationTime);
67
68     int hide(int         surfaceid,
69              const char  *animation,
70              int         animationTime);
71
72     int resize(int        surfaceid,
73                int        w,
74                int        h,
75                const char *animation,
76                int        animationTime);
77
78     int move(int        surfaceid,
79              int        nodeid,
80              int        x,
81              int        y,
82              const char *animation,
83              int        animationTime);
84
85     int setGeometry(int        surfaceid,
86                     int        nodeid,
87                     int        layerid,
88                     int        x,
89                     int        y,
90                     int        w,
91                     int        h,
92                     const char *resizeAnimation,
93                     int        resizeAnimationTime,
94                     const char *moveAnimation,
95                     int        moveAnimationTime);
96
97     int setGeometry(int        surfaceid,
98                     const char *zone,
99                     int        layerid,
100                     const char *resizeAnimation,
101                     int        resizeAnimationTime,
102                     const char *moveAnimation,
103                     int        moveAnimationTime);
104
105     int raise(int surfaceid,
106              const char  *animation,
107              int         animationTime);
108
109     int lower(int surfaceid, const char *animation, int animationTime);
110
111     int setWindowAnimation(int surfaceid, int type, const char *animation, int time);
112
113     int setWindowLayer(int surfaceid, int layerid);
114
115     int showLayer(int displayid, int layerid);
116
117     int hideLayer(int displayid, int layerid);
118
119     int active(int surfaceid, int target);
120
121     int setmapGet(int surfaceid, const char *filepath);
122
123     int mapSurface(int surfaceid, int framerate, const char *filepath);
124
125     int unmapSurface(int surfaceid);
126
127     int getDisplayedWindow(int zoneid);
128
129     int setAttributes(int surfaceid);
130
131     void initializeGeniviLMS(void);
132
133     static void wlGeniviLayerNotification(t_ilm_layer layer,
134                                           struct ilmLayerProperties *LayerProperties,
135                                           t_ilm_notification_mask mask);
136     //
137     virtual void activeCB(void *data,
138                           struct ico_window_mgr *ico_window_mgr,
139                           uint32_t surfaceid,
140                           int32_t select);
141
142     virtual void mapSurfaceCB(void *data,
143                               struct ico_window_mgr *ico_window_mgr,
144                               int32_t event,
145                               uint32_t surfaceid,
146                               uint32_t type,
147                               int32_t width,
148                               int32_t height,
149                               int32_t stride,
150                               uint32_t format);
151
152     virtual void updateSurfaceCB(void *data,
153                                  struct ico_window_mgr *ico_window_mgr,
154                                  uint32_t surfaceid,
155                                  int visible,
156                                  int srcwidth,
157                                  int srcheight,
158                                  int x,
159                                  int y,
160                                  int width,
161                                  int height);
162
163     virtual void destroySurfaceCB(void *data,
164                                   struct ico_window_mgr *ico_window_mgr,
165                                   uint32_t surfaceid);
166
167     virtual void updateWinnameCB(uint32_t surfaceid,
168                                  const char *winname);
169 //
170     virtual void outputGeometryCB(void *data,
171                                   struct wl_output *wl_output,
172                                   int32_t x,
173                                   int32_t y,
174                                   int32_t physical_width,
175                                   int32_t physical_height,
176                                   int32_t subpixel,
177                                   const char *make,
178                                   const char *model,
179                                   int32_t transform);
180
181     virtual void outputModeCB(void *data,
182                               struct wl_output *wl_output,
183                               uint32_t flags,
184                               int32_t width,
185                               int32_t height,
186                               int32_t refresh);
187
188     virtual void createSurfaceCB(void       *data,
189                                  struct ivi_controller *ivi_controller,
190                                  uint32_t   id_surface,
191                                  int32_t    pid,
192                                  const char *title);
193
194     const CicoSCWindow* findWindowObj(int32_t pid, uint32_t surfaceid) const;
195
196     const CicoSCResourceManager* getResourceManager(void) const;
197
198 private:
199     // assignment operator
200     CicoSCWindowController& operator=(const CicoSCWindowController &object);
201
202     // copy constructor
203     CicoSCWindowController(const CicoSCWindowController &object);
204
205     // find window object by surface id
206     CicoSCWindow* findWindow(int surfaceid);
207
208     // find layer object by display id and layer id
209     CicoSCLayer* findLayer(int displayid, int layerid);
210
211     // fine display zone by id
212     const CicoSCDisplayZone * findDisplayZone(int zoneid);
213
214     void raiselower(CicoSCWindow *window, bool raise);
215
216     int notifyResourceManager(int        surfaceid,
217                               const char *zone,
218                               int        layerid,
219                               const char *animation,
220                               int        animationTime);
221
222 private:
223     /// my instance
224     static CicoSCWindowController *ms_myInstance;
225
226     // resource manager instance
227     CicoSCResourceManager *m_resMgr;
228
229     // window object list
230     map<unsigned int, CicoSCWindow*> m_windowList;
231
232     // display object list
233     vector<CicoSCDisplay*> m_displayList;
234
235     // total of physical display
236     unsigned int m_physicalDisplayTotal;
237 };
238 #endif  // __CICO_SC_WINDOW_CONTROLLER_H__
239 // vim:set expandtab ts=4 sw=4: