コード例 #1
0
        public void SetBinding(MapTo mappedTo, PadSetting ps)
        {
            _MappedTo = mappedTo;
            if (_padSetting != null)
            {
                _padSetting.PropertyChanged -= _padSetting_PropertyChanged;
            }
            LeftForceFeedbackMotorPanel.TestUpDown.ValueChanged  -= TestUpDown_ValueChanged;
            RightForceFeedbackMotorPanel.TestUpDown.ValueChanged -= TestUpDown_ValueChanged;
            // Unbind first.
            SettingsManager.UnLoadMonitor(ForceEnabledCheckBox);
            SettingsManager.UnLoadMonitor(SwapMotorsCheckBox);
            SettingsManager.UnLoadMonitor(ForceTypeComboBox);
            SettingsManager.UnLoadMonitor(StrengthUpDown);
            if (ps == null)
            {
                return;
            }
            _padSetting = ps;
            var intConverter  = new Converters.PadSettingToNumericConverter <decimal>();
            var boolConverter = new Converters.PadSettingToBoolConverter();
            var enumConverter = new Converters.PadSettingToEnumConverter <ForceEffectType>();

            // Set binding.
            SettingsManager.LoadAndMonitor(ps, nameof(ps.ForceEnable), ForceEnabledCheckBox, null, boolConverter);
            SettingsManager.LoadAndMonitor(ps, nameof(ps.ForceSwapMotor), SwapMotorsCheckBox, null, boolConverter);
            SettingsManager.LoadAndMonitor(ps, nameof(ps.ForceType), ForceTypeComboBox, null, enumConverter);
            SettingsManager.LoadAndMonitor(ps, nameof(ps.ForceOverall), StrengthUpDown, null, intConverter);
            _padSetting.PropertyChanged += _padSetting_PropertyChanged;
            LeftForceFeedbackMotorPanel.TestUpDown.ValueChanged  += TestUpDown_ValueChanged;
            RightForceFeedbackMotorPanel.TestUpDown.ValueChanged += TestUpDown_ValueChanged;
        }
コード例 #2
0
        /// <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);
                // If value is default then...
                if (v == map.DefaultValue as string)
                {
                    // Remove default value.
                    v = null;
                }
                // Set value onto padSetting.
                p.SetValue(ps, v ?? "", null);
            }
            ps.PadSettingChecksum = ps.CleanAndGetCheckSum();
            return(ps);
        }
コード例 #3
0
        ///// <summary>
        ///// Load PAD settings from INI file to form.
        ///// </summary>
        ///// <param name="file">INI file name.</param>
        ///// <param name="iniSection">Source INI pad section.</param>
        ///// <param name="padIndex">Destination pad index.</param>
        //public void LoadPadSettings(string file, string iniSection, int padIndex)
        //{
        //	var ini2 = new Ini(file);
        //	var pad = string.Format("PAD{0}", padIndex + 1);
        //	var paths = SettingsMap.Select(x => x.IniPath).ToArray();
        //	foreach (string path in paths)
        //	{
        //		string section = path.Split('\\')[0];
        //		if (section != pad) continue;
        //		string key = path.Split('\\')[1];

        //		Control control = SettingsMap.FirstOrDefault(x => x.IniPath == path).Control;
        //		string dstPath = string.Format("{0}\\{1}", pad, key);
        //		control = SettingsMap.FirstOrDefault(x => x.IniPath == dstPath).Control;


        //		string v = ini2.GetValue(iniSection, key);
        //		LoadSetting(control, key, v);
        //	}
        //	loadCount++;
        //	if (ConfigLoaded != null) ConfigLoaded(this, new SettingEventArgs(ini2.File.Name, loadCount));
        //}

        /// <summary>
        /// Load PAD settings to form.
        /// </summary>
        /// <param name="padSetting">Settings to read.</param>
        /// <param name="padIndex">Destination pad index.</param>
        public void LoadPadSettings(MapTo padIndex, PadSetting padSetting)
        {
            if (padSetting == null)
            {
                padSetting = new PadSetting();
            }
            // Get settings related to PAD.
            var items = SettingsMap.Where(x => x.MapTo == padIndex).ToArray();
            var props = padSetting.GetType().GetProperties();

            foreach (var item in items)
            {
                string key  = item.IniPath.Split('\\')[1];
                var    prop = props.FirstOrDefault(x => x.Name == item.PropertyName);
                // If property was not found then...
                if (prop == null)
                {
                    //var message = string.Format("ReadPadSettings: Property '{0}' was not found", item.PropertyName);
                    //MessageBoxForm.Show(message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    continue;
                }
                var v = (string)prop.GetValue(padSetting, null) ?? "";
                LoadSetting(item.Control, key, v);
            }
            loadCount++;
            var ev = ConfigLoaded;

            if (ev != null)
            {
                ev(this, new SettingEventArgs(padSetting.GetType().Name, loadCount));
            }
        }
