public void SetButton(DUALSHOCK3Button button) { RemoconButtonItem rbi = new RemoconButtonItem(button); GraphCanvas.Children.Add(rbi); SetEndTime(button.EndTime); }
public RemoconButtonItem(DUALSHOCK3Button btn) { button = btn; button.EndTimeChanged += Button_EndTimeChanged; SetValue(Canvas.TopProperty, (double)btn.Button * 25.0); SetValue(Canvas.LeftProperty, (double)btn.StartTime); }
private void CommandIn_MatDataInput(object sender, MatDataInputEventArgs e) { if (!IsLogging) return; Dispatcher.BeginInvoke((Action)(() => { DUALSHOCK3 data = (DUALSHOCK3)e.NewValue.DataValue; Log.Add(data); view.SetAnalogStick(data); List<DUALSHOCK3Buttons> list = data.GetPressedButtons(); if (Log.Count == 1) { for (int i = 0; i < list.Count; i++) { DUALSHOCK3Button btn = new DUALSHOCK3Button(list[i], data.Time); pressingButtons.Add(btn); } } else { List<DUALSHOCK3Button> removeList = new List<DUALSHOCK3Button>(); for (int i = 0; i < list.Count; i++) { bool exist = false; DUALSHOCK3Button btn = new DUALSHOCK3Button(list[i], data.Time); for (int c = 0; c < pressingButtons.Count; c++) { if (list[i] == pressingButtons[c].Button) { exist = true; pressingButtons[c].EndTime = data.Time; view.SetEndTime(data.Time); CurrentTime = data.Time; } } if (!exist) { pressingButtons.Add(btn); view.SetButton(btn); CurrentTime = data.Time; } view.SetTimeBar(CurrentTime); } for (int i = 0; i < pressingButtons.Count; i++) { bool exist = false; for (int c = 0; c < list.Count; c++) { if (pressingButtons[i].Button == list[c]) exist = true; } if (!exist) { removeList.Add(pressingButtons[i]); } } for (int i = 0; i < removeList.Count; i++) { pressingButtons.Remove(removeList[i]); } } })); }