public void UpdateVisual(INintrollerState state) { _lastState = state; if (state is Wiimote) { if (viewNunchuk.Visibility == Visibility.Visible) { viewNunchuk.Visibility = Visibility.Collapsed; } if (viewClassicController.Visibility == Visibility.Visible) { viewClassicController.Visibility = Visibility.Collapsed; } if (viewClassicControllerPro.Visibility == Visibility.Visible) { viewClassicControllerPro.Visibility = Visibility.Collapsed; } UpdateWiimoteVisual((Wiimote)state); } else if (state is Nunchuk) { if (viewNunchuk.Visibility != Visibility.Visible) { viewNunchuk.Visibility = Visibility.Visible; } if (viewClassicController.Visibility == Visibility.Visible) { viewClassicController.Visibility = Visibility.Collapsed; } if (viewClassicControllerPro.Visibility == Visibility.Visible) { viewClassicControllerPro.Visibility = Visibility.Collapsed; } var nun = (Nunchuk)state; UpdateWiimoteVisual(nun.wiimote); nBtnC.Opacity = nun.C ? 1 : 0; nBtnZ.Opacity = nun.Z ? 1 : 0; nJoy.Margin = new Thickness(70 + 30 * nun.joystick.X, 360 - 30 * nun.joystick.Y, 0, 0); if (_openJoyWindow != null && _calibrationTarget == App.CAL_NUN_JOYSTICK) { _openJoyWindow.Update(nun.joystick); } } else if (state is ClassicController) { if (viewNunchuk.Visibility == Visibility.Visible) { viewNunchuk.Visibility = Visibility.Collapsed; } if (viewClassicController.Visibility != Visibility.Visible) { viewClassicController.Visibility = Visibility.Visible; } if (viewClassicControllerPro.Visibility == Visibility.Visible) { viewClassicControllerPro.Visibility = Visibility.Collapsed; } var cc = (ClassicController)state; UpdateWiimoteVisual(cc.wiimote); ccBtnA.Opacity = cc.A ? 1 : 0; ccBtnB.Opacity = cc.B ? 1 : 0; ccBtnX.Opacity = cc.X ? 1 : 0; ccBtnY.Opacity = cc.Y ? 1 : 0; ccBtnUp.Opacity = cc.Up ? 1 : 0; ccBtnDown.Opacity = cc.Down ? 1 : 0; ccBtnRight.Opacity = cc.Right ? 1 : 0; ccBtnLeft.Opacity = cc.Left ? 1 : 0; ccPadCenter.Opacity = cc.Up || cc.Down || cc.Left || cc.Right ? 1 : 0; ccBtnHome.Opacity = cc.Home ? 1 : 0; ccBtnSelect.Opacity = cc.Select ? 1 : 0; ccBtnStart.Opacity = cc.Start ? 1 : 0; ccBtnZL.Opacity = cc.ZL ? 1 : 0; ccBtnZR.Opacity = cc.ZR ? 1 : 0; ccL.Opacity = cc.L.value > 0 ? 1 : 0; ccR.Opacity = cc.R.value > 0 ? 1 : 0; ccLeftStick.Margin = new Thickness(208 + 30 * cc.LJoy.X, 210 - 30 * cc.LJoy.Y, 0, 0); ccRightStick.Margin = new Thickness(364 + 30 * cc.RJoy.X, 210 - 30 * cc.RJoy.Y, 0, 0); if (_openJoyWindow != null && _calibrationTarget.StartsWith("cc")) { if (_calibrationTarget == App.CAL_CC_LJOYSTICK) { _openJoyWindow.Update(cc.LJoy); } else if (_calibrationTarget == App.CAL_CC_RJOYSTICK) { _openJoyWindow.Update(cc.RJoy); } } else if (_openTrigWindow != null && _calibrationTarget.StartsWith("cc")) { if (_calibrationTarget == "ccLT") { _openTrigWindow.Update(cc.L); } else if (_calibrationTarget == "ccRT") { _openTrigWindow.Update(cc.R); } } } else if (state is ClassicControllerPro) { if (viewNunchuk.Visibility == Visibility.Visible) { viewNunchuk.Visibility = Visibility.Collapsed; } if (viewClassicController.Visibility == Visibility.Visible) { viewClassicController.Visibility = Visibility.Collapsed; } if (viewClassicControllerPro.Visibility != Visibility.Visible) { viewClassicControllerPro.Visibility = Visibility.Visible; } var ccp = (ClassicControllerPro)state; UpdateWiimoteVisual(ccp.wiimote); ccpBtnA.Opacity = ccp.A ? 1 : 0; ccpBtnB.Opacity = ccp.B ? 1 : 0; ccpBtnX.Opacity = ccp.X ? 1 : 0; ccpBtnY.Opacity = ccp.Y ? 1 : 0; ccpBtnUp.Opacity = ccp.Up ? 1 : 0; ccpBtnDown.Opacity = ccp.Down ? 1 : 0; ccpBtnRight.Opacity = ccp.Right ? 1 : 0; ccpBtnLeft.Opacity = ccp.Left ? 1 : 0; ccpPadCenter.Opacity = ccp.Up || ccp.Down || ccp.Left || ccp.Right ? 1 : 0; ccpBtnHome.Opacity = ccp.Home ? 1 : 0; ccpBtnSelect.Opacity = ccp.Select ? 1 : 0; ccpBtnStart.Opacity = ccp.Start ? 1 : 0; ccpBtnZL.Opacity = ccp.ZL ? 1 : 0; ccpBtnZR.Opacity = ccp.ZR ? 1 : 0; ccpBtnL.Opacity = ccp.L ? 1 : 0; ccpBtnR.Opacity = ccp.R ? 1 : 0; ccpLeftStick.Margin = new Thickness(255 + 30 * ccp.LJoy.X, 279 - 30 * ccp.LJoy.Y, 0, 0); ccpRightStick.Margin = new Thickness(485 + 30 * ccp.RJoy.X, 279 - 30 * ccp.RJoy.Y, 0, 0); if (_openJoyWindow != null && _calibrationTarget.StartsWith("ccp")) { if (_calibrationTarget == App.CAL_CCP_LJOYSTICK) { _openJoyWindow.Update(ccp.LJoy); } else if (_calibrationTarget == App.CAL_CCP_RJOYSTICK) { _openJoyWindow.Update(ccp.RJoy); } } } }
public void UpdateVisual(INintrollerState state) { if (state is GameCubeAdapter gcn) { _lastState = gcn; GameCubeController activePort; bool connecited = GetActivePort(out activePort); A.Opacity = activePort.A ? 1 : 0; B.Opacity = activePort.B ? 1 : 0; X.Opacity = activePort.X ? 1 : 0; Y.Opacity = activePort.Y ? 1 : 0; Z.Opacity = activePort.Z ? 1 : 0; START.Opacity = activePort.Start ? 1 : 0; dpadUp.Opacity = activePort.Up ? 1 : 0; dpadDown.Opacity = activePort.Down ? 1 : 0; dpadLeft.Opacity = activePort.Left ? 1 : 0; dpadRight.Opacity = activePort.Right ? 1 : 0; L.Opacity = activePort.L.value > 0 ? 1 : 0; R.Opacity = activePort.R.value > 0 ? 1 : 0; var lOpacityMask = L.OpacityMask as LinearGradientBrush; if (lOpacityMask != null && lOpacityMask.GradientStops.Count == 2) { double offset = 1 - System.Math.Min(1, activePort.L.value); lOpacityMask.GradientStops[0].Offset = offset; lOpacityMask.GradientStops[1].Offset = offset; } var rOpacityMask = R.OpacityMask as LinearGradientBrush; if (rOpacityMask != null && rOpacityMask.GradientStops.Count == 2) { double offset = 1 - System.Math.Min(1, activePort.R.value); rOpacityMask.GradientStops[0].Offset = offset; rOpacityMask.GradientStops[1].Offset = offset; } joystick.Margin = new Thickness(190 + 100 * activePort.joystick.X, 272 - 100 * activePort.joystick.Y, 0, 0); cStick.Margin = new Thickness(887 + 100 * activePort.cStick.X, 618 - 100 * activePort.cStick.Y, 0, 0); connectionStatus.Content = connecited ? _connectedStatus : _disconnectedStatus; if (_openJoyWindow != null) { if (_calibrationTarget == "joy") { _openJoyWindow.Update(activePort.joystick); } else if (_calibrationTarget == "cStk") { _openJoyWindow.Update(activePort.cStick); } } else if (_openTrigWindow != null) { if (_calibrationTarget == "L") { _openTrigWindow.Update(activePort.L); } else if (_calibrationTarget == "R") { _openTrigWindow.Update(activePort.R); } } } }
public void UpdateVisual(INintrollerState state) { _lastState = state; if (state is Wiimote) { if (viewNunchuk.Visibility == Visibility.Visible) { viewNunchuk.Visibility = Visibility.Collapsed; } if (viewClassicController.Visibility == Visibility.Visible) { viewClassicController.Visibility = Visibility.Collapsed; } if (viewClassicControllerPro.Visibility == Visibility.Visible) { viewClassicControllerPro.Visibility = Visibility.Collapsed; } if (viewGuitar.Visibility == Visibility.Visible) { viewGuitar.Visibility = Visibility.Collapsed; } if (viewTaikoDrum.Visibility == Visibility.Visible) { viewTaikoDrum.Visibility = Visibility.Collapsed; } UpdateWiimoteVisual((Wiimote)state); } else if (state is Nunchuk) { if (viewNunchuk.Visibility != Visibility.Visible) { viewNunchuk.Visibility = Visibility.Visible; } if (viewClassicController.Visibility == Visibility.Visible) { viewClassicController.Visibility = Visibility.Collapsed; } if (viewClassicControllerPro.Visibility == Visibility.Visible) { viewClassicControllerPro.Visibility = Visibility.Collapsed; } if (viewGuitar.Visibility == Visibility.Visible) { viewGuitar.Visibility = Visibility.Collapsed; } if (viewTaikoDrum.Visibility == Visibility.Visible) { viewTaikoDrum.Visibility = Visibility.Collapsed; } var nun = (Nunchuk)state; UpdateWiimoteVisual(nun.wiimote); nBtnC.Opacity = nun.C ? 1 : 0; nBtnZ.Opacity = nun.Z ? 1 : 0; nJoy.Margin = new Thickness(70 + 30 * nun.joystick.X, 360 - 30 * nun.joystick.Y, 0, 0); if (_openJoyWindow != null && _calibrationTarget == App.CAL_NUN_JOYSTICK) { _openJoyWindow.Update(nun.joystick); } } else if (state is ClassicController) { if (viewNunchuk.Visibility == Visibility.Visible) { viewNunchuk.Visibility = Visibility.Collapsed; } if (viewClassicController.Visibility != Visibility.Visible) { viewClassicController.Visibility = Visibility.Visible; } if (viewClassicControllerPro.Visibility == Visibility.Visible) { viewClassicControllerPro.Visibility = Visibility.Collapsed; } if (viewGuitar.Visibility == Visibility.Visible) { viewGuitar.Visibility = Visibility.Collapsed; } if (viewTaikoDrum.Visibility == Visibility.Visible) { viewTaikoDrum.Visibility = Visibility.Collapsed; } var cc = (ClassicController)state; UpdateWiimoteVisual(cc.wiimote); ccBtnA.Opacity = cc.A ? 1 : 0; ccBtnB.Opacity = cc.B ? 1 : 0; ccBtnX.Opacity = cc.X ? 1 : 0; ccBtnY.Opacity = cc.Y ? 1 : 0; ccBtnUp.Opacity = cc.Up ? 1 : 0; ccBtnDown.Opacity = cc.Down ? 1 : 0; ccBtnRight.Opacity = cc.Right ? 1 : 0; ccBtnLeft.Opacity = cc.Left ? 1 : 0; ccPadCenter.Opacity = cc.Up || cc.Down || cc.Left || cc.Right ? 1 : 0; ccBtnHome.Opacity = cc.Home ? 1 : 0; ccBtnSelect.Opacity = cc.Select ? 1 : 0; ccBtnStart.Opacity = cc.Start ? 1 : 0; ccBtnZL.Opacity = cc.ZL ? 1 : 0; ccBtnZR.Opacity = cc.ZR ? 1 : 0; ccL.Opacity = cc.L.value > 0 ? 1 : 0; ccR.Opacity = cc.R.value > 0 ? 1 : 0; ccLeftStick.Margin = new Thickness(208 + 30 * cc.LJoy.X, 210 - 30 * cc.LJoy.Y, 0, 0); ccRightStick.Margin = new Thickness(364 + 30 * cc.RJoy.X, 210 - 30 * cc.RJoy.Y, 0, 0); if (_openJoyWindow != null && _calibrationTarget.StartsWith("cc")) { if (_calibrationTarget == App.CAL_CC_LJOYSTICK) { _openJoyWindow.Update(cc.LJoy); } else if (_calibrationTarget == App.CAL_CC_RJOYSTICK) { _openJoyWindow.Update(cc.RJoy); } } else if (_openTrigWindow != null && _calibrationTarget.StartsWith("cc")) { if (_calibrationTarget == "ccLT") { _openTrigWindow.Update(cc.L); } else if (_calibrationTarget == "ccRT") { _openTrigWindow.Update(cc.R); } } } else if (state is ClassicControllerPro) { if (viewNunchuk.Visibility == Visibility.Visible) { viewNunchuk.Visibility = Visibility.Collapsed; } if (viewClassicController.Visibility == Visibility.Visible) { viewClassicController.Visibility = Visibility.Collapsed; } if (viewClassicControllerPro.Visibility != Visibility.Visible) { viewClassicControllerPro.Visibility = Visibility.Visible; } if (viewGuitar.Visibility == Visibility.Visible) { viewGuitar.Visibility = Visibility.Collapsed; } if (viewTaikoDrum.Visibility == Visibility.Visible) { viewTaikoDrum.Visibility = Visibility.Collapsed; } var ccp = (ClassicControllerPro)state; UpdateWiimoteVisual(ccp.wiimote); ccpBtnA.Opacity = ccp.A ? 1 : 0; ccpBtnB.Opacity = ccp.B ? 1 : 0; ccpBtnX.Opacity = ccp.X ? 1 : 0; ccpBtnY.Opacity = ccp.Y ? 1 : 0; ccpBtnUp.Opacity = ccp.Up ? 1 : 0; ccpBtnDown.Opacity = ccp.Down ? 1 : 0; ccpBtnRight.Opacity = ccp.Right ? 1 : 0; ccpBtnLeft.Opacity = ccp.Left ? 1 : 0; ccpPadCenter.Opacity = ccp.Up || ccp.Down || ccp.Left || ccp.Right ? 1 : 0; ccpBtnHome.Opacity = ccp.Home ? 1 : 0; ccpBtnSelect.Opacity = ccp.Select ? 1 : 0; ccpBtnStart.Opacity = ccp.Start ? 1 : 0; ccpBtnZL.Opacity = ccp.ZL ? 1 : 0; ccpBtnZR.Opacity = ccp.ZR ? 1 : 0; ccpBtnL.Opacity = ccp.L ? 1 : 0; ccpBtnR.Opacity = ccp.R ? 1 : 0; ccpLeftStick.Margin = new Thickness(255 + 30 * ccp.LJoy.X, 279 - 30 * ccp.LJoy.Y, 0, 0); ccpRightStick.Margin = new Thickness(485 + 30 * ccp.RJoy.X, 279 - 30 * ccp.RJoy.Y, 0, 0); if (_openJoyWindow != null && _calibrationTarget.StartsWith("ccp")) { if (_calibrationTarget == App.CAL_CCP_LJOYSTICK) { _openJoyWindow.Update(ccp.LJoy); } else if (_calibrationTarget == App.CAL_CCP_RJOYSTICK) { _openJoyWindow.Update(ccp.RJoy); } } } else if (state is Guitar) { if (viewNunchuk.Visibility == Visibility.Visible) { viewNunchuk.Visibility = Visibility.Collapsed; } if (viewClassicController.Visibility == Visibility.Visible) { viewClassicController.Visibility = Visibility.Collapsed; } if (viewClassicControllerPro.Visibility == Visibility.Visible) { viewClassicControllerPro.Visibility = Visibility.Collapsed; } if (viewGuitar.Visibility != Visibility.Visible) { viewGuitar.Visibility = Visibility.Visible; } if (viewTaikoDrum.Visibility == Visibility.Visible) { viewTaikoDrum.Visibility = Visibility.Collapsed; } var gut = (Guitar)state; UpdateWiimoteVisual(gut.wiimote); gBtnGreen.Opacity = gut.Green ? 1 : 0; gBtnRed.Opacity = gut.Red ? 1 : 0; gBtnYellow.Opacity = gut.Yellow ? 1 : 0; gBtnBlue.Opacity = gut.Blue ? 1 : 0; gBtnOrange.Opacity = gut.Orange ? 1 : 0; gBtnStrumUp.Opacity = gut.StrumUp ? 1 : 0; gBtnStrumDown.Opacity = gut.StrumDown ? 1 : 0; gBtnPlus.Opacity = gut.Plus ? 1 : 0; gBtnMinus.Opacity = gut.Minus ? 1 : 0; gTouch1.Opacity = gut.T1 ? 1 : 0; gTouch2.Opacity = gut.T2 ? 1 : 0; gTouch3.Opacity = gut.T3 ? 1 : 0; gTouch4.Opacity = gut.T4 ? 1 : 0; gTouch5.Opacity = gut.T5 ? 1 : 0; gStick.Margin = new Thickness(1236 + 30 * gut.joystick.X, 283 - 30 * gut.joystick.Y, 0, 0); gStick.Margin = new Thickness(1236 + 30 * gut.joystick.X, 283 - 30 * gut.joystick.Y, 0, 0); gWhammy.Margin = new Thickness(345 + 60 * gut.whammyBar.value, 815 - 20 * gut.whammyBar.value, 0, 0); if (_openJoyWindow != null && _calibrationTarget == App.CAL_GUT_JOYSTICK) { _openJoyWindow.Update(gut.joystick); } else if (_openTrigWindow != null && _calibrationTarget == App.CAL_GUT_WHAMMY) { _openTrigWindow.Update(gut.whammyBar); } } else if (state is TaikoDrum) { if (viewNunchuk.Visibility == Visibility.Visible) { viewNunchuk.Visibility = Visibility.Collapsed; } if (viewClassicController.Visibility == Visibility.Visible) { viewClassicController.Visibility = Visibility.Collapsed; } if (viewClassicControllerPro.Visibility == Visibility.Visible) { viewClassicControllerPro.Visibility = Visibility.Collapsed; } if (viewGuitar.Visibility == Visibility.Visible) { viewGuitar.Visibility = Visibility.Collapsed; } if (viewTaikoDrum.Visibility != Visibility.Visible) { viewTaikoDrum.Visibility = Visibility.Visible; } var tak = (TaikoDrum)state; UpdateWiimoteVisual(tak.wiimote); takL.Fill = tak.centerLeft ? System.Windows.Media.Brushes.Red : System.Windows.Media.Brushes.White; takR.Fill = tak.centerRight ? System.Windows.Media.Brushes.Red : System.Windows.Media.Brushes.White; takRimL.Stroke = tak.rimLeft ? System.Windows.Media.Brushes.Blue : System.Windows.Media.Brushes.White; takRimR.Stroke = tak.rimRight ? System.Windows.Media.Brushes.Blue : System.Windows.Media.Brushes.White; } }