コード例 #4
0
        public void SyncFormFromPadSetting(MapTo padIndex, PadSetting ps)
        {
            // Get setting maps for specified PAD Control.
            var maps = SettingsMap.Where(x => x.MapTo == padIndex).ToArray();

            PropertyInfo[] properties;
            if (!ValidatePropertyNames(maps, out properties))
            {
                return;
            }
            // Suspend form events (do not track setting changes on the form).
            SuspendEvents();
            foreach (var p in properties)
            {
                var map = maps.FirstOrDefault(x => x.PropertyName == p.Name);
                if (map == null)
                {
                    continue;
                }
                var v = (string)p.GetValue(ps, null) ?? "";
                // If value is not set then...
                if (string.IsNullOrEmpty(v))
                {
                    // Restore default value.
                    v = string.Format("{0}", map.DefaultValue ?? "");
                }
                LoadSetting(map.Control, map.PropertyName, v);
            }
            // Resume form events (track setting changes on the form).
            ResumeEvents();
        }
コード例 #5
0
ファイル: MappedHugeArray.cs プロジェクト: whztt1989/OsmSharp
 /// <summary>
 /// Creates a new mapped huge array.
 /// </summary>
 /// <param name="baseArray">The base array.</param>
 /// <param name="elementSize">The size of one mapped structure when translate to the simpler structure.</param>
 /// <param name="mapTo">The map to implementation.</param>
 /// <param name="mapFrom">The map from implementation.</param>
 public MappedHugeArray(HugeArrayBase <T> baseArray, int elementSize, MapTo mapTo, MapFrom mapFrom)
 {
     _baseArray   = baseArray;
     _elementSize = elementSize;
     _mapTo       = mapTo;
     _mapFrom     = mapFrom;
 }
コード例 #6
0
        /// <summary>
        /// Load PAD settings to form.
        /// </summary>
        /// <param name="padSetting">Settings to read.</param>
        /// <param name="padIndex">Destination pad index.</param>
        public void LoadPadSettings(MapTo padIndex, PadSetting padSetting)
        {
            // Get settings related to PAD.
            var maps = SettingsMap.Where(x => x.MapTo == padIndex).ToArray();

            PropertyInfo[] properties;
            if (!ValidatePropertyNames(maps, out properties))
            {
                return;
            }
            // Suspend form events (do not track setting changes on the form).
            SuspendEvents();
            // If pad settings must be reset then load default.
            var ps = padSetting == null ? new PadSetting() : padSetting;

            foreach (var p in properties)
            {
                var map = maps.First(x => x.PropertyName == p.Name);
                var key = map.IniPath.Split('\\')[1];
                var v   = (string)p.GetValue(ps, null) ?? "";
                LoadSetting(map.Control, key, v);
            }
            // Resume form events (track setting changes on the form).
            ResumeEvents();
            loadCount++;
            var ev = ConfigLoaded;

            if (ev != null)
            {
                ev(this, new SettingEventArgs(typeof(PadSetting).Name, loadCount));
            }
        }
コード例 #7
0
 internal ScenarioFunctionBlockBase(BinaryReader binaryReader)
 {
     this.flags                  = (Flags)binaryReader.ReadInt32();
     this.name                   = binaryReader.ReadString32();
     this.periodSeconds          = binaryReader.ReadSingle();
     this.scalePeriodBy          = binaryReader.ReadShortBlockIndex1();
     this.function               = (Function)binaryReader.ReadInt16();
     this.scaleFunctionBy        = binaryReader.ReadShortBlockIndex1();
     this.wobbleFunction         = (WobbleFunctionCurveUsedForWobble)binaryReader.ReadInt16();
     this.wobblePeriodSeconds    = binaryReader.ReadSingle();
     this.wobbleMagnitudePercent = binaryReader.ReadSingle();
     this.squareWaveThreshold    = binaryReader.ReadSingle();
     this.stepCount              = binaryReader.ReadInt16();
     this.mapTo                  = (MapTo)binaryReader.ReadInt16();
     this.sawtoothCount          = binaryReader.ReadInt16();
     this.invalidName_           = binaryReader.ReadBytes(2);
     this.scaleResultBy          = binaryReader.ReadShortBlockIndex1();
     this.boundsMode             = (BoundsModeControlsHowBoundsBelowAreUsed)binaryReader.ReadInt16();
     this.bounds                 = binaryReader.ReadVector2();
     this.invalidName_0          = binaryReader.ReadBytes(4);
     this.invalidName_1          = binaryReader.ReadBytes(2);
     this.turnOffWith            = binaryReader.ReadShortBlockIndex1();
     this.invalidName_2          = binaryReader.ReadBytes(16);
     this.invalidName_3          = binaryReader.ReadBytes(16);
 }
コード例 #8
0
        /// <summary>
        /// Load PAD settings to form.
        /// </summary>
        /// <param name="padSetting">Settings to read.</param>
        /// <param name="padIndex">Destination pad index.</param>
        public void LoadPadSettingsIntoSelectedDevice(MapTo padIndex, PadSetting ps)
        {
            // Get pad control with settings.
            var padControl = MainForm.Current.PadControls[(int)padIndex - 1];
            // Get selected setting.
            var setting = padControl.CurrentUserSetting;

            // Return if nothing selected.
            if (setting == null)
            {
                return;
            }
            // If setting not supplied then use empty (clear settings).
            if (ps == null)
            {
                ps = new PadSetting();
            }
            LoadPadSettingAndCleanup(setting, ps);
            SyncFormFromPadSetting(padIndex, ps);
            RaiseSettingsChanged(null);
            loadCount++;
            var ev = ConfigLoaded;

            if (ev != null)
            {
                ev(this, new SettingEventArgs(typeof(PadSetting).Name, loadCount));
            }
        }
コード例 #9
0
            protected override void Because_of()
            {
                var source = new MapFrom
                {
                    Element = new MapFromElementDerived {
                        Prop = "PROP1", Prop2 = "PROP2"
                    }
                };

                _destination = Mapper.Map <MapTo>(source);
            }
コード例 #10
0
ファイル: FSQLEngine.cs プロジェクト: Ill-Eagle-Software/FSQL
        public override IProgramPart VisitMapFolderTo(FSQLParser.MapFolderToContext context)
        {
            var aliasname = context.alias.Text;
            //var folder = UnescapeString(context.folder.Text);
            var folder = Visit(context.folder) as IExpression;
            //var filter = UnescapeString(context.filter?.Text ?? "*.*");
            var filter = context.filter == null ? (StringConstant)"*.*" : Visit(context.filter) as IExpression;
            var mapTo  = new MapTo(aliasname, folder, filter);

            return(mapTo);
            //return base.VisitMapFolderTo(context);
        }
        public void SetVibration(MapTo userIndex, byte largeMotor, byte smallMotor, byte ledNumber)
        {
            var client = ViGEmClient.Current;

            if (client == null)
            {
                return;
            }
            var e = new Xbox360FeedbackReceivedEventArgs(largeMotor, smallMotor, ledNumber);

            ViGEmClient.Current.Feedbacks[(int)userIndex - 1] = e;
        }
コード例 #12
0
ファイル: PadListControl.xaml.cs プロジェクト: x360ce/x360ce
 public void SetBinding(MapTo mappedTo)
 {
     _MappedTo = mappedTo;
     // Remove references which will allows form to be disposed.
     SettingsManager.UserSettings.Items.ListChanged -= UserSettings_Items_ListChanged;
     mappedUserSettings.Clear();
     if (mappedTo != MapTo.None)
     {
         SettingsManager.UserSettings.Items.ListChanged += UserSettings_Items_ListChanged;
         UserSettings_Items_ListChanged(null, null);
     }
 }
コード例 #13
0
ファイル: SettingsManager.cs プロジェクト: kamilj/x360ce
        static string GetInstanceSection(MapTo mapTo)
        {
            var ig = GetInstanceGuid(mapTo);

            // If InstanceGuid value is empty then exit.
            if (ig.Equals(Guid.Empty))
            {
                return(null);
            }
            // Save settings to unique Instance section.
            return(Current.GetInstanceSection(ig));
        }
コード例 #14
0
ファイル: PadFootControl.xaml.cs プロジェクト: ph3na/x360ce
 public void SetBinding(MapTo mappedTo, UserDevice userDevice, PadSetting padSetting)
 {
     _MappedTo = mappedTo;
     _UserDevice = userDevice;
     _PadSetting = padSetting;
     var en = padSetting != null;
     ControlsHelper.SetEnabled(CopyButton, en);
     ControlsHelper.SetEnabled(PasteButton, en);
     ControlsHelper.SetEnabled(LoadButton, en);
     ControlsHelper.SetEnabled(AutoButton, en);
     ControlsHelper.SetEnabled(ClearButton, en);
     ControlsHelper.SetEnabled(ResetButton, en);
 }
コード例 #15
0
ファイル: SettingsManager.cs プロジェクト: dsachin/x360ce
        static Guid GetInstanceGuid(MapTo mapTo)
        {
            var guidString = Current.SettingsMap.First(x => x.MapTo == mapTo && x.IniKey == SettingName.InstanceGuid).Control.Text;

            // If instanceGuid value is not a GUID then exit.
            if (!EngineHelper.IsGuid(guidString))
            {
                return(Guid.Empty);
            }
            Guid ig = new Guid(guidString);

            return(ig);
        }
コード例 #16
0
 public void InitializeImages(List <ImageInfo> imageInfos, PadControlImager imager, MapTo mappedTo)
 {
     Infos    = imageInfos;
     Imager   = imager;
     MappedTo = mappedTo;
     foreach (var ii in imageInfos)
     {
         var nameCode = GetNameCode(ii.Code);
         var button   = FindName(nameCode.ToString()) as Button;
         ii.ButtonControl = button;
         SetImage(ii.Code, NavImageType.Normal, false);
     }
     SetHelpText();
 }
コード例 #17
0
        public bool ClearAll(MapTo padIndex)
        {
            var description = JocysCom.ClassLibrary.Runtime.Attributes.GetDescription(padIndex);
            var text        = string.Format("Do you want to clear all {0} settings?", description);
            var form        = new JocysCom.ClassLibrary.Controls.MessageBoxWindow();
            var result      = form.ShowDialog(text, "Clear Controller Settings", System.Windows.MessageBoxButton.YesNo, System.Windows.MessageBoxImage.Question);

            if (result != System.Windows.MessageBoxResult.Yes)
            {
                return(false);
            }
            LoadPadSettingsIntoSelectedDevice(padIndex, null);
            return(true);
        }
コード例 #18
0
ファイル: SettingsManager.cs プロジェクト: kamilj/x360ce
        public static List <UserDevice> GetDevices(string fileName, MapTo mapTo)
        {
            var settings = GetSettings(fileName);
            // Get all mapped to specific index.
            var instances = settings
                            .Where(x => x.MapTo == (int)mapTo)
                            .Select(x => x.InstanceGuid).ToArray();
            var devices = UserDevices.Items
                          .Where(x => instances.Contains(x.InstanceGuid))
                          .ToList();

            // Return available devices.
            return(devices);
        }
コード例 #19
0
ファイル: AppHelper.cs プロジェクト: janick974/x360ce
        public static MapToMask GetMapFlag(MapTo mapTo)
        {
            switch (mapTo)
            {
            case MapTo.Controller1: return(MapToMask.Controller1);

            case MapTo.Controller2: return(MapToMask.Controller2);

            case MapTo.Controller3: return(MapToMask.Controller3);

            case MapTo.Controller4: return(MapToMask.Controller4);

            default: return(MapToMask.None);
            }
        }
コード例 #20
0
        public void DrawController(PaintEventArgs e, MapTo mappedTo)
        {
            // Controller (Player) index indicator coordinates.
            var pads = new Point[4];

            pads[0] = new Point(116, 35);
            pads[1] = new Point(139, 35);
            pads[2] = new Point(116, 62);
            pads[3] = new Point(139, 62);
            // Display controller index light.
            int mW    = -markC.Width / 2;
            int mH    = -markC.Height / 2;
            var index = (int)mappedTo - 1;

            e.Graphics.DrawImage(markC, pads[index].X + mW, pads[index].Y + mH);
        }
コード例 #21
0
        /// <summary>
        /// 注册对象类型转换器
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="fn"></param>
        public static void CreateMap <T, TResult>(MapTo <T, TResult> fn)
            where TResult : new()
        {
            var config = new MapperConfig <T, TResult>();

            lock (lockHelper)
            {
                if (!dictMap.ContainsKey(config))
                {
                    dictMap.Add(config, fn);
                }
                else
                {
                    dictMap[config] = fn;
                }
            }
        }
コード例 #22
0
        private void mnuSaveMap_Click(object sender, EventArgs e)
        {
            int paramCount = lstMappedPairs.Items.Count;

            foreach (ListViewItem aItem in lstMappedPairs.Items)
            {
                switch (currentMode)
                {
                case DataMapType.FieldColumnMap:
                    MapTo.MapToFields(aItem, _aMap, aItem.Tag != null);
                    break;

                case DataMapType.PropertyColumnMap:
                    MapTo.MapToProperties(aItem, _aMap, aItem.Tag != null);
                    break;

                case DataMapType.MethodParameterMap:
                    string methodName = lblMethodName.Text;
                    Guid   anId       = Guid.Empty;
                    if (MethodMap != null)
                    {
                        anId       = MethodMap.ID;
                        methodName = MethodMap.MethodName;
                    }
                    if (aItem.Tag != null && aItem.Tag.GetType().BaseType.Equals(typeof(BaseRule)))
                    {
                        MethodMap = MapTo.MapToParameters(aItem, _aMap, methodName, paramCount, anId, true);
                    }
                    else
                    {
                        MethodMap = MapTo.MapToParameterColumnMap(aItem, _aMap, methodName, paramCount, false, anId);
                    }
                    break;
                }

                if (aItem.Tag != null)
                {
                    RuleSets.Add((IDataRule)aItem.Tag);
                }
            }

            Result = _aMap;

            mnuSaveMap.BackColor = Color.Green;
        }
コード例 #23
0
 public void InitControls(MapTo mappedTo)
 {
     if (ControlsHelper.IsDesignMode(this))
     {
         return;
     }
     // Add controls which must be notified on setting selection change.
     Global.UpdateControlFromStates += Global_UpdateControlFromStates;
     // Hide for this version.
     //PadItemPanel.PadTabControl.Items.Remove(PadItemPanel.XInputTabPage);
     //PadItemPanel.XInputTabPage.Content = null;
     //PadTabControl.TabPages.Remove(MacrosTabPage);
     RemapName                  = GeneralPanel.RemapAllButton.Content as string;
     MappedTo                   = mappedTo;
     _Imager                    = new PadControlImager();
     _Imager.Top                = XboxImage.TopPictureImage;
     _Imager.Front              = XboxImage.FrontPictureImage;
     _Imager.LeftThumbStatus    = XboxImage.LeftThumbContentControl;
     _Imager.RightThumbStatus   = XboxImage.RightThumbContentControl;
     _Imager.LeftTriggerStatus  = XboxImage.LeftTriggerContentControl;
     _Imager.RightTriggerStatus = XboxImage.RightTriggerContentControl;
     _Imager.ImageControl       = XboxImage;
     XboxImage.InitializeImages(imageInfos, _Imager, mappedTo);
     XboxImage.StartRecording = StartRecording;
     XboxImage.StopRecording  = StopRecording;
     // Axis to Button DeadZones
     ButtonsPanel.AxisToButtonADeadZonePanel.MonitorComboBoxWpf          = GeneralPanel.ButtonATextBox;
     ButtonsPanel.AxisToButtonBDeadZonePanel.MonitorComboBoxWpf          = GeneralPanel.ButtonBTextBox;
     ButtonsPanel.AxisToButtonXDeadZonePanel.MonitorComboBoxWpf          = GeneralPanel.ButtonXTextBox;
     ButtonsPanel.AxisToButtonYDeadZonePanel.MonitorComboBoxWpf          = GeneralPanel.ButtonYTextBox;
     ButtonsPanel.AxisToButtonStartDeadZonePanel.MonitorComboBoxWpf      = GeneralPanel.ButtonStartTextBox;
     ButtonsPanel.AxisToButtonBackDeadZonePanel.MonitorComboBoxWpf       = GeneralPanel.ButtonBackTextBox;
     ButtonsPanel.AxisToLeftShoulderDeadZonePanel.MonitorComboBoxWpf     = GeneralPanel.LeftShoulderTextBox;
     ButtonsPanel.AxisToLeftThumbButtonDeadZonePanel.MonitorComboBoxWpf  = GeneralPanel.LeftThumbButtonTextBox;
     ButtonsPanel.AxisToRightShoulderDeadZonePanel.MonitorComboBoxWpf    = GeneralPanel.RightShoulderTextBox;
     ButtonsPanel.AxisToRightThumbButtonDeadZonePanel.MonitorComboBoxWpf = GeneralPanel.RightThumbButtonTextBox;
     ButtonsPanel.AxisToDPadDownDeadZonePanel.MonitorComboBoxWpf         = GeneralPanel.DPadDownTextBox;
     ButtonsPanel.AxisToDPadLeftDeadZonePanel.MonitorComboBoxWpf         = GeneralPanel.DPadLeftTextBox;
     ButtonsPanel.AxisToDPadRightDeadZonePanel.MonitorComboBoxWpf        = GeneralPanel.DPadRightTextBox;
     ButtonsPanel.AxisToDPadUpDeadZonePanel.MonitorComboBoxWpf           = GeneralPanel.DPadUpTextBox;
     // Monitor setting changes.
     SettingsManager.Current.SettingChanged += Current_SettingChanged;
     PadListPanel.SetBinding(MappedTo);
     PadListPanel.MainDataGrid.SelectionChanged += MainDataGrid_SelectionChanged;
 }
