private void StartService(string[] args) { try { eliteVirtualJoysticks = StartVirtualJoysticks(); /* * settings = Settings.Load(); * ClientActions.ClientAction += ClientActions_ClientAction; * client = new CommonCommunication.Client(); * messageHandler = new MessageHandler * { * Client = client, * ConnectJoysticks = () => { * eliteVirtualJoysticks = StartVirtualJoysticks(); * StartControllers(settings, eliteVirtualJoysticks); * }, * DisconnectJoysticks = () => StopControllers(), * ConnectArduino = () => ConnectArduino(), * DisconnectArduino = () => DisconnectArduino(), * ReconnectArduino = () => ReconnectArduino(), * KeyPress = (string data) => KeyPress(data), * }; * * StartIpcServer(); */ } catch (Exception ex) { log.Error($"Error starting service: {ex.Message}"); } }
private void StartService(string[] args) { try { settings = Settings.Load(); ClientActions.ClientAction += ClientActions_ClientAction; client = new CommonCommunication.Client() { Logger = Log }; messageHandler = new MessageHandler { Client = client, ConnectJoysticks = () => { eliteVirtualJoysticks = StartVirtualJoysticks(); StartControllers(settings, eliteVirtualJoysticks); }, DisconnectJoysticks = () => StopControllers(), ConnectArduino = () => ConnectArduino(), DisconnectArduino = () => DisconnectArduino(), ReconnectArduino = () => ReconnectArduino(), Logger = Log, //KeyPress = (string data) => KeyPress(data), }; StartIpcServer(); } catch (Exception ex) { Log.LogError($"Error starting service: {ex.Message}"); } }
private void StopControllers() { foreach (var controller in Controllers) { controller.Dispose(); } Controllers = new List <Controller>(); try { eliteVirtualJoysticks?.Release(); GameService?.Dispose(); ForceFeedBackController?.Dispose(); voiceMeeterDisposable?.Dispose(); } catch (Exception ex) { Log.LogError(ex.Message); } eliteVirtualJoysticks = null; ForceFeedBackController = null; voiceMeeterDisposable = null; }
public static ScController Create( EliteSharedState sharedState, vJoy vjoy, EliteVirtualJoysticks virtualJoysticks, vJoyMapper vJoyMapper) { return(new ScController() { Controller = SwscController.RetrieveAll()?.First(), SharedState = sharedState, //vJoy = vjoy, VirtualJoysticks = virtualJoysticks, vJoyMapper = vJoyMapper, }); }
public static ChPedalsController Create( EliteSharedState sharedState, vJoyInterfaceWrap.vJoy vjoy, EliteVirtualJoysticks virtualJoysticks, vJoyMapper vJoyMapper) { return(new ChPedalsController() { Controller = Faz.SideWinderSC.Logic.CHPedalsController.RetrieveAll()?.First(), SharedState = sharedState, //vJoy = vjoy, VirtualJoysticks = virtualJoysticks, vJoyMapper = vJoyMapper, }); }
public static SwGvController Create( EliteSharedState sharedState, vJoy vjoy, EliteVirtualJoysticks virtualJoysticks, vJoyMapper vJoyMapper) { return(new SwGvController() { Controller = SwgvController.RetrieveAll()?.First(), SharedState = sharedState, //vJoy = vjoy, VirtualJoysticks = virtualJoysticks, vJoyMapper = vJoyMapper, //VisualState = new VisualState { Name = Name } }); }
public static ButtonBoxController Create( EliteSharedState sharedState, vJoy vjoy, EliteVirtualJoysticks virtualJoysticks, vJoyMapper vJoyMapper, ArduinoCommunication.Arduino arduino) { return(new ButtonBoxController() { Controller = BBI32Controller.RetrieveAll()?.First(), SharedState = sharedState, //vJoy = vjoy, VirtualJoysticks = virtualJoysticks, vJoyMapper = vJoyMapper, Arduino = arduino, //VisualState = new VisualState { Name = Name } }); }
private EliteVirtualJoysticks StartVirtualJoysticks() { var eliteVirtualJoysticks = new EliteVirtualJoysticks(); try { eliteVirtualJoysticks.Initialize(); } catch (Exception ex) { Log.LogError(ex.Message); } return(eliteVirtualJoysticks); }
public static Swff2Controller Create(EliteSharedState sharedState, vJoy vjoy, EliteVirtualJoysticks virtualJoysticks, vJoyMapper vJoyMapper, ArduinoCommunication.Arduino arduino) { try { return(new Swff2Controller() { Controller = Faz.SideWinderSC.Logic.Swff2Controller.RetrieveAll().First(), SharedState = sharedState, //vJoy = vjoy, VirtualJoysticks = virtualJoysticks, vJoyMapper = vJoyMapper, Arduino = arduino, }); } catch (InvalidOperationException) { } return(null); }
private IDisposable StartUpdateData(EliteVirtualJoysticks eliteVirtualJoysticks, int updateFrequency = 100) { // Send an update message every x milliseconds return(Observable.Interval(TimeSpan.FromMilliseconds(updateFrequency)).Subscribe(_ => eliteVirtualJoysticks.UpdateAll())); }
private void StartControllers( Settings settings, EliteVirtualJoysticks eliteVirtualJoysticks) { Log.LogDebug("Connecting to Elite Game"); GameService.Initialize(); Log.LogDebug("Connected to Elite Game"); Log.LogDebug("Connecting to Controllers"); // Connect to Voicemeeter voiceMeeterDisposable = VoiceMeeter.Remote.Initialize(Voicemeeter.RunVoicemeeterParam.VoicemeeterBanana).Result; // Connect to the Force Feedback Joystick ForceFeedBackController = new ForceFeedBackController.Controller() { Logger = Log }; ForceFeedBackController.Initialize(GameService); try { var ffb2 = new vJoyMapping.Microsoft.Sidewinder.ForceFeedback2.Controller { Arduino = arduino, Name = "Force Feedback 2", SharedState = SharedState, Settings = settings, VirtualJoysticks = eliteVirtualJoysticks, Logger = Log }; ffb2.Initialize(Controller.GetDevicePath( Usb.GameControllers.Microsoft.Sidewinder.ForceFeedback2.Joystick.VendorId, Usb.GameControllers.Microsoft.Sidewinder.ForceFeedback2.Joystick.ProductId)); Controllers.Add(ffb2); Log.LogDebug($"Added {ffb2.Name}"); /* * var swgv = new vJoyMapping.Microsoft.Sidewinder.GameVoice.Controller * { * Arduino = arduino, * Name = "Game Voice", * SharedState = SharedState, * Settings = settings, * VirtualJoysticks = eliteVirtualJoysticks, * Logger = Log * }; * * swgv.Initialize(Controller.GetDevicePath( * Usb.GameControllers.Microsoft.Sidewinder.GameVoice.Joystick.VendorId, * Usb.GameControllers.Microsoft.Sidewinder.GameVoice.Joystick.ProductId)); * * Controllers.Add(swgv); */ var swsc = new vJoyMapping.Microsoft.Sidewinder.StrategicCommander.Controller { Arduino = arduino, Name = "Strategic Commander", SharedState = SharedState, Settings = settings, VirtualJoysticks = eliteVirtualJoysticks, Logger = Log }; swsc.Initialize(Controller.GetDevicePath( Usb.GameControllers.Microsoft.Sidewinder.StrategicCommander.Joystick.VendorId, Usb.GameControllers.Microsoft.Sidewinder.StrategicCommander.Joystick.ProductId)); Controllers.Add(swsc); Log.LogDebug($"Added {swsc.Name}"); var warthog = new vJoyMapping.Thrustmaster.Warthog.Throttle.Controller { Arduino = arduino, Name = "Warthog Throttle", SharedState = SharedState, Settings = settings, VirtualJoysticks = eliteVirtualJoysticks, Logger = Log }; warthog.Initialize(Controller.GetDevicePath( Usb.GameControllers.Thrustmaster.Warthog.Throttle.Joystick.VendorId, Usb.GameControllers.Thrustmaster.Warthog.Throttle.Joystick.ProductId)); Controllers.Add(warthog); Log.LogDebug($"Added {warthog.Name}"); var altProductId = false; retry: try { var pedals = new vJoyMapping.CHProducts.ProPedals.Controller { Arduino = arduino, Name = "Pro Pedals", SharedState = SharedState, Settings = settings, VirtualJoysticks = eliteVirtualJoysticks, Logger = Log }; var productId = altProductId ? Usb.GameControllers.CHProducts.ProPedals.JoystickMSDriver.ProductId : Usb.GameControllers.CHProducts.ProPedals.Joystick.ProductId; pedals.Initialize(Controller.GetDevicePath( Usb.GameControllers.CHProducts.ProPedals.Joystick.VendorId, productId), altProductId); Controllers.Add(pedals); Log.LogDebug($"Added {pedals.Name}"); } catch (Exception _) { if (altProductId == false) { altProductId = true; goto retry; } throw; } var bbi32 = new vJoyMapping.LeoBodnar.BBI32.Controller { Arduino = arduino, Name = "BBI32", SharedState = SharedState, Settings = settings, VirtualJoysticks = eliteVirtualJoysticks, Logger = Log }; bbi32.Initialize(Controller.GetDevicePath( Usb.GameControllers.LeoBodnar.BBI32.Joystick.VendorId, Usb.GameControllers.LeoBodnar.BBI32.Joystick.ProductId)); Controllers.Add(bbi32); Log.LogDebug($"Added {bbi32.Name}"); var ddjsb2 = new vJoyMapping.Pioneer.ddjsb2.Controller { Arduino = arduino, Name = "DDJSB2", SharedState = SharedState, Settings = settings, VirtualJoysticks = eliteVirtualJoysticks, GameService = GameService, Logger = Log }; ddjsb2.Initialize(ForceFeedBackController); Controllers.Add(ddjsb2); Log.LogDebug($"Added {ddjsb2.Name}"); /* * var keyboard = new KeyboardMapping.Controller * { * Arduino = arduino, * Name = "Keypad", * SharedState = SharedState, * Settings = settings, * VirtualJoysticks = eliteVirtualJoysticks, * Logger = Log * }; * * keyboard.Initialize(KeyboardController, GameService); * * Controllers.Add(keyboard); */ // State Handlers var subscription = SharedState.GearChanged.Subscribe( _ => ffb2.CallActivateButton(vJoyTypes.Virtual, MappedButtons.LandingGearToggle, 200)); virtualControllerUpdater = StartUpdateData(eliteVirtualJoysticks, 300); ClientActions.ClientInformationAction(this, "Controllers Ready"); Log.LogDebug("Controllers Ready"); } catch (Exception ex) { Log.LogError(ex.Message); ClientActions.ClientInformationAction(this, $"Controller Error: {ex.Message}"); } }
public void TestMethod1() { try { List <Controller> Controllers = new List <Controller>(); EliteVirtualJoysticks eliteVirtualJoysticks = new EliteVirtualJoysticks(); vJoyMapper vJoyMapper = new vJoyMapper(); EliteSharedState SharedState = new EliteSharedState { OrbitLines = true, HeadsUpDisplay = true }; ArduinoCommunication.Arduino arduino = null; Settings settings = Settings.Load(); var ffb2 = new vJoyMapping.Microsoft.Sidewinder.ForceFeedback2.Controller { Arduino = arduino, Name = "Force Feedback 2", SharedState = SharedState, Settings = settings, VirtualJoysticks = eliteVirtualJoysticks }; Controllers.Add(ffb2); var swgv = new vJoyMapping.Microsoft.Sidewinder.GameVoice.Controller { Arduino = arduino, Name = "Game Voice", SharedState = SharedState, Settings = settings, VirtualJoysticks = eliteVirtualJoysticks }; Controllers.Add(swgv); var swsc = new vJoyMapping.Microsoft.Sidewinder.StrategicCommander.Controller { Arduino = arduino, Name = "Strategic Commander", SharedState = SharedState, Settings = settings, VirtualJoysticks = eliteVirtualJoysticks }; Controllers.Add(swsc); var warthog = new vJoyMapping.Thrustmaster.Warthog.Throttle.Controller { Arduino = arduino, Name = "Warthog Throttle", SharedState = SharedState, Settings = settings, VirtualJoysticks = eliteVirtualJoysticks }; Controllers.Add(warthog); var pedals = new vJoyMapping.CHProducts.ProPedals.Controller { Arduino = arduino, Name = "Pro Pedals", SharedState = SharedState, Settings = settings, VirtualJoysticks = eliteVirtualJoysticks }; Controllers.Add(pedals); var bbi32 = new vJoyMapping.LeoBodnar.BBI32.Controller { Arduino = arduino, Name = "BBI32", SharedState = SharedState, Settings = settings, VirtualJoysticks = eliteVirtualJoysticks }; Controllers.Add(bbi32); // State Handlers var subscription = SharedState.GearChanged.Subscribe( x => ffb2.CallActivateButton(vJoyTypes.Virtual, MappedButtons.LandingGearToggle, 200)); while (true) { Thread.Sleep(1000); } } catch (Exception) { ; } }
public static TmThrottleController Create(EliteSharedState sharedState, vJoy vjoy, EliteVirtualJoysticks virtualJoysticks, vJoyMapper vJoyMapper, ArduinoCommunication.Arduino arduino) { return(new TmThrottleController() { Controller = Faz.SideWinderSC.Logic.TMWartHogThrottleController.RetrieveAll()?.First(), SharedState = sharedState, VirtualJoysticks = virtualJoysticks, vJoyMapper = vJoyMapper, Arduino = arduino }); }