/// <summary>
    /// Configure the IR Server plugin.
    /// </summary>
    public void Configure(IWin32Window owner)
    {
      LoadSettings();

      Configure config = new Configure();

      config.DeviceIndex = _midiIndex;

      if (config.ShowDialog(owner) == DialogResult.OK)
      {
        _midiIndex = config.DeviceIndex;

        SaveSettings();
      }
    }
    /// <summary>
    /// Configure the IR Server plugin.
    /// </summary>
    public void Configure(IWin32Window owner)
    {
      LoadSettings();

      Configure config = new Configure();

      config.ServerAddress = _irTransServerAddress;
      config.ServerPort = _irTransServerPort;
      config.RemoteModel = _irTransRemoteModel;

      if (config.ShowDialog(owner) == DialogResult.OK)
      {
        _irTransServerAddress = config.ServerAddress;
        _irTransServerPort = config.ServerPort;
        _irTransRemoteModel = config.RemoteModel;

        SaveSettings();
      }
    }
    /// <summary>
    /// Configure the IR Server plugin.
    /// </summary>
    public void Configure(IWin32Window owner)
    {
      LoadSettings();

      Configure config = new Configure();

      config.RepeatDelay = _repeatDelay;
      config.CommPort = _serialPortName;

      if (config.ShowDialog(owner) == DialogResult.OK)
      {
        _repeatDelay = config.RepeatDelay;
        _serialPortName = config.CommPort;

        SaveSettings();
      }
    }
    /// <summary>
    /// Configure the IR Server plugin.
    /// </summary>
    public void Configure(IWin32Window owner)
    {
      LoadSettings();

      Configure config = new Configure();

      config.RepeatDelay = _repeatDelay;
      config.BlastRepeats = _blastRepeats;
      config.LearnTimeout = _learnTimeout;

      if (config.ShowDialog(owner) == DialogResult.OK)
      {
        _repeatDelay = config.RepeatDelay;
        _blastRepeats = config.BlastRepeats;
        _learnTimeout = config.LearnTimeout;

        SaveSettings();
      }
    }
    /// <summary>
    /// Configure the IR Server plugin.
    /// </summary>
    /// <param name="owner">The owner window to use for creating modal dialogs.</param>
    public void Configure(IWin32Window owner)
    {
      LoadSettings();

      Configure config = new Configure();

      config.UseChannelControl = useChannelControl;
      config.ChannelNumber = channelNumber;
      config.X10Transceiver = this;
      if (config.ShowDialog(owner) == DialogResult.OK)
      {
        useChannelControl = config.UseChannelControl;
        channelNumber = config.ChannelNumber;
        SaveSettings();
      }
    }
    /// <summary>
    /// Configure the IR Server plugin.
    /// </summary>
    public void Configure(IWin32Window owner)
    {
      LoadSettings();

      Configure config = new Configure();

      config.ServerIP = _serverIP;
      config.ServerPort = _serverPort;
      config.StartServer = _startServer;
      config.ServerPath = _serverPath;
      config.ButtonReleaseTime = _buttonReleaseTime;
      config.RepeatDelay = _repeatDelay;

      if (config.ShowDialog(owner) == DialogResult.OK)
      {
        _serverIP = config.ServerIP;
        _serverPort = config.ServerPort;
        _startServer = config.StartServer;
        _serverPath = config.ServerPath;
        _buttonReleaseTime = config.ButtonReleaseTime;
        _repeatDelay = config.RepeatDelay;
        SaveSettings();
      }
    }
    /// <summary>
    /// Configure the IR Server plugin.
    /// </summary>
    /// <param name="owner">The owner window to use for creating modal dialogs.</param>
    public void Configure(IWin32Window owner)
    {
      LoadSettings();

      Configure config = new Configure { DeviceName = _deviceName };
      if (config.ShowDialog(owner) == DialogResult.OK)
      {
        _deviceName = config.DeviceName;
        SaveSettings();
        Stop();
        Start();
      }

    }
    /// <summary>
    /// Configure the IR Server plugin.
    /// </summary>
    public void Configure(IWin32Window owner)
    {
      LoadSettings();

      Configure config = new Configure();

      config.MessageType = _messageType;
      config.WParam = _wParam;

      if (config.ShowDialog(owner) == DialogResult.OK)
      {
        _messageType = config.MessageType;
        _wParam = config.WParam;

        SaveSettings();
      }
    }
    /// <summary>
    /// Configure the IR Server plugin.
    /// </summary>
    public void Configure(IWin32Window owner)
    {
      LoadSettings();

      Configure config = new Configure();
      config.CommPort = _serialPortName;
      config.BlasterMode = _blastMode;

      if (config.ShowDialog(owner) == DialogResult.OK)
      {
        _serialPortName = config.CommPort;
        _blastMode = config.BlasterMode;

        SaveSettings();
      }
    }
    /// <summary>
    /// Configure the IR Server plugin.
    /// </summary>
    public void Configure(IWin32Window owner)
    {
      LoadSettings();

      InitDeviceList();

      Configure config = new Configure(_deviceList);
      config.DeviceGuid = _selectedDeviceGUID;

      if (config.ShowDialog(owner) == DialogResult.OK)
      {
        if (!String.IsNullOrEmpty(config.DeviceGuid))
        {
          _selectedDeviceGUID = config.DeviceGuid;
          SaveSettings();
        }
      }
    }
    /// <summary>
    /// Configure the IR Server plugin.
    /// </summary>
    /// <param name="owner">The owner window to use for creating modal dialogs.</param>
    public void Configure(IWin32Window owner)
    {
      LoadSettings();

      Configure config = new Configure();

      config.RepeatDelay = _repeatDelay;

      if (config.ShowDialog(owner) == DialogResult.OK)
      {
        _repeatDelay = config.RepeatDelay;

        SaveSettings();
      }
    }