コード例 #24
0
        public MapTo[] Baseline()
        {
            var destination = new MapTo[this.mapFrom.Length];

            for (var i = 0; i < this.mapFrom.Length; ++i)
            {
                var item = this.mapFrom[i];
                destination[i] = new MapTo()
                {
                    BooleanTo        = item.BooleanFrom,
                    DateTimeOffsetTo = item.DateTimeOffsetFrom,
                    IntegerTo        = item.IntegerFrom,
                    LongTo           = item.LongFrom,
                    StringTo         = item.StringFrom
                };
            }

            return(destination);
        }
コード例 #25
0
ファイル: SettingsManager.cs プロジェクト: kamilj/x360ce
 public static void MapGamePadDevices(UserGame game, MapTo mappedTo, UserDevice[] devices, bool configureHidGuardian)
 {
     foreach (var ud in devices)
     {
         // Try to get existing setting by instance guid and file name.
         var setting = GetSetting(ud.InstanceGuid, game.FileName);
         // If device setting for the game was not found then.
         if (setting == null)
         {
             // Create new setting.
             setting = AppHelper.GetNewSetting(ud, game, mappedTo);
             // Get auto-configured pad setting.
             var ps = AutoMapHelper.GetAutoPreset(ud);
             Current.LoadPadSettingAndCleanup(setting, ps, true);
             Current.SyncFormFromPadSetting(mappedTo, ps);
             // Refresh online status
             RefreshDeviceIsOnlineValueOnSettings(setting);
             // Load created setting.
             //SettingsManager.Current.LoadPadSettings(MappedTo, ps);
         }
         else
         {
             // Enable if not enabled.
             if (!setting.IsEnabled)
             {
                 setting.IsEnabled = true;
             }
             // Map setting to current pad.
             setting.MapTo = (int)mappedTo;
         }
     }
     if (configureHidGuardian)
     {
         var instanceGuids = devices.Select(x => x.InstanceGuid).ToArray();
         var changed       = AutoHideShowMappedDevices(game, instanceGuids);
         if (changed)
         {
             AppHelper.SynchronizeToHidGuardian(instanceGuids);
         }
     }
 }
コード例 #26
0
            protected override void Because_of()
            {
                var source = new MapFrom
                {
                    Element = new MapFromElementDerived { Prop = "PROP1", Prop2 = "PROP2" }
                };

                _destination = Mapper.Map<MapTo>(source);
            }
コード例 #27
0
ファイル: PadListControl.xaml.cs プロジェクト: ph3na/x360ce
 public void SetBinding(MapTo mappedTo, UserSetting userSetting)
 {
     _MappedTo    = mappedTo;
     _UserSetting = userSetting;
 }
コード例 #28
0
        public static Engine.Data.Setting GetNewSetting(UserDevice device, Engine.Data.UserGame game, MapTo mapTo)
        {
            // Create new setting for game/device.
            var newSetting = new Engine.Data.Setting();

            newSetting.InstanceGuid    = device.InstanceGuid;
            newSetting.InstanceName    = device.InstanceName;
            newSetting.ProductGuid     = device.ProductGuid;
            newSetting.ProductName     = device.ProductName;
            newSetting.DeviceType      = (int)device.CapType;
            newSetting.FileName        = game.FileName;
            newSetting.FileProductName = game.FileProductName;
            newSetting.DateCreated     = DateTime.Now;
            newSetting.IsEnabled       = true;
            newSetting.MapTo           = (int)mapTo;
            return(newSetting);
        }
コード例 #29
0
ファイル: SettingsManager.cs プロジェクト: kamilj/x360ce
        static public SettingsMapItem AddMap <T>(string sectionName, Expression <Func <T> > setting, Control control, MapTo mapTo = MapTo.None, MapCode code = default)
        {
            // Get the member expression
            var me = (MemberExpression)setting.Body;
            // Get the property
            var prop = (PropertyInfo)me.Member;
            // Get the setting name by reading the property
            var keyName = (string)prop.GetValue(null, null);

            if (string.IsNullOrEmpty(keyName))
            {
                keyName = prop.Name;
            }
            // Get the description attribute
            var descAttr = GetCustomAttribute <DescriptionAttribute>(prop);
            var desc     = descAttr != null ? descAttr.Description : string.Empty;
            // Get the default value attribute
            var dvalAttr = GetCustomAttribute <DefaultValueAttribute>(prop);
            var dval     = (string)(descAttr != null ? dvalAttr.Value : null);

            // Display help inside yellow header.
            // We could add settings EnableHelpTooltips=1, EnableHelpHeader=1
            control.MouseHover += control_MouseEnter;
            control.MouseLeave += control_MouseLeave;
            var item = new SettingsMapItem();

            item.Description  = desc;
            item.IniSection   = sectionName;
            item.IniKey       = keyName;
            item.Code         = code;
            item.Control      = control;
            item.MapTo        = mapTo;
            item.PropertyName = prop.Name;
            item.DefaultValue = dval;
            item.Property     = prop;
            // Add to the map
            Current.SettingsMap.Add(item);
            return(item);
        }
コード例 #30
0
 public ScenarioFunctionBlock(BinaryReader binaryReader)
 {
     this.flags = (Flags)binaryReader.ReadInt32();
     this.name = binaryReader.ReadString32();
     this.periodSecondsPeriodForAboveFunctionLowerValuesMakeFunctionOscillateQuicklyHigherValuesMakeItOscillateSlowly = binaryReader.ReadSingle();
     this.scalePeriodByMultiplyThisFunctionByAbovePeriod = binaryReader.ReadShortBlockIndex1();
     this.function = (Function)binaryReader.ReadInt16();
     this.scaleFunctionByMultiplyThisFunctionByResultOfAboveFunction = binaryReader.ReadShortBlockIndex1();
     this.wobbleFunctionCurveUsedForWobble = (WobbleFunctionCurveUsedForWobble)binaryReader.ReadInt16();
     this.wobblePeriodSecondsTimeItTakesForMagnitudeOfThisFunctionToCompleteAWobble = binaryReader.ReadSingle();
     this.wobbleMagnitudePercentAmountOfRandomWobbleInTheMagnitude = binaryReader.ReadSingle();
     this.squareWaveThresholdIfNonZeroAllValuesAboveSquareWaveThresholdAreSnappedTo10AndAllValuesBelowItAreSnappedTo00ToCreateASquareWave = binaryReader.ReadSingle();
     this.stepCountNumberOfDiscreteValuesToSnapToEGStepCountOf5SnapsFunctionTo000025050075Or100 = binaryReader.ReadInt16();
     this.mapTo = (MapTo)binaryReader.ReadInt16();
     this.sawtoothCountNumberOfTimesThisFunctionShouldRepeatEGSawtoothCountOf5GivesFunctionValueOf10AtEachOf025050And075AsWellAsAt10 = binaryReader.ReadInt16();
     this.padding = binaryReader.ReadBytes(2);
     this.scaleResultByMultiplyThisFunctionEGFromAWeaponVehicleFinalResultOfAllOfTheAboveMath = binaryReader.ReadShortBlockIndex1();
     this.boundsModeControlsHowBoundsBelowAreUsed = (BoundsModeControlsHowBoundsBelowAreUsed)binaryReader.ReadInt16();
     this.bounds = binaryReader.ReadSingle();
     this.padding0 = binaryReader.ReadBytes(4);
     this.padding1 = binaryReader.ReadBytes(2);
     this.turnOffWithIfSpecifiedFunctionIsOffSoIsThisFunction = binaryReader.ReadShortBlockIndex1();
     this.padding2 = binaryReader.ReadBytes(16);
     this.padding3 = binaryReader.ReadBytes(16);
 }
コード例 #31
0
ファイル: SettingsManager.cs プロジェクト: shari754/x360ce
 /// <summary>
 /// Clear Pad settings.
 /// </summary>
 /// <param name="padIndex">Destination pad index.</param>
 public void ClearPadSettings(MapTo mapTo)
 {
     LoadPadSettings(mapTo, null);
 }
