protected void OnNotification(ref WLAN_NOTIFICATION_DATA notifData, IntPtr context) { switch (notifData.notificationCode) { case (int)WLAN_HOSTED_NETWORK_NOTIFICATION_CODE.wlan_hosted_network_state_change: if (notifData.dataSize > 0 && notifData.dataPtr != IntPtr.Zero) { WLAN_HOSTED_NETWORK_STATE_CHANGE pStateChange = (WLAN_HOSTED_NETWORK_STATE_CHANGE)Marshal.PtrToStructure(notifData.dataPtr, typeof(WLAN_HOSTED_NETWORK_STATE_CHANGE)); switch (pStateChange.NewState) { case WLAN_HOSTED_NETWORK_STATE.wlan_hosted_network_active: onHostedNetworkStarted(); break; case WLAN_HOSTED_NETWORK_STATE.wlan_hosted_network_idle: if (pStateChange.OldState == WLAN_HOSTED_NETWORK_STATE.wlan_hosted_network_active) { OnHostedNetworkStopped(); } else { OnHostedNetworkAvailable(); } break; case WLAN_HOSTED_NETWORK_STATE.wlan_hosted_network_unavailable: if (pStateChange.OldState == WLAN_HOSTED_NETWORK_STATE.wlan_hosted_network_active) { OnHostedNetworkStopped(); } OnHostedNetworkAvailable(); break; } } break; case (int)WLAN_HOSTED_NETWORK_NOTIFICATION_CODE.wlan_hosted_network_peer_state_change: if (notifData.dataSize > 0 && notifData.dataPtr != IntPtr.Zero) { WLAN_HOSTED_NETWORK_DATA_PEER_STATE_CHANGE pPeerStateChange = (WLAN_HOSTED_NETWORK_DATA_PEER_STATE_CHANGE)Marshal.PtrToStructure(notifData.dataPtr, typeof(WLAN_HOSTED_NETWORK_DATA_PEER_STATE_CHANGE)); if (pPeerStateChange.NewState.PeerAuthState == WLAN_HOSTED_NETWORK_PEER_AUTH_STATE.wlan_hosted_network_peer_state_authenticated) { // Station joined the hosted network OnStationJoin(pPeerStateChange.NewState); } else if (pPeerStateChange.NewState.PeerAuthState == WLAN_HOSTED_NETWORK_PEER_AUTH_STATE.wlan_hosted_network_peer_state_invalid) { // Station left the hosted network OnStationLeave(pPeerStateChange.NewState); } else { // Authentication state changed OnStationStateChange(pPeerStateChange.NewState); } } break; case (int)WLAN_HOSTED_NETWORK_NOTIFICATION_CODE.wlan_hosted_network_radio_state_change: if (notifData.dataSize > 0 && notifData.dataPtr != IntPtr.Zero) { //WLAN_HOSTED_NETWORK_RADIO_STATE pRadioState = (WLAN_HOSTED_NETWORK_RADIO_STATE)Marshal.PtrToStructure(notifData.dataPtr, typeof(WLAN_HOSTED_NETWORK_RADIO_STATE)); // Do nothing for now } //else //{ // // // Shall NOT happen // // _ASSERT(FAILSE); //} break; } }
protected void OnNotification(ref WLAN_NOTIFICATION_DATA notificationData, IntPtr context) { switch ((int)notificationData.NotificationCode) { case (int)WLAN_HOSTED_NETWORK_NOTIFICATION_CODE.STATE_CHANGE: if (notificationData.dwDataSize > 0 && notificationData.pData != IntPtr.Zero) { WLAN_HOSTED_NETWORK_STATE_CHANGE pStateChange = (WLAN_HOSTED_NETWORK_STATE_CHANGE)Marshal.PtrToStructure( notificationData.pData, typeof(WLAN_HOSTED_NETWORK_STATE_CHANGE)); switch (pStateChange.NewState) { case WLAN_HOSTED_NETWORK_STATE.ACTIVE: onHostedNetworkStarted(); break; case WLAN_HOSTED_NETWORK_STATE.IDLE: if (pStateChange.OldState == WLAN_HOSTED_NETWORK_STATE.ACTIVE) { onHostedNetworkStopped(); } else { onHostedNetworkAvailable(); } break; case WLAN_HOSTED_NETWORK_STATE.UNAVAILABLE: if (pStateChange.OldState == WLAN_HOSTED_NETWORK_STATE.ACTIVE) { onHostedNetworkStopped(); } onHostedNetworkAvailable(); break; } } break; case (int)WLAN_HOSTED_NETWORK_NOTIFICATION_CODE.PEER_STATE_CHANGE: if (notificationData.dwDataSize > 0 && notificationData.pData != IntPtr.Zero) { WLAN_HOSTED_NETWORK_DATA_PEER_STATE_CHANGE pPeerStateChange = (WLAN_HOSTED_NETWORK_DATA_PEER_STATE_CHANGE)Marshal.PtrToStructure(notificationData.pData, typeof(WLAN_HOSTED_NETWORK_DATA_PEER_STATE_CHANGE)); if (pPeerStateChange.NewState.PeerAuthState == WLAN_HOSTED_NETWORK_PEER_AUTH_STATE.AUTHENTICATED) { // Station joined the hosted network onStationJoin(pPeerStateChange.NewState); } else if (pPeerStateChange.NewState.PeerAuthState == WLAN_HOSTED_NETWORK_PEER_AUTH_STATE.INVALID) { // Station left the hosted network onStationLeave(pPeerStateChange.NewState); } else { // Authentication state changed onStationStateChange(pPeerStateChange.NewState); } } break; case (int)WLAN_HOSTED_NETWORK_NOTIFICATION_CODE.RADIO_STATE_CHANGE: if (notificationData.dwDataSize > 0 && notificationData.pData != IntPtr.Zero) { //WLAN_HOSTED_NETWORK_RADIO_STATE pRadioState = (WLAN_HOSTED_NETWORK_RADIO_STATE)Marshal.PtrToStructure(notifData.dataPtr, typeof(WLAN_HOSTED_NETWORK_RADIO_STATE)); // Do nothing for now } //else //{ // // // Shall NOT happen // // _ASSERT(FAILSE); //} break; } }