Ejemplo n.º 1
0
        // BE CAREFUL!  RUNS ON A SEPARATE THREAD!
        public NodeDriver ReadConfiguration()
        {
            var driver = NodeDriver.BuildWith(
                new FieldGuid(SnapDriver.GAMECONTROLLERS_DRIVER_ID), // TypeId
                new FieldString(string.Empty),                       // Address
                new FieldBase64(string.Empty),                       // Configuration
                new FieldString(Resources.Strings.DriverName));      // DriverName

            driver = driver.SetRunning(new FieldBool(Running));      // status only
            if (Running && this.directInput != null)                 // Running property is threadsafe
            {
                var devicesMutable  = new Collection <NodeDevice>();
                var joystickDevices = getJoystickCompatibleDevices();
                foreach (var joystickDevice in joystickDevices)
                {
                    var dev = JoystickDevice.StaticBuild(this.directInput, joystickDevice);
                    devicesMutable.Add(dev);
                }
                driver = driver.NodeDeviceChildren.Append(
                    new ReadOnlyCollection <NodeDevice>(devicesMutable));
            }
            return(driver);
        }