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); } }
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; } } }
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(); } } }