• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef BUS_CENTER_EVENT_H
17 #define BUS_CENTER_EVENT_H
18 
19 #include <stdbool.h>
20 #include <stdint.h>
21 
22 #include "softbus_bus_center.h"
23 #include "bus_center_info_key.h"
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 typedef enum {
30     /* event from system monitor */
31     LNN_EVENT_IP_ADDR_CHANGED,
32     LNN_EVENT_WIFI_STATE_CHANGED,
33     LNN_EVENT_BT_STATE_CHANGED,
34     LNN_EVENT_BT_ACL_STATE_CHANGED,
35     LNN_EVENT_WLAN_PARAM,
36     LNN_EVENT_SCREEN_STATE_CHANGED,
37     LNN_EVENT_SCREEN_LOCK_CHANGED,
38     LNN_EVENT_ACCOUNT_CHANGED,
39     LNN_EVENT_DIF_ACCOUNT_DEV_CHANGED,
40     LNN_EVENT_USER_STATE_CHANGED,
41     LNN_EVENT_NIGHT_MODE_CHANGED,
42     LNN_EVENT_OOBE_STATE_CHANGED,
43     LNN_EVENT_HOME_GROUP_CHANGED,
44     /* event from internal lnn */
45     LNN_EVENT_NODE_ONLINE_STATE_CHANGED,
46     LNN_EVENT_NODE_MIGRATE,
47     LNN_EVENT_RELATION_CHANGED,
48     LNN_EVENT_NODE_MASTER_STATE_CHANGED,
49     LNN_EVENT_NODE_ADDR_CHANGED,
50     LNN_EVENT_NETWORK_STATE_CHANGED,
51     LNN_EVENT_NODE_HB_REPEAT_CYCLE,
52     LNN_EVENT_TYPE_MAX,
53 } LnnEventType;
54 
55 typedef struct {
56     LnnEventType event;
57 } LnnEventBasicInfo;
58 
59 typedef struct {
60     LnnEventBasicInfo basic;
61     char ifName[NET_IF_NAME_LEN];
62 } LnnMonitorAddressChangedEvent;
63 
64 typedef enum {
65     SOFTBUS_WIFI_CONNECTED,
66     SOFTBUS_WIFI_DISCONNECTED,
67     SOFTBUS_WIFI_DISABLING,
68     SOFTBUS_WIFI_DISABLED,
69     SOFTBUS_WIFI_ENABLING,
70     SOFTBUS_WIFI_ENABLED,
71     SOFTBUS_AP_DISABLED,
72     SOFTBUS_AP_ENABLED,
73     SOFTBUS_WIFI_OBTAINING_IPADDR,
74     SOFTBUS_WIFI_UNKNOWN,
75 } SoftBusWifiState;
76 
77 typedef enum {
78     SOFTBUS_SCREEN_ON,
79     SOFTBUS_SCREEN_OFF,
80     SOFTBUS_SCREEN_UNKNOWN,
81 } SoftBusScreenState;
82 
83 typedef enum {
84     SOFTBUS_BLE_TURN_ON,
85     SOFTBUS_BLE_TURN_OFF,
86     SOFTBUS_BR_TURN_ON,
87     SOFTBUS_BR_TURN_OFF,
88     SOFTBUS_BT_UNKNOWN,
89 } SoftBusBtState;
90 
91 typedef enum {
92     SOFTBUS_SCREEN_LOCK,
93     SOFTBUS_SCREEN_UNLOCK,
94     SOFTBUS_SCREEN_LOCK_UNKNOWN,
95 } SoftBusScreenLockState;
96 
97 typedef enum {
98     SOFTBUS_ACCOUNT_LOG_IN,
99     SOFTBUS_ACCOUNT_LOG_OUT,
100     SOFTBUS_ACCOUNT_UNKNOWN,
101 } SoftBusAccountState;
102 
103 typedef enum {
104     SOFTBUS_DIF_ACCOUNT_DEV_CHANGE,
105     SOFTBUS_DIF_ACCOUNT_UNKNOWN,
106 } SoftBusDifferentAccountState;
107 
108 typedef enum {
109     SOFTBUS_USER_FOREGROUND,
110     SOFTBUS_USER_BACKGROUND,
111     SOFTBUS_USER_UNKNOWN,
112 } SoftBusUserState;
113 
114 typedef enum {
115     SOFTBUS_NIGHT_MODE_ON,
116     SOFTBUS_NIGHT_MODE_OFF,
117     SOFTBUS_NIGHT_MODE_UNKNOWN,
118 } SoftBusNightModeState;
119 
120 typedef enum {
121     SOFTBUS_OOBE_RUNNING,
122     SOFTBUS_OOBE_END,
123     SOFTBUS_OOBE_UNKNOWN,
124 } SoftBusOOBEState;
125 
126 typedef enum {
127     SOFTBUS_HOME_GROUP_JOIN = 1,
128     SOFTBUS_HOME_GROUP_LEAVE,
129     SOFTBUS_HOME_GROUP_UNKNOWN,
130 } SoftBusHomeGroupState;
131 
132 typedef enum {
133     SOFTBUS_BR_ACL_CONNECTED,
134     SOFTBUS_BR_ACL_DISCONNECTED,
135 } SoftBusBtAclState;
136 
137 typedef enum {
138     SOFTBUS_WIFI_NETWORKD_ENABLE,
139     SOFTBUS_WIFI_NETWORKD_DISABLE,
140     SOFTBUS_BLE_NETWORKD_ENABLE,
141     SOFTBUS_BLE_NETWORKD_DISABLE,
142     SOFTBUS_NETWORKD_UNKNOWN,
143 } SoftBusNetworkState;
144 
145 typedef struct {
146     LnnEventBasicInfo basic;
147     uint8_t status;
148 } LnnMonitorWlanStateChangedEvent;
149 
150 typedef struct {
151     LnnEventBasicInfo basic;
152     uint8_t status;
153 } LnnMonitorScreenStateChangedEvent;
154 
155 typedef struct {
156     LnnEventBasicInfo basic;
157     uint8_t status;
158 } LnnMonitorHbStateChangedEvent;
159 
160 typedef struct {
161     LnnEventBasicInfo basic;
162     uint8_t status;
163     char btMac[BT_MAC_LEN];
164 } LnnMonitorBtAclStateChangedEvent;
165 
166 typedef struct {
167     LnnEventBasicInfo basic;
168     bool isOnline;
169     const char *networkId;
170     const char *uuid;
171     const char *udid;
172 } LnnOnlineStateEventInfo;
173 
174 typedef struct {
175     LnnEventBasicInfo basic;
176     ConnectionAddrType type;
177     uint8_t relation;
178     bool isJoin;
179     const char *udid;
180 } LnnRelationChanedEventInfo;
181 
182 typedef struct {
183     LnnEventBasicInfo basic;
184     const char* masterNodeUDID;
185     int32_t weight;
186     bool isMasterNode;
187 } LnnMasterNodeChangedEvent;
188 
189 typedef struct {
190     LnnEventBasicInfo basic;
191     char addr[SHORT_ADDRESS_MAX_LEN];
192     char networkId[NETWORK_ID_BUF_LEN];
193     bool delFlag;
194     bool isLocal;
195 } LnnNodeAddrChangedEvent;
196 
197 typedef void (*LnnEventHandler)(const LnnEventBasicInfo *info);
198 
199 int32_t LnnInitBusCenterEvent(void);
200 void LnnDeinitBusCenterEvent(void);
201 
202 int32_t LnnRegisterEventHandler(LnnEventType event, LnnEventHandler handler);
203 void LnnUnregisterEventHandler(LnnEventType event, LnnEventHandler handler);
204 
205 void LnnNotifyJoinResult(ConnectionAddr *addr,
206     const char *networkId, int32_t retCode);
207 void MetaNodeNotifyJoinResult(ConnectionAddr *addr,
208     const char *networkId, int32_t retCode);
209 void LnnNotifyLeaveResult(const char *networkId, int32_t retCode);
210 void MetaNodeNotifyLeaveResult(const char *networkId, int32_t retCode);
211 
212 void LnnNotifyOnlineState(bool isOnline, NodeBasicInfo *info);
213 void LnnNotifyBasicInfoChanged(NodeBasicInfo *info, NodeBasicInfoType type);
214 void LnnNotifyMigrate(bool isOnline, NodeBasicInfo *info);
215 
216 void LnnNotifyWlanStateChangeEvent(SoftBusWifiState state);
217 void LnnNotifyScreenStateChangeEvent(SoftBusScreenState state);
218 void LnnNotifyDifferentAccountChangeEvent(void *state);
219 void LnnNotifyBtStateChangeEvent(void *state);
220 void LnnNotifyScreenLockStateChangeEvent(SoftBusScreenLockState state);
221 void LnnNotifyAccountStateChangeEvent(void *state);
222 void LnnNotifyUserStateChangeEvent(SoftBusUserState state);
223 void LnnNotifyHomeGroupChangeEvent(SoftBusHomeGroupState state);
224 void LnnNotifyNightModeStateChangeEvent(void *state);
225 void LnnNotifyOOBEStateChangeEvent(SoftBusOOBEState state);
226 void LnnNotifyBtAclStateChangeEvent(const char *btMac, SoftBusBtAclState state);
227 void LnnNotifyAddressChangedEvent(const char* ifName);
228 void LnnNotifyLnnRelationChanged(const char *udid, ConnectionAddrType type, uint8_t relation, bool isJoin);
229 void LnnNotifyDeviceVerified(const char *udid);
230 
231 void LnnNotifyTimeSyncResult(const char *pkgName, int32_t pid, const TimeSyncResultInfo *info, int32_t retCode);
232 
233 void LnnNotifyMasterNodeChanged(bool isMaster, const char* masterNodeUdid, int32_t weight);
234 
235 void LnnNotifyNodeAddressChanged(const char *addr, const char *networkId, bool isLocal);
236 
237 void LnnNotifyNetworkStateChanged(SoftBusNetworkState state);
238 void LnnNotifyHBRepeat(void);
239 
240 #ifdef __cplusplus
241 }
242 #endif
243 #endif
244