Example #1
0
        public void DeviceKeySetImplementsIEquatable()
        {
            var key1 = FromXml <DeviceKey>("<Key1 Device='Keyboard' Key='Key_A' />");
            var key2 = FromXml <DeviceKey>("<Key2 Device='Keyboard' Key='Key_A' />");
            var key3 = FromXml <DeviceKey>("<Key3 Device='Keyboard' Key='Key_B' />");

            var set1 = new DeviceKeySet(new[] { key1, key3 });
            var set2 = new DeviceKeySet(new[] { key2, key3 });
            var set3 = new DeviceKeySet(new[] { key1 });

            Assert.Equal(set1, set2);
            Assert.Equal(set2, set1);
            Assert.Equal(set1.GetHashCode(), set2.GetHashCode());
            Assert.NotEqual(set1, set3);
            Assert.NotEqual(set3, set1);
            Assert.True(set1.Equals((object)set2));
            Assert.True(set2.Equals((object)set1));
            Assert.NotEqual <object>(set1, set3);
            Assert.NotEqual <object>(set3, set1);
#pragma warning disable CA1508
            Assert.False(set1.Equals(null));
            Assert.False(set2.Equals(null));
#pragma warning restore CA1508
            Assert.False(set1.Equals("Not a device key set"));
            Assert.False(set2.Equals("Not a device key set"));
        }
        private void Timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            var newPressed = new DeviceKeySet(GetAllPressedModifiers());

            if (!newPressed.Equals(_currPressed))
            {
                _currPressed = newPressed;

                Changed?.Invoke(this, _currPressed);
            }
        }
        private async void Timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            try
            {
                var newPressed = new DeviceKeySet(GetAllPressedModifiers());

                if (!newPressed.Equals(_currPressed))
                {
                    _currPressed = newPressed;

                    Changed?.Invoke(this, _currPressed);
                }
            }
            catch (Exception ex)
            {
                // Reference: https://docs.microsoft.com/en-us/dotnet/api/system.timers.timer?view=netcore-3.1#remarks
                await Task.FromException(ex).ConfigureAwait(false);
            }
        }
 private void ModifierKeysWatcher_Changed(object sender, DeviceKeySet e)
 {
     _gameState.PressedModifiers = e;
     OnChanged(ChangeType.DeviceKeySet);
 }