public void Initialize(CompileInfo info) { foreach (var item in GetMapItems()) { item.Initialize(info); } }
public void PostFeed(CompileInfo info, System.IO.StreamWriter file) { foreach (var item in GetMapItems()) { item.PostFeed(info, file); } }
public void Declaration(CompileInfo info, System.IO.StreamWriter file) { foreach (var item in GetMapItems()) { item.Declaration(info, file); } }
public void Feed(CompileInfo info, System.IO.StreamWriter file) { if (String.IsNullOrEmpty(Joystick)) { return; } file.Write(new string(' ', info.IndentLevel * 4)); file.Write("if ("); file.Write(buttonName); file.Write(".Check("); file.Write(Joystick.Replace("joystick", "state")); file.Write(".Buttons["); file.Write(Button - 1); file.WriteLine("]))"); file.Write(new string(' ', info.IndentLevel * 4)); file.WriteLine("{"); info.IndentLevel++; IfTrueMappings.Feed(info, file); info.IndentLevel--; file.Write(new string(' ', info.IndentLevel * 4)); file.WriteLine("}"); file.Write(new string(' ', info.IndentLevel * 4)); file.WriteLine("else"); file.Write(new string(' ', info.IndentLevel * 4)); file.WriteLine("{"); info.IndentLevel++; IfFalseMappings.Feed(info, file); info.IndentLevel--; file.Write(new string(' ', info.IndentLevel * 4)); file.WriteLine("}"); }
public void Feed(CompileInfo info, System.IO.StreamWriter file) { if (String.IsNullOrEmpty(Joystick)) { return; } file.Write(new string(' ', info.IndentLevel * 4)); file.Write("iReport.Buttons |= ButtonMapper.From("); file.Write(Joystick.Replace("joystick", "state")); file.Write(".Buttons, "); if (From > 1) { file.Write(From - 1); file.Write(", "); file.Write(Range); file.Write(", "); file.Write(MapTo - 1); } else { if (MapTo > 1) { file.Write(Range); file.Write(", "); file.Write(MapTo - 1); } else { file.Write(Range); } } file.WriteLine(");"); }
public void Initialize(CompileInfo info) { buttonName = null; info.RegisterVJoyButton(Button); IfFalseMappings.Initialize(info); IfTrueMappings.Initialize(info); }
public void Feed(CompileInfo info, System.IO.StreamWriter file) { foreach (var joystick in info.Joysticks) { file.Write(" "); file.Write(joystick.Replace("joystick", "joystickDevice")); file.WriteLine(".Poll();"); file.Write(" // update the joystick "); file.Write(joystick.Replace("joystick", "state")); file.WriteLine(" field"); file.Write(" var "); file.Write(joystick.Replace("joystick", "state")); file.Write(" = "); file.Write(joystick.Replace("joystick", "joystickDevice")); file.WriteLine(".GetCurrentState();"); file.Write(" // joystick "); file.WriteLine(joystick.Replace("joystick", "povs")); file.Write(" var "); file.Write(joystick.Replace("joystick", "povs")); file.Write(" = "); file.Write(joystick.Replace("joystick", "state")); file.WriteLine(".PointOfViewControllers;"); file.WriteLine(); } }
public void Feed(CompileInfo info, System.IO.StreamWriter file) { if (String.IsNullOrEmpty(JoystickPOV)) { return; } file.Write(new string(' ', info.IndentLevel * 4)); var parts = JoystickPOV.Split('.'); file.Write("iReport."); file.Write(VJoyPOV); file.Write(" = (uint)"); file.Write(parts[0].Replace("joystick", "povs")); file.Write("["); file.Write(Int32.Parse(parts[1].Replace("POV", "")) - 1); file.WriteLine("];"); }
private void ReleaseDevices(CompileInfo info, System.IO.StreamWriter file) { file.WriteLine(" private void ReleaseDevices()"); file.WriteLine(" {"); foreach (var joystick in info.Joysticks) { var deviceName = joystick.Replace("joystick", "joystickDevice"); file.Write(" if ("); file.Write(deviceName); file.Write(" != null && !"); file.Write(deviceName); file.WriteLine(".IsDisposed)"); file.Write(" "); file.Write(deviceName); file.WriteLine(".Dispose();"); } file.WriteLine(" }"); file.WriteLine(); }
public void Feed(CompileInfo info, System.IO.StreamWriter file) { if (String.IsNullOrEmpty(Joystick)) { return; } file.Write(new string(' ', info.IndentLevel * 4)); file.Write("iReport."); file.Write(VJoyAxis); file.Write(" = "); file.Write(Joystick.Replace("joystick", "state")); file.Write(".Sliders["); file.Write(Pos - 1); file.WriteLine("];"); }
private void ValidateVJoyConfiguration(CompileInfo info, StreamWriter file) { file.WriteLine(" private bool ValidateVJoyConfiguration()"); file.WriteLine(" {"); //foreach (var name in Enum.GetNames(typeof(HID_USAGES))) //{ // file.Write("lookup[\"Axis"); // file.Write(name.Replace("HID_USAGE_", "")); // file.Write("\"] = \"bool Axis"); // file.Write(name.Replace("HID_USAGE_", "")); // file.Write(" = joystick.GetVJDAxisExist(id, HID_USAGES."); // file.Write(name); // file.WriteLine(");\";"); //} file.WriteLine(" // Make sure all needed axes and buttons are supported"); var list = new List <string>(); var axis = info.GetVJoyAxis(); foreach (var vJoyAxis in axis) { file.Write(" "); file.WriteLine(lookup[vJoyAxis]); list.Add("!" + vJoyAxis); } list.Add("nButtons < " + info.GetMaxButtons()); list.Add("cont < " + info.GetMaxPOVs()); file.WriteLine(" int nButtons = joystick.GetVJDButtonNumber(id);"); file.WriteLine(" int cont = joystick.GetVJDContPovNumber(id);"); file.Write(" if ("); file.Write(String.Join(" || ", list)); file.WriteLine(")"); file.WriteLine(" {"); file.Write(" mainForm.ReportError(\"vJoy Device is not configured correctly. Must have "); file.Write(String.Join(", ", axis)); file.Write(" analog axis, "); file.Write(info.GetMaxButtons()); file.Write(" buttons and "); file.Write(info.GetMaxPOVs()); file.WriteLine(" analog POVs. Cannot continue\\n\");"); file.WriteLine(" return false;"); file.WriteLine(" }"); file.WriteLine(" return true;"); file.WriteLine(" }"); file.WriteLine(); }
public void Declaration(CompileInfo info, System.IO.StreamWriter file) { file.Write(" const int numDevices = "); file.Write(info.Joysticks.Count); file.WriteLine(";"); var nameToDevice = new Dictionary <string, DeviceListItem>(); foreach (var device in Items) { nameToDevice[device.Item.Key] = device; } file.WriteLine(); int index = 0; foreach (var joystick in info.Joysticks) { file.Write(" const int "); file.Write(joystick.Replace("joystick", "deadzone")); file.Write(" = "); file.Write(Convert.ToInt32(nameToDevice[joystick].DeadZone * 327.68f)); file.WriteLine(";"); } file.WriteLine(); file.WriteLine(" readonly string[] deviceNames = new string[]{"); foreach (var joystick in info.Joysticks) { file.Write(" \""); file.Write(nameToDevice[joystick].Text); file.WriteLine("\","); } file.WriteLine(" };"); file.WriteLine(); index = 0; foreach (var joystick in info.Joysticks) { file.Write(" Joystick "); file.Write(joystick.Replace("joystick", "joystickDevice")); file.WriteLine(";"); } }
public void Declaration(CompileInfo info, System.IO.StreamWriter file) { buttonName = "buttonToggle" + info.RegisterIndex(this); file.Write(" ButtonToggle "); file.Write(buttonName); file.Write(" = new ButtonToggle()"); if (String.IsNullOrEmpty(IfFalseSayText) && String.IsNullOrEmpty(IfTrueSayText)) { file.WriteLine(";"); } else { file.WriteLine(); file.WriteLine(" {"); file.WriteLine(" OnStateChanged = (button) =>"); file.WriteLine(" {"); file.WriteLine(" if (button.State)"); if (String.IsNullOrEmpty(IfTrueSayText)) { file.WriteLine(" { }"); } else { file.Write(" Say(\""); file.Write(IfTrueSayText); file.WriteLine("\");"); } file.WriteLine(" else"); if (String.IsNullOrEmpty(IfFalseSayText)) { file.WriteLine(" { }"); } else { file.Write(" Say(\""); file.Write(IfFalseSayText); file.WriteLine("\");"); } file.WriteLine(" }"); file.WriteLine(" };"); } }
public void Feed(CompileInfo info, System.IO.StreamWriter file) { if (String.IsNullOrEmpty(JoystickAxis)) { return; } var parts = JoystickAxis.Split('.'); file.Write(new string(' ', info.IndentLevel * 4)); file.Write("iReport."); file.Write(VJoyAxis); file.Write(" = (int)(DeadZone("); if (Inverted) { file.Write("(65536 - "); file.Write(JoystickAxis.Replace("joystick", "state")); file.Write(")"); } else { file.Write(JoystickAxis.Replace("joystick", "state")); } file.Write(", "); file.Write(parts[0].Replace("joystick", "deadzone")); file.WriteLine(") * axisScale);"); }
public void Feed(CompileInfo info, System.IO.StreamWriter file) { if (String.IsNullOrEmpty(JoystickAxis)) { return; } file.Write(new string(' ', info.IndentLevel * 4)); var parts = JoystickAxis.Split('.'); file.Write("iReport."); file.Write(VJoyPOV); file.Write(" = FakePOV_"); file.Write(IsXDirection ? "X" : "Y"); file.Write("("); file.Write("iReport."); file.Write(VJoyPOV); file.Write(", "); if (Inverted) { file.Write("(65536 - "); file.Write(JoystickAxis.Replace("joystick", "state")); file.Write(")"); } else { file.Write(JoystickAxis.Replace("joystick", "state")); } file.WriteLine(");"); }
private void AllDevicesReady(CompileInfo info, System.IO.StreamWriter file) { file.WriteLine(" private bool AllDevicesReady()"); file.WriteLine(" {"); file.Write(" return "); var list = new List <string>(); foreach (var joystick in info.Joysticks) { list.Add(String.Concat(joystick.Replace("joystick", "joystickDevice"), " != null")); } if (list.Count > 0) { file.Write(String.Join(" && ", list)); } else { file.Write("false"); } file.WriteLine(";"); file.WriteLine(" }"); file.WriteLine(); }
public void Declaration(CompileInfo info, System.IO.StreamWriter file) { }
public void Initialize(CompileInfo info) { info.RegisterPOV(VJoyPOV); }
public bool Build(string exeFilename, params IMapItem[] items) { var location = GetLocation(); CopyTemplateToTempFolder(location); var project = new System.Xml.XmlDocument(); var projectPath = Path.Combine(TempDir, "JoystickMerger.Feeder", "JoystickMerger.Feeder.csproj"); project.Load(projectPath); foreach (System.Xml.XmlNode node in project.DocumentElement) { if (node.Name == "PropertyGroup" /*&& node.GetAttribute("Condition") == "'$(Configuration)|$(Platform)' == 'Release|x64'"*/) { foreach (System.Xml.XmlNode propNode in node.ChildNodes) { if (propNode.Name == "OutputPath") { propNode.InnerText = Path.GetDirectoryName(exeFilename); } else if (propNode.Name == "AssemblyName") { propNode.InnerText = Path.GetFileNameWithoutExtension(exeFilename); } } } } project.Save(projectPath); var feederPath = Path.Combine(TempDir, "JoystickMerger.Feeder", "JoystickMerger.xml"); var info = new CompileInfo(); foreach (var item in items) { item.Initialize(info); } info.EndInitialization(); using (var file = File.CreateText(System.IO.Path.Combine(TempDir, "JoystickMerger.Feeder", "GameDevPoller.Generated.cs"))) { file.WriteLine("using System;"); file.WriteLine("using System.Collections.Generic;"); file.WriteLine("using System.Linq;"); file.WriteLine("using System.Text;"); file.WriteLine("using SharpDX;"); file.WriteLine("using SharpDX.DirectInput;"); file.WriteLine("using System.Windows.Forms;"); file.WriteLine("using vJoyInterfaceWrap;"); file.WriteLine(); file.WriteLine("// This file is generated with JoystickMerger.Generator. Do not edit."); file.WriteLine("namespace JoystickMerger.Feeder"); file.WriteLine("{"); file.WriteLine(" partial class GameDevPoller"); file.WriteLine(" {"); file.WriteLine(" // vJoy device number."); file.WriteLine(" const uint id = 1;"); foreach (var item in items) { item.Declaration(info, file); } file.WriteLine(); ValidateVJoyConfiguration(info, file); foreach (var item in items) { item.PreFeed(info, file); } file.WriteLine(" private void Feed()"); file.WriteLine(" {"); foreach (var item in items) { item.Feed(info, file); } file.WriteLine(" }"); file.WriteLine(); foreach (var item in items) { item.PostFeed(info, file); } file.WriteLine(" }"); file.WriteLine("}"); } return(RunCompiler()); }
public void Initialize(CompileInfo info) { info.RegisterJoystick(Joystick); info.RegisterVJoyButton(Convert.ToInt32(NumVJoyEndAt.Value)); }
public void PostFeed(CompileInfo info, System.IO.StreamWriter file) { buttonName = null; }
public void Initialize(CompileInfo info) { info.RegisterJoystick(JoystickAxis); info.RegisterVJoyAxis(VJoyAxis); }
public void Initialize(CompileInfo info) { }
private void FindDevices(CompileInfo info, System.IO.StreamWriter file) { var nameToDevice = new Dictionary <string, DeviceListItem>(); foreach (var device in Items) { nameToDevice[device.Item.Key] = device; } file.WriteLine(" private void FindDevices(IList<DeviceInstance> gameControllerList, IdentifierList preferred)"); file.WriteLine(" {"); int index = 0; foreach (var joystick in info.Joysticks) { file.Write(" var newJoy"); file.Write(index + 1); file.WriteLine(" = Guid.Empty;"); file.Write(" var preferJoy"); file.Write(index + 1); file.Write(" = preferred["); file.Write(index); file.WriteLine("];"); index++; } file.WriteLine(); file.WriteLine(" foreach (var deviceInstance in gameControllerList)"); file.WriteLine(" {"); index = 0; foreach (var joystick in info.Joysticks) { file.Write(" if (DetectDevice(deviceInstance, ref "); file.Write(joystick.Replace("joystick", "joystickDevice")); file.Write(", \""); file.Write(nameToDevice[joystick].Item.Device.InstanceName); file.Write("\", ref preferJoy"); file.Write(index + 1); file.Write(", (guid) => mainForm.SetDevicesState("); file.Write(index); file.WriteLine(", true, ref guid)))"); file.WriteLine(" continue;"); index++; } file.WriteLine(); index = 0; foreach (var joystick in info.Joysticks) { file.Write(" if (DetectDevice(deviceInstance, ref "); file.Write(joystick.Replace("joystick", "joystickDevice")); file.Write(", \""); file.Write(nameToDevice[joystick].Item.Device.InstanceName); file.Write("\", ref newJoy"); file.Write(index + 1); file.Write(", (guid) => mainForm.SetDevicesState("); file.Write(index); file.WriteLine(", true, ref guid)))"); file.WriteLine(" {"); file.Write(" preferJoy"); file.Write(index + 1); file.Write(" = newJoy"); file.Write(index + 1); file.WriteLine(";"); file.WriteLine(" continue;"); file.WriteLine(" }"); index++; } file.WriteLine(" }"); index = 0; foreach (var joystick in info.Joysticks) { file.Write(" preferred["); file.Write(index); file.Write("] = preferJoy"); file.Write(index + 1); file.WriteLine(";"); index++; } file.WriteLine(" }"); file.WriteLine(); }
public void PreFeed(CompileInfo info, System.IO.StreamWriter file) { AllDevicesReady(info, file); FindDevices(info, file); }
public void PostFeed(CompileInfo info, System.IO.StreamWriter file) { }
public void PostFeed(CompileInfo info, System.IO.StreamWriter file) { ReleaseDevices(info, file); }