Esempio n. 1
0
        public void ShouldSetBlackColorsWithCreate()
        {
            var effect = CustomMousepadEffect.Create();

            for (var i = 0; i < MousepadConstants.MaxLeds; i++)
                Assert.That(effect[i], Is.EqualTo(Color.Black));
        }
Esempio n. 2
0
        public void ShouldSetAllColorsWithColorConstructor()
        {
            var effect = new CustomMousepadEffect(Color.Red);

            for (var i = 0; i < MousepadConstants.MaxLeds; i++)
                Assert.That(effect[i], Is.EqualTo(Color.Red));
        }
Esempio n. 3
0
        public void ShouldSetCorrectColor()
        {
            var effect = CustomMousepadEffect.Create();
            effect[5] = Color.Blue;

            Assert.That(effect[5], Is.EqualTo(Color.Blue));
        }
Esempio n. 4
0
        public void ClonedStructShouldBeIdentical()
        {
            var original = new CustomMousepadEffect(Color.Red);
            var clone = original.Clone();

            Assert.That(clone, Is.EqualTo(original));
        }
Esempio n. 5
0
 public void ShouldHaveCorrectColorsProperty()
 {
     var colors = new Color[MousepadConstants.MaxLeds];
     colors[0] = Color.Green;
     var effect = new CustomMousepadEffect(colors.ToList());
     Assert.AreEqual(colors, effect.Colors);
 }
Esempio n. 6
0
        public void ShouldGetCorrectColor()
        {
            var colors = new Color[MousepadConstants.MaxLeds];
            colors[5] = Color.Red;

            var effect = new CustomMousepadEffect(colors);

            Assert.That(effect[5], Is.EqualTo(colors[5]));
        }
Esempio n. 7
0
        public void ShouldResetToBlackWithClear()
        {
            var effect = CustomMousepadEffect.Create();
            effect.Set(Color.Red);
            effect.Clear();

            for (var i = 0; i < MousepadConstants.MaxLeds; i++)
                Assert.That(effect[i], Is.EqualTo(Color.Black));
        }
Esempio n. 8
0
        public static CustomMousepadEffect Max(this CustomMousepadEffect mousepad, Color c)
        {
            for (var i = 0; i < MousepadConstants.MaxLeds; i++)
            {
                mousepad[i] = mousepad[i].Max(c);
            }

            return(mousepad);
        }
Esempio n. 9
0
        public void ClonedStructShouldBeIndependent()
        {
            var original = new CustomMousepadEffect(Color.Red);
            var clone = original.Clone();

            clone.Set(Color.Blue);

            Assert.That(clone, Is.Not.EqualTo(original));
        }
Esempio n. 10
0
        public static CustomMousepadEffect Combine(this CustomMousepadEffect mousepad, Color c, double cPct = 0.5)
        {
            for (var i = 0; i < MousepadConstants.MaxLeds; i++)
            {
                mousepad[i] = mousepad[i].Combine(c, cPct);
            }

            return(mousepad);
        }
Esempio n. 11
0
        public void ShouldEqualIdenticalEffect()
        {
            var a = new CustomMousepadEffect(Color.Red);
            var b = new CustomMousepadEffect(Color.Red);

            Assert.True(a == b);
            Assert.False(a != b);
            Assert.True(a.Equals(b));
            Assert.AreEqual(a, b);
        }
Esempio n. 12
0
        public void ShouldNotEqualDifferentEffect()
        {
            var a = new CustomMousepadEffect(Color.Red);
            var b = new CustomMousepadEffect(Color.Blue);

            Assert.False(a == b);
            Assert.True(a != b);
            Assert.False(a.Equals(b));
            Assert.AreNotEqual(a, b);
        }
Esempio n. 13
0
        public void ShouldNotEqualArbitraryObject()
        {
            var effect = CustomMousepadEffect.Create();
            var obj = new object();

            Assert.False(effect == obj);
            Assert.True(effect != obj);
            Assert.False(effect.Equals(obj));
            Assert.AreNotEqual(effect, obj);
        }
Esempio n. 14
0
        public void ShouldNotEqualArrayWithInvalidLength()
        {
            var effect = new CustomMousepadEffect(Color.Red);
            var array = new[] { Color.Red, Color.Red, Color.Red };

            Assert.False(effect == array);
            Assert.True(effect != array);
            Assert.False(effect.Equals(array));
            Assert.AreNotEqual(effect, array);
        }
Esempio n. 15
0
        public void ShouldThrowOnInvalidListCount()
        {
            var colors = new Color[1];

            // ReSharper disable once NotAccessedVariable
            CustomMousepadEffect dummy;

            Assert.That(
                () => dummy = new CustomMousepadEffect(colors),
                Throws.InstanceOf<ArgumentException>().With.Property("ParamName").EqualTo("colors"));
        }
Esempio n. 16
0
        public void ShouldSetCorrectColorsFromList()
        {
            var colors = new Color[MousepadConstants.MaxLeds];
            colors[0] = Color.Red;
            colors[1] = Color.Blue;
            colors[2] = Color.Green;

            var effect = new CustomMousepadEffect(colors);

            for (var i = 0; i < MousepadConstants.MaxLeds; i++)
                Assert.That(effect[i], Is.EqualTo(colors[i]));
        }
Esempio n. 17
0
        public void ShouldNotEqualDifferentArray()
        {
            var effect = new CustomMousepadEffect(Color.Red);
            var array = new Color[MousepadConstants.MaxLeds];

            for (var i = 0; i < MousepadConstants.MaxLeds; i++)
                array[i] = Color.Blue;

            Assert.False(effect == array);
            Assert.True(effect != array);
            Assert.False(effect.Equals(array));
            Assert.AreNotEqual(effect, array);
        }
Esempio n. 18
0
        public async Task ApplyAsync(IVirtualLedGrid virtualGrid, CancellationToken cancellationToken = default)
        {
            var keyboardGrid   = CustomKeyboardEffect.Create();
            var mouseGrid      = CustomMouseEffect.Create();
            var mousepadGrid   = CustomMousepadEffect.Create();
            var headsetGrid    = CustomHeadsetEffect.Create();
            var chromaLinkGrid = CustomChromaLinkEffect.Create();

            foreach (var k in virtualGrid)
            {
                switch (k.Type)
                {
                case KeyType.Invalid:
                    break;

                case KeyType.Keyboard:
                    var kbVal = (Key)Enum.Parse(typeof(Key), k.FriendlyName);
                    keyboardGrid[kbVal] = ToColoreColor(k.Color);
                    break;

                case KeyType.Mouse:
                    var mouseVal = (GridLed)Enum.Parse(typeof(GridLed), k.FriendlyName);
                    mouseGrid[mouseVal] = ToColoreColor(k.Color);
                    break;

                case KeyType.Mousepad:
                    mousepadGrid[k.KeyCode] = ToColoreColor(k.Color);
                    break;

                case KeyType.Headset:
                    headsetGrid[k.KeyCode] = ToColoreColor(k.Color);
                    break;

                case KeyType.ChromaLink:
                    chromaLinkGrid[k.KeyCode] = ToColoreColor(k.Color);
                    break;
                }
            }

            await this._chromaInterface.Keyboard.SetCustomAsync(keyboardGrid);

            await this._chromaInterface.Mouse.SetGridAsync(mouseGrid);

            await this._chromaInterface.Mousepad.SetCustomAsync(mousepadGrid);

            await this._chromaInterface.Headset.SetCustomAsync(headsetGrid);

            await this._chromaInterface.ChromaLink.SetCustomAsync(chromaLinkGrid);
        }
            private void Render(CustomMousepadEffect mousepad, Color c)
            {
                if (_angle > 180)
                {
                    return;
                }

                var ia = _angle % MousepadConstants.MaxLeds;
                var ib = (ia + 1) % MousepadConstants.MaxLeds;
                var ic = (ia + 2) % MousepadConstants.MaxLeds;

                var cf = c.Transform(0.25);

                mousepad[ia] = mousepad[ia].Max(cf);
                mousepad[ib] = mousepad[ib].Max(c);
                mousepad[ic] = mousepad[ic].Max(cf);
            }
        public override Task ApplyAsync(IVirtualLedGrid virtualGrid, CancellationToken cancellationToken = default)
        {
            if (!this.Initialized)
            {
                return(Task.CompletedTask);
            }

            var mousepadGrid = CustomMousepadEffect.Create();

            var keyIdx = 0;

            foreach (var key in virtualGrid.Reverse())
            {
                mousepadGrid[keyIdx++] = ToColoreColor(key.Color);
            }

            return(this.ChromaInterface !.Mousepad.SetCustomAsync(mousepadGrid));
        }
Esempio n. 21
0
        public void ShouldThrowWhenOutOfRangeSet()
        {
            var custom = CustomMousepadEffect.Create();

            Assert.That(
                () => custom[-1] = Color.Red,
                Throws.InstanceOf<ArgumentOutOfRangeException>()
                      .With.Property("ParamName")
                      .EqualTo("led")
                      .And.Property("ActualValue")
                      .EqualTo(-1));

            Assert.That(
                () => custom[MousepadConstants.MaxLeds] = Color.Red,
                Throws.InstanceOf<ArgumentOutOfRangeException>()
                      .With.Property("ParamName")
                      .EqualTo("led")
                      .And.Property("ActualValue")
                      .EqualTo(MousepadConstants.MaxLeds));
        }
Esempio n. 22
0
        public void ShouldThrowWhenOutOfRangeGet()
        {
            var custom = CustomMousepadEffect.Create();

            // ReSharper disable once NotAccessedVariable
            Color dummy;

            Assert.That(
                () => dummy = custom[-1],
                Throws.InstanceOf<ArgumentOutOfRangeException>()
                      .With.Property("ParamName")
                      .EqualTo("led")
                      .And.Property("ActualValue")
                      .EqualTo(-1));

            Assert.That(
                () => dummy = custom[MousepadConstants.MaxLeds],
                Throws.InstanceOf<ArgumentOutOfRangeException>()
                      .With.Property("ParamName")
                      .EqualTo("led")
                      .And.Property("ActualValue")
                      .EqualTo(MousepadConstants.MaxLeds));
        }
Esempio n. 23
0
 /// <inheritdoc />
 /// <summary>
 /// Initializes a new instance of the <see cref="MousepadImplementation" /> class.
 /// </summary>
 public MousepadImplementation(IChromaApi api)
     : base(api)
 {
     Log.Debug("Mousepad is initializing.");
     _custom = CustomMousepadEffect.Create();
 }
Esempio n. 24
0
 public void ShouldHaveZeroHashCodeOnDefaultInstance()
 {
     var effect = new CustomMousepadEffect();
     Assert.Zero(effect.GetHashCode());
 }