DSWaylandTizenPolicyExt: Add skeleton codes to get tizen_rotation
[platform/core/uifw/libds.git] / src / DSWaylandServer / DSWaylandTizenPolicyExt.cpp
1 /*
2 * Copyright © 2020 Samsung Electronics co., Ltd. All Rights Reserved.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
13 * Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21 * DEALINGS IN THE SOFTWARE.
22 */
23
24 #include "DSWaylandTizenPolicyExt.h"
25 #include "DSWaylandTizenPolicyExtPrivate.h"
26
27 namespace display_server
28 {
29
30 /* DSWaylandTizenPolicyExt */
31 DSWaylandTizenPolicyExtPrivate::DSWaylandTizenPolicyExtPrivate(DSWaylandTizenPolicyExt *p_ptr, DSWaylandCompositor *compositor)
32         : DSObjectPrivate(p_ptr),
33           __p_ptr(p_ptr),
34           __resource_id_cnt(0)
35 {
36         if (!compositor)
37                 return;
38
39         init(compositor->display(), 3);
40 }
41
42 DSWaylandTizenPolicyExtPrivate::~DSWaylandTizenPolicyExtPrivate()
43 {
44 }
45
46 void DSWaylandTizenPolicyExtPrivate::tizen_policy_ext_bind_resource(Resource *resource)
47 {
48 }
49
50 void DSWaylandTizenPolicyExtPrivate::tizen_policy_ext_destroy_resource(Resource *resource)
51 {
52 }
53
54 void DSWaylandTizenPolicyExtPrivate::tizen_policy_ext_get_rotation(Resource *resource, uint32_t id, struct ::wl_resource *surface)
55 {
56         DSWaylandTizenRotation *tizenRotation = nullptr;
57
58         for (DSWaylandTizenRotation *temp : __rotationList)
59                 if (temp->getRotationSurface() == surface) return;
60
61         tizenRotation = new DSWaylandTizenRotation(resource->client(), id, surface);
62         if (tizenRotation == nullptr)
63         {
64                 DSLOG_ERR("DSWaylandTizenPolicyExt", "fail get tizen resource");
65                 return;
66         }
67
68         __rotationList.push_back(tizenRotation);
69 }
70
71 DSWaylandTizenRotation *DSWaylandTizenPolicyExtPrivate::getTizenRotation(struct ::wl_resource *surface)
72 {
73         DSWaylandTizenRotation *tizenRotation = nullptr;
74
75         for (DSWaylandTizenRotation *temp : __rotationList)
76         {
77                 if (temp->getRotationSurface() == surface)
78                 {
79                         tizenRotation = temp;
80                         break;
81                 }
82         }
83
84         return tizenRotation;
85 }
86
87 void DSWaylandTizenPolicyExtPrivate::delTizenRotation(DSWaylandTizenRotation *tizenRotation)
88 {
89         __rotationList.remove(tizenRotation);
90 }
91
92 DSWaylandTizenPolicyExt::DSWaylandTizenPolicyExt(DSWaylandCompositor *compositor)
93         : _d_ptr(std::make_unique<DSWaylandTizenPolicyExtPrivate>(this, compositor))
94 {
95 }
96
97 DSWaylandTizenPolicyExt::~DSWaylandTizenPolicyExt()
98 {
99 }
100
101 DSWaylandTizenRotation *DSWaylandTizenPolicyExt::getTizenRotation(struct ::wl_resource *surface)
102 {
103         DS_GET_PRIV(DSWaylandTizenPolicyExt);
104
105         return priv->getTizenRotation(surface);
106 }
107
108 void DSWaylandTizenPolicyExt::delTizenRotation(DSWaylandTizenRotation *tizenRotation)
109 {
110         DS_GET_PRIV(DSWaylandTizenPolicyExt);
111
112         priv->delTizenRotation(tizenRotation);
113 }
114
115 /* DSWaylandTizenRotation */
116 DSWaylandTizenRotationPrivate::DSWaylandTizenRotationPrivate(DSWaylandTizenRotation *p_ptr, struct ::wl_client *client, uint32_t id, struct ::wl_resource *surface)
117         : DSObjectPrivate(p_ptr),
118           __p_ptr(p_ptr),
119           __surface(surface),
120           __resource_id(0)
121 {
122         init(client, id, 3);
123 }
124
125 DSWaylandTizenRotationPrivate::~DSWaylandTizenRotationPrivate()
126 {
127 }
128
129 void DSWaylandTizenRotationPrivate::tizen_rotation_bind_resource(Resource *resource)
130 {
131 }
132
133 void DSWaylandTizenRotationPrivate::tizen_rotation_destroy_resource(Resource *resource)
134 {
135 }
136
137 void DSWaylandTizenRotationPrivate::tizen_rotation_destroy(Resource *resource)
138 {
139 }
140
141 struct ::wl_resource *DSWaylandTizenRotationPrivate::getRotationSurface(void)
142 {
143         return __surface;
144 }
145
146 DSWaylandTizenRotation::DSWaylandTizenRotation(struct ::wl_client *client, uint32_t id, struct ::wl_resource *surface)
147         : _d_ptr(std::make_unique<DSWaylandTizenRotationPrivate>(this, client, id, surface))
148 {
149 }
150
151 DSWaylandTizenRotation::~DSWaylandTizenRotation()
152 {
153 }
154
155 struct ::wl_resource *DSWaylandTizenRotation::getRotationSurface(void)
156 {
157         DS_GET_PRIV(DSWaylandTizenRotation);
158
159         return priv->getRotationSurface();
160 }
161
162 } // namespace display_server