public ActionsFromInputDevices(InputDeviceList pi, BindingsFile b, Actions.ActionController pc) { devices = pi; bf = b; ac = pc; }
public override bool ExecuteAction(ActionProgramRun ap) { string res; if (ap.functions.ExpandString(UserData, out res) != BaseUtils.Functions.ExpandResult.Failed) { StringParser sp = new StringParser(res); string prefix = "EB_"; string cmdname = sp.NextQuotedWord(); if (cmdname != null && cmdname.Equals("PREFIX", StringComparison.InvariantCultureIgnoreCase)) { prefix = sp.NextWord(); if (prefix == null) { ap.ReportError("Missing name after Prefix in EliteBindings"); return(true); } cmdname = sp.NextQuotedWord(); } BindingsFile bf = (ap.actioncontroller as ActionController).FrontierBindings; int matchno = 1; string list = ""; while (cmdname != null) { bool partial = false; int i = cmdname.IndexOf("*"); if (i >= 0) { cmdname = cmdname.Substring(0, i); partial = true; } List <BindingsFile.Assignment> matches = bf.Find(cmdname, partial); if (matches.Count > 0) { foreach (BindingsFile.Assignment a in matches) { ap[prefix + "Binding" + matchno.ToStringInvariant()] = a.ToString(); list += a.ToString() + Environment.NewLine; matchno++; } } Dictionary <string, string> values = bf.BindingValue(cmdname, partial); foreach (string k in values.Keys) { ap[prefix + k] = values[k]; list += k + "=" + values[k] + Environment.NewLine; } cmdname = sp.NextQuotedWord(); } ap[prefix + "Text"] = list; } else { ap.ReportError(res); } return(true); }
public ActionController(EDDiscoveryForm frm, EDDiscoveryController ctrl, System.Drawing.Icon ic) : base(frm, ic) { discoveryform = frm; discoverycontroller = ctrl; #if !NO_SYSTEM_SPEECH // Windows TTS (2000 and above). Speech *recognition* will be Version.Major >= 6 (Vista and above) if (Environment.OSVersion.Platform == PlatformID.Win32NT && Environment.OSVersion.Version.Major >= 5 && !EDDOptions.Instance.NoSound) { audiodriverwave = new AudioExtensions.AudioDriverCSCore(EDDConfig.Instance.DefaultWaveDevice); audiodriverspeech = new AudioExtensions.AudioDriverCSCore(EDDConfig.Instance.DefaultVoiceDevice); speechsynth = new AudioExtensions.SpeechSynthesizer(new AudioExtensions.WindowsSpeechEngine()); voicerecon = new AudioExtensions.VoiceRecognitionWindows(); } else { audiodriverwave = new AudioExtensions.AudioDriverDummy(); audiodriverspeech = new AudioExtensions.AudioDriverDummy(); speechsynth = new AudioExtensions.SpeechSynthesizer(new AudioExtensions.DummySpeechEngine()); voicerecon = new AudioExtensions.VoiceRecognitionDummy(); } #else audiodriverwave = new AudioExtensions.AudioDriverDummy(); audiodriverspeech = new AudioExtensions.AudioDriverDummy(); speechsynth = new AudioExtensions.SpeechSynthesizer(new AudioExtensions.DummySpeechEngine()); voicerecon = new AudioExtensions.VoiceRecognitionDummy(); #endif audioqueuewave = new AudioExtensions.AudioQueue(audiodriverwave); audioqueuespeech = new AudioExtensions.AudioQueue(audiodriverspeech); frontierbindings = new BindingsFile(); inputdevices = new DirectInputDevices.InputDeviceList(a => discoveryform.BeginInvoke(a)); inputdevicesactions = new Actions.ActionsFromInputDevices(inputdevices, frontierbindings, this); frontierbindings.LoadBindingsFile(); //System.Diagnostics.Debug.WriteLine("Bindings" + frontierbindings.ListBindings()); //System.Diagnostics.Debug.WriteLine("Key Names" + frontierbindings.ListKeyNames("{","}")); voicerecon.SpeechRecognised += Voicerecon_SpeechRecognised; voicerecon.SpeechNotRecognised += Voicerecon_SpeechNotRecognised; ConditionFunctions.GetCFH = DefaultGetCFH; LoadPeristentVariables(new ConditionVariables(SQLiteConnectionUser.GetSettingString("UserGlobalActionVars", ""), ConditionVariables.FromMode.MultiEntryComma)); lasteditedpack = SQLiteConnectionUser.GetSettingString("ActionPackLastFile", ""); ActionBase.AddCommand("Bookmarks", typeof(ActionBookmarks), ActionBase.ActionType.Cmd); ActionBase.AddCommand("Commodities", typeof(ActionCommodities), ActionBase.ActionType.Cmd); ActionBase.AddCommand("EliteBindings", typeof(ActionEliteBindings), ActionBase.ActionType.Cmd); ActionBase.AddCommand("Event", typeof(ActionEventCmd), ActionBase.ActionType.Cmd); ActionBase.AddCommand("Historytab", typeof(ActionHistoryTab), ActionBase.ActionType.Cmd); ActionBase.AddCommand("Key", typeof(ActionKeyED), ActionBase.ActionType.Cmd); // override key ActionBase.AddCommand("Ledger", typeof(ActionLedger), ActionBase.ActionType.Cmd); ActionBase.AddCommand("Materials", typeof(ActionMaterials), ActionBase.ActionType.Cmd); ActionBase.AddCommand("MenuItem", typeof(ActionMenuItem), ActionBase.ActionType.Cmd); ActionBase.AddCommand("Perform", typeof(ActionPerform), ActionBase.ActionType.Cmd); ActionBase.AddCommand("Play", typeof(ActionPlay), ActionBase.ActionType.Cmd); ActionBase.AddCommand("Popout", typeof(ActionPopout), ActionBase.ActionType.Cmd); ActionBase.AddCommand("ProgramWindow", typeof(ActionProgramwindow), ActionBase.ActionType.Cmd); ActionBase.AddCommand("Scan", typeof(ActionScan), ActionBase.ActionType.Cmd); ActionBase.AddCommand("Ship", typeof(ActionShip), ActionBase.ActionType.Cmd); ActionBase.AddCommand("Star", typeof(ActionStar), ActionBase.ActionType.Cmd); ActionBase.AddCommand("Timer", typeof(ActionTimer), ActionBase.ActionType.Cmd); }