Пример #1
0
        private void buttonNew_Click(object sender, EventArgs e)
        {
            MultiMapNameBox multiMapNameBox = new MultiMapNameBox();

            if (multiMapNameBox.ShowDialog(this) == DialogResult.Cancel)
            {
                return;
            }

            string mappingName = multiMapNameBox.MapName;

            string pathCustom  = Path.Combine(MPCommon.CustomInputDevice, "MPControlPlugin.xml");
            string pathDefault = Path.Combine(MPCommon.CustomInputDefault, "MPControlPlugin.xml");

            string sourceFile;

            if (File.Exists(pathCustom))
            {
                sourceFile = pathCustom;
            }
            else if (File.Exists(pathDefault))
            {
                sourceFile = pathDefault;
            }
            else
            {
                Log.Error("MPControlPlugin: Default remote map \"MPControlPlugin.xml\" is missing");
                return;
            }

            string destinationFile = Path.Combine(MPCommon.CustomInputDevice, mappingName + ".xml");

            File.Copy(sourceFile, destinationFile, true);

            listBoxMappings.Items.Add(mappingName);
        }
Пример #2
0
    private void listBoxCommandSequence_DoubleClick(object sender, EventArgs e)
    {
      if (listBoxMacro.SelectedIndex == -1)
        return;

      try
      {
        string selected = listBoxMacro.SelectedItem as string;
        string newCommand = null;

        if (selected.StartsWith(IrssUtils.Common.CmdPrefixRun, StringComparison.OrdinalIgnoreCase))
        {
          string[] commands = IrssUtils.Common.SplitRunCommand(selected.Substring(IrssUtils.Common.CmdPrefixRun.Length));

          ExternalProgram executeProgram = new ExternalProgram(commands);
          if (executeProgram.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixRun + executeProgram.CommandString;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixPause, StringComparison.OrdinalIgnoreCase))
        {
          PauseTime pauseTime = new PauseTime(int.Parse(selected.Substring(IrssUtils.Common.CmdPrefixPause.Length)));
          if (pauseTime.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixPause + pauseTime.Time;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixSerial, StringComparison.OrdinalIgnoreCase))
        {
          string[] commands = IrssUtils.Common.SplitSerialCommand(selected.Substring(IrssUtils.Common.CmdPrefixSerial.Length));

          SerialCommand serialCommand = new SerialCommand(commands);
          if (serialCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixSerial + serialCommand.CommandString;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixWindowMsg, StringComparison.OrdinalIgnoreCase))
        {
          string[] commands = IrssUtils.Common.SplitWindowMessageCommand(selected.Substring(IrssUtils.Common.CmdPrefixWindowMsg.Length));

          MessageCommand messageCommand = new MessageCommand(commands);
          if (messageCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixWindowMsg + messageCommand.CommandString;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixTcpMsg, StringComparison.OrdinalIgnoreCase))
        {
          string[] commands = IrssUtils.Common.SplitTcpMessageCommand(selected.Substring(IrssUtils.Common.CmdPrefixTcpMsg.Length));

          TcpMessageCommand tcpMessageCommand = new TcpMessageCommand(commands);
          if (tcpMessageCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixTcpMsg + tcpMessageCommand.CommandString;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixHttpMsg, StringComparison.OrdinalIgnoreCase))
        {
          string[] commands = IrssUtils.Common.SplitHttpMessageCommand(selected.Substring(IrssUtils.Common.CmdPrefixHttpMsg.Length));

          HttpMessageCommand httpMessageCommand = new HttpMessageCommand(commands);
          if (httpMessageCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase))
        {
          KeysCommand keysCommand = new KeysCommand(selected.Substring(IrssUtils.Common.CmdPrefixKeys.Length));
          if (keysCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixKeys + keysCommand.CommandString;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixMouse, StringComparison.OrdinalIgnoreCase))
        {
          MouseCommand mouseCommand = new MouseCommand(selected.Substring(IrssUtils.Common.CmdPrefixMouse.Length));
          if (mouseCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixMouse + mouseCommand.CommandString;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixEject, StringComparison.OrdinalIgnoreCase))
        {
          EjectCommand ejectCommand = new EjectCommand(selected.Substring(IrssUtils.Common.CmdPrefixEject.Length));
          if (ejectCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixEject + ejectCommand.CommandString;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixPopup, StringComparison.OrdinalIgnoreCase))
        {
          string[] commands = IrssUtils.Common.SplitPopupCommand(selected.Substring(IrssUtils.Common.CmdPrefixPopup.Length));

          PopupMessage popupMessage = new PopupMessage(commands);
          if (popupMessage.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixPopup + popupMessage.CommandString;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixGotoScreen, StringComparison.OrdinalIgnoreCase))
        {
          GoToScreen goToScreen = new GoToScreen(selected.Substring(IrssUtils.Common.CmdPrefixGotoScreen.Length));
          if (goToScreen.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixGotoScreen + goToScreen.CommandString;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixMultiMap, StringComparison.OrdinalIgnoreCase))
        {
          MultiMapNameBox multiMapNameBox = new MultiMapNameBox(selected.Substring(IrssUtils.Common.CmdPrefixMultiMap.Length));
          if (multiMapNameBox.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixMultiMap + multiMapNameBox.MapName;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixSendMPAction, StringComparison.OrdinalIgnoreCase))
        {
          string[] commands = IrssUtils.Common.SplitSendMPActionCommand(selected.Substring(IrssUtils.Common.CmdPrefixSendMPAction.Length));

          MPAction edit = new MPAction(commands);
          if (edit.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixSendMPAction + edit.CommandString;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixSendMPMsg, StringComparison.OrdinalIgnoreCase))
        {
          string[] commands = IrssUtils.Common.SplitSendMPMsgCommand(selected.Substring(IrssUtils.Common.CmdPrefixSendMPMsg.Length));

          MPMessage edit = new MPMessage(commands);
          if (edit.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixSendMPMsg + edit.CommandString;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixBeep, StringComparison.OrdinalIgnoreCase))
        {
          string[] commands = IrssUtils.Common.SplitBeepCommand(selected.Substring(IrssUtils.Common.CmdPrefixBeep.Length));

          BeepCommand beepCommand = new BeepCommand(commands);
          if (beepCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixBeep + beepCommand.CommandString;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixSound, StringComparison.OrdinalIgnoreCase))
        {
          OpenFileDialog openFileDialog = new OpenFileDialog();
          openFileDialog.Filter = "Wave Files|*.wav";
          openFileDialog.Multiselect = false;
          openFileDialog.FileName = selected.Substring(IrssUtils.Common.CmdPrefixSound.Length);

          if (openFileDialog.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixSound + openFileDialog.FileName;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixDisplayMode, StringComparison.OrdinalIgnoreCase))
        {
          string[] commands = IrssUtils.Common.SplitDisplayModeCommand(selected.Substring(IrssUtils.Common.CmdPrefixDisplayMode.Length));

          DisplayModeCommand displayModeCommand = new DisplayModeCommand(commands);
          if (displayModeCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixDisplayMode + displayModeCommand.CommandString;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase))
        {
          string[] commands = IrssUtils.Common.SplitBlastCommand(selected.Substring(IrssUtils.Common.CmdPrefixBlast.Length));

          BlastCommand blastCommand = new BlastCommand(
            MPControlPlugin.BlastIR,
            IrssUtils.Common.FolderIRCommands,
            MPControlPlugin.TransceiverInformation.Ports,
            commands);

          if (blastCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixBlast + blastCommand.CommandString;
        }

        if (!String.IsNullOrEmpty(newCommand))
        {
          int index = listBoxMacro.SelectedIndex;
          listBoxMacro.Items.RemoveAt(index);
          listBoxMacro.Items.Insert(index, newCommand);
          listBoxMacro.SelectedIndex = index;
        }
      }
      catch (Exception ex)
      {
        Log.Error(ex);
        MessageBox.Show(this, ex.Message, "Failed to edit macro item", MessageBoxButtons.OK, MessageBoxIcon.Error);
      }
    }
Пример #3
0
    private void buttonAddCommand_Click(object sender, EventArgs e)
    {
      if (comboBoxCommands.SelectedIndex == -1)
        return;

      try
      {
        string selected = comboBoxCommands.SelectedItem as string;
        string newCommand = null;

        if (selected.Equals(IrssUtils.Common.UITextRun, StringComparison.OrdinalIgnoreCase))
        {
          ExternalProgram externalProgram = new ExternalProgram();
          if (externalProgram.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixRun + externalProgram.CommandString;
        }
        else if (selected.Equals(IrssUtils.Common.UITextPause, StringComparison.OrdinalIgnoreCase))
        {
          PauseTime pauseTime = new PauseTime();
          if (pauseTime.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixPause + pauseTime.Time;
        }
        else if (selected.Equals(IrssUtils.Common.UITextSerial, StringComparison.OrdinalIgnoreCase))
        {
          SerialCommand serialCommand = new SerialCommand();
          if (serialCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixSerial + serialCommand.CommandString;
        }
        else if (selected.Equals(IrssUtils.Common.UITextWindowMsg, StringComparison.OrdinalIgnoreCase))
        {
          MessageCommand messageCommand = new MessageCommand();
          if (messageCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixWindowMsg + messageCommand.CommandString;
        }
        else if (selected.Equals(IrssUtils.Common.UITextTcpMsg, StringComparison.OrdinalIgnoreCase))
        {
          TcpMessageCommand tcpMessageCommand = new TcpMessageCommand();
          if (tcpMessageCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixTcpMsg + tcpMessageCommand.CommandString;
        }
        else if (selected.Equals(IrssUtils.Common.UITextHttpMsg, StringComparison.OrdinalIgnoreCase))
        {
          HttpMessageCommand httpMessageCommand = new HttpMessageCommand();
          if (httpMessageCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString;
        }
        else if (selected.Equals(IrssUtils.Common.UITextKeys, StringComparison.OrdinalIgnoreCase))
        {
          KeysCommand keysCommand = new KeysCommand();
          if (keysCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixKeys + keysCommand.CommandString;
        }
        else if (selected.Equals(IrssUtils.Common.UITextMouse, StringComparison.OrdinalIgnoreCase))
        {
          MouseCommand mouseCommand = new MouseCommand();
          if (mouseCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixMouse + mouseCommand.CommandString;
        }
        else if (selected.Equals(IrssUtils.Common.UITextEject, StringComparison.OrdinalIgnoreCase))
        {
          EjectCommand ejectCommand = new EjectCommand();
          if (ejectCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixEject + ejectCommand.CommandString;
        }
        else if (selected.Equals(IrssUtils.Common.UITextPopup, StringComparison.OrdinalIgnoreCase))
        {
          PopupMessage popupMessage = new PopupMessage();
          if (popupMessage.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixPopup + popupMessage.CommandString;
        }
        else if (selected.Equals(IrssUtils.Common.UITextGotoScreen, StringComparison.OrdinalIgnoreCase))
        {
          GoToScreen goToScreen = new GoToScreen();
          if (goToScreen.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixGotoScreen + goToScreen.CommandString;
        }
        else if (selected.Equals(IrssUtils.Common.UITextMultiMap, StringComparison.OrdinalIgnoreCase))
        {
          MultiMapNameBox multiMapNameBox = new MultiMapNameBox("Toggle");

          if (multiMapNameBox.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixMultiMap + multiMapNameBox.MapName;
        }
        else if (selected.Equals(IrssUtils.Common.UITextMouseMode, StringComparison.OrdinalIgnoreCase))
        {
          newCommand = IrssUtils.Common.CmdPrefixMouseMode + "TOGGLE";
        }
        else if (selected.Equals(IrssUtils.Common.UITextInputLayer, StringComparison.OrdinalIgnoreCase))
        {
          newCommand = IrssUtils.Common.CmdPrefixInputLayer;
        }
        /*
      else if (selected.Equals(IrssUtils.Common.UITextWindowState, StringComparison.OrdinalIgnoreCase))
      {
        newCommand = IrssUtils.Common.CmdPrefixWindowState;
      }
      */
        else if (selected.Equals(IrssUtils.Common.UITextFocus, StringComparison.OrdinalIgnoreCase))
        {
          newCommand = IrssUtils.Common.CmdPrefixFocus;
        }
        else if (selected.Equals(IrssUtils.Common.UITextExit, StringComparison.OrdinalIgnoreCase))
        {
          newCommand = IrssUtils.Common.CmdPrefixExit;
        }
        else if (selected.Equals(IrssUtils.Common.UITextSendMPAction, StringComparison.OrdinalIgnoreCase))
        {
          MPAction edit = new MPAction();
          if (edit.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixSendMPAction + edit.CommandString;
        }
        else if (selected.Equals(IrssUtils.Common.UITextSendMPMsg, StringComparison.OrdinalIgnoreCase))
        {
          MPMessage edit = new MPMessage();
          if (edit.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixSendMPMsg + edit.CommandString;
        }
        else if (selected.Equals(IrssUtils.Common.UITextVirtualKB, StringComparison.OrdinalIgnoreCase))
        {
          newCommand = IrssUtils.Common.CmdPrefixVirtualKB;
        }
        else if (selected.Equals(IrssUtils.Common.UITextSmsKB, StringComparison.OrdinalIgnoreCase))
        {
          newCommand = IrssUtils.Common.CmdPrefixSmsKB;
        }
        else if (selected.Equals(IrssUtils.Common.UITextBeep, StringComparison.OrdinalIgnoreCase))
        {
          BeepCommand beepCommand = new BeepCommand();
          if (beepCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixBeep + beepCommand.CommandString;
        }
        else if (selected.Equals(IrssUtils.Common.UITextSound, StringComparison.OrdinalIgnoreCase))
        {
          OpenFileDialog openFileDialog = new OpenFileDialog();
          openFileDialog.Filter = "Wave Files|*.wav";
          openFileDialog.Multiselect = false;

          if (openFileDialog.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixSound + openFileDialog.FileName;
        }
        else if (selected.Equals(IrssUtils.Common.UITextDisplayMode, StringComparison.OrdinalIgnoreCase))
        {
          DisplayModeCommand displayModeCommand = new DisplayModeCommand();
          if (displayModeCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixDisplayMode + displayModeCommand.CommandString;
        }
        else if (selected.Equals(IrssUtils.Common.UITextStandby, StringComparison.OrdinalIgnoreCase))
        {
          newCommand = IrssUtils.Common.CmdPrefixStandby;
        }
        else if (selected.Equals(IrssUtils.Common.UITextHibernate, StringComparison.OrdinalIgnoreCase))
        {
          newCommand = IrssUtils.Common.CmdPrefixHibernate;
        }
        else if (selected.Equals(IrssUtils.Common.UITextReboot, StringComparison.OrdinalIgnoreCase))
        {
          newCommand = IrssUtils.Common.CmdPrefixReboot;
        }
        else if (selected.Equals(IrssUtils.Common.UITextShutdown, StringComparison.OrdinalIgnoreCase))
        {
          newCommand = IrssUtils.Common.CmdPrefixShutdown;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase))
        {
          BlastCommand blastCommand = new BlastCommand(
            MPControlPlugin.BlastIR,
            IrssUtils.Common.FolderIRCommands,
            MPControlPlugin.TransceiverInformation.Ports,
            selected.Substring(IrssUtils.Common.CmdPrefixBlast.Length));

          if (blastCommand.ShowDialog(this) == DialogResult.OK)
            newCommand = IrssUtils.Common.CmdPrefixBlast + blastCommand.CommandString;
        }
        else if (selected.StartsWith(IrssUtils.Common.CmdPrefixMacro, StringComparison.OrdinalIgnoreCase))
        {
          newCommand = selected;
        }
        else
        {
          throw new CommandStructureException(String.Format("Unknown command in macro command list \"{0}\"", selected));
        }

        if (!String.IsNullOrEmpty(newCommand))
          listBoxMacro.Items.Add(newCommand);
      }
      catch (Exception ex)
      {
        Log.Error(ex);
        MessageBox.Show(this, ex.Message, "Failed to add macro command", MessageBoxButtons.OK, MessageBoxIcon.Error);
      }
    }
Пример #4
0
    private void buttonNew_Click(object sender, EventArgs e)
    {
      MultiMapNameBox multiMapNameBox = new MultiMapNameBox();
      if (multiMapNameBox.ShowDialog(this) == DialogResult.Cancel)
        return;

      string mappingName = multiMapNameBox.MapName;

      string pathCustom = Path.Combine(MPCommon.CustomInputDevice, "MPControlPlugin.xml");
      string pathDefault = Path.Combine(MPCommon.CustomInputDefault, "MPControlPlugin.xml");

      string sourceFile;
      if (File.Exists(pathCustom))
      {
        sourceFile = pathCustom;
      }
      else if (File.Exists(pathDefault))
      {
        sourceFile = pathDefault;
      }
      else
      {
        Log.Error("MPControlPlugin: Default remote map \"MPControlPlugin.xml\" is missing");
        return;
      }

      string destinationFile = Path.Combine(MPCommon.CustomInputDevice, mappingName + ".xml");

      File.Copy(sourceFile, destinationFile, true);

      listBoxMappings.Items.Add(mappingName);
    }
Пример #5
0
        private void listBoxCommandSequence_DoubleClick(object sender, EventArgs e)
        {
            if (listBoxMacro.SelectedIndex == -1)
            {
                return;
            }

            try
            {
                string selected   = listBoxMacro.SelectedItem as string;
                string newCommand = null;

                if (selected.StartsWith(IrssUtils.Common.CmdPrefixRun, StringComparison.OrdinalIgnoreCase))
                {
                    string[] commands = IrssUtils.Common.SplitRunCommand(selected.Substring(IrssUtils.Common.CmdPrefixRun.Length));

                    ExternalProgram executeProgram = new ExternalProgram(commands);
                    if (executeProgram.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixRun + executeProgram.CommandString;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixPause, StringComparison.OrdinalIgnoreCase))
                {
                    PauseTime pauseTime = new PauseTime(int.Parse(selected.Substring(IrssUtils.Common.CmdPrefixPause.Length)));
                    if (pauseTime.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixPause + pauseTime.Time;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixSerial, StringComparison.OrdinalIgnoreCase))
                {
                    string[] commands = IrssUtils.Common.SplitSerialCommand(selected.Substring(IrssUtils.Common.CmdPrefixSerial.Length));

                    SerialCommand serialCommand = new SerialCommand(commands);
                    if (serialCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixSerial + serialCommand.CommandString;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixWindowMsg, StringComparison.OrdinalIgnoreCase))
                {
                    string[] commands = IrssUtils.Common.SplitWindowMessageCommand(selected.Substring(IrssUtils.Common.CmdPrefixWindowMsg.Length));

                    MessageCommand messageCommand = new MessageCommand(commands);
                    if (messageCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixWindowMsg + messageCommand.CommandString;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixTcpMsg, StringComparison.OrdinalIgnoreCase))
                {
                    string[] commands = IrssUtils.Common.SplitTcpMessageCommand(selected.Substring(IrssUtils.Common.CmdPrefixTcpMsg.Length));

                    TcpMessageCommand tcpMessageCommand = new TcpMessageCommand(commands);
                    if (tcpMessageCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixTcpMsg + tcpMessageCommand.CommandString;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixHttpMsg, StringComparison.OrdinalIgnoreCase))
                {
                    string[] commands = IrssUtils.Common.SplitHttpMessageCommand(selected.Substring(IrssUtils.Common.CmdPrefixHttpMsg.Length));

                    HttpMessageCommand httpMessageCommand = new HttpMessageCommand(commands);
                    if (httpMessageCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase))
                {
                    KeysCommand keysCommand = new KeysCommand(selected.Substring(IrssUtils.Common.CmdPrefixKeys.Length));
                    if (keysCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixKeys + keysCommand.CommandString;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixMouse, StringComparison.OrdinalIgnoreCase))
                {
                    MouseCommand mouseCommand = new MouseCommand(selected.Substring(IrssUtils.Common.CmdPrefixMouse.Length));
                    if (mouseCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixMouse + mouseCommand.CommandString;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixEject, StringComparison.OrdinalIgnoreCase))
                {
                    EjectCommand ejectCommand = new EjectCommand(selected.Substring(IrssUtils.Common.CmdPrefixEject.Length));
                    if (ejectCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixEject + ejectCommand.CommandString;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixPopup, StringComparison.OrdinalIgnoreCase))
                {
                    string[] commands = IrssUtils.Common.SplitPopupCommand(selected.Substring(IrssUtils.Common.CmdPrefixPopup.Length));

                    PopupMessage popupMessage = new PopupMessage(commands);
                    if (popupMessage.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixPopup + popupMessage.CommandString;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixGotoScreen, StringComparison.OrdinalIgnoreCase))
                {
                    GoToScreen goToScreen = new GoToScreen(selected.Substring(IrssUtils.Common.CmdPrefixGotoScreen.Length));
                    if (goToScreen.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixGotoScreen + goToScreen.CommandString;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixMultiMap, StringComparison.OrdinalIgnoreCase))
                {
                    MultiMapNameBox multiMapNameBox = new MultiMapNameBox(selected.Substring(IrssUtils.Common.CmdPrefixMultiMap.Length));
                    if (multiMapNameBox.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixMultiMap + multiMapNameBox.MapName;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixSendMPAction, StringComparison.OrdinalIgnoreCase))
                {
                    string[] commands = IrssUtils.Common.SplitSendMPActionCommand(selected.Substring(IrssUtils.Common.CmdPrefixSendMPAction.Length));

                    MPAction edit = new MPAction(commands);
                    if (edit.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixSendMPAction + edit.CommandString;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixSendMPMsg, StringComparison.OrdinalIgnoreCase))
                {
                    string[] commands = IrssUtils.Common.SplitSendMPMsgCommand(selected.Substring(IrssUtils.Common.CmdPrefixSendMPMsg.Length));

                    MPMessage edit = new MPMessage(commands);
                    if (edit.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixSendMPMsg + edit.CommandString;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixBeep, StringComparison.OrdinalIgnoreCase))
                {
                    string[] commands = IrssUtils.Common.SplitBeepCommand(selected.Substring(IrssUtils.Common.CmdPrefixBeep.Length));

                    BeepCommand beepCommand = new BeepCommand(commands);
                    if (beepCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixBeep + beepCommand.CommandString;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixSound, StringComparison.OrdinalIgnoreCase))
                {
                    OpenFileDialog openFileDialog = new OpenFileDialog();
                    openFileDialog.Filter      = "Wave Files|*.wav";
                    openFileDialog.Multiselect = false;
                    openFileDialog.FileName    = selected.Substring(IrssUtils.Common.CmdPrefixSound.Length);

                    if (openFileDialog.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixSound + openFileDialog.FileName;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixDisplayMode, StringComparison.OrdinalIgnoreCase))
                {
                    string[] commands = IrssUtils.Common.SplitDisplayModeCommand(selected.Substring(IrssUtils.Common.CmdPrefixDisplayMode.Length));

                    DisplayModeCommand displayModeCommand = new DisplayModeCommand(commands);
                    if (displayModeCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixDisplayMode + displayModeCommand.CommandString;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase))
                {
                    string[] commands = IrssUtils.Common.SplitBlastCommand(selected.Substring(IrssUtils.Common.CmdPrefixBlast.Length));

                    BlastCommand blastCommand = new BlastCommand(
                        MPControlPlugin.BlastIR,
                        IrssUtils.Common.FolderIRCommands,
                        MPControlPlugin.TransceiverInformation.Ports,
                        commands);

                    if (blastCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixBlast + blastCommand.CommandString;
                    }
                }

                if (!String.IsNullOrEmpty(newCommand))
                {
                    int index = listBoxMacro.SelectedIndex;
                    listBoxMacro.Items.RemoveAt(index);
                    listBoxMacro.Items.Insert(index, newCommand);
                    listBoxMacro.SelectedIndex = index;
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                MessageBox.Show(this, ex.Message, "Failed to edit macro item", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #6
0
        private void buttonAddCommand_Click(object sender, EventArgs e)
        {
            if (comboBoxCommands.SelectedIndex == -1)
            {
                return;
            }

            try
            {
                string selected   = comboBoxCommands.SelectedItem as string;
                string newCommand = null;

                if (selected.Equals(IrssUtils.Common.UITextRun, StringComparison.OrdinalIgnoreCase))
                {
                    ExternalProgram externalProgram = new ExternalProgram();
                    if (externalProgram.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixRun + externalProgram.CommandString;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextPause, StringComparison.OrdinalIgnoreCase))
                {
                    PauseTime pauseTime = new PauseTime();
                    if (pauseTime.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixPause + pauseTime.Time;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextSerial, StringComparison.OrdinalIgnoreCase))
                {
                    SerialCommand serialCommand = new SerialCommand();
                    if (serialCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixSerial + serialCommand.CommandString;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextWindowMsg, StringComparison.OrdinalIgnoreCase))
                {
                    MessageCommand messageCommand = new MessageCommand();
                    if (messageCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixWindowMsg + messageCommand.CommandString;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextTcpMsg, StringComparison.OrdinalIgnoreCase))
                {
                    TcpMessageCommand tcpMessageCommand = new TcpMessageCommand();
                    if (tcpMessageCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixTcpMsg + tcpMessageCommand.CommandString;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextHttpMsg, StringComparison.OrdinalIgnoreCase))
                {
                    HttpMessageCommand httpMessageCommand = new HttpMessageCommand();
                    if (httpMessageCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextKeys, StringComparison.OrdinalIgnoreCase))
                {
                    KeysCommand keysCommand = new KeysCommand();
                    if (keysCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixKeys + keysCommand.CommandString;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextMouse, StringComparison.OrdinalIgnoreCase))
                {
                    MouseCommand mouseCommand = new MouseCommand();
                    if (mouseCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixMouse + mouseCommand.CommandString;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextEject, StringComparison.OrdinalIgnoreCase))
                {
                    EjectCommand ejectCommand = new EjectCommand();
                    if (ejectCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixEject + ejectCommand.CommandString;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextPopup, StringComparison.OrdinalIgnoreCase))
                {
                    PopupMessage popupMessage = new PopupMessage();
                    if (popupMessage.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixPopup + popupMessage.CommandString;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextGotoScreen, StringComparison.OrdinalIgnoreCase))
                {
                    GoToScreen goToScreen = new GoToScreen();
                    if (goToScreen.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixGotoScreen + goToScreen.CommandString;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextMultiMap, StringComparison.OrdinalIgnoreCase))
                {
                    MultiMapNameBox multiMapNameBox = new MultiMapNameBox("Toggle");

                    if (multiMapNameBox.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixMultiMap + multiMapNameBox.MapName;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextMouseMode, StringComparison.OrdinalIgnoreCase))
                {
                    newCommand = IrssUtils.Common.CmdPrefixMouseMode + "TOGGLE";
                }
                else if (selected.Equals(IrssUtils.Common.UITextInputLayer, StringComparison.OrdinalIgnoreCase))
                {
                    newCommand = IrssUtils.Common.CmdPrefixInputLayer;
                }

                /*
                 * else if (selected.Equals(IrssUtils.Common.UITextWindowState, StringComparison.OrdinalIgnoreCase))
                 * {
                 * newCommand = IrssUtils.Common.CmdPrefixWindowState;
                 * }
                 */
                else if (selected.Equals(IrssUtils.Common.UITextFocus, StringComparison.OrdinalIgnoreCase))
                {
                    newCommand = IrssUtils.Common.CmdPrefixFocus;
                }
                else if (selected.Equals(IrssUtils.Common.UITextExit, StringComparison.OrdinalIgnoreCase))
                {
                    newCommand = IrssUtils.Common.CmdPrefixExit;
                }
                else if (selected.Equals(IrssUtils.Common.UITextSendMPAction, StringComparison.OrdinalIgnoreCase))
                {
                    MPAction edit = new MPAction();
                    if (edit.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixSendMPAction + edit.CommandString;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextSendMPMsg, StringComparison.OrdinalIgnoreCase))
                {
                    MPMessage edit = new MPMessage();
                    if (edit.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixSendMPMsg + edit.CommandString;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextVirtualKB, StringComparison.OrdinalIgnoreCase))
                {
                    newCommand = IrssUtils.Common.CmdPrefixVirtualKB;
                }
                else if (selected.Equals(IrssUtils.Common.UITextSmsKB, StringComparison.OrdinalIgnoreCase))
                {
                    newCommand = IrssUtils.Common.CmdPrefixSmsKB;
                }
                else if (selected.Equals(IrssUtils.Common.UITextBeep, StringComparison.OrdinalIgnoreCase))
                {
                    BeepCommand beepCommand = new BeepCommand();
                    if (beepCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixBeep + beepCommand.CommandString;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextSound, StringComparison.OrdinalIgnoreCase))
                {
                    OpenFileDialog openFileDialog = new OpenFileDialog();
                    openFileDialog.Filter      = "Wave Files|*.wav";
                    openFileDialog.Multiselect = false;

                    if (openFileDialog.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixSound + openFileDialog.FileName;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextDisplayMode, StringComparison.OrdinalIgnoreCase))
                {
                    DisplayModeCommand displayModeCommand = new DisplayModeCommand();
                    if (displayModeCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixDisplayMode + displayModeCommand.CommandString;
                    }
                }
                else if (selected.Equals(IrssUtils.Common.UITextStandby, StringComparison.OrdinalIgnoreCase))
                {
                    newCommand = IrssUtils.Common.CmdPrefixStandby;
                }
                else if (selected.Equals(IrssUtils.Common.UITextHibernate, StringComparison.OrdinalIgnoreCase))
                {
                    newCommand = IrssUtils.Common.CmdPrefixHibernate;
                }
                else if (selected.Equals(IrssUtils.Common.UITextReboot, StringComparison.OrdinalIgnoreCase))
                {
                    newCommand = IrssUtils.Common.CmdPrefixReboot;
                }
                else if (selected.Equals(IrssUtils.Common.UITextShutdown, StringComparison.OrdinalIgnoreCase))
                {
                    newCommand = IrssUtils.Common.CmdPrefixShutdown;
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase))
                {
                    BlastCommand blastCommand = new BlastCommand(
                        MPControlPlugin.BlastIR,
                        IrssUtils.Common.FolderIRCommands,
                        MPControlPlugin.TransceiverInformation.Ports,
                        selected.Substring(IrssUtils.Common.CmdPrefixBlast.Length));

                    if (blastCommand.ShowDialog(this) == DialogResult.OK)
                    {
                        newCommand = IrssUtils.Common.CmdPrefixBlast + blastCommand.CommandString;
                    }
                }
                else if (selected.StartsWith(IrssUtils.Common.CmdPrefixMacro, StringComparison.OrdinalIgnoreCase))
                {
                    newCommand = selected;
                }
                else
                {
                    throw new CommandStructureException(String.Format("Unknown command in macro command list \"{0}\"", selected));
                }

                if (!String.IsNullOrEmpty(newCommand))
                {
                    listBoxMacro.Items.Add(newCommand);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                MessageBox.Show(this, ex.Message, "Failed to add macro command", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }