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);
 }
Beispiel #3
0
        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]);
                    }
                }
            }));
        }