/// <summary> /// Creates a new profile with the given name. /// </summary> /// <param name="profileName">The name of the profile.</param> public MadCatzProfile(string profileName) : base() { name = profileName; version = CURRENT_VERSION; controllers = new ControllerList(); Controller[] deviceGroups = Controller.CreateAllControllers(); foreach (Controller deviceGroup in deviceGroups) { controllers.Add(deviceGroup); } commands = new CommandList(); blasts = new BlastList(); }
/// <summary> /// Creates a new profile from a node. /// </summary> /// <param name="validator">The validator to use for validation.</param> /// <param name="node">The node.</param> internal MadCatzProfile(NodeValidator validator, Node node) : base(validator, node) { name = node.Tag; if (node.Attributes.ContainsKey(VERSION_ATTRIBUTE)) { version = ConversionHelper.ParseHexValue(node.Attributes[VERSION_ATTRIBUTE]); if (!SUPPORTED_VERSIONS.Contains(version)) { validator.Report.AddError("Unsupported version: " + version); } } foreach (var child in node.Children) { switch (child.Name.ToUpperInvariant()) { case CONTROLLERS_CHILD_NODE: controllers = new ControllerList(validator, child); break; case COMMANDS_CHILD_NODE: commands = new CommandList(validator, child); break; case BLASTS_CHILD_NODE: blasts = new BlastList(validator, child); break; } } if (controllers == null) { controllers = new ControllerList(); } if (commands == null) { commands = new CommandList(); } if (blasts == null) { blasts = new BlastList(); } }