Esempio n. 1
0
        public override void CreateChannels()
        {
            for (var i = 0; i < StandardInputChannelsCount; i++)
            {
                if (InputChannels.ContainsKey(i))
                {
                    continue;
                }

                var channel = new FyyingInputChannel(i);
                channel.Parent = this;
                //channel.ValueChanged += (obj, args) => { OnChannelValueChanged(args); };

                InputChannels.Add(i, channel);
            }

            for (var i = 0; i < StandardOutputChannelsCount; i++)
            {
                if (OutputChannels.ContainsKey(i))
                {
                    continue;
                }

                var channel = new FyyingOutputChannel(i);
                channel.Parent = this;
                //channel.ValueChanged += (obj, args) => { OnChannelValueChanged(args); };

                OutputChannels.Add(i, channel);
            }
        }
Esempio n. 2
0
        public ScDs3Device(int deviceNum, RootHub rootHub)
        {
            this.rootHub    = rootHub;
            this.deviceNum  = deviceNum;
            this.DeviceName = "Dualshock 3 controller " + deviceNum + 1;
            this.StatusIcon = Properties.Resources._128.ToImageSource();

            InputChannels.Add(deviceClass.Circle);
            InputChannels.Add(deviceClass.Cross);
            InputChannels.Add(deviceClass.Square);
            InputChannels.Add(deviceClass.Triangle);

            InputChannels.Add(deviceClass.vCircle);
            InputChannels.Add(deviceClass.vCross);
            InputChannels.Add(deviceClass.vSquare);
            InputChannels.Add(deviceClass.vTriangle);

            InputChannels.Add(deviceClass.LSx);
            InputChannels.Add(deviceClass.LSy);
            InputChannels.Add(deviceClass.RSx);
            InputChannels.Add(deviceClass.RSy);

            InputChannels.Add(deviceClass.L1);
            InputChannels.Add(deviceClass.L2);
            InputChannels.Add(deviceClass.L3);
            InputChannels.Add(deviceClass.R1);
            InputChannels.Add(deviceClass.R2);
            InputChannels.Add(deviceClass.R3);

            InputChannels.Add(deviceClass.PS);
            InputChannels.Add(deviceClass.Select);
            InputChannels.Add(deviceClass.Start);

            InputChannels.Add(deviceClass.DUp);
            InputChannels.Add(deviceClass.DDown);
            InputChannels.Add(deviceClass.DLeft);
            InputChannels.Add(deviceClass.DRight);

            OutputChannels.Add(deviceClass.BigRumble);
            OutputChannels.Add(deviceClass.SmallRumble);
            OutputChannels.Add(deviceClass.LightBar);

            (rootHub.Pad[deviceNum] as UsbDevice).Report += RootHub_USBReport;
        }
 public override void AddSignal(SignalViewModel signal)
 {
     if (_model is Filter)
     {
         InputChannels.Add(signal); // Override baseclass function
         OutputChannels.Add(signal);
     }
     else
     {
         switch (Name)
         {
         //case "Status Flags":
         //case "Zeros":
         //case "Missing":
         //case "Nominal Voltage":
         //case "Nominal Frequency":
         //    break;
         case "Subtraction":
             // Set parameter
             SetFocusedTextBox(signal);     // if step is a customization, need to make up the output signal from input signal depends on type of customizaion
             break;
         }
     }
 }
Esempio n. 4
0
        public SC360_Device_Plugin(int device, SettingGroup settings)
        {
            ControllerID    = device;
            this.settings   = settings;
            this.StatusIcon = new BitmapImage(new Uri(@"pack://application:,,,/SC360;component/Resources/360.ico"));
            this.DeviceName = "Controller " + ControllerID;

            x360device myDevice = new x360device();

            InputChannels.Add(myDevice.LSx);
            InputChannels.Add(myDevice.LSy);
            InputChannels.Add(myDevice.RSx);
            InputChannels.Add(myDevice.RSy);

            InputChannels.Add(myDevice.LS);
            InputChannels.Add(myDevice.RS);

            InputChannels.Add(myDevice.LT);
            InputChannels.Add(myDevice.RT);
            InputChannels.Add(myDevice.LB);
            InputChannels.Add(myDevice.RB);

            InputChannels.Add(myDevice.DUp);
            InputChannels.Add(myDevice.DDown);
            InputChannels.Add(myDevice.DLeft);
            InputChannels.Add(myDevice.DRight);

            InputChannels.Add(myDevice.A);
            InputChannels.Add(myDevice.B);
            InputChannels.Add(myDevice.X);
            InputChannels.Add(myDevice.Y);

            InputChannels.Add(myDevice.Start);
            InputChannels.Add(myDevice.Back);
            InputChannels.Add(myDevice.Guide);

            OutputChannels.Add(myDevice.SmallRumble);
            OutputChannels.Add(myDevice.BigRumble);

            if (SC360Globals.scBus.Open() && SC360Globals.scBus.Start())
            {
                SC360Globals.scBus.Plugin(device);

                if (settings.getSetting("Low latency mode"))
                {
                    byte[] Report = new byte[28];
                    byte[] Rumble = new byte[8];

                    foreach (DeviceChannel channel in InputChannels)
                    {
                        channel.PropertyChanged += (s, e) => {
                            SC360Globals.scBus.Parse(myDevice, Report, ControllerID);
                            if (SC360Globals.scBus.Report(Report, Rumble))
                            {
                                //    if (Rumble[1] == 0x08)
                                //    {
                                //        myDevice.SmallRumble.Value = Rumble[3];
                                //        myDevice.BigRumble.Value = Rumble[4];
                                //    }
                            }
                        };
                    }
                }
                else
                {
                    ReportingThread = new Thread(() => ReportingThreadLoop(myDevice));
                    ReportingThread.Start();
                }
            }
        }