Пример #1
0
        private void onKeyPressed(object sender, StreamDeckKeyEventArgs e)
        {
            var d = sender as IStreamDeck;

            if (d == null)
            {
                return;
            }
            LastKeyPressed = e;
            var keyPressed = CurrentPage.Keys[e.Key];

            //On key down
            if (e.IsDown)
            {
                KeyHeldFor = 0;
                KeyPressedTimer.Start();
            }
            //On key up
            else
            {
                KeyPressedTimer.Stop();
                if (!(KeyHeldFor >= KeyHeldInterval))
                {
                    keyPressed.KeyPressedFunction.Run(this);
                }
            }
        }
Пример #2
0
        private static void Deck_KeyPressed(object sender, StreamDeckKeyEventArgs e)
        {
            var d = sender as IStreamDeck;

            if (d == null)
            {
                return;
            }

            if (e.IsDown)
            {
                rnd.NextBytes(rgbBuffer);
                var randomColor = StreamDeckKeyBitmap.FromRGBColor(rgbBuffer[0], rgbBuffer[1], rgbBuffer[2]);
                d.SetKeyBitmap(e.Key, randomColor);
            }
        }
Пример #3
0
        private void Deck_KeyPressed(object sender, StreamDeckKeyEventArgs e)
        {
            var d = sender as IStreamDeck;

            if (d == null)
            {
                return;
            }

            if (Deck == null)
            {
                return;
            }

            if (e.IsDown)
            {
                if (DateTime.Now - lastKeyPress < TimeSpan.FromMilliseconds(250))
                {
                    return;
                }

                lastKeyPress = DateTime.Now;
                // Key Down
                MainWindowPanel.Dispatcher.Invoke(() =>
                {
                    Bitmap bmp = (ButtonMatrixPanel.btnList[e.Key].DataContext as ButtonData).ButtonBitmapBuf_DOWN;
                    StreamDeckKeyBitmap sdkb = StreamDeckKeyBitmap.FromDrawingBitmap(bmp);
                    Deck.SetKeyBitmap(e.Key, sdkb);
                    ButtonData bd = ButtonMatrixPanel.btnList[e.Key].DataContext as ButtonData;
                    ButtonFuncProcess(bd);
                });
            }
            else
            {
                // Key up
                MainWindowPanel.Dispatcher.Invoke(() =>
                {
                    Bitmap bmp = (ButtonMatrixPanel.btnList[e.Key].DataContext as ButtonData).ButtonBitmapBuf_UP;
                    StreamDeckKeyBitmap sdkb = StreamDeckKeyBitmap.FromDrawingBitmap(bmp);
                    Deck.SetKeyBitmap(e.Key, sdkb);
                });
            }
        }
Пример #4
0
        private static void Deck_KeyPressed(object sender, StreamDeckKeyEventArgs e)
        {
            var d = sender as IStreamDeck;

            if (d == null)
            {
                return;
            }

            if (e.IsDown)
            {
                KeyList CurrentKey = Keys.Find(Keys => Keys.Loc == e.Key);
                var     CK_Index   = Keys.FindIndex(Keys => Keys.Loc == e.Key);

                Console.WriteLine(CurrentKey.KeyName + " Pressed.");

                switch (CurrentKey.KeyType)
                {
                case KEY_PREVIEW:
                    WebClient.SetPreviewInput(Keys[CK_Index].Input);
                    UpdateKeyStatus(d);
                    break;

                case KEY_OUTPUT:
                    WebClient.SetActiveInput(Keys[CK_Index].Input);
                    UpdateKeyStatus(d);
                    break;

                case KEY_OVERLAY:
                    if (Keys[CK_Index].Active == false)
                    {
                        WebClient.ToggleOverlay(Keys[CK_Index].Input, true);
                    }
                    else
                    {
                        WebClient.ToggleOverlay(Keys[CK_Index].Input, false);
                    }
                    Thread.Sleep(750);      //add sleep to give time for vmix to return proper status
                    UpdateKeyStatus(d);
                    break;

                case KEY_RECORD:
                    WebClient.ToggleRecord();
                    Thread.Sleep(750);      //add sleep to give time for vmix to return proper status
                    UpdateKeyStatus(d);
                    break;

                case KEY_STREAM:
                    WebClient.ToggleStreaming();
                    Thread.Sleep(7500);      //add sleep to give time for vmix to return proper status
                    UpdateKeyStatus(d);
                    break;

                case KEY_CUT:
                    WebClient.Transition("Cut");
                    Thread.Sleep(750);      //add sleep to give time for vmix to return proper status
                    UpdateKeyStatus(d);
                    break;

                case KEY_QUICKPLAY:
                    WebClient.Transition("QuickPlay");
                    Thread.Sleep(750);      //add sleep to give time for vmix to return proper status
                    UpdateKeyStatus(d);
                    break;
                }
            }
        }