public ThisPCStats() { this.DeviceName = "This PC Stats"; CPU_Ussage = new InputChannelTypes.JoyAxis("CPU Ussage", "Percentage of total CPU in use") { min_Value = 0, max_Value = 1 }; Memory_Ussage = new InputChannelTypes.JoyAxis("Memory Used", "Memory used in MB") { min_Value = 0, max_Value = 0 }; Memory_Percent = new InputChannelTypes.JoyAxis("Memory Percentage", "Percentage of total memory in use") { min_Value = 0, max_Value = 1 }; Memory_Total = new InputChannelTypes.JoyAxis("Total Memory", "Total system memory in MB") { min_Value = 0, max_Value = 0 }; Battery_Percent = new InputChannelTypes.JoyAxis("Battery Percentage", "Percentage of battery remaining") { min_Value = 0, max_Value = 1 }; InputChannels.Add(CPU_Ussage); InputChannels.Add(Memory_Ussage); InputChannels.Add(Memory_Total); InputChannels.Add(Memory_Percent); InputChannels.Add(Battery_Percent); MonitoringThread = new Thread(monitoringThread); MonitoringThread.Start(); }
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 LiveSimulation(Circuit.Schematic Simulate, Audio.Device Device, Audio.Channel[] Inputs, Audio.Channel[] Outputs) { try { InitializeComponent(); // Make a clone of the schematic so we can mess with it. Circuit.Schematic clone = Circuit.Schematic.Deserialize(Simulate.Serialize(), Log); clone.Elements.ItemAdded += OnElementAdded; clone.Elements.ItemRemoved += OnElementRemoved; Schematic = new SimulationSchematic(clone); Schematic.SelectionChanged += OnProbeSelected; // Build the circuit from the schematic. circuit = Schematic.Schematic.Build(Log); // Create the input and output controls. IEnumerable <Circuit.Component> components = circuit.Components; // Create audio input channels. for (int i = 0; i < Inputs.Length; ++i) { InputChannels.Add(new InputChannel(i) { Name = Inputs[i].Name }); } ComputerAlgebra.Expression speakers = 0; foreach (Circuit.Component i in components) { Circuit.Symbol S = i.Tag as Circuit.Symbol; if (S == null) { continue; } SymbolControl tag = (SymbolControl)S.Tag; if (tag == null) { continue; } // Create potentiometers. Circuit.IPotControl c = i as Circuit.IPotControl; if (c != null) { PotControl pot = new PotControl() { Width = 80, Height = 80, Opacity = 0.5, FontSize = 15, FontWeight = FontWeights.Bold, }; Schematic.overlays.Children.Add(pot); Canvas.SetLeft(pot, Canvas.GetLeft(tag) - pot.Width / 2 + tag.Width / 2); Canvas.SetTop(pot, Canvas.GetTop(tag) - pot.Height / 2 + tag.Height / 2); pot.Value = c.PotValue; pot.ValueChanged += x => { c.PotValue = x; UpdateSimulation(false); }; pot.MouseEnter += (o, e) => pot.Opacity = 0.95; pot.MouseLeave += (o, e) => pot.Opacity = 0.5; } // Create Buttons. Circuit.IButtonControl b = i as Circuit.IButtonControl; if (b != null) { Button button = new Button() { Width = tag.Width, Height = tag.Height, Opacity = 0.5, Background = Brushes.White, }; Schematic.overlays.Children.Add(button); Canvas.SetLeft(button, Canvas.GetLeft(tag)); Canvas.SetTop(button, Canvas.GetTop(tag)); button.Click += (o, e) => { // Click all the buttons in the group. foreach (Circuit.IButtonControl j in components.OfType <Circuit.IButtonControl>().Where(x => x.Group == b.Group)) { j.Click(); } UpdateSimulation(true); }; button.MouseEnter += (o, e) => button.Opacity = 0.95; button.MouseLeave += (o, e) => button.Opacity = 0.5; } Circuit.Speaker output = i as Circuit.Speaker; if (output != null) { speakers += output.V; } // Create input controls. Circuit.Input input = i as Circuit.Input; if (input != null) { tag.ShowText = false; ComboBox combo = new ComboBox() { Width = 80, Height = 24, Opacity = 0.5, IsEditable = true, SelectedValuePath = "Tag", }; foreach (InputChannel j in InputChannels) { combo.Items.Add(new ComboBoxItem() { Tag = j, Content = j.Name }); } Schematic.overlays.Children.Add(combo); Canvas.SetLeft(combo, Canvas.GetLeft(tag) - combo.Width / 2 + tag.Width / 2); Canvas.SetTop(combo, Canvas.GetTop(tag) - combo.Height / 2 + tag.Height / 2); ComputerAlgebra.Expression V = Circuit.Component.DependentVariable(input.Name, Circuit.Component.t); inputs[V] = new SignalChannel(0); combo.SelectionChanged += (o, e) => { if (combo.SelectedItem != null) { ComboBoxItem it = (ComboBoxItem)combo.SelectedItem; inputs[V] = new InputChannel(((InputChannel)it.Tag).Index); } }; combo.AddHandler(TextBox.KeyDownEvent, new KeyEventHandler((o, e) => { try { inputs[V] = new SignalChannel(Circuit.Quantity.Parse(combo.Text, Circuit.Units.V)); } catch (Exception) { // If there is an error in the expression, zero out the signal. inputs[V] = new SignalChannel(0); } })); if (combo.Items.Count > 0) { combo.SelectedItem = combo.Items[0]; } else { combo.Text = "0 V"; } combo.MouseEnter += (o, e) => combo.Opacity = 0.95; combo.MouseLeave += (o, e) => combo.Opacity = 0.5; } } // Create audio output channels. for (int i = 0; i < Outputs.Length; ++i) { OutputChannel c = new OutputChannel(i) { Name = Outputs[i].Name, Signal = speakers }; c.PropertyChanged += (o, e) => { if (e.PropertyName == "Signal") { RebuildSolution(); } }; OutputChannels.Add(c); } // Begin audio processing. if (Inputs.Any() || Outputs.Any()) { stream = Device.Open(ProcessSamples, Inputs, Outputs); } else { stream = new NullStream(ProcessSamples); } ContentRendered += (o, e) => RebuildSolution(); Closed += (s, e) => stream.Stop(); } catch (Exception Ex) { MessageBox.Show(Ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
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(); } } }
public LiveSimulation(Schematic Simulate, Audio.Device Device, Audio.Channel[] Inputs, Audio.Channel[] Outputs) { try { InitializeComponent(); // Make a clone of the schematic so we can mess with it. var clone = Circuit.Schematic.Deserialize(Simulate.Serialize(), Log); clone.Elements.ItemAdded += OnElementAdded; clone.Elements.ItemRemoved += OnElementRemoved; Schematic = new SimulationSchematic(clone); Schematic.SelectionChanged += OnProbeSelected; // Build the circuit from the schematic. circuit = Schematic.Schematic.Build(Log); // Create the input and output controls. IEnumerable <Circuit.Component> components = circuit.Components; // Create audio input channels. for (int i = 0; i < Inputs.Length; ++i) { InputChannels.Add(new InputChannel(i) { Name = Inputs[i].Name }); } ComputerAlgebra.Expression speakers = 0; foreach (Circuit.Component i in components) { Symbol S = i.Tag as Symbol; if (S == null) { continue; } SymbolControl tag = (SymbolControl)S.Tag; if (tag == null) { continue; } // Create potentiometers. if (i is IPotControl potentiometer) { var potControl = new PotControl() { Width = 80, Height = 80, Opacity = 0.5, FontSize = 15, FontWeight = FontWeights.Bold, }; Schematic.Overlays.Children.Add(potControl); Canvas.SetLeft(potControl, Canvas.GetLeft(tag) - potControl.Width / 2 + tag.Width / 2); Canvas.SetTop(potControl, Canvas.GetTop(tag) - potControl.Height / 2 + tag.Height / 2); var binding = new Binding { Source = potentiometer, Path = new PropertyPath("(0)", typeof(IPotControl).GetProperty(nameof(IPotControl.PotValue))), Mode = BindingMode.TwoWay, NotifyOnSourceUpdated = true }; potControl.SetBinding(PotControl.ValueProperty, binding); potControl.AddHandler(Binding.SourceUpdatedEvent, new RoutedEventHandler((o, args) => { if (!string.IsNullOrEmpty(potentiometer.Group)) { foreach (var p in components.OfType <IPotControl>().Where(p => p != potentiometer && p.Group == potentiometer.Group)) { p.PotValue = (o as PotControl).Value; } } UpdateSimulation(false); })); potControl.MouseEnter += (o, e) => potControl.Opacity = 0.95; potControl.MouseLeave += (o, e) => potControl.Opacity = 0.5; } // Create Buttons. if (i is IButtonControl b) { Button button = new Button() { Width = tag.Width, Height = tag.Height, Opacity = 0.5, Background = Brushes.White, }; Schematic.Overlays.Children.Add(button); Canvas.SetLeft(button, Canvas.GetLeft(tag)); Canvas.SetTop(button, Canvas.GetTop(tag)); button.Click += (o, e) => { b.Click(); // Click all the buttons in the group. if (!string.IsNullOrEmpty(b.Group)) { foreach (var j in components.OfType <IButtonControl>().Where(x => x != b && x.Group == b.Group)) { j.Click(); } } UpdateSimulation(true); }; button.MouseEnter += (o, e) => button.Opacity = 0.95; button.MouseLeave += (o, e) => button.Opacity = 0.5; } if (i is Speaker output) { speakers += output.Out; } // Create input controls. if (i is Input input) { tag.ShowText = false; ComboBox combo = new ComboBox() { Width = 80, Height = 24, Opacity = 0.5, IsEditable = true, SelectedValuePath = "Tag", }; foreach (InputChannel j in InputChannels) { combo.Items.Add(new ComboBoxItem() { Tag = j, Content = j.Name }); } Schematic.Overlays.Children.Add(combo); Canvas.SetLeft(combo, Canvas.GetLeft(tag) - combo.Width / 2 + tag.Width / 2); Canvas.SetTop(combo, Canvas.GetTop(tag) - combo.Height / 2 + tag.Height / 2); ComputerAlgebra.Expression In = input.In; inputs[In] = new SignalChannel(0); combo.SelectionChanged += (o, e) => { if (combo.SelectedItem != null) { ComboBoxItem it = (ComboBoxItem)combo.SelectedItem; inputs[In] = new InputChannel(((InputChannel)it.Tag).Index); } }; combo.AddHandler(TextBox.KeyDownEvent, new KeyEventHandler((o, e) => { try { inputs[In] = new SignalChannel(ComputerAlgebra.Expression.Parse(combo.Text)); } catch (Exception) { // If there is an error in the expression, zero out the signal. inputs[In] = new SignalChannel(0); } })); if (combo.Items.Count > 0) { combo.SelectedItem = combo.Items[0]; } else { combo.Text = "0 V"; } combo.MouseEnter += (o, e) => combo.Opacity = 0.95; combo.MouseLeave += (o, e) => combo.Opacity = 0.5; } } // Create audio output channels. for (int i = 0; i < Outputs.Length; ++i) { OutputChannel c = new OutputChannel(i) { Name = Outputs[i].Name, Signal = speakers }; c.PropertyChanged += (o, e) => { if (e.PropertyName == "Signal") { RebuildSolution(); } }; OutputChannels.Add(c); } // Begin audio processing. if (Inputs.Any() || Outputs.Any()) { stream = Device.Open(ProcessSamples, Inputs, Outputs); } else { stream = new NullStream(ProcessSamples); } ContentRendered += (o, e) => RebuildSolution(); Closed += (s, e) => stream.Stop(); timer = new System.Timers.Timer() { Interval = 100, AutoReset = true, Enabled = true, }; timer.Elapsed += timer_Elapsed; timer.Start(); } catch (Exception Ex) { MessageBox.Show(Ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }