コード例 #1
0
        /// <inheritdoc />
        /// <summary>
        /// Sets all Chroma devices to the specified <see cref="Color" />.
        /// </summary>
        /// <param name="color">The <see cref="Color" /> to set.</param>
        public async Task SetAllAsync(Color color)
        {
            await Keyboard.SetAllAsync(color).ConfigureAwait(false);

            await Mouse.SetAllAsync(color).ConfigureAwait(false);

            await Mousepad.SetAllAsync(color).ConfigureAwait(false);

            await Keypad.SetAllAsync(color).ConfigureAwait(false);

            await Headset.SetAllAsync(color).ConfigureAwait(false);

            await ChromaLink.SetAllAsync(color).ConfigureAwait(false);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        public DeviceContainer()
        {
            Keyboard   = new Keyboard();
            Headset    = new Headset();
            Mouse      = new Mouse();
            Mousepad   = new Mousepad();
            Keypad     = new Keypad();
            ChromaLink = new ChromaLink();

            Devices = new List <IDevice>()
            {
                Keyboard,
                Headset,
                Mouse,
                Mousepad,
                Keypad,
                ChromaLink
            };
        }
コード例 #4
0
ファイル: MainForm.cs プロジェクト: reddenx/PotatoMouse
        public MainForm()
        {
            InitializeComponent();

            CurrentIdleState = IdleStates.Unset;

            Mousepad = new Mousepad();
            Keyboard = new KeyboardEventRunner();

            Broadcaster = new ClientBroadcastSignaler(37015);

            Receiver = new Receiver(37015);
            Receiver.Start();
            Receiver.OnError += Receiver_OnError;

            Receiver.OnMouseMove            += (o, e) => { Mousepad.MoveMouse(e.X, e.Y); };
            Receiver.OnMouseLeftClick       += (o, e) => { Mousepad.LeftClick(); };
            Receiver.OnMouseRightClick      += (o, e) => { Mousepad.RightClick(); };
            Receiver.OnMouseDoubleLeftClick += (o, e) => { Mousepad.LeftDoubleClick(); };
            Receiver.OnMouseLeftPress       += (o, e) => { Mousepad.LeftDown(); };
            Receiver.OnMouseLeftRelease     += (o, e) => { Mousepad.LeftUp(); };
            Receiver.OnScrollwheelMove      += (o, e) =>
            {
                if (e > 0)
                {
                    Mousepad.ScrollDown();
                }
                else
                {
                    Mousepad.ScrollUp();
                }
            };

            Receiver.OnMouseSignalReceived += Receiver_OnMouseSignalReceived;

            LastMessage    = DateTime.Now;
            IdleLoopThread = new Thread(new ThreadStart(IdleTimerLoop));
            IdleLoopThread.IsBackground = true;
            IdleLoopThread.Start();

            HandleIdleStateChange();
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: reddenx/PotatoMouse
        private static void RunProtoLoop()
        {
            //setup network
            var udp = new UdpNetworkConnection <string>(new AsciiSerializer());

            udp.StartListening(37015);
            udp.Target(IPAddress.Broadcast.ToString(), 37015);

            //run broadcast
            var broadcastLoop = Fork(() =>
            {
                var myHostname = Dns.GetHostAddresses(Dns.GetHostName()).First(host => host.AddressFamily == AddressFamily.InterNetwork).ToString();
                while (true)
                {
                    Thread.Sleep(1000);
                    udp.Send(myHostname);
                }
            });

            //var joystic = new MouseJoystic();
            var joystic = new Mousepad();

            joystic.SetMovementScale(1f);

            //andle messages
            udp.OnMessageReceived += (sender, args) =>
            {
                //validate
                if (!args.StartsWith("[") || !args.EndsWith("]"))
                {
                    return;
                }


                //parse
                var tokens = args.Trim('[', ']').Split(':');
                switch (tokens[0])
                {
                case "down":    //set to 0 to prep
                {
                    float x, y;
                    var   pieces = tokens[1].Split(',');
                    if (float.TryParse(pieces[0], out x) && float.TryParse(pieces[1], out y))
                    {
                        //joystic.Start(x, y);
                    }
                    break;
                }

                case "up":    //set to 0 to make it stop
                {
                    float x, y;
                    var   pieces = tokens[1].Split(',');
                    if (float.TryParse(pieces[0], out x) && float.TryParse(pieces[1], out y))
                    {
                        //joystic.Stop(x, y);
                    }
                    break;
                }

                case "move":    //set to input
                {
                    float x, y;
                    var   pieces = tokens[1].Split(',');
                    if (float.TryParse(pieces[0], out x) && float.TryParse(pieces[1], out y))
                    {
                        //joystic.Moved(x, y);
                    }
                    else
                    {
                    }
                    break;
                }

                case "click_left":
                {
                    joystic.LeftClick();
                    break;
                }

                case "click_right":
                {
                    joystic.RightClick();
                    break;
                }

                default: { break; }
                }
            };

            //hold UI
            while (true)
            {
                Console.ReadKey();
            }
        }