public void UpdatePlayers() { if (Zone == null) { Destroy(); return; } long Tick = TCPManager.GetTimeStampMS(); players = players.Where(kv => (Tick - kv.Value) < PLAYER_EXPIRE * 1000).ToDictionary(x => x.Key, v => v.Value); if (players.Count == 0 && !IsDisposed) { Destroy(); return; } HotSpotState newState; if (players.Count >= 24) { newState = HotSpotState.HOTSPOT_24; } else if (players.Count >= 16) { newState = HotSpotState.HOTSPOT_16; } else if (players.Count >= 8) { newState = HotSpotState.HOTSPOT_8; } else { newState = HotSpotState.NONE; } if (newState != State) { State = newState; Zone.SendHotSpots(null); } }
private void OnHotspotStateChange(object sender, HotSpotState e) { if (localHotspot != null) { buttonCreateHotspot.Visibility = ViewStates.Visible; switch (localHotspot.GetHotSpotState()) { case HotSpotState.Disabled: buttonSendMessage.Visibility = ViewStates.Invisible; buttonCreateHotspot.Text = Utils.TurnHotspotOnMessage; ShowWifiParameters(false); break; case HotSpotState.Enabled: buttonSendMessage.Visibility = ViewStates.Visible; buttonCreateHotspot.Text = Utils.TurnHotspotOffMessage; ShowWifiParameters(true); break; } } }
public static HotSpotState GetHotSpotState() { IntPtr pNetStatus = new IntPtr(); IntPtr clientHandle; uint negotiatedVersion; HotSpotState returnValue = HotSpotState.Unavailable; var openHandleSuccess = WlanOpenHandle(2, IntPtr.Zero, out negotiatedVersion, out clientHandle); uint hostedNetworkQueryStatusSuccess = WlanHostedNetworkQueryStatus(clientHandle, out pNetStatus, IntPtr.Zero); if (openHandleSuccess == 0) { var netStat = (WLAN_HOSTED_NETWORK_STATUS)Marshal.PtrToStructure(pNetStatus, typeof(WLAN_HOSTED_NETWORK_STATUS)); if (netStat.HostedNetworkState != WLAN_HOSTED_NETWORK_STATE.wlan_hosted_network_unavailable) { returnValue = netStat.HostedNetworkState == WLAN_HOSTED_NETWORK_STATE.wlan_hosted_network_active ? HotSpotState.Active : HotSpotState.Idle; } WlanCloseHandle(clientHandle, IntPtr.Zero); WlanFreeMemory(pNetStatus); } return(returnValue); }
protected virtual void OnStateChanged(HotSpotState hotSpotState) { Console.WriteLine("[State] changed to: " + hotSpotState); StateChange?.Invoke(this, hotSpotState); }