public ActionsFromInputDevices(InputDeviceList pi, BindingsFile b, Actions.ActionController pc)
 {
     devices = pi;
     bf      = b;
     ac      = pc;
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }