1e358d34647cef9b06361608225d9bc62c67077f
[platform/core/connectivity/zigbee-manager.git] / zigbee-daemon / zigbee-interface / src / zigbee_service_dbus_interface_zcl_scene.c
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
3  *
4  * Contact: Suresh Kumar N (suresh.n@samsung.com)
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18
19 #include "zigbee_service_interface_common.h"
20
21 static gboolean on_zcl_scene_add_scene(ZigbeeZcl_scene *zcl_scene_object,
22         GDBusMethodInvocation *invocation,
23         gshort node_id,
24         gchar dst_ep,
25         gshort group_id,
26         gchar scene_id,
27         gshort transition_time,
28         gshort ext_length,
29         GVariant *scene_name,
30         GVariant *ext_field_set,
31         gpointer user_data)
32 {
33         ZigBeeService *service = (ZigBeeService *)user_data;
34
35         NOT_USED(zcl_scene_object);
36         NOT_USED(invocation);
37         NOT_USED(service);
38         NOT_USED(node_id);
39         NOT_USED(dst_ep);
40         NOT_USED(group_id);
41         NOT_USED(scene_id);
42         NOT_USED(transition_time);
43         NOT_USED(ext_length);
44         NOT_USED(scene_name);
45         NOT_USED(ext_field_set);
46
47         /*
48          * TODO -
49          * Create and send request for processing
50          */
51
52         return TRUE;
53 }
54
55 static gboolean on_zcl_scene_view_scene(ZigbeeZcl_scene *zcl_scene_object,
56         GDBusMethodInvocation *invocation,
57         gshort node_id,
58         gchar dst_ep,
59         gshort group_id,
60         gchar scene_id,
61         gpointer user_data)
62 {
63         ZigBeeService *service = (ZigBeeService *)user_data;
64
65         NOT_USED(zcl_scene_object);
66         NOT_USED(invocation);
67         NOT_USED(service);
68         NOT_USED(node_id);
69         NOT_USED(dst_ep);
70         NOT_USED(group_id);
71         NOT_USED(scene_id);
72
73         /*
74          * TODO -
75          * Create and send request for processing
76          */
77
78         return TRUE;
79 }
80
81 static gboolean on_zcl_scene_remove_scene(ZigbeeZcl_scene *zcl_scene_object,
82         GDBusMethodInvocation *invocation,
83         gshort node_id,
84         gchar dst_ep,
85         gshort group_id,
86         gchar scene_id,
87         gpointer user_data)
88 {
89         ZigBeeService *service = (ZigBeeService *)user_data;
90
91         NOT_USED(zcl_scene_object);
92         NOT_USED(invocation);
93         NOT_USED(service);
94         NOT_USED(node_id);
95         NOT_USED(dst_ep);
96         NOT_USED(group_id);
97         NOT_USED(scene_id);
98
99         /*
100          * TODO -
101          * Create and send request for processing
102          */
103
104         return TRUE;
105 }
106
107 static gboolean on_zcl_scene_store_scene(ZigbeeZcl_scene *zcl_scene_object,
108         GDBusMethodInvocation *invocation,
109         gshort node_id,
110         gchar dst_ep,
111         gshort group_id,
112         gchar scene_id,
113         gpointer user_data)
114 {
115         ZigBeeService *service = (ZigBeeService *)user_data;
116
117         NOT_USED(zcl_scene_object);
118         NOT_USED(invocation);
119         NOT_USED(service);
120         NOT_USED(node_id);
121         NOT_USED(dst_ep);
122         NOT_USED(group_id);
123         NOT_USED(scene_id);
124
125         /*
126          * TODO -
127          * Create and send request for processing
128          */
129
130         return TRUE;
131 }
132
133 static gboolean on_zcl_scene_recall_scene(ZigbeeZcl_scene *zcl_scene_object,
134         GDBusMethodInvocation *invocation,
135         gshort node_id,
136         gchar dst_ep,
137         gshort group_id,
138         gchar scene_id,
139         gpointer user_data)
140 {
141         ZigBeeService *service = (ZigBeeService *)user_data;
142
143         NOT_USED(zcl_scene_object);
144         NOT_USED(invocation);
145         NOT_USED(service);
146         NOT_USED(node_id);
147         NOT_USED(dst_ep);
148         NOT_USED(group_id);
149         NOT_USED(scene_id);
150
151         /*
152          * TODO -
153          * Create and send request for processing
154          */
155
156         return TRUE;
157 }
158
159 static gboolean on_zcl_scene_remove_all_scene(ZigbeeZcl_scene *zcl_scene_object,
160         GDBusMethodInvocation *invocation,
161         gshort node_id,
162         gchar dst_ep,
163         gshort group_id,
164         gpointer user_data)
165 {
166         ZigBeeService *service = (ZigBeeService *)user_data;
167
168         NOT_USED(zcl_scene_object);
169         NOT_USED(invocation);
170         NOT_USED(service);
171         NOT_USED(node_id);
172         NOT_USED(dst_ep);
173         NOT_USED(group_id);
174
175         /*
176          * TODO -
177          * Create and send request for processing
178          */
179
180         return TRUE;
181 }
182
183 static gboolean on_zcl_scene_get_scene_membership(ZigbeeZcl_scene *zcl_scene_object,
184         GDBusMethodInvocation *invocation,
185         gshort node_id,
186         gchar dst_ep,
187         gshort group_id,
188         gpointer user_data)
189 {
190         ZigBeeService *service = (ZigBeeService *)user_data;
191
192         NOT_USED(zcl_scene_object);
193         NOT_USED(invocation);
194         NOT_USED(service);
195         NOT_USED(node_id);
196         NOT_USED(dst_ep);
197         NOT_USED(group_id);
198
199         /*
200          * TODO -
201          * Create and send request for processing
202          */
203
204         return TRUE;
205 }
206
207 gboolean zigbee_service_dbus_interface_zcl_scene_init(ZigBeeService *service,
208         ZigbeeObjectSkeleton *zigbee_object)
209 {
210         ZigbeeZcl_scene *zcl_scene_object;
211
212         if (NULL == service) {
213                 Z_LOGE("service is NULL");
214                 return FALSE;
215         }
216
217         zcl_scene_object = zigbee_zcl_scene_skeleton_new();
218         zigbee_object_skeleton_set_zcl_scene(zigbee_object, zcl_scene_object);
219         g_object_unref(zcl_scene_object);
220
221         Z_LOGI("zcl_scene_object: [%p]", zcl_scene_object);
222
223         /*
224          * Register signal handlers for 'zcl_scene' interface
225          */
226         g_signal_connect(zcl_scene_object,
227                 "handle-add-scene",
228                 G_CALLBACK(on_zcl_scene_add_scene), service);
229
230         g_signal_connect(zcl_scene_object,
231                 "handle-view-scene",
232                 G_CALLBACK(on_zcl_scene_view_scene), service);
233
234         g_signal_connect(zcl_scene_object,
235                 "handle-remove-scene",
236                 G_CALLBACK(on_zcl_scene_remove_scene), service);
237
238         g_signal_connect(zcl_scene_object,
239                 "handle-store-scene",
240                 G_CALLBACK(on_zcl_scene_store_scene), service);
241
242         g_signal_connect(zcl_scene_object,
243                 "handle-recall-scene",
244                 G_CALLBACK(on_zcl_scene_recall_scene), service);
245
246         g_signal_connect(zcl_scene_object,
247                 "handle-remove-all-scene",
248                 G_CALLBACK(on_zcl_scene_remove_all_scene), service);
249
250         g_signal_connect(zcl_scene_object,
251                 "handle-get-scene-membership",
252                 G_CALLBACK(on_zcl_scene_get_scene_membership), service);
253
254         return TRUE;
255 }