コード例 #32
0
        public void SetBinding(MapTo mappedTo, PadSetting o)
        {
            _MappedTo = mappedTo;
            if (_padSetting != null)
            {
                _padSetting.PropertyChanged -= _padSetting_PropertyChanged;
            }
            // Unbind right side controls.
            SettingsManager.UnLoadMonitor(LeftTriggerTextBox);
            SettingsManager.UnLoadMonitor(LeftShoulderTextBox);
            SettingsManager.UnLoadMonitor(ButtonBackTextBox);
            SettingsManager.UnLoadMonitor(ButtonStartTextBox);
            SettingsManager.UnLoadMonitor(ButtonGuideTextBox);
            SettingsManager.UnLoadMonitor(DPadTextBox);
            SettingsManager.UnLoadMonitor(LeftThumbAxisXTextBox);
            SettingsManager.UnLoadMonitor(LeftThumbAxisYTextBox);
            SettingsManager.UnLoadMonitor(LeftThumbButtonTextBox);
            SettingsManager.UnLoadMonitor(LeftThumbUpTextBox);
            SettingsManager.UnLoadMonitor(LeftThumbLeftTextBox);
            SettingsManager.UnLoadMonitor(LeftThumbRightTextBox);
            SettingsManager.UnLoadMonitor(LeftThumbDownTextBox);
            // Unbind middle controls.
            SettingsManager.UnLoadMonitor(DPadUpTextBox);
            SettingsManager.UnLoadMonitor(DPadLeftTextBox);
            SettingsManager.UnLoadMonitor(DPadRightTextBox);
            SettingsManager.UnLoadMonitor(DPadDownTextBox);
            // Unbind right side controls.
            SettingsManager.UnLoadMonitor(RightTriggerTextBox);
            SettingsManager.UnLoadMonitor(RightShoulderTextBox);
            SettingsManager.UnLoadMonitor(ButtonYTextBox);
            SettingsManager.UnLoadMonitor(ButtonXTextBox);
            SettingsManager.UnLoadMonitor(ButtonBTextBox);
            SettingsManager.UnLoadMonitor(ButtonATextBox);
            SettingsManager.UnLoadMonitor(RightThumbAxisXTextBox);
            SettingsManager.UnLoadMonitor(RightThumbAxisYTextBox);
            SettingsManager.UnLoadMonitor(RightThumbButtonTextBox);
            SettingsManager.UnLoadMonitor(RightThumbUpTextBox);
            SettingsManager.UnLoadMonitor(RightThumbRightTextBox);
            SettingsManager.UnLoadMonitor(RightThumbRightTextBox);
            SettingsManager.UnLoadMonitor(RightThumbDownTextBox);
            if (o == null)
            {
                return;
            }
            _padSetting = o;
            var converter = new Converters.PaddSettingToText();

            // Bind right side controls.
            SettingsManager.LoadAndMonitor(o, nameof(o.LeftTrigger), LeftTriggerTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.LeftShoulder), LeftShoulderTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.ButtonBack), ButtonBackTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.ButtonStart), ButtonStartTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.ButtonGuide), ButtonGuideTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.DPad), DPadTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.LeftThumbAxisX), LeftThumbAxisXTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.LeftThumbAxisY), LeftThumbAxisYTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.LeftThumbButton), LeftThumbButtonTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.LeftThumbUp), LeftThumbUpTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.LeftThumbLeft), LeftThumbLeftTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.LeftThumbRight), LeftThumbRightTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.LeftThumbDown), LeftThumbDownTextBox, null, converter);
            // Bind middle controls.
            SettingsManager.LoadAndMonitor(o, nameof(o.DPadUp), DPadUpTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.DPadLeft), DPadLeftTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.DPadRight), DPadRightTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.DPadDown), DPadDownTextBox, null, converter);
            // Bind right side controls.
            SettingsManager.LoadAndMonitor(o, nameof(o.RightTrigger), RightTriggerTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.RightShoulder), RightShoulderTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.ButtonY), ButtonYTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.ButtonX), ButtonXTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.ButtonB), ButtonBTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.ButtonA), ButtonATextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.RightThumbAxisX), RightThumbAxisXTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.RightThumbAxisY), RightThumbAxisYTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.RightThumbButton), RightThumbButtonTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.RightThumbUp), RightThumbUpTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.RightThumbRight), RightThumbRightTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.RightThumbRight), RightThumbRightTextBox, null, converter);
            SettingsManager.LoadAndMonitor(o, nameof(o.RightThumbDown), RightThumbDownTextBox, null, converter);
            _padSetting.PropertyChanged += _padSetting_PropertyChanged;
        }