示例#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
        public PlaceholderInputDevice([CanBeNull] string id, string displayName, int index)
        {
            Id             = id;
            Index          = index;
            OriginalIniIds = new List <int> {
                index
            };

            if (id != null && DisplayInputParams.Get(id, out var gotDisplayName, out _axesP, out _buttonsP, out _povsP))
            {
                DisplayName = gotDisplayName;
            }
示例#3
0
        public PlaceholderInputDevice([CanBeNull] string instanceId, [CanBeNull] string productId, string displayName, int index)
        {
            InstanceId     = instanceId;
            ProductId      = productId;
            Index          = index;
            IsController   = DirectInputDeviceUtils.IsController(displayName);
            OriginalIniIds = new List <int> {
                index
            };

            if (productId != null && DisplayInputParams.Get(productId, out var gotDisplayName, out _axesP, out _buttonsP, out _povsP))
            {
                DisplayName = gotDisplayName;
            }
示例#4
0
        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));
        }
示例#5
0
        public static bool Get([NotNull] string guid, out string displayName, out DisplayInputParams axes, out DisplayInputParams buttons, out DisplayInputParams povs)
        {
            var file = FilesStorage.Instance.GetContentFile(ContentCategory.Controllers, $"{guid}.json");

            if (file.Exists)
            {
                try {
                    var jData = JsonExtension.Parse(File.ReadAllText(file.Filename));
                    displayName = ContentUtils.Translate(jData.GetStringValueOnly("name"));
                    axes        = new DisplayInputParams(jData["axis"] ?? jData["axes"] ?? jData["axles"]);
                    buttons     = new DisplayInputParams(jData["buttons"]);
                    povs        = new DisplayInputParams(jData["pov"] ?? jData["povs"] ?? jData["pointOfViews"]);
                    return(true);
                } catch (Exception e) {
                    Logging.Warning(e);
                }
            }

            displayName = null;
            axes        = null;
            buttons     = null;
            povs        = null;
            return(false);
        }