/// <summary> /// Saves current clients mute statuses if available /// </summary> public void SaveCurrentMuteStatuses() { if (UseStoredIdsStatuses && mutedIds != null) { StatusesHolder holder = new StatusesHolder(); foreach (KeyValuePair <ulong, MuteStatus> item in mutedIds) { //Save only information about statuses != than None value and ignore RemoteHasMutedLocal status MuteStatus status = item.Value & ~MuteStatus.RemoteHasMutedLocal; if (status == MuteStatus.None) { continue; } holder.IDs.Add(item.Key); holder.Statuses.Add(status); } if (!Directory.Exists(SavedDataFolderPath)) { Directory.CreateDirectory(SavedDataFolderPath); } File.WriteAllText(SavedDataFilePath, JsonUtility.ToJson(holder)); } }
/// <summary> /// Performs the bgm menu action. /// </summary> /// <param name="button">Button.</param> public static void PerformBgmMenuAction(int button) { switch (button) { case BGM_MENU_MUTE_BUTTON: if (_currentBGMStatus == MuteStatus.unmute) { _currentBGMStatus = MuteStatus.mute; Audio.PauseMusic(); } else { _currentBGMStatus = MuteStatus.unmute; Audio.ResumeMusic(); } break; case BGM_MENU_BGM1_BUTTON: SwinGame.PlayMusic(GameResources.GameMusic("bgm1")); break; case BGM_MENU_BGM2_BUTTON: SwinGame.PlayMusic(GameResources.GameMusic("bgm2")); break; case BGM_MENU_BGM3_BUTTON: SwinGame.PlayMusic(GameResources.GameMusic("Background")); break; } GameController.EndCurrentState(); }
private void updateMuteStatus(MuteStatus muteStatus) { lock (this._muteStatusLock) { this.MuteStatus = muteStatus; } }
internal override bool processAnswerString(string a) { if (!base.processAnswerString(a)) { _status = MuteStatus.UNKNOWN; return(false); } if (_cmdDetail == Mute.QUERY) { a = a.Replace("%1AVMT=", ""); int retVal = int.Parse(a); if (retVal == 31) { _status = MuteStatus.MUTED; } else if (retVal == 30) { _status = MuteStatus.UNMUTED; } else { _status = MuteStatus.UNKNOWN; } } return(true); }
public override void ProcessIsMutedMessage(bool isSelfMuted, ulong senderID) { if (!HandlersMuteStatuses.ContainsKey(senderID)) { HandlersMuteStatuses.Add(senderID, MuteStatus.None); } MuteStatus curr = HandlersMuteStatuses[senderID]; HandlersMuteStatuses[senderID] = isSelfMuted ? curr | MuteStatus.RemoteHasMutedLocal : curr & ~MuteStatus.RemoteHasMutedLocal; }
public MainWindow(Configuration config) { this.config = config; InitializeComponent(); mutedStylingSet = MuteStatus.NotSet; SetupIcons(); SetupStatusCheckTimer(); SetStyling(); ConfigureHotkeys(config); SetInitialConfiguration(config); }
/// <summary> /// Processes the ismuted message received /// </summary> /// <param name="isSelfMuted">true if local slient has been muted by the sender</param> /// <param name="senderID">message sender id</param> public override void ProcessIsMutedMessage(bool isSelfMuted, ulong senderID) { if (!mutedIds.ContainsKey(senderID)) { mutedIds.Add(senderID, MuteStatus.None); } bool existsLocally = handlers.ContainsKey(senderID); if (existsLocally && handlers[senderID].IsRecorder) { return; } MuteStatus curr = mutedIds[senderID]; bool isMutedRemotely = ((byte)curr & (byte)MuteStatus.RemoteHasMutedLocal) != 0; bool diff = isSelfMuted ? !isMutedRemotely : isMutedRemotely; if (diff) { if (!isMutedRemotely) { mutedIds[senderID] = curr | MuteStatus.RemoteHasMutedLocal; if (existsLocally) { activeIdsToSendTo.Remove(senderID); } } else { mutedIds[senderID] = curr & ~MuteStatus.RemoteHasMutedLocal; if (existsLocally) { activeIdsToSendTo.Add(senderID); } } } }
/// <summary> /// Informs the workflow whenever an handler has been muted /// </summary> /// <param name="handler">handler obj to check</param> /// <param name="sendMsgOnlyIfDiffDetected">true if you wich to send a network message only when the mute status has changed</param> public override void IsHandlerMuted(VoiceHandler handler, bool sendMsgOnlyIfDiffDetected = true) { ulong handlerNetId = handler.NetID; if (!mutedIds.ContainsKey(handlerNetId)) { mutedIds.Add(handlerNetId, MuteStatus.None); } if (!handlers.ContainsKey(handlerNetId) || handlers[handlerNetId].IsRecorder) { return; } bool isMuted = handler.IsOutputMuted; MuteStatus curr = mutedIds[handlerNetId]; bool isMutedLocally = ((byte)curr & (byte)MuteStatus.LocalHasMutedRemote) != 0; bool diff = isMuted ? !isMutedLocally : isMutedLocally; if (diff) { if (!isMutedLocally) { mutedIds[handlerNetId] = curr | MuteStatus.LocalHasMutedRemote; } else { mutedIds[handlerNetId] = curr & ~MuteStatus.LocalHasMutedRemote; } } if (diff || !sendMsgOnlyIfDiffDetected) { Transport.SendMessageIsMutedTo(handlerNetId, isMuted); } }
private void SetUnMutedStyling() { if (mutedStylingSet == MuteStatus.Unmuted) { return; } if (!string.IsNullOrEmpty(config.UnmutedColour)) { MuteToggleButton.Background = (SolidColorBrush) new BrushConverter().ConvertFrom(config.UnmutedColour); } else { MuteToggleButton.Background = System.Windows.Media.Brushes.Green; } MuteToggleButton.Content = "UNMUTED"; Title = "UNMUTED - ezmute"; Icon = unmutedIcon; IndicatorIcon.ImageSource = unmutedIcon; tbi.Icon = unmutedIconIcon; tbi.ToolTipText = "UNMUTED - ezmute"; ShowBalloonTip("Unmuted", "All input devices unmuted!"); mutedStylingSet = MuteStatus.Unmuted; }
public override void IsHandlerMuted(VoiceHandler handler, bool sendMsgOnlyWithDiffDetected = true) { ulong handlerNetId = handler.NetID; if (!HandlersMuteStatuses.ContainsKey(handlerNetId)) { HandlersMuteStatuses.Add(handlerNetId, MuteStatus.None); } bool isMuted = handler.IsOutputMuted; MuteStatus curr = HandlersMuteStatuses[handlerNetId]; bool isMutedLocally = ((byte)curr & (byte)MuteStatus.LocalHasMutedRemote) != 0; bool diff = isMuted ? !isMutedLocally : isMutedLocally; if (diff) { HandlersMuteStatuses[handlerNetId] = !isMutedLocally ? curr | MuteStatus.LocalHasMutedRemote : curr & ~MuteStatus.LocalHasMutedRemote; Transport.SendMessageIsMutedTo(handlerNetId, isMuted); } }
/// <summary> /// Handles user input for the Deployment phase of the game. /// </summary> /// <remarks> /// Involves selecting the ships, deloying ships, changing the direction /// of the ships to add, randomising deployment, end then ending /// deployment /// </remarks> public static void HandleDeploymentInput() { if (SwinGame.KeyTyped(KeyCode.vk_F5)) { SwinGame.ToggleFullScreen(); } if (SwinGame.KeyTyped(KeyCode.vk_ESCAPE)) { GameController.AddNewState(GameState.ViewingGameMenu); } if (SwinGame.KeyTyped(KeyCode.vk_UP) | SwinGame.KeyTyped(KeyCode.vk_DOWN)) { _currentDirection = Direction.UpDown; } if (SwinGame.KeyTyped(KeyCode.vk_LEFT) | SwinGame.KeyTyped(KeyCode.vk_RIGHT)) { _currentDirection = Direction.LeftRight; } if (SwinGame.KeyTyped(KeyCode.vk_r)) { GameController.HumanPlayer.RandomizeDeployment(); } if (SwinGame.MouseClicked(MouseButton.LeftButton)) { ShipName selected = default(ShipName); selected = GetShipMouseIsOver(); if (selected != ShipName.None) { _selectedShip = selected; } else { DoDeployClick(); } if (GameController.HumanPlayer.ReadyToDeploy & UtilityFunctions.IsMouseInRectangle(PLAY_BUTTON_LEFT, TOP_BUTTONS_TOP, PLAY_BUTTON_WIDTH, TOP_BUTTONS_HEIGHT)) { GameController.EndDeployment(); } else if (UtilityFunctions.IsMouseInRectangle(UP_DOWN_BUTTON_LEFT, TOP_BUTTONS_TOP, DIR_BUTTONS_WIDTH, TOP_BUTTONS_HEIGHT)) { _currentDirection = Direction.UpDown; } else if (UtilityFunctions.IsMouseInRectangle(LEFT_RIGHT_BUTTON_LEFT, TOP_BUTTONS_TOP, DIR_BUTTONS_WIDTH, TOP_BUTTONS_HEIGHT)) { _currentDirection = Direction.LeftRight; } else if (UtilityFunctions.IsMouseInRectangle(RANDOM_BUTTON_LEFT, TOP_BUTTONS_TOP, RANDOM_BUTTON_WIDTH, TOP_BUTTONS_HEIGHT)) { GameController.HumanPlayer.RandomizeDeployment(); } else if (UtilityFunctions.IsMouseInRectangle(Mute_BGM_BUTTON, TOP_BUTTONS_TOP, BGM_BUTTON_WIDTH, TOP_BUTTONS_HEIGHT) & _currentBGMStatus == MuteStatus.unmute) { Audio.PauseMusic(); _currentBGMStatus = MuteStatus.mute; } else if (UtilityFunctions.IsMouseInRectangle(BGM_BUTTON, TOP_BUTTONS_TOP, BGM_BUTTON_WIDTH, TOP_BUTTONS_HEIGHT) & _currentBGMStatus == MuteStatus.mute) { Audio.ResumeMusic(); _currentBGMStatus = MuteStatus.unmute; } } /// <summary> /// Press M on keyboard mute music /// </summary> if (SwinGame.KeyTyped(KeyCode.vk_m)) { if (_currentBGMStatus == MuteStatus.mute) { Audio.ResumeMusic(); _currentBGMStatus = MuteStatus.unmute; } else { Audio.PauseMusic(); _currentBGMStatus = MuteStatus.mute; } } }
/// <summary> /// Draws the deployment screen showing the field and the ships /// that the player can deploy. /// </summary> public static void DrawDeployment() { UtilityFunctions.DrawField(GameController.HumanPlayer.PlayerGrid, GameController.HumanPlayer, true); //Draw the Left/Right and Up/Down buttons if (_currentDirection == Direction.LeftRight) { SwinGame.DrawBitmap(GameResources.GameImage("LeftRightButton"), LEFT_RIGHT_BUTTON_LEFT, TOP_BUTTONS_TOP); //SwinGame.DrawText("U/D", Color.Gray, GameFont("Menu"), UP_DOWN_BUTTON_LEFT, TOP_BUTTONS_TOP) //SwinGame.DrawText("L/R", Color.White, GameFont("Menu"), LEFT_RIGHT_BUTTON_LEFT, TOP_BUTTONS_TOP) } else { SwinGame.DrawBitmap(GameResources.GameImage("UpDownButton"), LEFT_RIGHT_BUTTON_LEFT, TOP_BUTTONS_TOP); //SwinGame.DrawText("U/D", Color.White, GameFont("Menu"), UP_DOWN_BUTTON_LEFT, TOP_BUTTONS_TOP) //SwinGame.DrawText("L/R", Color.Gray, GameFont("Menu"), LEFT_RIGHT_BUTTON_LEFT, TOP_BUTTONS_TOP) } //Check Mute Status if (_currentBGMStatus == MuteStatus.unmute) { SwinGame.DrawBitmap(GameResources.GameImage("BGMButton"), BGM_BUTTON, TOP_BUTTONS_TOP); _currentBGMStatus = MuteStatus.unmute; //SwinGame.DrawText("U/D", Color.Gray, GameFont("Menu"), UP_DOWN_BUTTON_LEFT, TOP_BUTTONS_TOP) //SwinGame.DrawText("L/R", Color.White, GameFont("Menu"), LEFT_RIGHT_BUTTON_LEFT, TOP_BUTTONS_TOP) } else if (_currentBGMStatus == MuteStatus.mute) { SwinGame.DrawBitmap(GameResources.GameImage("MuteBGMButton"), Mute_BGM_BUTTON, TOP_BUTTONS_TOP); //SwinGame.DrawText("U/D", Color.White, GameFont("Menu"), UP_DOWN_BUTTON_LEFT, TOP_BUTTONS_TOP) //SwinGame.DrawText("L/R", Color.Gray, GameFont("Menu"), LEFT_RIGHT_BUTTON_LEFT, TOP_BUTTONS_TOP) } //DrawShips foreach (ShipName sn in Enum.GetValues(typeof(ShipName))) { int i = 0; i = ((int)sn) - 1; if (i >= 0) { if (sn == _selectedShip) { SwinGame.DrawBitmap(GameResources.GameImage("SelectedShip"), SHIPS_LEFT, SHIPS_TOP + i * SHIPS_HEIGHT); // SwinGame.FillRectangle(Color.LightBlue, SHIPS_LEFT, SHIPS_TOP + i * SHIPS_HEIGHT, SHIPS_WIDTH, SHIPS_HEIGHT) //Else // SwinGame.FillRectangle(Color.Gray, SHIPS_LEFT, SHIPS_TOP + i * SHIPS_HEIGHT, SHIPS_WIDTH, SHIPS_HEIGHT) } //SwinGame.DrawRectangle(Color.Black, SHIPS_LEFT, SHIPS_TOP + i * SHIPS_HEIGHT, SHIPS_WIDTH, SHIPS_HEIGHT) //SwinGame.DrawText(sn.ToString(), Color.Black, GameFont("Courier"), SHIPS_LEFT + TEXT_OFFSET, SHIPS_TOP + i * SHIPS_HEIGHT) } } if (GameController.HumanPlayer.ReadyToDeploy) { SwinGame.DrawBitmap(GameResources.GameImage("PlayButton"), PLAY_BUTTON_LEFT, TOP_BUTTONS_TOP); //SwinGame.FillRectangle(Color.LightBlue, PLAY_BUTTON_LEFT, PLAY_BUTTON_TOP, PLAY_BUTTON_WIDTH, PLAY_BUTTON_HEIGHT) //SwinGame.DrawText("PLAY", Color.Black, GameFont("Courier"), PLAY_BUTTON_LEFT + TEXT_OFFSET, PLAY_BUTTON_TOP) } SwinGame.DrawBitmap(GameResources.GameImage("RandomButton"), RANDOM_BUTTON_LEFT, TOP_BUTTONS_TOP); UtilityFunctions.DrawMessage(); }
public MuteStatusChangedEventArgs(SerialPort serialPort, PowerStatus powerStatus, MuteStatus newStatus, MuteStatus oldStatus) : base(serialPort: serialPort, powerStatus: powerStatus, muteStatus: newStatus) { this.OldStatus = oldStatus; }
public StatusReceivedEventArgs(SerialPort serialPort, PowerStatus powerStatus, MuteStatus muteStatus) { this.SerialPort = serialPort; this.MuteStatus = muteStatus; }
internal override bool processAnswerString(string a) { if (!base.processAnswerString(a)) { _status = MuteStatus.UNKNOWN; return false; } if(_cmdDetail == Mute.QUERY) { a = a.Replace("%1AVMT=", ""); int retVal = int.Parse(a); if (retVal == 31) _status = MuteStatus.MUTED; else if (retVal == 30) _status = MuteStatus.UNMUTED; else _status = MuteStatus.UNKNOWN; } return true; }