コード例 #1
0
        /// <summary>
        /// Adds the specified switch to the specified actuator.
        /// Notifies the actuator about the switch.  Also adds the
        /// switch to the settings file and saves the settings file
        /// </summary>
        /// <param name="actuator">atuator to add to</param>
        /// <param name="switchSetting">switch to add</param>
        /// <returns>true on success</returns>
        public bool AddSwitch(IActuator actuator, SwitchSetting switchSetting)
        {
            var actuatorSetting = Config.Find(actuator.Descriptor.Id);

            if (actuatorSetting == null)
            {
                return(false);
            }

            var sw = actuatorSetting.Find(switchSetting.Name);

            if (sw != null)
            {
                return(true);
            }

            bool retVal = actuator.Load(new List <SwitchSetting>()
            {
                switchSetting
            });

            if (retVal)
            {
                actuatorSetting.SwitchSettings.Add(switchSetting);
                Config.Save();
            }

            return(retVal);
        }
コード例 #2
0
        /// <summary>
        /// Reads switch attributes from the XML file.
        /// </summary>
        /// <param name="xmlNode">The XML node that contains the Switch attributes</param>
        /// <returns>True on successful parse, false otherwise</returns>
        public virtual bool Load(SwitchSetting switchSetting)
        {
            Name        = switchSetting.Name;
            Source      = switchSetting.Source;
            Description = switchSetting.Description;
            Actuate     = switchSetting.Actuate;
            Enabled     = switchSetting.Enabled;
            AcceptTime  = CoreGlobals.AppPreferences.ResolveVariableInt(switchSetting.MinHoldTime, CoreGlobals.AppPreferences.MinActuationHoldTime, 0);

            if (!String.IsNullOrEmpty(switchSetting.BeepFile))
            {
                var beepFile = FileUtils.GetSoundPath(switchSetting.BeepFile);
                if (File.Exists(beepFile))
                {
                    try
                    {
                        _audio   = new SoundPlayer(beepFile);
                        BeepFile = beepFile;
                    }
                    catch (Exception)
                    {
                    }
                }
            }

            Command = switchSetting.Command;

            return(true);
        }
コード例 #3
0
ファイル: ActuatorManager.cs プロジェクト: zezo010/acat
        /// <summary>
        /// Adds the specified switch to the list of switches supported
        /// by the actuator. switchSetting contains all the attributes of the
        /// switch.  The swtich is added to the actuators settings file and the
        /// file saved.
        /// </summary>
        /// <param name="actuator">Actuator to add to</param>
        /// <param name="switchSetting">Settings for the switch</param>
        /// <returns>true on success, false if actuator not found</returns>
        public bool RegisterSwitch(IActuator actuator, SwitchSetting switchSetting)
        {
            if (_actuators.Find(actuator.GetType()) == null)
            {
                return(false);
            }

            return(_actuators.AddSwitch(actuator, switchSetting));
        }
コード例 #4
0
        private void buttonAddNew_Click(object sender, EventArgs e)
        {
            Hide();

            var editKeyboardActuatorForm = new EditKeyboardActuatorSwitchForm();

            var dialogResult = editKeyboardActuatorForm.ShowDialog();

            Show();

            if (dialogResult == DialogResult.OK)
            {
                var source = editKeyboardActuatorForm.ShortcutChanged ? editKeyboardActuatorForm.Shortcut : String.Empty;

                if (String.IsNullOrEmpty(source))
                {
                    return;
                }

                var switchName = generateSwitchName();

                var command = editKeyboardActuatorForm.MappedCommand;

                var switchSetting = new SwitchSetting(switchName, "Keyboard shortcut", command)
                {
                    Source = source
                };

                if (editKeyboardActuatorForm.IsTriggerSelect)
                {
                    switchSetting.ConfigureAsTriggerSwitch(true);
                    switchSetting.BeepFile = "beep.wav";
                }

                _actuatorSetting.SwitchSettings.Add(switchSetting);

                _isDirty = true;

                refreshDataGridView();
            }
        }
コード例 #5
0
        /// <summary>
        /// Adds a new row to the datagrid representing a new
        /// switch
        /// </summary>
        /// <param name="switchSetting">parameters for the new switch</param>
        private void addDataGridRow(SwitchSetting switchSetting)
        {
            int rowNum = dataGridView2.Rows.Add(switchSetting.Source, switchSetting.Command);

            dataGridView2.Rows[rowNum].Tag = switchSetting;

            (dataGridView2[EnableColumn.Name, rowNum] as DataGridViewCheckBoxCell).Value = switchSetting.Enabled;

            (dataGridView2[TriggerColumn.Name, rowNum] as DataGridViewCheckBoxCell).Value =
                switchSetting.IsTriggerSwitch();

            dataGridView2[CommandColumn.Name, rowNum].Value = (switchSetting.IsTriggerSwitch() ||
                                                               String.IsNullOrEmpty(switchSetting.Command))
                ? _unmappedValue
                : formatCommandForDisplay(switchSetting.Command);

            dataGridView2[CommandColumn.Name, rowNum].Tag = dataGridView2[CommandColumn.Name, rowNum].Value;

            (dataGridView2[EditSwitchColumn.Name, rowNum] as DataGridViewButtonCell).Value   = "Change";
            (dataGridView2[DeleteSwitchColumn.Name, rowNum] as DataGridViewButtonCell).Value = "Remove";
        }