コード例 #1
0
        public void RefreshDescription()
        {
            if (!DisplayInputParams.Get(Device.ProductGuid.ToString(), out var displayName, out var axisP, out var buttonsP, out var povsP) &&
                IsController)
            {
                DisplayInputParams.Get(DirectInputDeviceUtils.GetXboxControllerGuid(), out _, out axisP, out buttonsP, out povsP);
            }

            DisplayName = displayName ?? FixDisplayName(Device.InstanceName);
            if (OptionStrictIndices)
            {
                DisplayName += $@" (#{Index + 1})";
            }

            Proc(Axis, axisP);
            Proc(Buttons, buttonsP);
            Proc(Povs, povsP);

            void Proc(IEnumerable <IInputProvider> items, DisplayInputParams p)
            {
                foreach (var t in items)
                {
                    t.SetDisplayParams(p?.Name(t.Id), p?.Test(t.Id) ?? true);
                }
            }

            VisibleAxis    = Axis.Where(x => x.IsVisible).ToList();
            VisibleButtons = Buttons.Where(x => x.IsVisible).ToList();
            VisiblePovs    = Povs.Where(x => x.IsVisible).ToList();
            OnPropertyChanged(nameof(VisibleAxis));
            OnPropertyChanged(nameof(VisibleButtons));
            OnPropertyChanged(nameof(VisiblePovs));
        }
コード例 #2
0
ファイル: Controller.cs プロジェクト: mtwomey/FreedomJoy
 private void _initPovs()
 {
     for (int i = 0; i < _povCount; i++)
     {
         string name   = "pov" + (i + 1);
         Pov    newPov = new Pov(
             parentController: this,
             type: Pov.PovType.Standard,
             name: name,
             povNumber: i + 1
             );
         Povs.Add(newPov);
         PovsByName.Add(name, newPov);
     }
 }
コード例 #3
0
ファイル: DirectInputDevice.cs プロジェクト: windygu/actools
        public void RefreshDescription()
        {
            DisplayInputParams.Get(Device.ProductGuid.ToString(), out var displayName, out var axisP, out var buttonsP, out var povsP);
            DisplayName = displayName ?? FixDisplayName(Device.InstanceName);
            Proc(Axis, axisP);
            Proc(Buttons, buttonsP);
            Proc(Povs, povsP);

            void Proc(IEnumerable <IInputProvider> items, DisplayInputParams p)
            {
                foreach (var t in items)
                {
                    t.SetDisplayParams(p?.Name(t.Id), p?.Test(t.Id) ?? true);
                }
            }

            VisibleAxis    = Axis.Where(x => x.IsVisible).ToList();
            VisibleButtons = Buttons.Where(x => x.IsVisible).ToList();
            VisiblePovs    = Povs.Where(x => x.IsVisible).ToList();
            OnPropertyChanged(nameof(VisibleAxis));
            OnPropertyChanged(nameof(VisibleButtons));
            OnPropertyChanged(nameof(VisiblePovs));
        }
コード例 #4
0
 public DirectInputPov GetPov(int id, DirectInputPovDirection direction)
 {
     return(id < 0 ? null : Povs.FirstOrDefault(x => x.Id == id && x.Direction == direction));
 }