6dcd6b34c3ebf0bd933f69ce3b900e365de210c5
[platform/core/connectivity/zigbee-manager.git] / zigbee-daemon / zigbee-lib / include / zblib.h
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 #ifndef __ZIGBEE_LIB_H__
20 #define __ZIGBEE_LIB_H__
21
22 #include <stdio.h>
23 #include <stdlib.h>
24 #include <string.h>
25
26 #include <glib.h>
27
28 #include <zblib_log.h>
29 #include <zblib_common.h>
30
31 #include <zigbee_service_type.h>
32 #include <zigbee_custom_type.h>
33 #include <zigbee_mfglib_control_type.h>
34 #include <zigbee_zdo_dev_control_type.h>
35 #include <zigbee_zdo_bind_type.h>
36 #include <zigbee_zcl_global_control_type.h>
37 #include <zigbee_zcl_alarm_type.h>
38 #include <zigbee_zcl_basic_type.h>
39 #include <zigbee_zcl_color_control_type.h>
40 #include <zigbee_zcl_door_lock_type.h>
41 #include <zigbee_zcl_fan_control_type.h>
42 #include <zigbee_zcl_group_type.h>
43 #include <zigbee_zcl_ias_zone_type.h>
44 #include <zigbee_zcl_identify_type.h>
45 #include <zigbee_zcl_level_control_type.h>
46 #include <zigbee_zcl_on_off_type.h>
47 #include <zigbee_zcl_poll_control_type.h>
48 #include <zigbee_zcl_scene_type.h>
49 #include <zigbee_zcl_thermostat_type.h>
50
51 #define NOT_USED(var) ((var) = (var))
52
53 /**< ZigBee module typedefs */
54 typedef struct zblib_service_type ZigBeeService;
55 typedef struct zblib_plugin_type ZigBeePlugin;
56 typedef struct zblib_driver_type ZigBeeDriver;
57 typedef struct zblib_service_interface_type ZigBeeServiceInterface;
58 typedef struct zblib_request_type ZigBeeRequest;
59
60 /**< ZigBee driver types */
61 typedef enum {
62         ZBLIB_DRIVER_TYPE_NONE, /**< None */
63         ZBLIB_DRIVER_TYPE_SERVICE, /**< Service */
64         ZBLIB_DRIVER_TYPE_ZDO_DEV_CONTROL, /**< ZDO Dev control */
65         ZBLIB_DRIVER_TYPE_ZDO_BIND, /**< ZDO bind */
66         ZBLIB_DRIVER_TYPE_ZCL_GLOBAL_CONTROL, /**< ZCL Global control */
67         ZBLIB_DRIVER_TYPE_ZCL_ALARM, /**< ZCL Alarm */
68         ZBLIB_DRIVER_TYPE_ZCL_BASIC, /**< ZCL Basic control */
69         ZBLIB_DRIVER_TYPE_ZCL_COLOR_CONTROL, /**< ZCL color */
70         ZBLIB_DRIVER_TYPE_ZCL_DOOR_LOCK, /**< ZCL Door lock */
71         ZBLIB_DRIVER_TYPE_ZCL_FAN_CONTROL, /**< ZCL Fan control */
72         ZBLIB_DRIVER_TYPE_ZCL_GROUP, /**< ZCL group */
73         ZBLIB_DRIVER_TYPE_ZCL_IAS_ZONE, /**< ZCL IAS zone */
74         ZBLIB_DRIVER_TYPE_ZCL_IDENTIFY, /**< ZCL Identify */
75         ZBLIB_DRIVER_TYPE_ZCL_LEVEL_CONTROL, /**< ZCL Level control */
76         ZBLIB_DRIVER_TYPE_ZCL_ON_OFF, /**< ZCL On Off */
77         ZBLIB_DRIVER_TYPE_ZCL_POLL_CONTROL, /**< ZCL poll control */
78         ZBLIB_DRIVER_TYPE_ZCL_SCENE, /**< ZCL scene */
79         ZBLIB_DRIVER_TYPE_ZCL_THERMOSTAT, /**< ZCL Thermostat */
80         ZBLIB_DRIVER_TYPE_CUSTOM, /**< Custom */
81         ZBLIB_DRIVER_TYPE_MFGLIB_CONTROL, /**< Mfglib control */
82
83 } ZblibDriverType_e;
84
85 #endif /* __ZIGBEE_LIB_H__ */