private void ButtonDeleteFace_OnClick(object sender, RoutedEventArgs e) { try { var streamDeckButton = _streamDeckPanel.SelectedButton; var streamDeckButtonName = streamDeckButton.StreamDeckButtonName; streamDeckButton.Face.Dispose(); //todo this must be properly made streamDeckButton.Face = null; //todo this must be properly made if (streamDeckButton.HasConfig) { _streamDeckPanel.SelectedLayer.AddButton(streamDeckButton); } else { _streamDeckPanel.SelectedLayer.RemoveButton(streamDeckButton); } UCStreamDeckButtonFace.Clear(); _streamDeckPanel.ClearFace(streamDeckButtonName); SDEventHandler.NotifyToSyncConfiguration(this, _streamDeckPanel.BindingHash); SetFormState(); } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }
private void ButtonInfoLayer_OnClick(object sender, RoutedEventArgs e) { Debug.WriteLine(_streamDeckPanel.GetConfigurationInformation()); Debug.WriteLine(HIDHandler.GetInformation()); Debug.WriteLine(_streamDeckPanel.GetLayerHandlerInformation()); Debug.WriteLine(SDEventHandler.GetInformation()); }
private void ButtonDeleteAction_OnClick(object sender, RoutedEventArgs e) { try { var streamDeckButton = _streamDeckPanel.SelectedButton; if (streamDeckButton.ActionForPress != null && streamDeckButton.ActionForPress.ActionType == EnumStreamDeckActionType.LayerNavigation && streamDeckButton.Face != null) { streamDeckButton.Face.Dispose(); streamDeckButton.Face = null; UCStreamDeckButtonFace.Clear(); } streamDeckButton.ActionForPress = null; streamDeckButton.ActionForRelease = null; if (streamDeckButton.HasConfig) { _streamDeckPanel.SelectedLayer.AddButton(streamDeckButton); } else { _streamDeckPanel.SelectedLayer.RemoveButton(streamDeckButton); } UCStreamDeckButtonAction.Clear(); SDEventHandler.NotifyToSyncConfiguration(this, _streamDeckPanel.BindingHash); SetFormState(); } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }
private void ButtonAcceptButtonChanges_OnClick(object sender, RoutedEventArgs e) { try { try { var streamDeckButton = _streamDeckPanel.SelectedButton; streamDeckButton.ActionForPress = UCStreamDeckButtonAction.GetStreamDeckButtonAction(true); streamDeckButton.ActionForRelease = UCStreamDeckButtonAction.GetStreamDeckButtonAction(false); streamDeckButton.Face = UCStreamDeckButtonFace.GetStreamDeckButtonFace(streamDeckButton.StreamDeckButtonName); if (streamDeckButton.HasConfig) { _streamDeckPanel.SelectedLayer.AddButton(streamDeckButton); } else { _streamDeckPanel.SelectedLayer.RemoveButton(streamDeckButton); } UCStreamDeckButtonAction.StateSaved(); UCStreamDeckButtonFace.StateSaved(); SDEventHandler.NotifyToSyncConfiguration(this, _streamDeckPanel.BindingHash); SetFormState(); } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }
/*[NonSerialized] * private List<string> _listDecimalFormatters = new List<string>() * { * "0", "0.0", "0.00", "0.000", "0.0000", "0.00000" * };*/ public DCSBIOSDecoder() { Debug.WriteLine("Creating Image Update Thread for Streamdeck #2"); _imageUpdateTread = new Thread(ImageRefreshingThread); _imageUpdateTread.Start(); BIOSEventHandler.AttachDataListener(this); BIOSEventHandler.AttachStringListener(this); SDEventHandler.AttachDCSBIOSDecoder(this); }
public StreamDeckUserControl(GamingPanelEnum panelType, HIDSkeleton hidSkeleton, TabItem parentTabItem) { InitializeComponent(); ParentTabItem = parentTabItem; _streamDeckPanel = new StreamDeckPanel(panelType, hidSkeleton); UCStreamDeckButtonAction.SetStreamDeckPanel(_streamDeckPanel); UCStreamDeckButtonFace.SetStreamDeckPanel(_streamDeckPanel); StackPanelButtonUI.Children.Clear(); switch (panelType) { case GamingPanelEnum.StreamDeckMini: { var child = new UserControlStreamDeckUIMini(_streamDeckPanel); _uiButtonGrid = child; StackPanelButtonUI.Children.Add(child); break; } case GamingPanelEnum.StreamDeck: case GamingPanelEnum.StreamDeckV2: case GamingPanelEnum.StreamDeckMK2: { var child = new UserControlStreamDeckUINormal(_streamDeckPanel); _uiButtonGrid = child; StackPanelButtonUI.Children.Add(child); break; } case GamingPanelEnum.StreamDeckXL: { var child = new UserControlStreamDeckUIXL(_streamDeckPanel); _uiButtonGrid = child; StackPanelButtonUI.Children.Add(child); break; } } SDEventHandler.AttachStreamDeckListener(UCStreamDeckButtonAction); SDEventHandler.AttachStreamDeckListener(UCStreamDeckButtonFace); SDEventHandler.AttachStreamDeckListener(_uiButtonGrid); SDEventHandler.AttachStreamDeckConfigListener(_uiButtonGrid); SDEventHandler.AttachStreamDeckListener(this); SDEventHandler.AttachActionTypeChangedListener(UCStreamDeckButtonFace); AppEventHandler.AttachGamingPanelListener(this); UCStreamDeckButtonFace.SetStreamDeckPanel(_streamDeckPanel); UCStreamDeckButtonAction.SetStreamDeckPanel(_streamDeckPanel); }
private void ButtonCancelAction_OnClick(object sender, RoutedEventArgs e) { try { SDEventHandler.ClearSettings(this, true, false, false, _streamDeckPanel.BindingHash); SDEventHandler.SelectedButtonChanged(this, _streamDeckPanel.SelectedButton, _streamDeckPanel.BindingHash); SDEventHandler.NotifyToSyncConfiguration(this, _streamDeckPanel.BindingHash); SetFormState(); } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }
public void SettingsApplied(object sender, PanelInfoArgs e) { try { if (e.HidInstance.Equals(_streamDeckPanel.HIDInstance) && e.PanelType == _streamDeckPanel.TypeOfPanel) { SDEventHandler.NotifyToSyncConfiguration(this, _streamDeckPanel.BindingHash); } } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }
private void ButtonContextMenuDelete_OnClick(object sender, RoutedEventArgs e) { try { var streamDeckButton = _streamDeckPanel.SelectedLayer.GetStreamDeckButton(SelectedButtonName); if (MessageBox.Show("Delete button" + streamDeckButton.StreamDeckButtonName.ToString() + "?", "Confirm", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { _streamDeckPanel.SelectedLayer.RemoveButton(streamDeckButton); SDEventHandler.ClearSettings(this, true, true, true, _streamDeckPanel.BindingHash); } } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }
public void Event_StreamDeck_OnDirtyConfigurations_Proper_Attachment() { var gamingPanelSkeleton = new GamingPanelSkeleton(GamingPanelVendorEnum.Saitek, GamingPanelEnum.PZ70MultiPanel); var streamDeckPanel = new StreamDeckPanel(GamingPanelEnum.StreamDeck, new HIDSkeleton(gamingPanelSkeleton, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), true); //GamingPanel Assert.True(AppEventHandler.OnProfileEventSubscribed()); Assert.True(AppEventHandler.OnSavePanelSettingsSubscribed()); Assert.True(AppEventHandler.OnSavePanelSettingsJSONSubscribed()); //StreamDeckPanel Assert.True(SDEventHandler.OnStreamDeckSyncConfigurationEventSubscribed()); Assert.True(SDEventHandler.OnDirtyConfigurationsEventHandlerEventSubscribed()); Assert.True(SDEventHandler.OnDirtyNotificationEventHandlerSubscribed()); Assert.True(SDEventHandler.OnStreamDeckShowNewLayerEventSubscribed()); Assert.True(SDEventHandler.OnRemoteStreamDeckShowNewLayerEventSubscribed()); Assert.True(SDEventHandler.OnStreamDeckSelectedButtonChangedEventSubscribed()); Assert.True(SDEventHandler.OnStreamDeckClearSettingsEventSubscribed()); }
// Protected implementation of Dispose pattern. protected override void Dispose(bool disposing) { if (!_disposed) { if (disposing) { StackPanelButtonUI.Children.Clear(); SDEventHandler.DetachStreamDeckListener(UCStreamDeckButtonAction); SDEventHandler.DetachStreamDeckListener(UCStreamDeckButtonFace); SDEventHandler.DetachStreamDeckListener(_uiButtonGrid); SDEventHandler.DetachStreamDeckConfigListener(_uiButtonGrid); SDEventHandler.DetachStreamDeckListener(this); SDEventHandler.DetachActionTypeChangedListener(UCStreamDeckButtonFace); AppEventHandler.DetachGamingPanelListener(this); _streamDeckPanel.Dispose(); } _disposed = true; } // Call base class implementation. base.Dispose(disposing); }
protected void ButtonImage_PreviewMouseDown(object sender, MouseButtonEventArgs e) { try { if (SelectedButtonName == EnumStreamDeckButtonNames.BUTTON0_NO_BUTTON) { return; } var newlySelectedImage = (StreamDeckImage)sender; /* * Here we must check if event if we can change the button that is selected. If there are unsaved configurations we can't */ if (newlySelectedImage.Bill.Button != _streamDeckPanel.SelectedButton && SDEventHandler.AreThereDirtyListeners(this)) { if (CommonUI.DoDiscardAfterMessage(true, $"Discard Changes to {SelectedButtonName} ?")) { SetFormState(); } else { e.Handled = true; } } } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }