Ejemplo n.º 1
0
        private XmlNode WriteDevice(int index, VirtualDeviceSettings settings, XmlDocument target)
        {
            XmlElement result = target.CreateElement(settings.DeviceType.ToString());

            result.SetAttribute("CommonIndex", index.ToString());
            result.SetAttribute("ClassifiedIndex", settings.ClassifiedDeviceIndex.ToString());
            {             // device id
                XmlElement deviceId = target.CreateElement("DeviceId");
                result.AppendChild(deviceId);
                deviceId.InnerText = settings.DeviceId.ToString();
            }
            {             // send policy
                XmlElement sendPolicy = target.CreateElement("SendPolicy");
                result.AppendChild(sendPolicy);
                sendPolicy.InnerText = settings.SendPolicy.ToString();
            }
            // send rate
            if (settings.SendPolicy != VirtualDeviceSendPolicy.AfterModification)
            {
                XmlElement sendRate = target.CreateElement("SendRate");
                result.AppendChild(sendRate);
                sendRate.InnerText = settings.SendRate.ToString();
            }
            // axis and button count
            if (settings.DeviceType == VirtualDeviceType.Joystick)
            {
                XmlElement buttonNo = target.CreateElement("ButtonNo");
                result.AppendChild(buttonNo);
                buttonNo.InnerText = settings.ButtonNo.ToString();
                XmlElement axisNo = target.CreateElement("AxisNo");
                result.AppendChild(axisNo);
                axisNo.InnerText = settings.AxisNo.ToString();
            }
            return(result);
        }
Ejemplo n.º 2
0
        public bool Read(SetupProfile result, XmlNode root)
        {
            foreach (XmlNode node in root.ChildNodes)
            {
                VirtualDeviceType deviceType;
                if (!Enum.TryParse(node.Name, out deviceType))
                {
                    continue;
                }

                if (node.Attributes["CommonIndex"] == null || node.Attributes["ClassifiedIndex"] == null)
                {
                    return(false);
                }
                int commonIndex     = JsonString.ParseInt(node.Attributes["CommonIndex"].InnerText, -1);
                int classifiedIndex = JsonString.ParseInt(node.Attributes["ClassifiedIndex"].InnerText, -1);
                if (commonIndex < 0 || classifiedIndex < 0)
                {
                    return(false);
                }
                var settings = new VirtualDeviceSettings()
                {
                    DeviceType            = deviceType,
                    ClassifiedDeviceIndex = classifiedIndex
                };
                settings = ReadDevice(settings, node);
                if (settings == null)
                {
                    return(false);
                }
                result.AddDevice(commonIndex, settings);
            }
            return(true);
        }
Ejemplo n.º 3
0
        public bool Write(SetupProfile profile, XmlNode root, XmlDocument target)
        {
            if (profile == null)
            {
                throw new ArgumentNullException("profile");
            }
            if (target == null)
            {
                throw new ArgumentNullException("target");
            }
            if (root == null)
            {
                throw new ArgumentNullException("root");
            }
            var indexes = new List <int>(profile.VideoCaptureIndexes);

            foreach (int i in profile.DeviceIndexes)
            {
                VirtualDeviceSettings settings = profile.GetDevice(i);
                XmlNode node = WriteDevice(i, settings, target);
                if (node != null)
                {
                    root.AppendChild(node);
                }
            }
            return(true);
        }
Ejemplo n.º 4
0
 public void AddDevice(int index, VirtualDeviceSettings settings)
 {
     if (settings == null)
     {
         throw new ArgumentNullException("settings");
     }
     devices[index] = settings;
 }
Ejemplo n.º 5
0
 private VirtualDeviceSettings ReadDevice(VirtualDeviceSettings settings, XmlNode root)
 {
     foreach (XmlNode node in root.ChildNodes)
     {
         if (node.Name.Equals("DeviceId"))
         {
             int deviceId = JsonString.ParseInt(node.InnerText, -1);
             if (deviceId < 0)
             {
                 return(null);
             }
             settings.DeviceId = deviceId;
         }
         else if (node.Name.Equals("SendPolicy"))
         {
             VirtualDeviceSendPolicy policy;
             if (!Enum.TryParse(node.InnerText, out policy))
             {
                 return(null);
             }
             settings.SendPolicy = policy;
         }
         else if (node.Name.Equals("SendRate"))
         {
             int sendRate = JsonString.ParseInt(node.InnerText, -1);
             if (sendRate < 0)
             {
                 return(null);
             }
             settings.SendRate = sendRate;
         }
         else if (node.Name.Equals("ButtonNo"))
         {
             int buttonNo = JsonString.ParseInt(node.InnerText, -1);
             if (buttonNo < 0)
             {
                 return(null);
             }
             settings.ButtonNo = buttonNo;
         }
         else if (node.Name.Equals("AxisNo"))
         {
             int axisNo = JsonString.ParseInt(node.InnerText, -1);
             if (axisNo < 0)
             {
                 return(null);
             }
             settings.AxisNo = axisNo;
         }
     }
     return(settings);
 }