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); } } }
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); } }
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); }); } }
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; } } }