/// <summary> /// Saves the settings. /// </summary> public static void SaveSettings(Config config) { Debug.WriteLine("SaveSettings()"); XmlSerializer ser = new XmlSerializer(typeof (Config)); FileStream str = new FileStream(ConfigurationFile, FileMode.Create); try { ser.Serialize(str, config); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); } str.Close(); }
/// <summary> /// Loads the settings. /// </summary> public static void LoadSettings(ref Config config) { IrssLog.Info("LoadSettings()"); XmlSerializer ser = new XmlSerializer(typeof (Config)); StreamReader sr = new StreamReader(ConfigurationFile); try { config = (Config) ser.Deserialize(sr); } catch (Exception ex) { IrssLog.Error(ex.ToString()); config = new Config(); } sr.Close(); }
/// <summary> /// Loads the settings. /// </summary> public static void LoadSettings(ref Config config) { Debug.WriteLine("LoadSettings()"); XmlSerializer ser = new XmlSerializer(typeof (Config)); StreamReader sr = null; try { sr = new StreamReader(ConfigurationFile); config = (Config)ser.Deserialize(sr); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); config = new Config(); } if (sr != null) sr.Close(); }
/// <summary> /// Configure the IR Server plugin. /// </summary> public void Configure(IWin32Window owner) { Debug.WriteLine("Configure()"); _config = new Config(); ConfigManagement.LoadSettings(ref _config); ConfigurationDialog configDialog = new ConfigurationDialog(); configDialog.DoRepeats = _config.DoRepeats; configDialog.UseSystemRatesDelay = _config.UseSystemRatesDelay; configDialog.FirstRepeatDelay = _config.FirstRepeatDelay; configDialog.HeldRepeatDelay = _config.HeldRepeatDelay; if (configDialog.ShowDialog(owner) == DialogResult.OK) { _config.DoRepeats = configDialog.DoRepeats; _config.UseSystemRatesDelay = configDialog.UseSystemRatesDelay; _config.FirstRepeatDelay = configDialog.FirstRepeatDelay; _config.HeldRepeatDelay = configDialog.HeldRepeatDelay; ConfigManagement.SaveSettings(_config); } Debug.WriteLine("Configure(): Completed"); }
/// <summary> /// Loads the settings. Still using old code to prevent breaking existing setting-files /// </summary> public static void LoadSettings(ref Config config) { #if !TEST_APPLICATION IrssLog.Info("LoadSettings()"); #endif //XmlSerializer ser = new XmlSerializer(typeof (Config)); //StreamReader sr = new StreamReader(ConfigurationFile); //try //{ // config = (Config) ser.Deserialize(sr); //} //catch (Exception ex) //{ // IrssLog.Error(ex.ToString()); // config = new Config(); //} //sr.Close(); XmlDocument doc = new XmlDocument(); try { doc.Load(ConfigurationFile); } catch { return; } try { config.LearnTimeout = int.Parse(doc.DocumentElement.Attributes["LearnTimeout"].Value, CultureInfo.InvariantCulture); } catch { } try { config._disableMceServices = bool.Parse(doc.DocumentElement.Attributes["DisableMceServices"].Value); } catch { } try { config.EnableRemoteInput = bool.Parse(doc.DocumentElement.Attributes["EnableRemoteInput"].Value); } catch { } try { config.UseSystemRatesRemote = bool.Parse(doc.DocumentElement.Attributes["UseSystemRatesRemote"].Value); } catch { } try { config.RemoteFirstRepeat = int.Parse(doc.DocumentElement.Attributes["RemoteFirstRepeat"].Value, CultureInfo.InvariantCulture); } catch { } try { config.RemoteHeldRepeats = int.Parse(doc.DocumentElement.Attributes["RemoteHeldRepeats"].Value, CultureInfo.InvariantCulture); } catch { } try { config._disableAutomaticButtons = bool.Parse(doc.DocumentElement.Attributes["DisableAutomaticButtons"].Value); } catch { } try { config.EnableKeyboardInput = bool.Parse(doc.DocumentElement.Attributes["EnableKeyboardInput"].Value); } catch { } try { config.UseSystemRatesKeyboard = bool.Parse(doc.DocumentElement.Attributes["UseSystemRatesKeyboard"].Value); } catch { } try { config.KeyboardFirstRepeat = int.Parse(doc.DocumentElement.Attributes["KeyboardFirstRepeat"].Value, CultureInfo.InvariantCulture); } catch { } try { config.KeyboardHeldRepeats = int.Parse(doc.DocumentElement.Attributes["KeyboardHeldRepeats"].Value, CultureInfo.InvariantCulture); } catch { } try { config.HandleKeyboardLocally = bool.Parse(doc.DocumentElement.Attributes["HandleKeyboardLocally"].Value); } catch { } try { config.UseQwertzLayout = bool.Parse(doc.DocumentElement.Attributes["UseQwertzLayout"].Value); } catch { } try { config.EnableMouseInput = bool.Parse(doc.DocumentElement.Attributes["EnableMouseInput"].Value); } catch { } try { config.HandleMouseLocally = bool.Parse(doc.DocumentElement.Attributes["HandleMouseLocally"].Value); } catch { } try { config.MouseSensitivity = double.Parse(doc.DocumentElement.Attributes["MouseSensitivity"].Value, CultureInfo.InvariantCulture); } catch { } }
/// <summary> /// Saves the settings. Still using old code to prevent breaking existing setting-files /// </summary> public static void SaveSettings(Config config) { #if !TEST_APPLICATION IrssLog.Info("SaveSettings()"); #endif //XmlSerializer ser = new XmlSerializer(typeof(Config)); //FileStream str = new FileStream(ConfigurationFile, FileMode.Create); //try //{ // ser.Serialize(str, config); //} //catch (Exception ex) //{ // IrssLog.Error(ex.ToString()); //} //str.Close(); try { using (XmlTextWriter writer = new XmlTextWriter(ConfigurationFile, Encoding.UTF8)) { writer.Formatting = Formatting.Indented; writer.Indentation = 1; writer.IndentChar = (char)9; writer.WriteStartDocument(true); writer.WriteStartElement("settings"); // <settings> writer.WriteAttributeString("LearnTimeout", config.LearnTimeout.ToString(CultureInfo.InvariantCulture)); writer.WriteAttributeString("DisableMceServices", config._disableMceServices.ToString()); writer.WriteAttributeString("EnableRemoteInput", config.EnableRemoteInput.ToString()); writer.WriteAttributeString("UseSystemRatesRemote", config.UseSystemRatesRemote.ToString()); writer.WriteAttributeString("RemoteFirstRepeat", config.RemoteFirstRepeat.ToString(CultureInfo.InvariantCulture)); writer.WriteAttributeString("RemoteHeldRepeats", config.RemoteHeldRepeats.ToString(CultureInfo.InvariantCulture)); writer.WriteAttributeString("DisableAutomaticButtons", config._disableAutomaticButtons.ToString()); writer.WriteAttributeString("EnableKeyboardInput", config.EnableKeyboardInput.ToString()); writer.WriteAttributeString("UseSystemRatesKeyboard", config.UseSystemRatesKeyboard.ToString()); writer.WriteAttributeString("KeyboardFirstRepeat", config.KeyboardFirstRepeat.ToString(CultureInfo.InvariantCulture)); writer.WriteAttributeString("KeyboardHeldRepeats", config.KeyboardHeldRepeats.ToString(CultureInfo.InvariantCulture)); writer.WriteAttributeString("HandleKeyboardLocally", config.HandleKeyboardLocally.ToString()); writer.WriteAttributeString("UseQwertzLayout", config.UseQwertzLayout.ToString()); writer.WriteAttributeString("EnableMouseInput", config.EnableMouseInput.ToString()); writer.WriteAttributeString("HandleMouseLocally", config.HandleMouseLocally.ToString()); writer.WriteAttributeString("MouseSensitivity", config.MouseSensitivity.ToString(CultureInfo.InvariantCulture)); writer.WriteEndElement(); // </settings> writer.WriteEndDocument(); } } #if TRACE catch (Exception ex) { Trace.WriteLine(ex.ToString()); } #else catch { } #endif }
/// <summary> /// Configure the IR Server plugin. /// </summary> public void Configure(IWin32Window owner) { _config = new Config(); ConfigManagement.LoadSettings(ref _config); ConfigurationDialog configDialog = new ConfigurationDialog(); configDialog.LearnTimeout = _config.LearnTimeout; configDialog.DisableMceServices = _config._disableMceServices; configDialog.EnableRemote = _config.EnableRemoteInput; configDialog.UseSystemRatesForRemote = _config.UseSystemRatesRemote; configDialog.RemoteRepeatDelay = _config.RemoteFirstRepeat; configDialog.RemoteHeldDelay = _config.RemoteHeldRepeats; configDialog.DisableAutomaticButtons = _config._disableAutomaticButtons; configDialog.EnableKeyboard = _config.EnableKeyboardInput; configDialog.UseSystemRatesForKeyboard = _config.UseSystemRatesKeyboard; configDialog.KeyboardRepeatDelay = _config.KeyboardFirstRepeat; configDialog.KeyboardHeldDelay = _config.KeyboardHeldRepeats; configDialog.HandleKeyboardLocal = _config.HandleKeyboardLocally; configDialog.UseQwertzLayout = _config.UseQwertzLayout; configDialog.EnableMouse = _config.EnableMouseInput; configDialog.HandleMouseLocal = _config.HandleMouseLocally; configDialog.MouseSensitivity = _config.MouseSensitivity; if (configDialog.ShowDialog(owner) == DialogResult.OK) { _config.LearnTimeout = configDialog.LearnTimeout; _config._disableMceServices = configDialog.DisableMceServices; _config.EnableRemoteInput = configDialog.EnableRemote; _config.UseSystemRatesRemote = configDialog.UseSystemRatesForRemote; _config.RemoteFirstRepeat = configDialog.RemoteRepeatDelay; _config.RemoteHeldRepeats = configDialog.RemoteHeldDelay; _config._disableAutomaticButtons = configDialog.DisableAutomaticButtons; _config.EnableKeyboardInput = configDialog.EnableKeyboard; _config.UseSystemRatesKeyboard = configDialog.UseSystemRatesForKeyboard; _config.KeyboardFirstRepeat = configDialog.KeyboardRepeatDelay; _config.KeyboardHeldRepeats = configDialog.KeyboardHeldDelay; _config.HandleKeyboardLocally = configDialog.HandleKeyboardLocal; _config.EnableMouseInput = configDialog.EnableMouse; _config.HandleMouseLocally = configDialog.HandleMouseLocal; _config.MouseSensitivity = configDialog.MouseSensitivity; ConfigManagement.SaveSettings(_config); } }
/// <summary> /// Start the IR Server plugin. /// </summary> /// <returns><c>true</c> if successful, otherwise <c>false</c>.</returns> public override void Start() { #if TRACE Trace.WriteLine("Start MicrosoftMceTransceiver"); #endif if (_driver != null) throw new InvalidOperationException("MicrosoftMceTransceiver already started"); _config = new Config(); ConfigManagement.LoadSettings(ref _config); // Put this in a try...catch so that if the registry keys don't exist we don't throw an ugly exception. try { _ignoreAutomaticButtons = CheckAutomaticButtons(); } catch { _ignoreAutomaticButtons = false; } if (_config._disableMceServices) DisableMceServices(); Guid deviceGuid; string devicePath; Driver newDriver = null; if (FindDevice(out deviceGuid, out devicePath)) { if (deviceGuid == MicrosoftGuid) { if (Environment.OSVersion.Version.Major >= VistaVersionNumber) newDriver = new DriverVista(deviceGuid, devicePath, RemoteEvent, KeyboardEvent, MouseEvent); else newDriver = new DriverXP(deviceGuid, devicePath, RemoteEvent, KeyboardEvent, MouseEvent); } else { newDriver = new DriverReplacement(deviceGuid, devicePath, RemoteEvent, KeyboardEvent, MouseEvent); } } else { throw new InvalidOperationException("Device not found"); } newDriver.Start(); _driver = newDriver; }
/// <summary> /// Configure the IR Server plugin. /// </summary> public void Configure(IWin32Window owner) { LoadSettings(); Config config = new Config(); config.PluginFolder = _pluginFolder; config.PluginFile = _pluginFile; if (config.ShowDialog(owner) == DialogResult.OK) { _pluginFolder = config.PluginFolder; _pluginFile = config.PluginFile; SaveSettings(); } }
/// <summary> /// Start the IR Server plugin. /// </summary> /// <returns>true if successful, otherwise false.</returns> public override void Start() { _config = new Config(); ConfigManagement.LoadSettings(ref _config); RegisterDeviceNotification(); StartListener(); }
/// <summary> /// Configure the IR Server plugin. /// </summary> public void Configure(IWin32Window owner) { _config = new Config(); ConfigManagement.LoadSettings(ref _config); InitDeviceList(); ConfigurationDialog configDialog = new ConfigurationDialog(_deviceList); configDialog.DeviceGuid = _config.DeviceGUID; configDialog.AxisLimit = _config.AxisLimit; if (configDialog.ShowDialog(owner) == DialogResult.OK) { if (!String.IsNullOrEmpty(configDialog.DeviceGuid)) { _config.DeviceGUID = configDialog.DeviceGuid; _config.AxisLimit = configDialog.AxisLimit; ConfigManagement.SaveSettings(_config); } } }
/// <summary> /// Start the receiver. /// </summary> private void Start_Receiver() { Debug.Open("Philips MCE USB IR Receiver- Spinel plus.log"); Debug.WriteLine("Start_Receiver()"); _config = new Config(); ConfigManagement.LoadSettings(ref _config); _firstRepeatDelay = _config.FirstRepeatDelay; _heldRepeatDelay = _config.HeldRepeatDelay; if (_config.UseSystemRatesDelay) { _firstRepeatDelay = 250 + (SystemInformation.KeyboardDelay*250); _heldRepeatDelay = (int) (1000.0/(2.5 + (SystemInformation.KeyboardSpeed*0.888))); } // create receiver Window _receiverWindow = new ReceiverWindow("Philips MCE USB IR Receiver- Spinel plus Receiver"); _receiverWindow.ProcMsg += ProcMessage; // collect devices _deviceList = new List<RawInput.RAWINPUTDEVICE>(); RawInput.RAWINPUTDEVICE _device; foreach (Device device in supportedDevices) { foreach (DeviceDetails details in device.DeviceDetails) { _device = new RawInput.RAWINPUTDEVICE(); _device.usUsage = details.Usage; _device.usUsagePage = details.UsagePage; _device.dwFlags = RawInput.RawInputDeviceFlags.InputSink; _device.hwndTarget = _receiverWindow.Handle; _deviceList.Add(_device); } } if (!RegisterForRawInput(_deviceList.ToArray())) { Debug.WriteLine("ERROR: Failed to register for HID Raw input"); throw new InvalidOperationException("Failed to register for HID Raw input"); } Debug.WriteLine("Start_Receiver(): completed"); }