/// <summary>
        /// Get PadSetting from currently selected device.
        /// </summary>
        /// <param name="padIndex">Source pad index.</param>
        public PadSetting GetCurrentPadSetting(MapTo padIndex)
        {
            // Get settings related to PAD.
            var maps = SettingsMap.Where(x => x.MapTo == padIndex).ToArray();

            PropertyInfo[] properties;
            if (!ValidatePropertyNames(maps, out properties))
            {
                return(null);
            }
            var ps = new PadSetting();

            foreach (var p in properties)
            {
                var map = maps.First(x => x.PropertyName == p.Name);
                var key = map.IniPath.Split('\\')[1];
                // Get setting value from the form.
                var v = GetSettingValue(map.Control);
                // Set value onto padSetting.
                p.SetValue(ps, v ?? "", null);
            }
            ps.PadSettingChecksum = ps.GetCheckSum();
            return(ps);
        }
Esempio n. 2
0
        public string SaveSetting(Setting s, PadSetting ps)
        {
            var checksum = ps.GetCheckSum();
            var db       = new x360ceModelContainer();
            var s1       = db.Settings.FirstOrDefault(x => x.InstanceGuid == s.InstanceGuid && x.FileName == s.FileName && x.FileProductName == s.FileProductName);
            var n        = DateTime.Now;

            if (s1 == null)
            {
                s1             = new Setting();
                s1.SettingId   = Guid.NewGuid();
                s1.DateCreated = n;
                db.Settings.AddObject(s1);
            }
            s1.Comment            = s.Comment;
            s1.DateUpdated        = n;
            s1.DateSelected       = n;
            s1.DeviceType         = s.DeviceType;
            s1.FileName           = s.FileName;
            s1.FileProductName    = s.FileProductName;
            s1.InstanceGuid       = s.InstanceGuid;
            s1.InstanceName       = s.InstanceName;
            s1.ProductGuid        = s.ProductGuid;
            s1.ProductName        = s.ProductName;
            s1.IsEnabled          = s.IsEnabled;
            s1.PadSettingChecksum = checksum;
            // Save Pad Settings.
            var p1 = db.PadSettings.FirstOrDefault(x => x.PadSettingChecksum == checksum);

            if (p1 == null)
            {
                p1 = new PadSetting();
                p1.PadSettingChecksum = checksum;
                db.PadSettings.AddObject(p1);
            }
            p1.AxisToDPadDeadZone = ps.AxisToDPadDeadZone;
            p1.AxisToDPadEnabled  = ps.AxisToDPadEnabled;
            p1.AxisToDPadOffset   = ps.AxisToDPadOffset;
            p1.ButtonA            = ps.ButtonA;
            p1.ButtonB            = ps.ButtonB;
            p1.ButtonBig          = string.IsNullOrEmpty(ps.ButtonBig) ? "" : ps.ButtonBig;
            p1.ButtonGuide        = string.IsNullOrEmpty(ps.ButtonGuide) ? "" : ps.ButtonGuide;
            p1.ButtonBack         = ps.ButtonBack;
            p1.ButtonStart        = ps.ButtonStart;
            p1.ButtonX            = ps.ButtonX;
            p1.ButtonY            = ps.ButtonY;
            p1.DPad                    = ps.DPad;
            p1.DPadDown                = ps.DPadDown;
            p1.DPadLeft                = ps.DPadLeft;
            p1.DPadRight               = ps.DPadRight;
            p1.DPadUp                  = ps.DPadUp;
            p1.ForceEnable             = ps.ForceEnable;
            p1.ForceOverall            = ps.ForceOverall;
            p1.ForceSwapMotor          = ps.ForceSwapMotor;
            p1.ForceType               = ps.ForceType;
            p1.GamePadType             = ps.GamePadType;
            p1.LeftMotorPeriod         = ps.LeftMotorPeriod;
            p1.LeftMotorStrength       = string.IsNullOrEmpty(ps.LeftMotorStrength) ? "100" : ps.LeftMotorStrength;
            p1.LeftMotorDirection      = string.IsNullOrEmpty(ps.LeftMotorDirection) ? "0" : ps.LeftMotorDirection;
            p1.LeftShoulder            = ps.LeftShoulder;
            p1.LeftThumbAntiDeadZoneX  = ps.LeftThumbAntiDeadZoneX;
            p1.LeftThumbAntiDeadZoneY  = ps.LeftThumbAntiDeadZoneY;
            p1.LeftThumbAxisX          = ps.LeftThumbAxisX;
            p1.LeftThumbAxisY          = ps.LeftThumbAxisY;
            p1.LeftThumbButton         = ps.LeftThumbButton;
            p1.LeftThumbDeadZoneX      = ps.LeftThumbDeadZoneX;
            p1.LeftThumbDeadZoneY      = ps.LeftThumbDeadZoneY;
            p1.LeftThumbLinearX        = string.IsNullOrEmpty(ps.LeftThumbLinearX) ? "" : ps.LeftThumbLinearX;
            p1.LeftThumbLinearY        = string.IsNullOrEmpty(ps.LeftThumbLinearY) ? "" : ps.LeftThumbLinearY;
            p1.LeftThumbDown           = ps.LeftThumbDown;
            p1.LeftThumbLeft           = ps.LeftThumbLeft;
            p1.LeftThumbRight          = ps.LeftThumbRight;
            p1.LeftThumbUp             = ps.LeftThumbUp;
            p1.LeftTrigger             = ps.LeftTrigger;
            p1.LeftTriggerDeadZone     = ps.LeftTriggerDeadZone;
            p1.PassThrough             = ps.PassThrough;
            p1.RightMotorPeriod        = ps.RightMotorPeriod;
            p1.RightMotorStrength      = string.IsNullOrEmpty(ps.RightMotorStrength) ? "100" : ps.RightMotorStrength;
            p1.RightMotorDirection     = string.IsNullOrEmpty(ps.RightMotorDirection) ? "0" : ps.RightMotorDirection;
            p1.RightShoulder           = ps.RightShoulder;
            p1.RightThumbAntiDeadZoneX = ps.RightThumbAntiDeadZoneX;
            p1.RightThumbAntiDeadZoneY = ps.RightThumbAntiDeadZoneY;
            p1.RightThumbLinearX       = string.IsNullOrEmpty(ps.RightThumbLinearX) ? "" : ps.RightThumbLinearX;
            p1.RightThumbLinearY       = string.IsNullOrEmpty(ps.RightThumbLinearY) ? "" : ps.RightThumbLinearY;
            p1.RightThumbAxisX         = ps.RightThumbAxisX;
            p1.RightThumbAxisY         = ps.RightThumbAxisY;
            p1.RightThumbButton        = ps.RightThumbButton;
            p1.RightThumbDeadZoneX     = ps.RightThumbDeadZoneX;
            p1.RightThumbDeadZoneY     = ps.RightThumbDeadZoneY;
            p1.RightThumbDown          = ps.RightThumbDown;
            p1.RightThumbLeft          = ps.RightThumbLeft;
            p1.RightThumbRight         = ps.RightThumbRight;
            p1.RightThumbUp            = ps.RightThumbUp;
            p1.RightTrigger            = ps.RightTrigger;
            p1.RightTriggerDeadZone    = ps.RightTriggerDeadZone;
            // Axis to button dead-zones.
            p1.ButtonADeadZone          = ps.ButtonADeadZone ?? "";
            p1.ButtonBDeadZone          = ps.ButtonBDeadZone ?? "";
            p1.ButtonBackDeadZone       = ps.ButtonBackDeadZone ?? "";
            p1.ButtonStartDeadZone      = ps.ButtonStartDeadZone ?? "";
            p1.ButtonXDeadZone          = ps.ButtonXDeadZone ?? "";
            p1.ButtonYDeadZone          = ps.ButtonYDeadZone ?? "";
            p1.LeftThumbButtonDeadZone  = ps.LeftThumbButtonDeadZone ?? "";
            p1.RightThumbButtonDeadZone = ps.RightThumbButtonDeadZone ?? "";
            p1.LeftShoulderDeadZone     = ps.LeftShoulderDeadZone ?? "";
            p1.RightShoulderDeadZone    = ps.RightShoulderDeadZone ?? "";
            p1.DPadDownDeadZone         = ps.DPadDownDeadZone ?? "";
            p1.DPadLeftDeadZone         = ps.DPadLeftDeadZone ?? "";
            p1.DPadRightDeadZone        = ps.DPadRightDeadZone ?? "";
            p1.DPadUpDeadZone           = ps.DPadUpDeadZone ?? "";
            db.SaveChanges();
            db.Dispose();
            db = null;
            return("");
        }