1 /* 2 * Copyright (c) 2025 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_STRUCT_H 17 #define BUS_CENTER_EVENT_STRUCT_H 18 19 #include <stdbool.h> 20 #include <stdint.h> 21 #include "bus_center_info_key_struct.h" 22 #include "softbus_bus_center.h" 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 typedef enum { 29 /* event from system monitor */ 30 LNN_EVENT_IP_ADDR_CHANGED, 31 LNN_EVENT_WIFI_STATE_CHANGED, 32 LNN_EVENT_BT_STATE_CHANGED, 33 LNN_EVENT_BT_ACL_STATE_CHANGED, 34 LNN_EVENT_WLAN_PARAM, 35 LNN_EVENT_SCREEN_STATE_CHANGED, 36 LNN_EVENT_SCREEN_LOCK_CHANGED, 37 LNN_EVENT_ACCOUNT_CHANGED, 38 LNN_EVENT_DIF_ACCOUNT_DEV_CHANGED, 39 LNN_EVENT_USER_STATE_CHANGED, 40 LNN_EVENT_NIGHT_MODE_CHANGED, 41 LNN_EVENT_OOBE_STATE_CHANGED, 42 LNN_EVENT_HOME_GROUP_CHANGED, 43 LNN_EVENT_USER_SWITCHED, 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_SINGLE_NETWORK_OFFLINE, 52 LNN_EVENT_NODE_HB_REPEAT_CYCLE, 53 LNN_EVENT_NETWORKID_CHANGED, 54 LNN_EVENT_LP_EVENT_REPORT, 55 LNN_EVENT_LANE_VAP_CHANGE, 56 LNN_EVENT_DATA_SHARE_STATE_CHANGE, 57 LNN_EVENT_NODE_NET_TYPE, 58 LNN_EVENT_DEVICE_INFO_CHANGED, 59 LNN_EVENT_NET_LINK_STATE_CHANGE, 60 LNN_EVENT_SLE_STATE_CHANGED, 61 LNN_EVENT_SYS_TIME_CHANGE, 62 /* event from sa monitor */ 63 LNN_EVENT_WIFI_SERVICE_START, 64 LNN_EVENT_NOTIFY_RAW_ENHANCE_P2P, 65 LNN_EVENT_DEVICE_ROOT_STATE_CHANGED, 66 LNN_EVENT_TYPE_MAX, 67 } LnnEventType; 68 69 typedef struct { 70 LnnEventType event; 71 } LnnEventBasicInfo; 72 73 typedef struct { 74 LnnEventBasicInfo basic; 75 char ifName[NET_IF_NAME_LEN]; 76 } LnnMonitorAddressChangedEvent; 77 78 typedef enum { 79 SOFTBUS_WIFI_CONNECTED, 80 SOFTBUS_WIFI_DISCONNECTED, 81 SOFTBUS_WIFI_DISABLING, 82 SOFTBUS_WIFI_DISABLED, 83 SOFTBUS_WIFI_ENABLING, 84 SOFTBUS_WIFI_ENABLED, 85 SOFTBUS_AP_DISABLED, 86 SOFTBUS_AP_ENABLED, 87 SOFTBUS_WIFI_OBTAINING_IPADDR, 88 SOFTBUS_WIFI_SEMI_ACTIVE, 89 SOFTBUS_WIFI_P2P_CONNECTED, 90 SOFTBUS_WIFI_P2P_DISCONNECTED, 91 SOFTBUS_WIFI_UNKNOWN, 92 } SoftBusWifiState; 93 94 typedef enum { 95 SOFTBUS_SCREEN_ON, 96 SOFTBUS_SCREEN_OFF, 97 SOFTBUS_SCREEN_UNKNOWN, 98 } SoftBusScreenState; 99 100 typedef enum { 101 SOFTBUS_BLE_TURN_ON, 102 SOFTBUS_BLE_TURN_OFF, 103 SOFTBUS_BR_TURN_ON, 104 SOFTBUS_BR_TURN_OFF, 105 SOFTBUS_BT_UNKNOWN, 106 } SoftBusBtState; 107 108 typedef enum { 109 SOFTBUS_SLE_TURN_ON, 110 SOFTBUS_SLE_TURN_OFF, 111 SOFTBUS_SLE_UNKNOWN, 112 } SoftBusSleState; 113 114 typedef enum { 115 SOFTBUS_SCREEN_LOCK, 116 SOFTBUS_USER_UNLOCK, 117 SOFTBUS_SCREEN_UNLOCK, 118 SOFTBUS_SCREEN_LOCK_UNKNOWN, 119 } SoftBusScreenLockState; 120 121 typedef enum { 122 SOFTBUS_ACCOUNT_LOG_IN, 123 SOFTBUS_ACCOUNT_LOG_OUT, 124 SOFTBUS_ACCOUNT_UNKNOWN, 125 } SoftBusAccountState; 126 127 typedef enum { 128 SOFTBUS_USER_SWITCHED, 129 SOFTBUS_USER_SWITCH_UNKNOWN, 130 } SoftBusUserSwitchState; 131 132 typedef enum { 133 SOFTBUS_DATA_SHARE_READY, 134 SOFTBUS_DATA_SHARE_UNKNOWN, 135 } SoftBusDataShareState; 136 137 typedef enum { 138 SOFTBUS_DIF_ACCOUNT_DEV_CHANGE, 139 SOFTBUS_DIF_ACCOUNT_UNKNOWN, 140 } SoftBusDifferentAccountState; 141 142 typedef enum { 143 SOFTBUS_USER_FOREGROUND, 144 SOFTBUS_USER_BACKGROUND, 145 SOFTBUS_USER_UNKNOWN, 146 } SoftBusUserState; 147 148 typedef enum { 149 SOFTBUS_NIGHT_MODE_ON, 150 SOFTBUS_NIGHT_MODE_OFF, 151 SOFTBUS_NIGHT_MODE_UNKNOWN, 152 } SoftBusNightModeState; 153 154 typedef enum { 155 SOFTBUS_OOBE_RUNNING, 156 SOFTBUS_OOBE_END, 157 SOFTBUS_FACK_OOBE_END, 158 SOFTBUS_OOBE_UNKNOWN, 159 } SoftBusOOBEState; 160 161 typedef enum { 162 SOFTBUS_HOME_GROUP_CHANGE = 0X1, 163 SOFTBUS_HOME_GROUP_JOIN, 164 SOFTBUS_HOME_GROUP_LEAVE, 165 SOFTBUS_HOME_GROUP_UNKNOWN, 166 } SoftBusHomeGroupState; 167 168 typedef enum { 169 SOFTBUS_BR_ACL_CONNECTED, 170 SOFTBUS_BR_ACL_DISCONNECTED, 171 } SoftBusBtAclState; 172 173 typedef enum { 174 SOFTBUS_WIFI_NETWORKD_ENABLE, 175 SOFTBUS_WIFI_NETWORKD_DISABLE, 176 SOFTBUS_BLE_NETWORKD_ENABLE, 177 SOFTBUS_BLE_NETWORKD_DISABLE, 178 SOFTBUS_NETWORKD_UNKNOWN, 179 } SoftBusNetworkState; 180 181 typedef enum { 182 SOFTBUS_LOCAL_DEVICE_INFO_ACOUNT_CHANGED, 183 SOFTBUS_LOCAL_DEVICE_INFO_NAME_CHANGED, 184 SOFTBUS_LOCAL_DEVICE_INFO_UNKNOWN, 185 } SoftBusDeviceInfoState; 186 187 typedef enum { 188 SOFTBUS_MSDP_MOVEMENT_AND_STATIONARY, 189 SOFTBUS_LP_EVENT_UNKNOWN, 190 } SoftBusLpEventType; 191 192 typedef enum { 193 SOFTBUS_NETMANAGER_IFNAME_START, 194 SOFTBUS_NETMANAGER_IFNAME_ADDED, 195 SOFTBUS_NETMANAGER_IFNAME_REMOVED, 196 SOFTBUS_NETMANAGER_IFNAME_LINK_UP, 197 SOFTBUS_NETMANAGER_IFNAME_IPV6_UPDATED, 198 SOFTBUS_NETMANAGER_IFNAME_IP_UPDATED, 199 SOFTBUS_NETMANAGER_IFNAME_LINK_CHANGED, 200 SOFTBUS_NETMANAGER_IFNAME_UNKNOWN, 201 } NetManagerIfNameState; 202 203 typedef enum { 204 SOFTBUS_DEVICE_NOT_ROOT, 205 SOFTBUS_DEVICE_IS_ROOT, 206 SOFTBUS_DEVICE_ROOT_UNKNOWN, 207 } SoftBusDeviceRootState; 208 209 typedef struct { 210 LnnEventBasicInfo basic; 211 uint8_t status; 212 } LnnMonitorWlanStateChangedEvent; 213 214 typedef struct { 215 LnnEventBasicInfo basic; 216 uint8_t status; 217 } LnnMonitorScreenStateChangedEvent; 218 219 typedef struct { 220 LnnEventBasicInfo basic; 221 uint8_t status; 222 } LnnMonitorHbStateChangedEvent; 223 224 typedef struct { 225 LnnEventBasicInfo basic; 226 uint8_t status; 227 } LnnMonitorSleStateChangedEvent; 228 229 typedef struct { 230 LnnEventBasicInfo basic; 231 uint8_t status; 232 char btMac[BT_MAC_LEN]; 233 } LnnMonitorBtAclStateChangedEvent; 234 235 typedef struct { 236 LnnEventBasicInfo basic; 237 bool isOnline; 238 const char *networkId; 239 const char *uuid; 240 const char *udid; 241 } LnnOnlineStateEventInfo; 242 243 typedef struct { 244 LnnEventBasicInfo basic; 245 ConnectionAddrType type; 246 uint8_t relation; 247 bool isJoin; 248 const char *udid; 249 } LnnRelationChanedEventInfo; 250 251 typedef struct { 252 LnnEventBasicInfo basic; 253 int32_t weight; 254 bool isMasterNode; 255 const char* masterNodeUDID; 256 } LnnMasterNodeChangedEvent; 257 258 typedef struct { 259 LnnEventBasicInfo basic; 260 char addr[SHORT_ADDRESS_MAX_LEN]; 261 char networkId[NETWORK_ID_BUF_LEN]; 262 bool delFlag; 263 bool isLocal; 264 } LnnNodeAddrChangedEvent; 265 266 typedef struct { 267 LnnEventBasicInfo basic; 268 ConnectionAddrType type; 269 const char *networkId; 270 const char *uuid; 271 const char *udid; 272 } LnnSingleNetworkOffLineEvent; 273 274 typedef struct { 275 LnnEventBasicInfo basic; 276 ConnectionAddrType type; 277 const char *networkId; 278 const char *uuid; 279 } LnnNotifyRawEnhanceP2pEvent; 280 281 typedef struct { 282 LnnEventBasicInfo basic; 283 char networkId[NETWORK_ID_BUF_LEN]; 284 } LnnNetworkIdChangedEvent; 285 286 typedef struct { 287 LnnEventBasicInfo basic; 288 SoftBusLpEventType type; 289 } LnnLpReportEvent; 290 291 typedef struct { 292 LnnEventBasicInfo basic; 293 int32_t vapPreferChannel; 294 } LnnLaneVapChangeEvent; 295 296 typedef struct { 297 LnnEventBasicInfo basic; 298 ConnectionAddrType addrType; 299 const char *networkId; 300 } LnnNodeNetTypeInfo; 301 302 typedef struct { 303 LnnEventBasicInfo basic; 304 uint8_t status; 305 } LnnDeviceInfoChangeEvent; 306 307 typedef struct { 308 LnnEventBasicInfo basic; 309 uint8_t status; 310 char ifName[NET_IF_NAME_LEN]; 311 } LnnMonitorNetlinkStateInfo; 312 313 typedef struct { 314 LnnEventBasicInfo basic; 315 uint8_t status; 316 } LnnDeviceRootStateChangeEvent; 317 318 typedef void (*LnnEventHandler)(const LnnEventBasicInfo *info); 319 320 #ifdef __cplusplus 321 } 322 #endif 323 #endif 324