Ejemplo n.º 1
0
        /// <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));
            }
        }
Ejemplo n.º 2
0
    /// <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();
    }
Ejemplo n.º 3
0
 private void updateMuteStatus(MuteStatus muteStatus)
 {
     lock (this._muteStatusLock)
     {
         this.MuteStatus = muteStatus;
     }
 }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
    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;
    }
Ejemplo n.º 6
0
        public MainWindow(Configuration config)
        {
            this.config = config;
            InitializeComponent();
            mutedStylingSet = MuteStatus.NotSet;

            SetupIcons();
            SetupStatusCheckTimer();
            SetStyling();
            ConfigureHotkeys(config);
            SetInitialConfiguration(config);
        }
Ejemplo n.º 7
0
        /// <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);
                    }
                }
            }
        }
Ejemplo n.º 8
0
        /// <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);
            }
        }
Ejemplo n.º 9
0
 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;
 }
Ejemplo n.º 10
0
    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);
        }
    }
Ejemplo n.º 11
0
    /// <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;
            }
        }
    }
Ejemplo n.º 12
0
    /// <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;
 }
Ejemplo n.º 15
0
        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;
        }