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 LNN_EVENT_USER_SWITCHED, 45 /* event from internal lnn */ 46 LNN_EVENT_NODE_ONLINE_STATE_CHANGED, 47 LNN_EVENT_NODE_MIGRATE, 48 LNN_EVENT_RELATION_CHANGED, 49 LNN_EVENT_NODE_MASTER_STATE_CHANGED, 50 LNN_EVENT_NODE_ADDR_CHANGED, 51 LNN_EVENT_NETWORK_STATE_CHANGED, 52 LNN_EVENT_SINGLE_NETWORK_OFFLINE, 53 LNN_EVENT_NODE_HB_REPEAT_CYCLE, 54 LNN_EVENT_NETWORKID_CHANGED, 55 LNN_EVENT_LP_EVENT_REPORT, 56 LNN_EVENT_LANE_VAP_CHANGE, 57 LNN_EVENT_TYPE_MAX, 58 } LnnEventType; 59 60 typedef struct { 61 LnnEventType event; 62 } LnnEventBasicInfo; 63 64 typedef struct { 65 LnnEventBasicInfo basic; 66 char ifName[NET_IF_NAME_LEN]; 67 } LnnMonitorAddressChangedEvent; 68 69 typedef enum { 70 SOFTBUS_WIFI_CONNECTED, 71 SOFTBUS_WIFI_DISCONNECTED, 72 SOFTBUS_WIFI_DISABLING, 73 SOFTBUS_WIFI_DISABLED, 74 SOFTBUS_WIFI_ENABLING, 75 SOFTBUS_WIFI_ENABLED, 76 SOFTBUS_AP_DISABLED, 77 SOFTBUS_AP_ENABLED, 78 SOFTBUS_WIFI_OBTAINING_IPADDR, 79 SOFTBUS_WIFI_SEMI_ACTIVE, 80 SOFTBUS_WIFI_UNKNOWN, 81 } SoftBusWifiState; 82 83 typedef enum { 84 SOFTBUS_SCREEN_ON, 85 SOFTBUS_SCREEN_OFF, 86 SOFTBUS_SCREEN_UNKNOWN, 87 } SoftBusScreenState; 88 89 typedef enum { 90 SOFTBUS_BLE_TURN_ON, 91 SOFTBUS_BLE_TURN_OFF, 92 SOFTBUS_BR_TURN_ON, 93 SOFTBUS_BR_TURN_OFF, 94 SOFTBUS_BT_UNKNOWN, 95 } SoftBusBtState; 96 97 typedef enum { 98 SOFTBUS_SCREEN_LOCK, 99 SOFTBUS_USER_UNLOCK, 100 SOFTBUS_SCREEN_UNLOCK, 101 SOFTBUS_SCREEN_LOCK_UNKNOWN, 102 } SoftBusScreenLockState; 103 104 typedef enum { 105 SOFTBUS_ACCOUNT_LOG_IN, 106 SOFTBUS_ACCOUNT_LOG_OUT, 107 SOFTBUS_ACCOUNT_UNKNOWN, 108 } SoftBusAccountState; 109 110 typedef enum { 111 SOFTBUS_USER_SWITCHED, 112 SOFTBUS_USER_SWITCH_UNKNOWN, 113 } SoftBusUserSwitchState; 114 115 typedef enum { 116 SOFTBUS_DIF_ACCOUNT_DEV_CHANGE, 117 SOFTBUS_DIF_ACCOUNT_UNKNOWN, 118 } SoftBusDifferentAccountState; 119 120 typedef enum { 121 SOFTBUS_USER_FOREGROUND, 122 SOFTBUS_USER_BACKGROUND, 123 SOFTBUS_USER_UNKNOWN, 124 } SoftBusUserState; 125 126 typedef enum { 127 SOFTBUS_NIGHT_MODE_ON, 128 SOFTBUS_NIGHT_MODE_OFF, 129 SOFTBUS_NIGHT_MODE_UNKNOWN, 130 } SoftBusNightModeState; 131 132 typedef enum { 133 SOFTBUS_OOBE_RUNNING, 134 SOFTBUS_OOBE_END, 135 SOFTBUS_FACK_OOBE_END, 136 SOFTBUS_OOBE_UNKNOWN, 137 } SoftBusOOBEState; 138 139 typedef enum { 140 SOFTBUS_HOME_GROUP_CHANGE = 0X1, 141 SOFTBUS_HOME_GROUP_JOIN, 142 SOFTBUS_HOME_GROUP_LEAVE, 143 SOFTBUS_HOME_GROUP_UNKNOWN, 144 } SoftBusHomeGroupState; 145 146 typedef enum { 147 SOFTBUS_BR_ACL_CONNECTED, 148 SOFTBUS_BR_ACL_DISCONNECTED, 149 } SoftBusBtAclState; 150 151 typedef enum { 152 SOFTBUS_WIFI_NETWORKD_ENABLE, 153 SOFTBUS_WIFI_NETWORKD_DISABLE, 154 SOFTBUS_BLE_NETWORKD_ENABLE, 155 SOFTBUS_BLE_NETWORKD_DISABLE, 156 SOFTBUS_NETWORKD_UNKNOWN, 157 } SoftBusNetworkState; 158 159 typedef enum { 160 SOFTBUS_MSDP_MOVEMENT_AND_STATIONARY, 161 SOFTBUS_LP_EVENT_UNKNOWN, 162 } SoftBusLpEventType; 163 164 typedef struct { 165 LnnEventBasicInfo basic; 166 uint8_t status; 167 } LnnMonitorWlanStateChangedEvent; 168 169 typedef struct { 170 LnnEventBasicInfo basic; 171 uint8_t status; 172 } LnnMonitorScreenStateChangedEvent; 173 174 typedef struct { 175 LnnEventBasicInfo basic; 176 uint8_t status; 177 } LnnMonitorHbStateChangedEvent; 178 179 typedef struct { 180 LnnEventBasicInfo basic; 181 uint8_t status; 182 char btMac[BT_MAC_LEN]; 183 } LnnMonitorBtAclStateChangedEvent; 184 185 typedef struct { 186 LnnEventBasicInfo basic; 187 bool isOnline; 188 const char *networkId; 189 const char *uuid; 190 const char *udid; 191 } LnnOnlineStateEventInfo; 192 193 typedef struct { 194 LnnEventBasicInfo basic; 195 ConnectionAddrType type; 196 uint8_t relation; 197 bool isJoin; 198 const char *udid; 199 } LnnRelationChanedEventInfo; 200 201 typedef struct { 202 LnnEventBasicInfo basic; 203 const char* masterNodeUDID; 204 int32_t weight; 205 bool isMasterNode; 206 } LnnMasterNodeChangedEvent; 207 208 typedef struct { 209 LnnEventBasicInfo basic; 210 char addr[SHORT_ADDRESS_MAX_LEN]; 211 char networkId[NETWORK_ID_BUF_LEN]; 212 bool delFlag; 213 bool isLocal; 214 } LnnNodeAddrChangedEvent; 215 216 typedef struct { 217 LnnEventBasicInfo basic; 218 ConnectionAddrType type; 219 const char *networkId; 220 const char *uuid; 221 const char *udid; 222 } LnnSingleNetworkOffLineEvent; 223 224 typedef struct { 225 LnnEventBasicInfo basic; 226 char networkId[NETWORK_ID_BUF_LEN]; 227 } LnnNetworkIdChangedEvent; 228 229 typedef struct { 230 LnnEventBasicInfo basic; 231 SoftBusLpEventType type; 232 } LnnLpReportEvent; 233 234 typedef struct { 235 LnnEventBasicInfo basic; 236 int32_t vapPreferChannel; 237 } LnnLaneVapChangeEvent; 238 239 typedef void (*LnnEventHandler)(const LnnEventBasicInfo *info); 240 241 int32_t LnnInitBusCenterEvent(void); 242 void LnnDeinitBusCenterEvent(void); 243 244 int32_t LnnRegisterEventHandler(LnnEventType event, LnnEventHandler handler); 245 void LnnUnregisterEventHandler(LnnEventType event, LnnEventHandler handler); 246 247 void LnnNotifyJoinResult(ConnectionAddr *addr, 248 const char *networkId, int32_t retCode); 249 void LnnNotifyLeaveResult(const char *networkId, int32_t retCode); 250 251 void LnnNotifyOnlineState(bool isOnline, NodeBasicInfo *info); 252 void LnnNotifyBasicInfoChanged(NodeBasicInfo *info, NodeBasicInfoType type); 253 void LnnNotifyNodeStatusChanged(NodeStatus *info, NodeStatusType type); 254 void LnnNotifyLocalNetworkIdChanged(void); 255 void LnnNotifyDeviceNotTrusted(const char *msg); 256 void LnnNotifyHichainProofException( 257 const char *proofInfo, uint32_t proofLen, uint16_t deviceTypeId, int32_t errCode); 258 void LnnNotifyMigrate(bool isOnline, NodeBasicInfo *info); 259 260 void LnnNotifyWlanStateChangeEvent(void *state); 261 void LnnNotifyScreenStateChangeEvent(SoftBusScreenState state); 262 void LnnNotifyDifferentAccountChangeEvent(void *state); 263 void LnnNotifyBtStateChangeEvent(void *state); 264 void LnnNotifyScreenLockStateChangeEvent(SoftBusScreenLockState state); 265 void LnnNotifyAccountStateChangeEvent(SoftBusAccountState state); 266 void LnnNotifyUserStateChangeEvent(SoftBusUserState state); 267 void LnnNotifyHomeGroupChangeEvent(SoftBusHomeGroupState state); 268 void LnnNotifyNightModeStateChangeEvent(void *state); 269 void LnnNotifyOOBEStateChangeEvent(SoftBusOOBEState state); 270 void LnnNotifyBtAclStateChangeEvent(const char *btMac, SoftBusBtAclState state); 271 void LnnNotifyAddressChangedEvent(const char* ifName); 272 void LnnNotifyLnnRelationChanged(const char *udid, ConnectionAddrType type, uint8_t relation, bool isJoin); 273 void LnnNotifyDeviceVerified(const char *udid); 274 275 void LnnNotifyTimeSyncResult(const char *pkgName, int32_t pid, const TimeSyncResultInfo *info, int32_t retCode); 276 277 void LnnNotifyMasterNodeChanged(bool isMaster, const char* masterNodeUdid, int32_t weight); 278 279 void LnnNotifyNodeAddressChanged(const char *addr, const char *networkId, bool isLocal); 280 281 void LnnNotifyNetworkStateChanged(SoftBusNetworkState state); 282 283 void LnnNotifySingleOffLineEvent(const ConnectionAddr *addr, NodeBasicInfo *basicInfo); 284 285 void LnnNotifyNetworkIdChangeEvent(const char *networkId); 286 287 void LnnNotifyLpReportEvent(SoftBusLpEventType type); 288 289 void LnnNotifyHBRepeat(void); 290 291 void LnnNotifyUserSwitchEvent(SoftBusUserSwitchState state); 292 293 void LnnNotifyVapInfoChangeEvent(int32_t preferChannel); 294 295 #ifdef __cplusplus 296 } 297 #endif 298 #endif 299