From: <an...@us...> - 2007-11-05 05:22:02
|
Revision: 1028 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1028&view=rev Author: and-81 Date: 2007-11-04 21:21:59 -0800 (Sun, 04 Nov 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.Designer.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.Designer.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.resx trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Applications/Translator/Properties/Resources.Designer.cs trunk/plugins/IR Server Suite/Applications/Translator/Properties/Resources.resx trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Win32.cs trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/DeviceSelect.cs trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/RawInput.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Windows Message Receiver.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/SetupForm.Designer.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/SetupForm.Designer.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/SetupForm.Designer.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/PluginSetup.Designer.cs Added Paths: ----------- trunk/plugins/IR Server Suite/Applications/Translator/Default Settings/ trunk/plugins/IR Server Suite/Applications/Translator/Default Settings/Default.xml trunk/plugins/IR Server Suite/Applications/Translator/Graphics/DeleteAll.png trunk/plugins/IR Server Suite/Applications/Translator/Graphics/NoIcon.png Modified: trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs 2007-11-04 18:16:22 UTC (rev 1027) +++ trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs 2007-11-05 05:21:59 UTC (rev 1028) @@ -124,14 +124,14 @@ } catch (FileNotFoundException) { - IrssLog.Warn("No configuration file found ({0}), using default configuration", fileName); - return new Configuration(); + IrssLog.Warn("No configuration file found ({0}), creating new configuration", fileName); } catch (Exception ex) { IrssLog.Error(ex.ToString()); - return null; } + + return null; } #endregion Static Methods Modified: trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs 2007-11-04 18:16:22 UTC (rev 1027) +++ trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs 2007-11-05 05:21:59 UTC (rev 1028) @@ -13,25 +13,30 @@ #region Constants - static readonly string CopyDataTarget = "Translator CopyData Target"; + /// <summary> + /// Window name for CopyData messages. + /// </summary> + public const string CopyDataTarget = "Translator CopyData Target"; - const int CopyDataID = 24; + /// <summary> + /// Data value for CopyData messages. + /// </summary> + public const int CopyDataID = 24; #endregion Constants #region Constructor / Destructor /// <summary> - /// Initializes a new instance of the <see cref="NotifyWindow"/> class. + /// Initializes a new instance of the <see cref="CopyDataWM"/> class. /// </summary> public CopyDataWM() { - Create(); } /// <summary> /// Releases unmanaged resources and performs other cleanup operations before the - /// <see cref="NotifyWindow"/> is reclaimed by garbage collection. + /// <see cref="CopyDataWM"/> is reclaimed by garbage collection. /// </summary> ~CopyDataWM() { @@ -65,7 +70,7 @@ { // Dispose managed resources ... - Destroy(); + Stop(); } // Free native resources ... @@ -74,26 +79,26 @@ #endregion IDisposable Members #region Methods - - void Create() + + public bool Start() { if (Handle != IntPtr.Zero) - return; + return false; - CreateParams Params = new CreateParams(); - Params.ExStyle = 0x80; - Params.Style = unchecked((int)0x80000000); - Params.Caption = CopyDataTarget; + CreateParams createParams = new CreateParams(); + createParams.Caption = "Test"; + createParams.ExStyle = 0x80; + createParams.Style = unchecked((int)0x80000000); - CreateHandle(Params); + CreateHandle(createParams); + + return (Handle != IntPtr.Zero); } - void Destroy() + public void Stop() { - if (Handle == IntPtr.Zero) - return; - - DestroyHandle(); + if (Handle != IntPtr.Zero) + DestroyHandle(); } #endregion Methods @@ -128,11 +133,13 @@ IrssLog.Error("Error processing WM_COPYDATA message: {0}", ex.ToString()); } } + + base.WndProc(ref m); } #endregion Overrides - internal static void SendCopyDataMessage(string data) + public static void SendCopyDataMessage(string data) { Win32.COPYDATASTRUCT copyData; Added: trunk/plugins/IR Server Suite/Applications/Translator/Default Settings/Default.xml =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Default Settings/Default.xml (rev 0) +++ trunk/plugins/IR Server Suite/Applications/Translator/Default Settings/Default.xml 2007-11-05 05:21:59 UTC (rev 1028) @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <ServerHost>localhost</ServerHost> + <SystemWideMappings /> + <Programs> + <ProgramSettings Name="MediaPortal" Filename="C:\Program Files\Team MediaPortal\MediaPortal\MediaPortal.exe" Folder="C:\Program Files\Team MediaPortal\MediaPortal" Arguments="" UseShellExecute="false" ForceWindowFocus="false" IgnoreSystemWide="true" WindowState="Normal"> + <ButtonMappings /> + </ProgramSettings> + </Programs> + <Events /> +</Configuration> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.Designer.cs 2007-11-04 18:16:22 UTC (rev 1027) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.Designer.cs 2007-11-05 05:21:59 UTC (rev 1028) @@ -65,6 +65,7 @@ this.textBoxApp = new System.Windows.Forms.TextBox(); this.tabPageSerial = new System.Windows.Forms.TabPage(); this.groupBoxPortSetup = new System.Windows.Forms.GroupBox(); + this.checkBoxWaitForResponse = new System.Windows.Forms.CheckBox(); this.comboBoxComPort = new System.Windows.Forms.ComboBox(); this.comboBoxStopBits = new System.Windows.Forms.ComboBox(); this.labelStopBits = new System.Windows.Forms.Label(); @@ -175,7 +176,6 @@ this.buttonCancel = new System.Windows.Forms.Button(); this.buttonOK = new System.Windows.Forms.Button(); this.toolTips = new System.Windows.Forms.ToolTip(this.components); - this.checkBoxWaitForResponse = new System.Windows.Forms.CheckBox(); this.groupBoxButton.SuspendLayout(); this.groupBoxSet.SuspendLayout(); this.tabControl.SuspendLayout(); @@ -280,6 +280,7 @@ // this.textBoxCommand.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxCommand.BackColor = System.Drawing.SystemColors.Info; this.textBoxCommand.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.textBoxCommand.Location = new System.Drawing.Point(64, 264); this.textBoxCommand.Name = "textBoxCommand"; @@ -617,6 +618,16 @@ this.groupBoxPortSetup.TabStop = false; this.groupBoxPortSetup.Text = "Port setup"; // + // checkBoxWaitForResponse + // + this.checkBoxWaitForResponse.Location = new System.Drawing.Point(232, 88); + this.checkBoxWaitForResponse.Name = "checkBoxWaitForResponse"; + this.checkBoxWaitForResponse.Size = new System.Drawing.Size(176, 21); + this.checkBoxWaitForResponse.TabIndex = 10; + this.checkBoxWaitForResponse.Text = "Wait for response"; + this.toolTips.SetToolTip(this.checkBoxWaitForResponse, "Wait up to 5 seconds for a response after the command has been sent"); + this.checkBoxWaitForResponse.UseVisualStyleBackColor = true; + // // comboBoxComPort // this.comboBoxComPort.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; @@ -1006,52 +1017,52 @@ this.toolStripSeparator2, this.specialKeysToolStripMenuItem}); this.contextMenuStripKeystrokes.Name = "contextMenuStripKeystrokes"; - this.contextMenuStripKeystrokes.Size = new System.Drawing.Size(139, 148); + this.contextMenuStripKeystrokes.Size = new System.Drawing.Size(145, 148); // // cutToolStripMenuItem // this.cutToolStripMenuItem.Name = "cutToolStripMenuItem"; - this.cutToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.cutToolStripMenuItem.Size = new System.Drawing.Size(144, 22); this.cutToolStripMenuItem.Text = "Cut"; this.cutToolStripMenuItem.Click += new System.EventHandler(this.cutToolStripMenuItem_Click); // // copyToolStripMenuItem // this.copyToolStripMenuItem.Name = "copyToolStripMenuItem"; - this.copyToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.copyToolStripMenuItem.Size = new System.Drawing.Size(144, 22); this.copyToolStripMenuItem.Text = "Copy"; this.copyToolStripMenuItem.Click += new System.EventHandler(this.copyToolStripMenuItem_Click); // // pasteToolStripMenuItem // this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem"; - this.pasteToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.pasteToolStripMenuItem.Size = new System.Drawing.Size(144, 22); this.pasteToolStripMenuItem.Text = "Paste"; this.pasteToolStripMenuItem.Click += new System.EventHandler(this.pasteToolStripMenuItem_Click); // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(135, 6); + this.toolStripSeparator1.Size = new System.Drawing.Size(141, 6); // // selectAllToolStripMenuItem // this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem"; - this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(144, 22); this.selectAllToolStripMenuItem.Text = "Select All"; this.selectAllToolStripMenuItem.Click += new System.EventHandler(this.selectAllToolStripMenuItem_Click); // // selectNoneToolStripMenuItem // this.selectNoneToolStripMenuItem.Name = "selectNoneToolStripMenuItem"; - this.selectNoneToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.selectNoneToolStripMenuItem.Size = new System.Drawing.Size(144, 22); this.selectNoneToolStripMenuItem.Text = "Select None"; this.selectNoneToolStripMenuItem.Click += new System.EventHandler(this.selectNoneToolStripMenuItem_Click); // // toolStripSeparator2 // this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(135, 6); + this.toolStripSeparator2.Size = new System.Drawing.Size(141, 6); // // specialKeysToolStripMenuItem // @@ -1077,7 +1088,7 @@ this.scrollLockToolStripMenuItem, this.tabToolStripMenuItem}); this.specialKeysToolStripMenuItem.Name = "specialKeysToolStripMenuItem"; - this.specialKeysToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.specialKeysToolStripMenuItem.Size = new System.Drawing.Size(144, 22); this.specialKeysToolStripMenuItem.Text = "Special Keys"; // // arrowsToolStripMenuItem @@ -1088,34 +1099,34 @@ this.leftToolStripMenuItem, this.rightToolStripMenuItem}); this.arrowsToolStripMenuItem.Name = "arrowsToolStripMenuItem"; - this.arrowsToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.arrowsToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.arrowsToolStripMenuItem.Text = "Arrows"; // // upToolStripMenuItem // this.upToolStripMenuItem.Name = "upToolStripMenuItem"; - this.upToolStripMenuItem.Size = new System.Drawing.Size(105, 22); + this.upToolStripMenuItem.Size = new System.Drawing.Size(112, 22); this.upToolStripMenuItem.Text = "Up"; this.upToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // downToolStripMenuItem // this.downToolStripMenuItem.Name = "downToolStripMenuItem"; - this.downToolStripMenuItem.Size = new System.Drawing.Size(105, 22); + this.downToolStripMenuItem.Size = new System.Drawing.Size(112, 22); this.downToolStripMenuItem.Text = "Down"; this.downToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // leftToolStripMenuItem // this.leftToolStripMenuItem.Name = "leftToolStripMenuItem"; - this.leftToolStripMenuItem.Size = new System.Drawing.Size(105, 22); + this.leftToolStripMenuItem.Size = new System.Drawing.Size(112, 22); this.leftToolStripMenuItem.Text = "Left"; this.leftToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // rightToolStripMenuItem // this.rightToolStripMenuItem.Name = "rightToolStripMenuItem"; - this.rightToolStripMenuItem.Size = new System.Drawing.Size(105, 22); + this.rightToolStripMenuItem.Size = new System.Drawing.Size(112, 22); this.rightToolStripMenuItem.Text = "Right"; this.rightToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // @@ -1139,118 +1150,118 @@ this.f15ToolStripMenuItem, this.f16ToolStripMenuItem}); this.functionKeysToolStripMenuItem.Name = "functionKeysToolStripMenuItem"; - this.functionKeysToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.functionKeysToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.functionKeysToolStripMenuItem.Text = "Function Keys"; // // f1ToolStripMenuItem // this.f1ToolStripMenuItem.Name = "f1ToolStripMenuItem"; - this.f1ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f1ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f1ToolStripMenuItem.Text = "F1"; this.f1ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // f2ToolStripMenuItem // this.f2ToolStripMenuItem.Name = "f2ToolStripMenuItem"; - this.f2ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f2ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f2ToolStripMenuItem.Text = "F2"; this.f2ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // f3ToolStripMenuItem // this.f3ToolStripMenuItem.Name = "f3ToolStripMenuItem"; - this.f3ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f3ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f3ToolStripMenuItem.Text = "F3"; this.f3ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // f4ToolStripMenuItem // this.f4ToolStripMenuItem.Name = "f4ToolStripMenuItem"; - this.f4ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f4ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f4ToolStripMenuItem.Text = "F4"; this.f4ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // f5ToolStripMenuItem // this.f5ToolStripMenuItem.Name = "f5ToolStripMenuItem"; - this.f5ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f5ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f5ToolStripMenuItem.Text = "F5"; this.f5ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // f6ToolStripMenuItem // this.f6ToolStripMenuItem.Name = "f6ToolStripMenuItem"; - this.f6ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f6ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f6ToolStripMenuItem.Text = "F6"; this.f6ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // f7ToolStripMenuItem // this.f7ToolStripMenuItem.Name = "f7ToolStripMenuItem"; - this.f7ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f7ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f7ToolStripMenuItem.Text = "F7"; this.f7ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // f8ToolStripMenuItem // this.f8ToolStripMenuItem.Name = "f8ToolStripMenuItem"; - this.f8ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f8ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f8ToolStripMenuItem.Text = "F8"; this.f8ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // f9ToolStripMenuItem // this.f9ToolStripMenuItem.Name = "f9ToolStripMenuItem"; - this.f9ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f9ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f9ToolStripMenuItem.Text = "F9"; this.f9ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // f10ToolStripMenuItem // this.f10ToolStripMenuItem.Name = "f10ToolStripMenuItem"; - this.f10ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f10ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f10ToolStripMenuItem.Text = "F10"; this.f10ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // f11ToolStripMenuItem // this.f11ToolStripMenuItem.Name = "f11ToolStripMenuItem"; - this.f11ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f11ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f11ToolStripMenuItem.Text = "F11"; this.f11ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // f12ToolStripMenuItem // this.f12ToolStripMenuItem.Name = "f12ToolStripMenuItem"; - this.f12ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f12ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f12ToolStripMenuItem.Text = "F12"; this.f12ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // f13ToolStripMenuItem // this.f13ToolStripMenuItem.Name = "f13ToolStripMenuItem"; - this.f13ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f13ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f13ToolStripMenuItem.Text = "F13"; this.f13ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // f14ToolStripMenuItem // this.f14ToolStripMenuItem.Name = "f14ToolStripMenuItem"; - this.f14ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f14ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f14ToolStripMenuItem.Text = "F14"; this.f14ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // f15ToolStripMenuItem // this.f15ToolStripMenuItem.Name = "f15ToolStripMenuItem"; - this.f15ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f15ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f15ToolStripMenuItem.Text = "F15"; this.f15ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // f16ToolStripMenuItem // this.f16ToolStripMenuItem.Name = "f16ToolStripMenuItem"; - this.f16ToolStripMenuItem.Size = new System.Drawing.Size(92, 22); + this.f16ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.f16ToolStripMenuItem.Text = "F16"; this.f16ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // @@ -1262,34 +1273,34 @@ this.multiplyToolStripMenuItem, this.divideToolStripMenuItem}); this.keypadToolStripMenuItem.Name = "keypadToolStripMenuItem"; - this.keypadToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.keypadToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.keypadToolStripMenuItem.Text = "Keypad"; // // addToolStripMenuItem // this.addToolStripMenuItem.Name = "addToolStripMenuItem"; - this.addToolStripMenuItem.Size = new System.Drawing.Size(118, 22); + this.addToolStripMenuItem.Size = new System.Drawing.Size(126, 22); this.addToolStripMenuItem.Text = "Add"; this.addToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // subtractToolStripMenuItem // this.subtractToolStripMenuItem.Name = "subtractToolStripMenuItem"; - this.subtractToolStripMenuItem.Size = new System.Drawing.Size(118, 22); + this.subtractToolStripMenuItem.Size = new System.Drawing.Size(126, 22); this.subtractToolStripMenuItem.Text = "Subtract"; this.subtractToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // multiplyToolStripMenuItem // this.multiplyToolStripMenuItem.Name = "multiplyToolStripMenuItem"; - this.multiplyToolStripMenuItem.Size = new System.Drawing.Size(118, 22); + this.multiplyToolStripMenuItem.Size = new System.Drawing.Size(126, 22); this.multiplyToolStripMenuItem.Text = "Multiply"; this.multiplyToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // divideToolStripMenuItem // this.divideToolStripMenuItem.Name = "divideToolStripMenuItem"; - this.divideToolStripMenuItem.Size = new System.Drawing.Size(118, 22); + this.divideToolStripMenuItem.Size = new System.Drawing.Size(126, 22); this.divideToolStripMenuItem.Text = "Divide"; this.divideToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // @@ -1300,137 +1311,137 @@ this.controlToolStripMenuItem, this.shiftToolStripMenuItem}); this.modifiersToolStripMenuItem.Name = "modifiersToolStripMenuItem"; - this.modifiersToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.modifiersToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.modifiersToolStripMenuItem.Text = "Modifiers"; // // altToolStripMenuItem // this.altToolStripMenuItem.Name = "altToolStripMenuItem"; - this.altToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + this.altToolStripMenuItem.Size = new System.Drawing.Size(120, 22); this.altToolStripMenuItem.Text = "Alt"; this.altToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // controlToolStripMenuItem // this.controlToolStripMenuItem.Name = "controlToolStripMenuItem"; - this.controlToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + this.controlToolStripMenuItem.Size = new System.Drawing.Size(120, 22); this.controlToolStripMenuItem.Text = "Control"; this.controlToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // shiftToolStripMenuItem // this.shiftToolStripMenuItem.Name = "shiftToolStripMenuItem"; - this.shiftToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + this.shiftToolStripMenuItem.Size = new System.Drawing.Size(120, 22); this.shiftToolStripMenuItem.Text = "Shift"; this.shiftToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // toolStripSeparator3 // this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.Size = new System.Drawing.Size(145, 6); + this.toolStripSeparator3.Size = new System.Drawing.Size(149, 6); // // backspaceToolStripMenuItem // this.backspaceToolStripMenuItem.Name = "backspaceToolStripMenuItem"; - this.backspaceToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.backspaceToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.backspaceToolStripMenuItem.Text = "Backspace"; this.backspaceToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // breakToolStripMenuItem // this.breakToolStripMenuItem.Name = "breakToolStripMenuItem"; - this.breakToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.breakToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.breakToolStripMenuItem.Text = "Break"; this.breakToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // capsLockToolStripMenuItem // this.capsLockToolStripMenuItem.Name = "capsLockToolStripMenuItem"; - this.capsLockToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.capsLockToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.capsLockToolStripMenuItem.Text = "Caps Lock"; this.capsLockToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // delToolStripMenuItem // this.delToolStripMenuItem.Name = "delToolStripMenuItem"; - this.delToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.delToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.delToolStripMenuItem.Text = "Delete"; this.delToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // endToolStripMenuItem // this.endToolStripMenuItem.Name = "endToolStripMenuItem"; - this.endToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.endToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.endToolStripMenuItem.Text = "End"; this.endToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // enterToolStripMenuItem // this.enterToolStripMenuItem.Name = "enterToolStripMenuItem"; - this.enterToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.enterToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.enterToolStripMenuItem.Text = "Enter"; this.enterToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // escapeToolStripMenuItem // this.escapeToolStripMenuItem.Name = "escapeToolStripMenuItem"; - this.escapeToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.escapeToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.escapeToolStripMenuItem.Text = "Escape"; this.escapeToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // helpToolStripMenuItem // this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; - this.helpToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.helpToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.helpToolStripMenuItem.Text = "Help"; this.helpToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // homeToolStripMenuItem // this.homeToolStripMenuItem.Name = "homeToolStripMenuItem"; - this.homeToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.homeToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.homeToolStripMenuItem.Text = "Home"; this.homeToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // insToolStripMenuItem // this.insToolStripMenuItem.Name = "insToolStripMenuItem"; - this.insToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.insToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.insToolStripMenuItem.Text = "Insert"; this.insToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // numLockToolStripMenuItem // this.numLockToolStripMenuItem.Name = "numLockToolStripMenuItem"; - this.numLockToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.numLockToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.numLockToolStripMenuItem.Text = "Num Lock"; this.numLockToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // pageDownToolStripMenuItem // this.pageDownToolStripMenuItem.Name = "pageDownToolStripMenuItem"; - this.pageDownToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.pageDownToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.pageDownToolStripMenuItem.Text = "Page Down"; this.pageDownToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // pageUpToolStripMenuItem // this.pageUpToolStripMenuItem.Name = "pageUpToolStripMenuItem"; - this.pageUpToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.pageUpToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.pageUpToolStripMenuItem.Text = "Page Up"; this.pageUpToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // scrollLockToolStripMenuItem // this.scrollLockToolStripMenuItem.Name = "scrollLockToolStripMenuItem"; - this.scrollLockToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.scrollLockToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.scrollLockToolStripMenuItem.Text = "Scroll Lock"; this.scrollLockToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // // tabToolStripMenuItem // this.tabToolStripMenuItem.Name = "tabToolStripMenuItem"; - this.tabToolStripMenuItem.Size = new System.Drawing.Size(148, 22); + this.tabToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.tabToolStripMenuItem.Text = "Tab"; this.tabToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); // @@ -1699,16 +1710,6 @@ this.buttonOK.UseVisualStyleBackColor = true; this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); // - // checkBoxWaitForResponse - // - this.checkBoxWaitForResponse.Location = new System.Drawing.Point(232, 88); - this.checkBoxWaitForResponse.Name = "checkBoxWaitForResponse"; - this.checkBoxWaitForResponse.Size = new System.Drawing.Size(176, 21); - this.checkBoxWaitForResponse.TabIndex = 10; - this.checkBoxWaitForResponse.Text = "Wait for response"; - this.toolTips.SetToolTip(this.checkBoxWaitForResponse, "Wait up to 5 seconds for a response after the command has been sent"); - this.checkBoxWaitForResponse.UseVisualStyleBackColor = true; - // // ButtonMappingForm // this.AcceptButton = this.buttonOK; Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.Designer.cs 2007-11-04 18:16:22 UTC (rev 1027) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.Designer.cs 2007-11-05 05:21:59 UTC (rev 1028) @@ -36,13 +36,20 @@ this.contextMenuStripPrograms = new System.Windows.Forms.ContextMenuStrip(this.components); this.imageListPrograms = new System.Windows.Forms.ImageList(this.components); this.buttonClear = new System.Windows.Forms.Button(); - this.buttonModify = new System.Windows.Forms.Button(); + this.buttonEdit = new System.Windows.Forms.Button(); this.buttonDelete = new System.Windows.Forms.Button(); this.buttonNew = new System.Windows.Forms.Button(); this.listViewButtons = new System.Windows.Forms.ListView(); this.columnHeaderButton = new System.Windows.Forms.ColumnHeader(); this.columnHeaderDescription = new System.Windows.Forms.ColumnHeader(); this.columnHeaderCommand = new System.Windows.Forms.ColumnHeader(); + this.contextMenuStripButtonMapping = new System.Windows.Forms.ContextMenuStrip(this.components); + this.newButtonToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.editButtonToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.deleteButtonToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.clearButtonsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + this.copyButtonsFromToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.buttonOK = new System.Windows.Forms.Button(); this.tabControl = new System.Windows.Forms.TabControl(); this.tabPagePrograms = new System.Windows.Forms.TabPage(); @@ -86,6 +93,8 @@ this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); this.saveFileDialog = new System.Windows.Forms.SaveFileDialog(); + this.columnHeader1 = new System.Windows.Forms.ColumnHeader(); + this.contextMenuStripButtonMapping.SuspendLayout(); this.tabControl.SuspendLayout(); this.tabPagePrograms.SuspendLayout(); this.tabPageEvents.SuspendLayout(); @@ -100,8 +109,10 @@ this.listViewPrograms.Alignment = System.Windows.Forms.ListViewAlignment.Left; this.listViewPrograms.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.listViewPrograms.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1}); this.listViewPrograms.ContextMenuStrip = this.contextMenuStripPrograms; - this.listViewPrograms.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; + this.listViewPrograms.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; this.listViewPrograms.HideSelection = false; this.listViewPrograms.LargeImageList = this.imageListPrograms; this.listViewPrograms.Location = new System.Drawing.Point(8, 8); @@ -112,7 +123,7 @@ this.listViewPrograms.Size = new System.Drawing.Size(504, 80); this.listViewPrograms.TabIndex = 0; this.listViewPrograms.TileSize = new System.Drawing.Size(128, 48); - this.toolTip.SetToolTip(this.listViewPrograms, "Choose a Program to modify mappings for here"); + this.toolTip.SetToolTip(this.listViewPrograms, "Choose a Program to modify mappings"); this.listViewPrograms.UseCompatibleStateImageBehavior = false; this.listViewPrograms.DoubleClick += new System.EventHandler(this.listViewPrograms_DoubleClick); this.listViewPrograms.SelectedIndexChanged += new System.EventHandler(this.listViewPrograms_SelectedIndexChanged); @@ -139,19 +150,19 @@ this.buttonClear.Text = "Clear"; this.toolTip.SetToolTip(this.buttonClear, "Clear all button mappings"); this.buttonClear.UseVisualStyleBackColor = true; - this.buttonClear.Click += new System.EventHandler(this.buttonClear_Click); + this.buttonClear.Click += new System.EventHandler(this.buttonClearMappings_Click); // - // buttonModify + // buttonEdit // - this.buttonModify.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.buttonModify.Location = new System.Drawing.Point(72, 344); - this.buttonModify.Name = "buttonModify"; - this.buttonModify.Size = new System.Drawing.Size(56, 24); - this.buttonModify.TabIndex = 3; - this.buttonModify.Text = "Edit"; - this.toolTip.SetToolTip(this.buttonModify, "Edit the currently selected button mapping"); - this.buttonModify.UseVisualStyleBackColor = true; - this.buttonModify.Click += new System.EventHandler(this.buttonModify_Click); + this.buttonEdit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonEdit.Location = new System.Drawing.Point(72, 344); + this.buttonEdit.Name = "buttonEdit"; + this.buttonEdit.Size = new System.Drawing.Size(56, 24); + this.buttonEdit.TabIndex = 3; + this.buttonEdit.Text = "Edit"; + this.toolTip.SetToolTip(this.buttonEdit, "Edit the currently selected button mapping"); + this.buttonEdit.UseVisualStyleBackColor = true; + this.buttonEdit.Click += new System.EventHandler(this.buttonEditMapping_Click); // // buttonDelete // @@ -163,7 +174,7 @@ this.buttonDelete.Text = "Delete"; this.toolTip.SetToolTip(this.buttonDelete, "Delete the currently selected button mapping"); this.buttonDelete.UseVisualStyleBackColor = true; - this.buttonDelete.Click += new System.EventHandler(this.buttonDelete_Click); + this.buttonDelete.Click += new System.EventHandler(this.buttonDeleteMapping_Click); // // buttonNew // @@ -175,7 +186,7 @@ this.buttonNew.Text = "New"; this.toolTip.SetToolTip(this.buttonNew, "Create a new button mapping"); this.buttonNew.UseVisualStyleBackColor = true; - this.buttonNew.Click += new System.EventHandler(this.buttonNew_Click); + this.buttonNew.Click += new System.EventHandler(this.buttonNewMapping_Click); // // listViewButtons // @@ -186,12 +197,15 @@ this.columnHeaderButton, this.columnHeaderDescription, this.columnHeaderCommand}); + this.listViewButtons.ContextMenuStrip = this.contextMenuStripButtonMapping; this.listViewButtons.FullRowSelect = true; this.listViewButtons.GridLines = true; this.listViewButtons.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; + this.listViewButtons.HideSelection = false; this.listViewButtons.Location = new System.Drawing.Point(8, 96); this.listViewButtons.MultiSelect = false; this.listViewButtons.Name = "listViewButtons"; + this.listViewButtons.ShowGroups = false; this.listViewButtons.Size = new System.Drawing.Size(504, 240); this.listViewButtons.TabIndex = 1; this.listViewButtons.UseCompatibleStateImageBehavior = false; @@ -214,6 +228,63 @@ this.columnHeaderCommand.Text = "Command"; this.columnHeaderCommand.Width = 200; // + // contextMenuStripButtonMapping + // + this.contextMenuStripButtonMapping.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.newButtonToolStripMenuItem, + this.editButtonToolStripMenuItem, + this.deleteButtonToolStripMenuItem, + this.clearButtonsToolStripMenuItem, + this.toolStripSeparator3, + this.copyButtonsFromToolStripMenuItem}); + this.contextMenuStripButtonMapping.Name = "contextMenuStripButtonMapping"; + this.contextMenuStripButtonMapping.Size = new System.Drawing.Size(151, 120); + this.contextMenuStripButtonMapping.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStripButtonMapping_Opening); + // + // newButtonToolStripMenuItem + // + this.newButtonToolStripMenuItem.Image = global::Translator.Properties.Resources.Plus; + this.newButtonToolStripMenuItem.Name = "newButtonToolStripMenuItem"; + this.newButtonToolStripMenuItem.Size = new System.Drawing.Size(150, 22); + this.newButtonToolStripMenuItem.Text = "&New"; + this.newButtonToolStripMenuItem.Click += new System.EventHandler(this.newButtonToolStripMenuItem_Click); + // + // editButtonToolStripMenuItem + // + this.editButtonToolStripMenuItem.Image = global::Translator.Properties.Resources.Edit; + this.editButtonToolStripMenuItem.Name = "editButtonToolStripMenuItem"; + this.editButtonToolStripMenuItem.Size = new System.Drawing.Size(150, 22); + this.editButtonToolStripMenuItem.Text = "&Edit"; + this.editButtonToolStripMenuItem.Click += new System.EventHandler(this.editButtonToolStripMenuItem_Click); + // + // deleteButtonToolStripMenuItem + // + this.deleteButtonToolStripMenuItem.Image = global::Translator.Properties.Resources.Delete; + this.deleteButtonToolStripMenuItem.Name = "deleteButtonToolStripMenuItem"; + this.deleteButtonToolStripMenuItem.Size = new System.Drawing.Size(150, 22); + this.deleteButtonToolStripMenuItem.Text = "&Delete"; + this.deleteButtonToolStripMenuItem.Click += new System.EventHandler(this.deleteButtonToolStripMenuItem_Click); + // + // clearButtonsToolStripMenuItem + // + this.clearButtonsToolStripMenuItem.Image = global::Translator.Properties.Resources.DeleteAll; + this.clearButtonsToolStripMenuItem.Name = "clearButtonsToolStripMenuItem"; + this.clearButtonsToolStripMenuItem.Size = new System.Drawing.Size(150, 22); + this.clearButtonsToolStripMenuItem.Text = "&Clear"; + this.clearButtonsToolStripMenuItem.Click += new System.EventHandler(this.clearButtonsToolStripMenuItem_Click); + // + // toolStripSeparator3 + // + this.toolStripSeparator3.Name = "toolStripSeparator3"; + this.toolStripSeparator3.Size = new System.Drawing.Size(147, 6); + // + // copyButtonsFromToolStripMenuItem + // + this.copyButtonsFromToolStripMenuItem.Image = global::Translator.Properties.Resources.MoveRight; + this.copyButtonsFromToolStripMenuItem.Name = "copyButtonsFromToolStripMenuItem"; + this.copyButtonsFromToolStripMenuItem.Size = new System.Drawing.Size(150, 22); + this.copyButtonsFromToolStripMenuItem.Text = "Copy &from ..."; + // // buttonOK // this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); @@ -245,7 +316,7 @@ // tabPagePrograms // this.tabPagePrograms.Controls.Add(this.buttonClear); - this.tabPagePrograms.Controls.Add(this.buttonModify); + this.tabPagePrograms.Controls.Add(this.buttonEdit); this.tabPagePrograms.Controls.Add(this.buttonDelete); this.tabPagePrograms.Controls.Add(this.buttonNew); this.tabPagePrograms.Controls.Add(this.listViewButtons); @@ -354,6 +425,7 @@ this.listViewEventMap.HideSelection = false; this.listViewEventMap.Location = new System.Drawing.Point(8, 8); this.listViewEventMap.Name = "listViewEventMap"; + this.listViewEventMap.ShowGroups = false; this.listViewEventMap.Size = new System.Drawing.Size(504, 296); this.listViewEventMap.TabIndex = 0; this.listViewEventMap.UseCompatibleStateImageBehavior = false; @@ -414,6 +486,7 @@ this.listViewMacro.Location = new System.Drawing.Point(8, 8); this.listViewMacro.MultiSelect = false; this.listViewMacro.Name = "listViewMacro"; + this.listViewMacro.ShowGroups = false; this.listViewMacro.Size = new System.Drawing.Size(504, 328); this.listViewMacro.TabIndex = 5; this.listViewMacro.UseCompatibleStateImageBehavior = false; @@ -495,6 +568,7 @@ this.listViewIR.Location = new System.Drawing.Point(8, 8); this.listViewIR.MultiSelect = false; this.listViewIR.Name = "listViewIR"; + this.listViewIR.ShowGroups = false; this.listViewIR.Size = new System.Drawing.Size(504, 328); this.listViewIR.TabIndex = 0; this.listViewIR.UseCompatibleStateImageBehavior = false; @@ -681,6 +755,7 @@ this.Text = "Translator"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); this.Load += new System.EventHandler(this.MainForm_Load); + this.contextMenuStripButtonMapping.ResumeLayout(false); this.tabControl.ResumeLayout(false); this.tabPagePrograms.ResumeLayout(false); this.tabPageEvents.ResumeLayout(false); @@ -700,7 +775,7 @@ private System.Windows.Forms.ColumnHeader columnHeaderButton; private System.Windows.Forms.ColumnHeader columnHeaderCommand; private System.Windows.Forms.Button buttonNew; - private System.Windows.Forms.Button buttonModify; + private System.Windows.Forms.Button buttonEdit; private System.Windows.Forms.Button buttonDelete; private System.Windows.Forms.Button buttonClear; private System.Windows.Forms.Button buttonOK; @@ -750,6 +825,14 @@ private System.Windows.Forms.ContextMenuStrip contextMenuStripPrograms; private System.Windows.Forms.ContextMenuStrip contextMenuStripEvents; private System.Windows.Forms.ToolStripMenuItem removeEventToolStripMenuItem; + private System.Windows.Forms.ContextMenuStrip contextMenuStripButtonMapping; + private System.Windows.Forms.ToolStripMenuItem newButtonToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem editButtonToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem deleteButtonToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem clearButtonsToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; + private System.Windows.Forms.ToolStripMenuItem copyButtonsFromToolStripMenuItem; + private System.Windows.Forms.ColumnHeader columnHeader1; } } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-11-04 18:16:22 UTC (rev 1027) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-11-05 05:21:59 UTC (rev 1028) @@ -98,6 +98,8 @@ ToolStripMenuItem _editProgramToolStripMenuItem; ToolStripMenuItem _removeProgramToolStripMenuItem; + int _selectedProgram = 0; + #endregion Variables #region Constructor @@ -126,44 +128,81 @@ #endregion Constructor + #region Implementation + + private void MainForm_Load(object sender, EventArgs e) + { + Program.HandleMessage += new ClientMessageSink(ReceivedMessage); + } + private void MainForm_FormClosing(object sender, FormClosingEventArgs e) + { + Program.HandleMessage -= new ClientMessageSink(ReceivedMessage); + + CommitEvents(); + + Configuration.Save(Program.Config, Program.ConfigFile); + } + void RefreshProgramList() { imageListPrograms.Images.Clear(); imageListPrograms.Images.Add(Properties.Resources.WinLogo); + imageListPrograms.Images.Add(Properties.Resources.NoIcon); + string wasSelected = string.Empty; + if (listViewPrograms.Items.Count > 0) + wasSelected = listViewPrograms.Items[_selectedProgram].Text; + listViewPrograms.Items.Clear(); - + _selectedProgram = 0; + + // Add System-Wide ... ListViewItem newItem = new ListViewItem(SystemWide, 0); newItem.ToolTipText = "Defines mappings that effect the whole computer"; listViewPrograms.Items.Add(newItem); - int imageIndex = 1; + // Add other programs ... + int imageIndex = 2; foreach (ProgramSettings progSettings in Program.Config.Programs) { Icon icon = Win32.GetIconFor(progSettings.Filename); - imageListPrograms.Images.Add(icon); + if (icon != null) + { + imageListPrograms.Images.Add(icon); + newItem = new ListViewItem(progSettings.Name, imageIndex++); + newItem.ToolTipText = progSettings.Filename; + } + else + { + newItem = new ListViewItem(progSettings.Name, 1); + newItem.ToolTipText = "Please check program file path"; + } - newItem = new ListViewItem(progSettings.Name, imageIndex++); - newItem.ToolTipText = progSettings.Filename; listViewPrograms.Items.Add(newItem); + + if (progSettings.Name.Equals(wasSelected)) + newItem.Selected = true; } + if (wasSelected.Equals(SystemWide) || listViewPrograms.SelectedItems.Count == 0) + listViewPrograms.Items[0].Selected = true; + Program.UpdateNotifyMenu(); } void RefreshButtonList() { listViewButtons.Items.Clear(); - List<ButtonMapping> current = GetCurrentSettings(); - if (current == null) + List<ButtonMapping> currentMappings = GetCurrentButtonMappings(); + if (currentMappings == null) return; - foreach (ButtonMapping map in current) + foreach (ButtonMapping map in currentMappings) { listViewButtons.Items.Add( new ListViewItem( - new string[] { map.KeyCode.ToString(), map.Description, map.Command } + new string[] { map.KeyCode, map.Description, map.Command } ) ); } @@ -235,21 +274,18 @@ Program.UpdateNotifyMenu(); } - List<ButtonMapping> GetCurrentSettings() + List<ButtonMapping> GetCurrentButtonMappings() { - if (listViewPrograms.SelectedItems.Count == 0) - return null; - - string selectedItem = listViewPrograms.SelectedItems[0].Text; - - if (selectedItem == SystemWide) + if (_selectedProgram == 0) { return Program.Config.SystemWideMappings; } else { + string selectedItem = listViewPrograms.Items[_selectedProgram].Text; + foreach (ProgramSettings progSettings in Program.Config.Programs) - if (progSettings.Name == selectedItem) + if (progSettings.Name.Equals(selectedItem)) return progSettings.ButtonMappings; } @@ -268,33 +304,24 @@ } void RefreshProgramsContextMenu() { - if (listViewPrograms.SelectedItems.Count == 0 || - listViewPrograms.SelectedItems[0].Text == SystemWide) + if (_selectedProgram == 0) { + _editProgramToolStripMenuItem.Text = "&Edit ..."; + _removeProgramToolStripMenuItem.Text = "&Remove ..."; + _editProgramToolStripMenuItem.Enabled = false; _removeProgramToolStripMenuItem.Enabled = false; } else { + string program = listViewPrograms.Items[_selectedProgram].Text; + + _editProgramToolStripMenuItem.Text = String.Format("&Edit \"{0}\"", program); + _removeProgramToolStripMenuItem.Text = String.Format("&Remove \"{0}\"", program); + _editProgramToolStripMenuItem.Enabled = true; _removeProgramToolStripMenuItem.Enabled = true; } - - if (listViewPrograms.SelectedItems.Count == 0) - { - _editProgramToolStripMenuItem.Text = "&Edit ..."; - _removeProgramToolStripMenuItem.Text = "&Remove ..."; - }/* - else if (listViewPrograms.SelectedItems[0].Text == SystemWide) - { - }*/ - else - { - string program = listViewPrograms.SelectedItems[0].Text; - _editProgramToolStripMenuItem.Text = "&Edit \"" + program + "\""; - _removeProgramToolStripMenuItem.Text = "&Remove \"" + program + "\""; - } - } void AddProgram() @@ -309,25 +336,14 @@ } } - bool EditProgram(ProgramSettings progSettings) + bool EditCurrentProgram() { - EditProgramForm editProg = new EditProgramForm(progSettings); + if (_selectedProgram == 0) + return false; - if (editProg.ShowDialog(this) == DialogResult.OK) - { - progSettings.Name = editProg.DisplayName; - progSettings.Filename = editProg.Filename; - progSettings.Folder = editProg.StartupFolder; - progSettings.Arguments = editProg.Parameters; - progSettings.WindowState = editProg.StartState; - progSettings.UseShellExecute = editProg.UseShellExecute; - progSettings.IgnoreSystemWide = editProg.IgnoreSystemWide; - - Program.UpdateNotifyMenu(); - return true; - } - - return false; + string selectedItem = listViewPrograms.Items[_selectedProgram].Text; + + return EditProgram(selectedItem); } bool EditProgram(string programName) { @@ -349,7 +365,27 @@ return false; } + bool EditProgram(ProgramSettings progSettings) + { + EditProgramForm editProg = new EditProgramForm(progSettings); + if (editProg.ShowDialog(this) == DialogResult.OK) + { + progSettings.Name = editProg.DisplayName; + progSettings.Filename = editProg.Filename; + progSettings.Folder = editProg.StartupFolder; + progSettings.Arguments = editProg.Parameters; + progSettings.WindowState = editProg.StartState; + progSettings.UseShellExecute = editProg.UseShellExecute; + progSettings.IgnoreSystemWide = editProg.IgnoreSystemWide; + + Program.UpdateNotifyMenu(); + return true; + } + + return false; + } + void EditIR() { if (listViewIR.SelectedItems.Count != 1) @@ -418,67 +454,12 @@ } } - private void MainForm_Load(object sender, EventArgs e) + void NewButtonMapping() { - Program.HandleMessage += new ClientMessageSink(ReceivedMessage); - } - private void MainForm_FormClosing(object sender, FormClosingEventArgs e) - { - Program.HandleMessage -= new ClientMessageSink(ReceivedMessage); + List<ButtonMapping> currentMappings = GetCurrentButtonMappings(); + if (currentMappings == null) + return; - CommitEvents(); - - Configuration.Save(Program.Config, Program.ConfigFile); - } - - void ReceivedMessage(IrssMessage received) - { - if (_learnIR != null && received.Type == MessageType.LearnIR) - { - if ((received.Flags & MessageFlags.Success) == MessageFlags.Success) - { - _learnIR.LearnStatus("Learned IR successfully", true); - } - else if ((received.Flags & MessageFlags.Timeout) == MessageFlags.Timeout) - { - _learnIR.LearnStatus("Learn IR timed out", false); - } - else if ((received.Flags & MessageFlags.Failure) == MessageFlags.Failure) - { - _learnIR.LearnStatus("Learn IR failed", false); - } - } - } - - #region Controls - - private void listViewButtons_DoubleClick(object sender, EventArgs e) - { - buttonModify_Click(null, null); - } - private void listViewButtons_KeyDown(object sender, KeyEventArgs e) - { - switch (e.KeyData) - { - case Keys.OemMinus: - case Keys.Delete: - buttonDelete_Click(null, null); - break; - - case Keys.F2: - case Keys.Enter: - buttonModify_Click(null, null); - break; - - case Keys.Oemplus: - case Keys.Insert: - buttonNew_Click(null, null); - break; - } - } - - private void buttonNew_Click(object sender, EventArgs e) - { GetKeyCodeForm getKeyCode = new GetKeyCodeForm(); getKeyCode.ShowDialog(this); @@ -487,11 +468,10 @@ if (String.IsNullOrEmpty(keyCode)) return; - List<ButtonMapping> currentMapping = GetCurrentSettings(); ButtonMappingForm map = null; ButtonMapping existing = null; - foreach (ButtonMapping test in currentMapping) + foreach (ButtonMapping test in currentMappings) { if (keyCode == test.KeyCode) { @@ -523,16 +503,16 @@ { listViewButtons.Items.Add( new ListViewItem( - new string[] { map.KeyCode.ToString(), map.Description, map.Command } + new string[] { map.KeyCode, map.Description, map.Command } )); - currentMapping.Add(new ButtonMapping(map.KeyCode, map.Description, map.Command)); + currentMappings.Add(new ButtonMapping(map.KeyCode, map.Description, map.Command)); } else { for (int index = 0; index < listViewButtons.Items.Count; index++) { - if (listViewButtons.Items[index].SubItems[0].Text == map.KeyCode.ToString()) + if (listViewButtons.Items[index].SubItems[0].Text == map.KeyCode) { listViewButtons.Items[index].SubItems[1].Text = map.Description; listViewButtons.Items[index].SubItems[2].Text = map.Command; @@ -545,39 +525,45 @@ } } - private void buttonDelete_Click(object sender, EventArgs e) + void DeleteButtonMapping() { if (listViewButtons.SelectedIndices.Count != 1) return; + List<ButtonMapping> currentMappings = GetCurrentButtonMappings(); + if (currentMappings == null) + return; + ListViewItem item = listViewButtons.SelectedItems[0]; - listViewButtons.Items.Remove(item); ButtonMapping toRemove = null; - foreach (ButtonMapping test in GetCurrentSettings()) + foreach (ButtonMapping test in currentMappings) { - if (test.KeyCode.ToString() == item.SubItems[0]... [truncated message content] |
From: <an...@us...> - 2007-11-05 13:23:57
|
Revision: 1029 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1029&view=rev Author: and-81 Date: 2007-11-05 05:23:54 -0800 (Mon, 05 Nov 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs trunk/plugins/IR Server Suite/IR Server Suite.sln Added Paths: ----------- trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IrDecoder.cs trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/MceDetectionData.cs trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/RemoteDetectionData.cs Removed Paths: ------------- trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug USB Receiver/ Added: trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.cs (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.cs 2007-11-05 13:23:54 UTC (rev 1029) @@ -0,0 +1,423 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.IO; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading; + +using Microsoft.Win32.SafeHandles; + +using IRServerPluginInterface; + +namespace IgorPlugReceiver +{ + + public class IgorPlugReceiver : IRServerPluginBase, IRemoteReceiver + { + + #region Constants + + const int NO_ERROR = 0; + const int DEVICE_NOT_PRESENT = 1; + const int NO_DATA_AVAILABLE = 2; + const int INVALID_BAUDRATE = 3; + const int OVERRUN_ERROR = 4; + + const int FNCNumberDoSetInfraBufferEmpty = 1; // restart of infra reading (if was stopped by RAM reading) + const int FNCNumberDoGetInfraCode = 2; // transmit of receved infra code (if some code in infra buffer) + + const int DeviceBuffer = 256; + + const double TimeCodeMultiplier = 85.3; + + #endregion Constants + + #region Enumerations + + [Flags] + enum CreateFileAccessTypes : uint + { + GenericRead = 0x80000000, + GenericWrite = 0x40000000, + GenericExecute = 0x20000000, + GenericAll = 0x10000000, + } + + [Flags] + enum CreateFileShares : uint + { + None = 0x00, + Read = 0x01, + Write = 0x02, + Delete = 0x04, + } + + enum CreateFileDisposition : uint + { + None = 0, + New = 1, + CreateAlways = 2, + OpenExisting = 3, + OpenAlways = 4, + TruncateExisting = 5, + } + + [Flags] + enum CreateFileAttributes : uint + { + None = 0x00000000, + Readonly = 0x00000001, + Hidden = 0x00000002, + System = 0x00000004, + Directory = 0x00000010, + Archive = 0x00000020, + Device = 0x00000040, + Normal = 0x00000080, + Temporary = 0x00000100, + SparseFile = 0x00000200, + ReparsePoint = 0x00000400, + Compressed = 0x00000800, + Offline = 0x00001000, + NotContentIndexed = 0x00002000, + Encrypted = 0x00004000, + Write_Through = 0x80000000, + Overlapped = 0x40000000, + NoBuffering = 0x20000000, + RandomAccess = 0x10000000, + SequentialScan = 0x08000000, + DeleteOnClose = 0x04000000, + BackupSemantics = 0x02000000, + PosixSemantics = 0x01000000, + OpenReparsePoint = 0x00200000, + OpenNoRecall = 0x00100000, + FirstPipeInstance = 0x00080000, + } + + #endregion Enumerations + + #region Interop + + [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)] + static extern SafeFileHandle CreateFile( + [MarshalAs(UnmanagedType.LPTStr)] string fileName, + [MarshalAs(UnmanagedType.U4)] CreateFileAccessTypes fileAccess, + [MarshalAs(UnmanagedType.U4)] CreateFileShares fileShare, + IntPtr securityAttributes, + [MarshalAs(UnmanagedType.U4)] CreateFileDisposition creationDisposition, + [MarshalAs(UnmanagedType.U4)] CreateFileAttributes flags, + IntPtr templateFile); + + [DllImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + static extern bool CloseHandle( + SafeFileHandle handle); + + [DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] + static extern bool DeviceIoControl( + SafeFileHandle handle, + uint ioControlCode, + byte[] inBuffer, int inBufferSize, + byte[] outBuffer, int outBufferSize, + out int bytesReturned, + IntPtr overlapped); + + #endregion Interop + + #region Variables + + int _remoteFirstRepeat = 400; + int _remoteHeldRepeats = 250; + + RemoteHandler _remoteHandler; + //KeyboardHandler _keyboardHandler; + //MouseHandler _mouseHandler; + + Thread _readThread; + + IrProtocol _lastRemoteButtonCodeType = IrProtocol.None; + uint _lastRemoteButtonKeyCode = 0; + DateTime _lastRemoteButtonTime = DateTime.Now; + bool _remoteButtonRepeated = false; + + #endregion Variables + + #region Implementation + + public override string Name { get { return "IgorPlug"; } } + public override string Version { get { return "1.0.3.5"; } } + public override string Author { get { return "and-81"; } } + public override string Description { get { return "IgorPlug Receiver"; } } + + public override bool Start() + { + ThreadStart readThreadStart = new ThreadStart(ReadThread); + _readThread = new Thread(readThreadStart); + _readThread.IsBackground = true; + _readThread.Start(); + + return true; + } + public override void Suspend() + { + Stop(); + } + public override void Resume() + { + Start(); + } + public override void Stop() + { + _readThread.Abort(); + + if (_readThread.IsAlive) + _readThread.Join(); + } + + /// <summary> + /// Callback for remote button presses. + /// </summary> + public RemoteHandler RemoteCallback + { + get { return _remoteHandler; } + set { _remoteHandler = value; } + } + + void ReadThread() + { + try + { + byte[] timingCode = new byte[DeviceBuffer]; + int codeLength = 0; + int returnCode; + + DoSetInfraBufferEmpty(); + + while (true) + { + returnCode = DoGetInfraCode(ref timingCode, ref codeLength); + + switch (returnCode) + { + case NO_ERROR: + break; + + case NO_DATA_AVAILABLE: + continue; + + case DEVICE_NOT_PRESENT: + throw new IOException("Device not present"); + + case INVALID_BAUDRATE: + throw new IOException("Invalid baud rate"); + + case OVERRUN_ERROR: + throw new IOException("Overrun error"); + + default: + throw new IOException(String.Format("Unknown error ({0})", returnCode)); + } + + byte[] data = new byte[codeLength]; + Array.Copy(timingCode, data, codeLength); + + int[] timingData = GetTimingData(data); + + IrDecoder.DecodeIR(timingData, new RemoteCallback(RemoteEvent), null, null); + + Thread.Sleep(100); + DoSetInfraBufferEmpty(); + } + } +#if TRACE + catch (ThreadAbortException ex) + { + Trace.WriteLine(ex.ToString()); +#else + catch (ThreadAbortException) + { +#endif + } + } + + void RemoteEvent(IrProtocol codeType, uint keyCode, bool firstPress) + { +#if TRACE + Trace.WriteLine(String.Format("Remote: {0}, {1}, {2}", Enum.GetName(typeof(IrProtocol), codeType), keyCode, firstPress)); +#endif + + if (!firstPress && _lastRemoteButtonCodeType == codeType && _lastRemoteButtonKeyCode == keyCode) + { + TimeSpan timeBetween = DateTime.Now.Subtract(_lastRemoteButtonTime); + + if (!_remoteButtonRepeated && timeBetween.TotalMilliseconds < _remoteFirstRepeat) + { +#if TRACE + Trace.WriteLine("Skip First Repeat"); +#endif + return; + } + + if (_remoteButtonRepeated && timeBetween.TotalMilliseconds < _remoteHeldRepeats) + { +#if TRACE + Trace.WriteLine("Skip Held Repeat"); +#endif + return; + } + + if (_remoteButtonRepeated && timeBetween.TotalMilliseconds > _remoteFirstRepeat) + _remoteButtonRepeated = false; + else + _remoteButtonRepeated = true; + } + else + { + _lastRemoteButtonCodeType = codeType; + _lastRemoteButtonKeyCode = keyCode; + _remoteButtonRepeated = false; + } + + _lastRemoteButtonTime = DateTime.Now; + + if (_remoteHandler != null) + _remoteHandler(keyCode.ToString()); + } + + static int[] GetTimingData(byte[] data) + { + List<int> timingData = new List<int>(data.Length); + + int multiplier = 1; + + foreach (byte dataByte in data) + { + timingData.Add((int)Math.Round(dataByte * TimeCodeMultiplier * multiplier)); + + multiplier *= -1; + } + + return timingData.ToArray(); + } + + static bool SendToDriver(byte FNumber, int Param1, int Param2, ref byte[] OutputData, ref int OutLength) + { + bool Result = false; + + SafeFileHandle handle = CreateFile("\\\\.\\IgorPlugUSB_0", + CreateFileAccessTypes.GenericRead | CreateFileAccessTypes.GenericWrite, + CreateFileShares.Read | CreateFileShares.Write, + IntPtr.Zero, + CreateFileDisposition.OpenExisting, + CreateFileAttributes.None, + IntPtr.Zero); + + if (handle.IsInvalid) + throw new Exception("Cannot Open IgorUSB Driver!"); + + try + { + int RepeatCount = 3; + int OutLengthMax; + + OutLengthMax = (OutLength > 255 ? 256 : OutLength) & 0xFF; + + byte[] Input = new byte[5]; + byte[] tmp; + Input[0] = FNumber; + tmp = BitConverter.GetBytes(Param1); + Input[1] = tmp[0]; + Input[2] = tmp[1]; + tmp = BitConverter.GetBytes(Param2); + Input[3] = tmp[0]; + Input[4] = tmp[1]; + + try + { + do + { + Result = DeviceIoControl(handle, 0x808, Input, 5, OutputData, OutLengthMax, out OutLength, IntPtr.Zero); + Result = Result && (OutLength > 0); + RepeatCount--; + } while ((OutLength == 0) && (RepeatCount > 0)); + } + catch + { + Result = false; + } + } + finally + { + CloseHandle(handle); + } + + return Result; + } + + static int DoSetInfraBufferEmpty() + { + int OutLength = 1; + byte[] OutputData = new byte[DeviceBuffer]; + + if (SendToDriver(FNCNumberDoSetInfraBufferEmpty, 0, 0, ref OutputData, ref OutLength)) + return NO_ERROR; + else + return DEVICE_NOT_PRESENT; + } + + static int DoGetInfraCode(ref byte[] TimeCodeDiagram, ref int DiagramLength) + { + int OutLength; + byte[] OutputData = new byte[DeviceBuffer]; + + int LastReadedCode = -1; + int BytesToRead; + byte[] tmpData = new byte[DeviceBuffer]; + int LastWrittenIndex; + int i, j, k; + + DiagramLength = 0; + OutLength = 3; + if (!SendToDriver(FNCNumberDoGetInfraCode, 0, 0, ref OutputData, ref OutLength)) + return DEVICE_NOT_PRESENT; //dev not present + + BytesToRead = OutputData[0]; + if ((LastReadedCode == OutputData[1]) || (OutLength <= 1) || (BytesToRead == 0)) + return NO_ERROR; + + LastReadedCode = OutputData[1]; + LastWrittenIndex = OutputData[2]; + i = 0; + while (i < BytesToRead) + { + OutLength = BytesToRead - i; + if (!SendToDriver(2, i + 3, 0, ref tmpData, ref OutLength)) + { + DoSetInfraBufferEmpty(); + LastReadedCode = -1; + return DEVICE_NOT_PRESENT; + } + + for (j = 0; j < OutLength; j++) + OutputData[i + j] = tmpData[j]; // 'memcpy + + i += OutLength; + } + + j = LastWrittenIndex % BytesToRead; + k = 0; + for (i = j; i < BytesToRead; i++) + TimeCodeDiagram[k++] = OutputData[i]; + for (i = 0; i < j; i++) + TimeCodeDiagram[k++] = OutputData[i]; + DiagramLength = BytesToRead; + DoSetInfraBufferEmpty(); + return NO_ERROR; + } + + #endregion Implementation + + } + +} Added: trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.csproj =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.csproj (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.csproj 2007-11-05 13:23:54 UTC (rev 1029) @@ -0,0 +1,86 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{A4023992-CCD6-461E-8E14-219A496734C5}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>IgorPlugReceiver</RootNamespace> + <AssemblyName>IgorPlug Receiver</AssemblyName> + <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>false</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <UseVSHostingProcess>false</UseVSHostingProcess> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>none</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants> + </DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <UseVSHostingProcess>false</UseVSHostingProcess> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> + <OutputPath>bin\x86\Debug\</OutputPath> + <DefineConstants>TRACE;DEBUG</DefineConstants> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <DebugType>full</DebugType> + <PlatformTarget>x86</PlatformTarget> + <UseVSHostingProcess>false</UseVSHostingProcess> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> + <OutputPath>bin\x86\Release\</OutputPath> + <Optimize>true</Optimize> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <DebugType> + </DebugType> + <PlatformTarget>x86</PlatformTarget> + <UseVSHostingProcess>false</UseVSHostingProcess> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="IgorPlug Receiver.cs" /> + <Compile Include="IrDecoder.cs" /> + <Compile Include="MceDetectionData.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="RemoteDetectionData.cs" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\IR Server Plugin Interface\IR Server Plugin Interface.csproj"> + <Project>{D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}</Project> + <Name>IR Server Plugin Interface</Name> + <Private>False</Private> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> + <PropertyGroup> + <PostBuildEvent>copy "$(TargetName).*" "\MediaPortal Development\Plugin Releases\IR Server Suite\IR Server Plugins\"</PostBuildEvent> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IrDecoder.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IrDecoder.cs (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IrDecoder.cs 2007-11-05 13:23:54 UTC (rev 1029) @@ -0,0 +1,2221 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace IgorPlugReceiver +{ + + #region Enumerations + + /// <summary> + /// Protocol of IR Code. + /// </summary> + enum IrProtocol + { + /// <summary> + /// No protocol. + /// </summary> + None, + + /// <summary> + /// Daewoo protocol. + /// </summary> + Daewoo, + /// <summary> + /// ITT protocol (unsupported). + /// </summary> + ITT, + /// <summary> + /// JVC protocol. + /// </summary> + JVC, + /// <summary> + /// Matsushita protocol. + /// </summary> + Matsushita, + /// <summary> + /// Mitsubishi protocol. + /// </summary> + Mitsubishi, + /// <summary> + /// NEC protocol. + /// </summary> + NEC, + /// <summary> + /// Nokia NRC17 protocol. + /// </summary> + NRC17, + /// <summary> + /// Panasonic protocol. + /// </summary> + Panasonic, + /// <summary> + /// Philips RC5 protocol. + /// </summary> + RC5, + /// <summary> + /// Philips RC5X protocol. + /// </summary> + RC5X, + /// <summary> + /// Philips RC6 protocol (Mode 0). + /// </summary> + RC6, + /// <summary> + /// Philips RC6 protocol (Mode 6A). + /// </summary> + RC6A, + /// <summary> + /// Microsoft's protocol variation of Philips RC6. + /// </summary> + RC6_MCE, + /// <summary> + /// RCA protocol. + /// </summary> + RCA, + /// <summary> + /// Philips RC-MM protocol. This protocol cannot be reliably (if at all) decoded by the MCE device. + /// </summary> + RCMM, + /// <summary> + /// RECS-80 protocol. + /// </summary> + RECS80, + /// <summary> + /// Sharp protocol (unsupported). + /// </summary> + Sharp, + /// <summary> + /// Sony SIRC protocol. + /// </summary> + SIRC, + /// <summary> + /// Toshiba protocol. + /// </summary> + Toshiba, + /// <summary> + /// X-Sat protocol (unsupported). + /// </summary> + XSAT, + + /// <summary> + /// Unknown protocol. + /// </summary> + Unknown, + } + + #endregion Enumerations + + #region Delegates + + delegate void RemoteCallback(IrProtocol codeType, uint keyCode, bool firstPress); + delegate void KeyboardCallback(uint keyCode, uint modifiers); + delegate void MouseCallback(int deltaX, int deltaY, bool rightButton, bool leftButton); + + #endregion Delegates + + /// <summary> + /// Used for decoding received IR Codes. + /// </summary> + static class IrDecoder + { + + #region Constants + + const ushort ToggleBitMce = 0x8000; + const ushort ToggleMaskMce = 0x7FFF; + const ushort CustomerMce = 0x800F; + + const ushort ToggleBitRC5 = 0x0800; + const ushort ToggleMaskRC5 = 0xF7FF; + + const uint ToggleBitRC5X = 0x00020000; + const ushort ToggleMaskRC5X = 0xFFFF; + + const uint RC6HeaderMask = 0xFFFFFFF0; + + const uint PrefixRC6 = 0x000FC950; + const uint PrefixRC6A = 0x000FCA90; + + const uint MceMouse = 1; + const uint MceKeyboard = 4; + + #endregion Constants + + #region Detection Data + + static RemoteDetectionData Daewoo_Data = new RemoteDetectionData(); + static RemoteDetectionData JVC_Data = new RemoteDetectionData(); + static RemoteDetectionData Matsushita_Data = new RemoteDetectionData(); + static RemoteDetectionData Mitsubishi_Data = new RemoteDetectionData(); + static RemoteDetectionData NEC_Data = new RemoteDetectionData(); + static RemoteDetectionData NRC17_Data = new RemoteDetectionData(); + static RemoteDetectionData Panasonic_Data = new RemoteDetectionData(); + static RemoteDetectionData RC5_Data = new RemoteDetectionData(); + static RemoteDetectionData RC6_Data = new RemoteDetectionData(); + static RemoteDetectionData RCA_Data = new RemoteDetectionData(); + static RemoteDetectionData RECS80_Data = new RemoteDetectionData(); + static RemoteDetectionData SIRC_Data = new RemoteDetectionData(); + static RemoteDetectionData Toshiba_Data = new RemoteDetectionData(); + + static MceDetectionData MCE_Data = new MceDetectionData(); + + #endregion Detection Data + + #region Methods + + /// <summary> + /// Decode timing data to discover IR Protocol and packet payload. + /// </summary> + /// <param name="timingData">Input timing data.</param> + /// <param name="remoteCallback">Method to call when Remote button decoded.</param> + /// <param name="keyboardCallback">Method to call when Keyboard event decoded.</param> + /// <param name="mouseCallback">Method to call when Mouse event decoded.</param> + public static void DecodeIR(int[] timingData, RemoteCallback remoteCallback, KeyboardCallback keyboardCallback, MouseCallback mouseCallback) + { + if (timingData == null) + return; + + DetectDaewoo(timingData, remoteCallback); +// DetectITT(timingData, remoteCallback); + DetectJVC(timingData, remoteCallback); + DetectMatsushita(timingData, remoteCallback); + DetectMitsubishi(timingData, remoteCallback); + DetectNEC(timingData, remoteCallback); + DetectNRC17(timingData, remoteCallback); + DetectPanasonic(timingData, remoteCallback); + DetectRC5(timingData, remoteCallback); + DetectRC6(timingData, remoteCallback); + DetectRCA(timingData, remoteCallback); +// DetectRCMM(timingData, remoteCallback); + DetectRECS80(timingData, remoteCallback); +// DetectSharp(timingData, remoteCallback); + DetectSIRC(timingData, remoteCallback); + DetectToshiba(timingData, remoteCallback); +// DetectXSAT(timingData, remoteCallback); + + DetectMCE(timingData, keyboardCallback, mouseCallback); + //DetectIMon(timingData, keyboardCallback, mouseCallback); + } + + static void DetectDaewoo(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + switch (Daewoo_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + //Console.WriteLine("Daewoo HeaderPulse"); + + if (pulse && duration >= 7800 && duration <= 8200) + { + Daewoo_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + //Console.WriteLine("Daewoo HeaderSpace"); + + if (!pulse && duration >= 3800 && duration <= 4200) + { + Daewoo_Data.State = RemoteDetectionState.Data; + Daewoo_Data.HalfBit = 0; + Daewoo_Data.Bit = 0; + Daewoo_Data.Code = 0; + ignored = false; + } + else if (!pulse && duration >= 10000 && duration <= 40000) // For Repeats + { + Daewoo_Data.State = RemoteDetectionState.Data; + Daewoo_Data.HalfBit = 0; + Daewoo_Data.Bit = 0; + Daewoo_Data.Code = 0; + ignored = false; + } + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + //Console.WriteLine("Daewoo Data"); + + if (pulse && duration >= 350 && duration <= 750) + { + Daewoo_Data.HalfBit = 1; + ignored = false; + } + else if (!pulse && duration >= 250 && duration <= 650 && Daewoo_Data.HalfBit == 1) + { + Daewoo_Data.Code <<= 1; + Daewoo_Data.Bit++; + Daewoo_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 1250 && duration <= 1650 && Daewoo_Data.HalfBit == 1) + { + Daewoo_Data.Code <<= 1; + Daewoo_Data.Code |= 1; + Daewoo_Data.Bit++; + Daewoo_Data.HalfBit = 0; + ignored = false; + } + else + { + //Console.WriteLine("Daewoo Error"); + } + + if (Daewoo_Data.Bit == 16) + { + remoteCallback(IrProtocol.Daewoo, Daewoo_Data.Code, false); + Daewoo_Data.State = RemoteDetectionState.Leading; + } + break; + #endregion Data + + #region Leading + case RemoteDetectionState.Leading: + //Console.WriteLine("Daewoo Leading"); + + if (pulse && duration >= 350 && duration <= 750) + { + Daewoo_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + break; + #endregion Leading + + } + + if (ignored && (Daewoo_Data.State != RemoteDetectionState.HeaderPulse)) + Daewoo_Data.State = RemoteDetectionState.HeaderPulse; + } + } + static void DetectJVC(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + switch (JVC_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + //Console.WriteLine("JVC HeaderPulse: {0}", timingData[i]); + + if (pulse && duration >= 8300 && duration <= 8500) + { + JVC_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + //Console.WriteLine("JVC HeaderSpace: {0}", timingData[i]); + + if (!pulse && duration >= 4100 && duration <= 4300) + { + JVC_Data.Toggle = 0; + + JVC_Data.State = RemoteDetectionState.Data; + JVC_Data.HalfBit = 0; + JVC_Data.Bit = 0; + JVC_Data.Code = 0; + ignored = false; + } + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + //Console.WriteLine("JVC Data: {0}", timingData[i]); + + if (pulse && duration >= 450 && duration <= 650) + { + JVC_Data.HalfBit = 1; + ignored = false; + } + else if (!pulse && duration >= 450 && duration <= 650 && JVC_Data.HalfBit == 1) + { + JVC_Data.Code <<= 1; + JVC_Data.Bit++; + JVC_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 1450 && duration <= 1700 && JVC_Data.HalfBit == 1) + { + JVC_Data.Code <<= 1; + JVC_Data.Code |= 1; + JVC_Data.Bit++; + JVC_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 10000) + { + if (JVC_Data.Bit == 16) + { + bool first = false; + if (JVC_Data.Code != JVC_Data.Toggle) + first = true; + + remoteCallback(IrProtocol.JVC, JVC_Data.Code, first); + ignored = false; + + JVC_Data.Toggle = (int)JVC_Data.Code; + + if (duration > 25000) + JVC_Data.State = RemoteDetectionState.HeaderPulse; + else + JVC_Data.State = RemoteDetectionState.Data; + + JVC_Data.HalfBit = 0; + JVC_Data.Bit = 0; + JVC_Data.Code = 0; + } + else if (JVC_Data.Bit == 32) + { + remoteCallback(IrProtocol.Unknown, JVC_Data.Code, false); + } + else + { + //Console.WriteLine("JVC Error"); + } + + } + else + { + //Console.WriteLine("JVC Error"); + } + + break; + #endregion Data + + } + + if (ignored && (JVC_Data.State != RemoteDetectionState.HeaderPulse)) + JVC_Data.State = RemoteDetectionState.HeaderPulse; + } + } + static void DetectMatsushita(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + switch (Matsushita_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + //Console.WriteLine("Matsushita HeaderPulse: {0}, {1}", pulse, duration); + + if (pulse && duration >= 3300 && duration <= 3700) + { + Matsushita_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + //else + //Console.WriteLine("HeaderPulse fall through"); + + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + //Console.WriteLine("Matsushita HeaderSpace: {0}, {1}", pulse, duration); + + if (!pulse && duration >= 3300 && duration <= 3700) + { + Matsushita_Data.State = RemoteDetectionState.Data; + Matsushita_Data.HalfBit = 0; + Matsushita_Data.Bit = 0; + Matsushita_Data.Code = 0; + ignored = false; + } + //else + //Console.WriteLine("HeaderSpace fell through"); + + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + //Console.Write("MData: {0}, {1}\t", pulse, duration); + + if (pulse && duration >= 650 && duration <= 1050) + { + Matsushita_Data.HalfBit = 1; + ignored = false; + } + else if (!pulse && duration >= 650 && duration <= 1050 && Matsushita_Data.HalfBit == 1) + { + Matsushita_Data.Code <<= 1; + Matsushita_Data.Bit++; + Matsushita_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 2450 && duration <= 2850 && Matsushita_Data.HalfBit == 1) + { + Matsushita_Data.Code <<= 1; + Matsushita_Data.Code |= 1; + Matsushita_Data.Bit++; + Matsushita_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 20000 && Matsushita_Data.HalfBit == 1) + { + if (Matsushita_Data.Bit != 22) + break; + + uint code = Matsushita_Data.Code >> 12; + remoteCallback(IrProtocol.Matsushita, code, false); + Matsushita_Data.State = RemoteDetectionState.HeaderPulse; + Matsushita_Data.HalfBit = 0; + ignored = false; + } + else + { + //Console.WriteLine("Matsushita Error"); + } + + break; + #endregion Data + + } + + if (ignored && (Matsushita_Data.State != RemoteDetectionState.HeaderPulse)) + { + //Console.WriteLine("ignored"); + Matsushita_Data.State = RemoteDetectionState.HeaderPulse; + } + } + } + static void DetectMitsubishi(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + switch (Mitsubishi_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + //Console.WriteLine("Mitsubishi HeaderPulse: {0}, {1}", pulse, duration); + + if (pulse && duration >= 7800 && duration <= 8200) + { + Mitsubishi_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + //else + //Console.WriteLine("HeaderPulse fall through"); + + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + //Console.WriteLine("Mitsubishi HeaderSpace: {0}, {1}", pulse, duration); + + if (!pulse && duration >= 3800 && duration <= 4200) + { + Mitsubishi_Data.State = RemoteDetectionState.Data; + Mitsubishi_Data.HalfBit = 0; + Mitsubishi_Data.Bit = 0; + Mitsubishi_Data.Code = 0; + ignored = false; + } + //else + //Console.WriteLine("HeaderSpace fell through"); + + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + //Console.Write("MData: {0}, {1}\t", pulse, duration); + + if (pulse && duration >= 350 && duration <= 650) + { + Mitsubishi_Data.HalfBit = 1; + ignored = false; + } + else if (!pulse && duration >= 350 && duration <= 650 && Mitsubishi_Data.HalfBit == 1) + { + Mitsubishi_Data.Code <<= 1; + Mitsubishi_Data.Bit++; + Mitsubishi_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 1300 && duration <= 1700 && Mitsubishi_Data.HalfBit == 1) + { + Mitsubishi_Data.Code <<= 1; + Mitsubishi_Data.Code |= 1; + Mitsubishi_Data.Bit++; + Mitsubishi_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 3800 && duration <= 4200 && Mitsubishi_Data.HalfBit == 1 && Mitsubishi_Data.Bit == 8) + { + Mitsubishi_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 20000 && Mitsubishi_Data.HalfBit == 1 && Mitsubishi_Data.Bit == 16) + { + remoteCallback(IrProtocol.Mitsubishi, Mitsubishi_Data.Code, false); + Mitsubishi_Data.State = RemoteDetectionState.HeaderPulse; + Mitsubishi_Data.HalfBit = 0; + ignored = false; + } + else + { + Console.WriteLine("Mitsubishi Error"); + } + + break; + #endregion Data + + } + + if (ignored && (Mitsubishi_Data.State != RemoteDetectionState.HeaderPulse)) + { + Console.WriteLine("ignored"); + Mitsubishi_Data.State = RemoteDetectionState.HeaderPulse; + } + } + } + static void DetectNEC(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + switch (NEC_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + //Console.WriteLine("NEC HeaderPulse: {0}", timingData[i]); + + if (pulse && duration >= 8800 && duration <= 9200) + { + NEC_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + //Console.WriteLine("NEC HeaderSpace: {0}", timingData[i]); + + if (!pulse && duration >= 4300 && duration <= 4700) + { + NEC_Data.State = RemoteDetectionState.Data; + NEC_Data.HalfBit = 0; + NEC_Data.Bit = 0; + NEC_Data.Code = 0; + ignored = false; + } + else if (!pulse && duration >= 2050 && duration <= 2450) // For Repeats + { + //Console.Write("Repeat"); + + if (NEC_Data.Code != 0) + { + uint address = (NEC_Data.Code >> 24) & 0xFF; + uint command = (NEC_Data.Code >> 8) & 0xFF; + + uint code = (address << 8) + command; + + //Console.WriteLine(" Code: {0}", code); + + remoteCallback(IrProtocol.NEC, code, false); + + NEC_Data.State = RemoteDetectionState.Leading; + ignored = false; + } + //else + //Console.WriteLine("Code = 0 fell through"); + } + + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + //Console.WriteLine("NEC Data: {0}", timingData[i]); + + if (pulse && duration >= 350 && duration <= 750) + { + NEC_Data.HalfBit = 1; + ignored = false; + } + else if (!pulse && duration >= 350 && duration <= 650 && NEC_Data.HalfBit == 1) + { + NEC_Data.Code <<= 1; + NEC_Data.Bit++; + NEC_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 1200 && duration <= 2800 && NEC_Data.HalfBit == 1) + { + NEC_Data.Code <<= 1; + NEC_Data.Code |= 1; + NEC_Data.Bit++; + NEC_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 12000) + { + if (NEC_Data.Bit != 32) + { + if (NEC_Data.Code != 0) + { + //Console.WriteLine("Invalid NEC: {0}bit, {1:X}", NEC_Data.Bit, NEC_Data.Code); + remoteCallback(IrProtocol.Unknown, NEC_Data.Code, false); + } + break; + } + + uint address = (NEC_Data.Code >> 24) & 0xFF; + uint notAddress = (NEC_Data.Code >> 16) & 0xFF; + + uint command = (NEC_Data.Code >> 8) & 0xFF; + uint notCommand = NEC_Data.Code & 0xFF; + + if ((address + notAddress == 0xFF) && (command + notCommand == 0xFF)) + { + uint code = (address << 8) + command; + remoteCallback(IrProtocol.NEC, code, true); + NEC_Data.State = RemoteDetectionState.HeaderPulse; + ignored = false; + } + else + { + //Console.WriteLine("Invalid NEC: {0:X}", NEC_Data.Code); + remoteCallback(IrProtocol.Unknown, NEC_Data.Code, false); + } + } + else + { + //Console.WriteLine("NEC Error"); + } + + break; + #endregion Data + + #region Leading + case RemoteDetectionState.Leading: + Console.WriteLine("NEC Leading: {0}", timingData[i]); + + // For Repeats + if (pulse && duration >= 400 && duration <= 800) + { + ignored = false; + } + else if (!pulse && duration > 10000) // Repeats + { + ignored = false; + NEC_Data.State = RemoteDetectionState.HeaderPulse; + } + + break; + #endregion Leading + + } + + if (ignored && (NEC_Data.State != RemoteDetectionState.HeaderPulse)) + NEC_Data.State = RemoteDetectionState.HeaderPulse; + } + } + static void DetectNRC17(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + switch (NRC17_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + //Console.WriteLine("NRC17 HeaderPulse: {0}", timingData[i]); + + if (pulse && (duration >= 400) && (duration <= 650)) + { + NRC17_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + //Console.WriteLine("NRC17 HeaderSpace: {0}", timingData[i]); + + if (!pulse && + (((duration >= 2350) && (duration <= 2600)) || // Normal battery + ((duration >= 3350) && (duration <= 3600)))) // Low battery + { + NRC17_Data.State = RemoteDetectionState.Data; + NRC17_Data.HalfBit = 0; + NRC17_Data.Bit = 17; + NRC17_Data.Header = 0; + NRC17_Data.Code = 0; + ignored = false; + } + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + //Console.WriteLine("NRC17 Data: {0}", timingData[i]); + + if (NRC17_Data.HalfBit == 0) + { + if (pulse && (duration >= 300) && (duration <= 700)) + { + // Logic 1 + NRC17_Data.HalfBit = 1; + NRC17_Data.Code |= (uint)(1 << NRC17_Data.Bit--); + ignored = false; + } + else if (!pulse && (duration >= 300) && (duration <= 700)) + { + // Logic 0 + NRC17_Data.HalfBit = 1; + NRC17_Data.Bit--; + ignored = false; + } + } + else + { + if (!pulse && (duration >= 300) && (duration <= 700)) + { + NRC17_Data.HalfBit = 0; + ignored = false; + } + else if (pulse && (duration >= 300) && (duration <= 700)) + { + NRC17_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && (duration >= 800) && (duration <= 1200)) + { + NRC17_Data.HalfBit = 1; + NRC17_Data.Bit--; + ignored = false; + } + else if (pulse && (duration >= 800) && (duration <= 1200)) + { + NRC17_Data.HalfBit = 1; + NRC17_Data.Code |= (uint)(1 << NRC17_Data.Bit--); + ignored = false; + } + } + + if (NRC17_Data.Bit == 0) + { + NRC17_Data.Code &= 0xFFFF; // 16-bits (Ignore leading bit which is always 1) + remoteCallback(IrProtocol.NRC17, NRC17_Data.Code, false); + + //Console.WriteLine("NRC17: {0}", NRC17_Data.Code); + + NRC17_Data.State = RemoteDetectionState.HeaderPulse; + } + + break; + #endregion Data + + } + + if (ignored && (NRC17_Data.State != RemoteDetectionState.HeaderPulse)) + NRC17_Data.State = RemoteDetectionState.HeaderPulse; + } + } + static void DetectPanasonic(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + switch (Panasonic_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + //Console.WriteLine("Panasonic HeaderPulse: {0}", timingData[i]); + + if (pulse && duration >= 3150 && duration <= 3900) + { + Panasonic_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + //else + //Console.WriteLine("HeaderPulse fall through"); + + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + //Console.WriteLine("Panasonic HeaderSpace: {0}", timingData[i]); + + if (!pulse && duration >= 3150 && duration <= 3900) + { + Panasonic_Data.State = RemoteDetectionState.Data; + Panasonic_Data.HalfBit = 0; + Panasonic_Data.Bit = 0; + Panasonic_Data.Code = 0; + ignored = false; + } + else if (!pulse && duration >= 2050 && duration <= 2450) // For Repeats + { + //Console.Write("Repeat"); + + if (Panasonic_Data.Code != 0) + { + uint address = (Panasonic_Data.Code >> 24) & 0xFF; + uint command = (Panasonic_Data.Code >> 8) & 0xFF; + + uint code = (address << 8) + command; + + //Console.WriteLine(" Code: {0}", code); + + remoteCallback(IrProtocol.Panasonic, code, false); + + Panasonic_Data.State = RemoteDetectionState.Leading; + ignored = false; + } + //else + //Console.WriteLine("Code = 0 fell through"); + } + //else + //Console.WriteLine("HeaderSpace fell through"); + + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + //Console.WriteLine("Panasonic Data: {0}", timingData[i]); + + if (pulse && duration >= 600 && duration <= 1150) + { + Panasonic_Data.HalfBit = 1; + ignored = false; + } + else if (!pulse && duration >= 600 && duration <= 1150 && Panasonic_Data.HalfBit == 1) + { + Panasonic_Data.Code <<= 1; + Panasonic_Data.Bit++; + Panasonic_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 1800 && duration <= 3450 && Panasonic_Data.HalfBit == 1) + { + Panasonic_Data.Code <<= 1; + Panasonic_Data.Code |= 1; + Panasonic_Data.Bit++; + Panasonic_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 8000) + { + if (Panasonic_Data.Bit != 22) + break; + + + uint custom = (Panasonic_Data.Code >> 17) & 0x1F; + uint data = (Panasonic_Data.Code >> 11) & 0x3F; + + uint notCustom = (Panasonic_Data.Code >> 6) & 0x1F; + uint notData = Panasonic_Data.Code & 0x3F; + + if ((custom + notCustom == 0x1F) && (data + notData == 0x3F)) + { + uint code = (custom << 8) + data; + remoteCallback(IrProtocol.Panasonic, code, true); + Panasonic_Data.State = RemoteDetectionState.HeaderPulse; + ignored = false; + } + else + { + Console.WriteLine("custom != notCustom || data != notData fall through"); + Console.WriteLine("{0:X}", Panasonic_Data.Code); + } + } + else + { + //Console.WriteLine("Panasonic Error"); + } + + break; + #endregion Data + + #region Leading + case RemoteDetectionState.Leading: + //Console.WriteLine("Panasonic Leading: {0}", timingData[i]); + + // For Repeats + if (pulse && duration >= 400 && duration <= 800) + { + ignored = false; + } + else if (!pulse && duration >= 38000 && duration <= 40000) // First Repeat + { + ignored = false; + Panasonic_Data.State = RemoteDetectionState.HeaderPulse; + } + else if (!pulse && duration >= 94600 && duration <= 95000) // Multiple Repeats + { + ignored = false; + Panasonic_Data.State = RemoteDetectionState.HeaderPulse; + } + //else + //Console.WriteLine("Leading fall through"); + + break; + #endregion Leading + + } + + if (ignored && (Panasonic_Data.State != RemoteDetectionState.HeaderPulse)) + { + //Console.WriteLine("Panasonic Ignored"); + Panasonic_Data.State = RemoteDetectionState.HeaderPulse; + } + } + } + static void DetectRC5(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + switch (RC5_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + //Console.WriteLine("RC5 HeaderPulse: {0}", timingData[i]); + + if (pulse) + { + if ((duration >= 750) && (duration <= 1100)) + { + RC5_Data.State = RemoteDetectionState.HeaderSpace; + RC5_Data.Bit = 13; + RC5_Data.Code = (uint)1 << RC5_Data.Bit; + ignored = false; + } + else if ((duration >= 1500) && (duration <= 2000)) + { + RC5_Data.State = RemoteDetectionState.Data; + RC5_Data.Bit = 13; + RC5_Data.Code = (uint)1 << RC5_Data.Bit; + RC5_Data.HalfBit = 0; + ignored = false; + } + } + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + //Console.WriteLine("RC5 HeaderSpace: {0}", timingData[i]); + + if (!pulse && (duration >= 750) && (duration <= 1000)) + { + RC5_Data.State = RemoteDetectionState.Data; + RC5_Data.HalfBit = 0; + ignored = false; + } + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + //Console.WriteLine("RC5 Data: {0}", timingData[i]); + + if (RC5_Data.HalfBit == 0) + { + if (pulse) + { + if (((duration >= 750) && (duration <= 1100)) || ((duration >= 1500) && (duration <= 2000))) + { + RC5_Data.HalfBit = (byte)((duration >= 1500) ? 0 : 1); + RC5_Data.Bit--; + RC5_Data.Code |= (uint)1 << RC5_Data.Bit; + ignored = false; + + if ((RC5_Data.Bit == 0) || ((RC5_Data.Bit == 1) && (duration >= 1500))) + RC5_Data.State = RemoteDetectionState.KeyCode; + } + else + { + //Console.WriteLine("RC5 Error: {0} on bit {1}", timingData[i], RC5_Data.Bit); + } + } + else + { + if (((duration >= 750) && (duration <= 1100)) || ((duration >= 1500) && (duration <= 2000))) + { + RC5_Data.HalfBit = (byte)((duration >= 1500) ? 0 : 1); + RC5_Data.Bit--; + ignored = false; + + if (RC5_Data.Bit == 0) + RC5_Data.State = RemoteDetectionState.KeyCode; + } + else if ((RC5_Data.Bit == 7) && (((duration >= 4300) && (duration <= 4700)) || ((duration >= 5200) && (duration <= 5600)))) + { + ignored = false; + RC5_Data.HalfBit = (byte)((duration >= 5200) ? 0 : 1); + RC5_Data.Code <<= 6; + RC5_Data.Bit += 5; + } + else + { + //Console.WriteLine("RC5 Space Error: {0} on bit {1}", timingData[i], RC5_Data.Bit); + } + } + break; + } + + if ((duration >= 750) && (duration <= 1100)) + { + RC5_Data.HalfBit = 0; + ignored = false; + + if ((RC5_Data.Bit == 1) && pulse) + RC5_Data.State = RemoteDetectionState.KeyCode; + } + else if ((RC5_Data.Bit == 7) && (((duration >= 3400) && (duration <= 3800)) || ((duration >= 4300) && (duration <= 4700)))) + { + RC5_Data.HalfBit = (byte)((duration >= 4300) ? 0 : 1); + RC5_Data.Code <<= 6; + RC5_Data.Bit += 6; + ignored = false; + } + else + { + //Console.WriteLine("RC5 Duration Error: {0} on bit {1}", timingData[i], RC5_Data.Bit); + } + break; + #endregion Data + + #region Leading + case RemoteDetectionState.Leading: + //Console.WriteLine("RC5 Leading: {0}", timingData[i]); + + if (pulse) + break; + + if (duration > 10000) + { + RC5_Data.State = RemoteDetectionState.HeaderPulse; + ignored = false; + } + break; + #endregion Leading + + } + + if (RC5_Data.State == RemoteDetectionState.KeyCode) + { + bool toggleOn; + + bool first = true; + bool RC5X; + + if (RC5_Data.Code > 0xFFFF) // RC5X + { + toggleOn = ((RC5_Data.Code & ToggleBitRC5X) == ToggleBitRC5X); + RC5_Data.Code &= ToggleMaskRC5X; + RC5X = true; + } + else // RC5 + { + toggleOn = ((RC5_Data.Code & ToggleBitRC5) == ToggleBitRC5); + RC5_Data.Code &= ToggleMaskRC5; + RC5X = false; + } + + if ((toggleOn && RC5_Data.Toggle == 1) || (!toggleOn && RC5_Data.Toggle == 2)) + first = false; + + RC5_Data.Toggle = toggleOn ? 1 : 2; + + if (RC5X) + remoteCallback(IrProtocol.RC5X, RC5_Data.Code, first); + else + remoteCallback(IrProtocol.RC5, RC5_Data.Code, first); + + RC5_Data.State = RemoteDetectionState.HeaderPulse; + } + + if (ignored && (RC5_Data.State != RemoteDetectionState.Leading) && (RC5_Data.State != RemoteDetectionState.HeaderPulse)) + RC5_Data.State = RemoteDetectionState.HeaderPulse; + } + + } + static void DetectRC6(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + switch (RC6_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + //Console.WriteLine("RC6 HeaderPulse: {0}", timingData[i]); + + if (pulse && (duration >= 2600) && (duration <= 3300)) + { + RC6_Data.State = RemoteDetectionState.HeaderSpace; + RC6_Data.Header = 0x000FC000; + RC6_Data.Bit = 14; + RC6_Data.HalfBit = 0; + RC6_Data.Code = 0; + RC6_Data.LongPulse = false; + RC6_Data.LongSpace = false; + RC6_Data.Toggle &= 0xFE; + ignored = false; + } + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + //Console.WriteLine("RC6 HeaderSpace: {0}", timingData[i]); + + if (!pulse && (duration >= 750) && (duration <= 1000)) + { + RC6_Data.State = RemoteDetectionState.PreData; + RC6_Data.Bit -= 2; + ignored = false; + } + break; + #endregion HeaderSpace + + #region PreData + case RemoteDetectionState.PreData: + //Console.WriteLine("RC6 PreData: {0}", timingData[i]); + + if (pulse) + { + if ((duration >= 300) && (duration <= 600)) + { + ignored = false; + if (RC6_Data.Bit != 0) RC6_Data.Header |= (uint)(1 << --RC6_Data.Bit); + } + else if ((duration >= 750) && (duration <= 1000)) + { + ignored = false; + if (RC6_Data.Bit != 0) RC6_Data.Header |= (uint)(1 << --RC6_Data.Bit); + if (RC6_Data.Bit != 0) RC6_Data.Header |= (uint)(1 << --RC6_Data.Bit); + } + else if ((duration >= 1200) && (duration <= 1600)) + { + ignored = false; + if (RC6_Data.Bit != 0) RC6_Data.Header |= (uint)(1 << --RC6_Data.Bit); + if (RC6_Data.Bit != 0) RC6_Data.Header |= (uint)(1 << --RC6_Data.Bit); + if (RC6_Data.Bit != 0) RC6_Data.Header |= (uint)(1 << --RC6_Data.Bit); + else + { + RC6_Data.HalfBit = 1; + RC6_Data.LongPulse = true; + } + } + else + { + //Console.WriteLine(string.Format("RC6 Error Bit {0} {1} {2}", RC6_Data.Bit, pulse ? "Pulse" : "Space", duration)); + } + } + else + { + if ((duration >= 300) && (duration <= 600)) + { + RC6_Data.Bit--; + ignored = false; + } + else if ((duration >= 750) && (duration <= 1000)) + { + ignored = false; + if (RC6_Data.Bit > 2) + RC6_Data.Bit -= 2; + else + RC6_Data.Bit = 0; + } + else if ((duration >= 1200) && (duration... [truncated message content] |
From: <an...@us...> - 2007-11-05 14:39:49
|
Revision: 1030 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1030&view=rev Author: and-81 Date: 2007-11-05 06:39:47 -0800 (Mon, 05 Nov 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Translator/ButtonMapping.cs trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs trunk/plugins/IR Server Suite/Applications/Translator/EventSchedule.cs trunk/plugins/IR Server Suite/Applications/Translator/MappedEvent.cs trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Applications/Translator/ProgramSettings.cs trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.csproj Modified: trunk/plugins/IR Server Suite/Applications/Translator/ButtonMapping.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/ButtonMapping.cs 2007-11-05 13:23:54 UTC (rev 1029) +++ trunk/plugins/IR Server Suite/Applications/Translator/ButtonMapping.cs 2007-11-05 14:39:47 UTC (rev 1030) @@ -55,7 +55,16 @@ #region Constructors - public ButtonMapping() { } + /// <summary> + /// Initializes a new instance of the <see cref="ButtonMapping"/> class. + /// </summary> + public ButtonMapping() { } + /// <summary> + /// Initializes a new instance of the <see cref="ButtonMapping"/> class. + /// </summary> + /// <param name="keyCode">The remote key code.</param> + /// <param name="description">The description.</param> + /// <param name="command">The command to execute for this remote button.</param> public ButtonMapping(string keyCode, string description, string command) { _keyCode = keyCode; Modified: trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs 2007-11-05 13:23:54 UTC (rev 1029) +++ trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs 2007-11-05 14:39:47 UTC (rev 1030) @@ -73,6 +73,9 @@ #region Constructors + /// <summary> + /// Initializes a new instance of the <see cref="Configuration"/> class. + /// </summary> public Configuration() { _serverHost = "localhost"; Modified: trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs 2007-11-05 13:23:54 UTC (rev 1029) +++ trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs 2007-11-05 14:39:47 UTC (rev 1030) @@ -139,6 +139,10 @@ #endregion Overrides + /// <summary> + /// Sends a copy data message. + /// </summary> + /// <param name="data">The data.</param> public static void SendCopyDataMessage(string data) { Win32.COPYDATASTRUCT copyData; Modified: trunk/plugins/IR Server Suite/Applications/Translator/EventSchedule.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/EventSchedule.cs 2007-11-05 13:23:54 UTC (rev 1029) +++ trunk/plugins/IR Server Suite/Applications/Translator/EventSchedule.cs 2007-11-05 14:39:47 UTC (rev 1030) @@ -6,7 +6,7 @@ { #region Enumerations - + /* public enum ScheduleRepeat { Never, @@ -48,7 +48,7 @@ November, December, } - + */ #endregion Enumerations class EventSchedule Modified: trunk/plugins/IR Server Suite/Applications/Translator/MappedEvent.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/MappedEvent.cs 2007-11-05 13:23:54 UTC (rev 1029) +++ trunk/plugins/IR Server Suite/Applications/Translator/MappedEvent.cs 2007-11-05 14:39:47 UTC (rev 1030) @@ -13,12 +13,33 @@ /// </summary> public enum MappingEvent { + /// <summary> + /// No event. + /// </summary> None, + /// <summary> + /// Translator started. + /// </summary> Translator_Start, + /// <summary> + /// Translator quit. + /// </summary> Translator_Quit, + /// <summary> + /// The PC is shutting down. + /// </summary> PC_Shutdown, + /// <summary> + /// The PC is suspending. + /// </summary> PC_Suspend, + /// <summary> + /// The PC has returned from suspend. + /// </summary> PC_Resume, + /// <summary> + /// The user is logging off. + /// </summary> PC_Logoff, //Scheduled_Event, } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-11-05 13:23:54 UTC (rev 1029) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-11-05 14:39:47 UTC (rev 1030) @@ -409,7 +409,6 @@ _notifyIcon.ContextMenuStrip.Items.Add(macros); } - /**/ ToolStripMenuItem actions = new ToolStripMenuItem("&Actions"); actions.DropDownItems.Add("Next Window", null, new EventHandler(ClickAction)); actions.DropDownItems.Add("Last Window", null, new EventHandler(ClickAction)); @@ -442,7 +441,6 @@ actions.DropDownItems.Add("Volume Mute", null, new EventHandler(ClickAction)); _notifyIcon.ContextMenuStrip.Items.Add(actions); - /**/ _notifyIcon.ContextMenuStrip.Items.Add(new ToolStripSeparator()); _notifyIcon.ContextMenuStrip.Items.Add("&Setup", null, new EventHandler(ClickSetup)); Modified: trunk/plugins/IR Server Suite/Applications/Translator/ProgramSettings.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/ProgramSettings.cs 2007-11-05 13:23:54 UTC (rev 1029) +++ trunk/plugins/IR Server Suite/Applications/Translator/ProgramSettings.cs 2007-11-05 14:39:47 UTC (rev 1030) @@ -123,6 +123,9 @@ #region Constructors + /// <summary> + /// Initializes a new instance of the <see cref="ProgramSettings"/> class. + /// </summary> public ProgramSettings() { _name = "New Program"; Modified: trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj 2007-11-05 13:23:54 UTC (rev 1029) +++ trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj 2007-11-05 14:39:47 UTC (rev 1030) @@ -54,6 +54,7 @@ <PlatformTarget>x86</PlatformTarget> <ErrorReport>prompt</ErrorReport> <UseVSHostingProcess>true</UseVSHostingProcess> + <DocumentationFile>bin\x86\Debug\Translator.XML</DocumentationFile> </PropertyGroup> <ItemGroup> <Reference Include="System" /> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.cs 2007-11-05 13:23:54 UTC (rev 1029) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.cs 2007-11-05 14:39:47 UTC (rev 1030) @@ -14,12 +14,15 @@ namespace CustomHIDReceiver { + /// <summary> + /// IR Server plugin to support HID USB devices. + /// </summary> public class CustomHIDReceiver : IRServerPluginBase, IConfigure, IRemoteReceiver, IKeyboardReceiver, IMouseReceiver { #region Constants - public static readonly string ConfigurationFile = + static readonly string ConfigurationFile = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\IR Server Suite\\IR Server\\Custom HID Receiver.xml"; @@ -56,6 +59,9 @@ #region Constructor + /// <summary> + /// Initializes a new instance of the <see cref="CustomHIDReceiver"/> class. + /// </summary> public CustomHIDReceiver() { LoadSettings(); @@ -67,9 +73,25 @@ #endregion Constructor + /// <summary> + /// Name of the IR Server plugin. + /// </summary> + /// <value>The name.</value> public override string Name { get { return "Custom HID Receiver"; } } + /// <summary> + /// IR Server plugin version. + /// </summary> + /// <value>The version.</value> public override string Version { get { return "1.0.3.5"; } } + /// <summary> + /// The IR Server plugin's author. + /// </summary> + /// <value>The author.</value> public override string Author { get { return "and-81"; } } + /// <summary> + /// A description of the IR Server plugin. + /// </summary> + /// <value>The description.</value> public override string Description { get { return "Supports HID USB devices."; } } /// <summary> @@ -101,16 +123,25 @@ { Stop(); } + /// <summary> + /// Resume the IR Server plugin when the computer returns from standby. + /// </summary> public override void Resume() { Start(); } + /// <summary> + /// Stop the IR Server plugin. + /// </summary> public override void Stop() { _device.dwFlags |= RawInput.RawInputDeviceFlags.Remove; RegisterForRawInput(_device); } - + + /// <summary> + /// Configure the IR Server plugin. + /// </summary> public void Configure() { DeviceSelect deviceSelect = new DeviceSelect(); @@ -147,6 +178,9 @@ set { _mouseHandler = value; } } + /// <summary> + /// Loads the settings. + /// </summary> void LoadSettings() { try @@ -175,6 +209,9 @@ _repeatDelay = 250; } } + /// <summary> + /// Saves the settings. + /// </summary> void SaveSettings() { try @@ -240,7 +277,9 @@ void ProcessKeyDown(int param) { +#if TRACE Trace.WriteLine(String.Format("KeyDown - Param: {0}", param)); +#endif if (_keyboardHandler != null) _keyboardHandler(param, false); @@ -248,7 +287,9 @@ void ProcessKeyUp(int param) { +#if TRACE Trace.WriteLine(String.Format("KeyUp - Param: {0}", param)); +#endif if (_keyboardHandler != null) _keyboardHandler(param, true); @@ -256,7 +297,9 @@ void ProcessAppCommand(int param) { +#if TRACE Trace.WriteLine(String.Format("AppCommand - Param: {0}", param)); +#endif } void ProcessInputCommand(ref Message message) @@ -304,6 +347,7 @@ case RawInput.RawInputType.Mouse: { +#if TRACE Trace.WriteLine(String.Format("Mouse Event")); Trace.WriteLine(String.Format("Buttons: {0}", raw.mouse.ulButtons)); Trace.WriteLine(String.Format("Raw Buttons: {0}", raw.mouse.ulRawButtons)); @@ -311,7 +355,7 @@ Trace.WriteLine(String.Format("Extra: {0}", raw.mouse.ulExtraInformation)); Trace.WriteLine(String.Format("Button Data: {0}", raw.mouse.buttonsStr.usButtonData)); Trace.WriteLine(String.Format("Button Flags: {0}", raw.mouse.buttonsStr.usButtonFlags)); - +#endif //if (_mouseHandler != null) //_mouseHandler(0, 0, (int)raw.mouse.ulButtons); @@ -320,12 +364,16 @@ case RawInput.RawInputType.Keyboard: { +#if TRACE Trace.WriteLine(String.Format("Keyboard Event")); +#endif switch (raw.keyboard.Flags) { case RawInput.RawKeyboardFlags.KeyBreak: +#if TRACE Trace.WriteLine( String.Format("Break: {0}", raw.keyboard.VKey)); +#endif if (_keyboardHandler != null) _keyboardHandler(raw.keyboard.VKey, true); @@ -333,15 +381,21 @@ break; case RawInput.RawKeyboardFlags.KeyE0: +#if TRACE Trace.WriteLine( String.Format("E0: {0}", raw.keyboard.MakeCode)); +#endif break; case RawInput.RawKeyboardFlags.KeyE1: +#if TRACE Trace.WriteLine( String.Format("E1")); +#endif break; case RawInput.RawKeyboardFlags.KeyMake: +#if TRACE Trace.WriteLine( String.Format("Make: {0}", raw.keyboard.VKey)); +#endif if (_keyboardHandler != null) _keyboardHandler(raw.keyboard.VKey, false); @@ -349,13 +403,18 @@ break; case RawInput.RawKeyboardFlags.TerminalServerSetLED: +#if TRACE Trace.WriteLine( String.Format("TerminalServerSetLED")); +#endif break; case RawInput.RawKeyboardFlags.TerminalServerShadow: +#if TRACE Trace.WriteLine( String.Format("TerminalServerShadow")); +#endif break; } + break; } } @@ -367,7 +426,6 @@ } - } } Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.csproj =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.csproj 2007-11-05 13:23:54 UTC (rev 1029) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.csproj 2007-11-05 14:39:47 UTC (rev 1030) @@ -41,8 +41,7 @@ <PlatformTarget>x86</PlatformTarget> <UseVSHostingProcess>false</UseVSHostingProcess> <ErrorReport>prompt</ErrorReport> - <DocumentationFile> - </DocumentationFile> + <DocumentationFile>bin\x86\Debug\Custom HID Receiver.XML</DocumentationFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <OutputPath>bin\x86\Release\</OutputPath> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.cs 2007-11-05 13:23:54 UTC (rev 1029) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.cs 2007-11-05 14:39:47 UTC (rev 1030) @@ -14,6 +14,9 @@ namespace IgorPlugReceiver { + /// <summary> + /// IR Server plugin supporting the IgorPlug device. + /// </summary> public class IgorPlugReceiver : IRServerPluginBase, IRemoteReceiver { @@ -145,11 +148,31 @@ #region Implementation + /// <summary> + /// Name of the IR Server plugin. + /// </summary> + /// <value>The name.</value> public override string Name { get { return "IgorPlug"; } } + /// <summary> + /// IR Server plugin version. + /// </summary> + /// <value>The version.</value> public override string Version { get { return "1.0.3.5"; } } + /// <summary> + /// The IR Server plugin's author. + /// </summary> + /// <value>The author.</value> public override string Author { get { return "and-81"; } } + /// <summary> + /// A description of the IR Server plugin. + /// </summary> + /// <value>The description.</value> public override string Description { get { return "IgorPlug Receiver"; } } + /// <summary> + /// Start the IR Server plugin. + /// </summary> + /// <returns>true if successful, otherwise false.</returns> public override bool Start() { ThreadStart readThreadStart = new ThreadStart(ReadThread); @@ -159,14 +182,23 @@ return true; } + /// <summary> + /// Suspend the IR Server plugin when computer enters standby. + /// </summary> public override void Suspend() { Stop(); } + /// <summary> + /// Resume the IR Server plugin when the computer returns from standby. + /// </summary> public override void Resume() { Start(); } + /// <summary> + /// Stop the IR Server plugin. + /// </summary> public override void Stop() { _readThread.Abort(); Modified: trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.csproj =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.csproj 2007-11-05 13:23:54 UTC (rev 1029) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.csproj 2007-11-05 14:39:47 UTC (rev 1030) @@ -41,6 +41,7 @@ <PlatformTarget>x86</PlatformTarget> <UseVSHostingProcess>false</UseVSHostingProcess> <ErrorReport>prompt</ErrorReport> + <DocumentationFile>bin\x86\Debug\IgorPlug Receiver.XML</DocumentationFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <OutputPath>bin\x86\Release\</OutputPath> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2007-11-13 05:04:44
|
Revision: 1050 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1050&view=rev Author: and-81 Date: 2007-11-12 21:04:36 -0800 (Mon, 12 Nov 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.cs trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.cs trunk/plugins/IR Server Suite/Applications/IR Server/Config.cs trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs trunk/plugins/IR Server Suite/Applications/SageSetup/FormMain.cs trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/EditProgramForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Applications/Translator/ProgramSettings.cs trunk/plugins/IR Server Suite/Applications/Translator/Properties/Resources.Designer.cs trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj trunk/plugins/IR Server Suite/Applications/Tray Launcher/Setup.cs trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MessageCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ServerAddress.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/WindowList.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssLog.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj trunk/plugins/IR Server Suite/Common/IrssUtils/Keyboard.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Win32.cs trunk/plugins/IR Server Suite/Common/IrssUtils/XML.cs trunk/plugins/IR Server Suite/Common/MPUtils/Forms/GoToScreen.cs trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/DeviceSelect.cs trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/RawInput.cs trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionRemoteReceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/IRMan Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IrDecoder.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Driver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Microsoft MCE Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/UirtTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLircServer.cs trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Windows Message Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/X10Transceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.cs trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/Input Service/Input Service/InputService.cs trunk/plugins/IR Server Suite/Input Service/Input Service/Program.cs trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Advanced.cs trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Config.cs trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Program.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/SetupForm.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MPBlastZonePlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Menu.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/SetupForm.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/StbSetup.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/StbSetup.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs Added Paths: ----------- trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.resx trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.Designer.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.resx trunk/plugins/IR Server Suite/Common/IrssUtils/Audio.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Graphics/DoubleClickLeft.png trunk/plugins/IR Server Suite/Common/IrssUtils/Graphics/DoubleClickMiddle.png trunk/plugins/IR Server Suite/Common/IrssUtils/Graphics/DoubleClickRight.png trunk/plugins/IR Server Suite/Common/IrssUtils/Network.cs Modified: trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.cs 2007-11-12 20:48:32 UTC (rev 1049) +++ trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -108,7 +108,7 @@ Client _client; string _serverHost = "localhost"; - string _learnIRFilename = null; + string _learnIRFilename; bool _registered; @@ -117,7 +117,7 @@ #endregion Variables delegate void DelegateAddStatusLine(string status); - DelegateAddStatusLine _addStatusLine = null; + DelegateAddStatusLine _addStatusLine; void AddStatusLine(string status) { @@ -145,9 +145,9 @@ comboBoxComputer.Items.Clear(); comboBoxComputer.Items.Add("localhost"); - string[] networkPCs = IrssUtils.Win32.GetNetworkComputers(false); + List<string> networkPCs = Network.GetComputers(false); if (networkPCs != null) - comboBoxComputer.Items.AddRange(networkPCs); + comboBoxComputer.Items.AddRange(networkPCs.ToArray()); comboBoxComputer.Text = _serverHost; } @@ -476,7 +476,7 @@ private void comboBoxRemoteButtons_SelectedIndexChanged(object sender, EventArgs e) { - if (comboBoxRemoteButtons.SelectedItem.ToString() == "Custom") + if (comboBoxRemoteButtons.SelectedItem.ToString().Equals("Custom", StringComparison.OrdinalIgnoreCase)) numericUpDownButton.Enabled = true; else numericUpDownButton.Enabled = false; Modified: trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs 2007-11-12 20:48:32 UTC (rev 1049) +++ trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -55,21 +55,21 @@ for (int index = 0; index < args.Length; index++) { - switch (args[index].ToLowerInvariant()) + switch (args[index].ToUpperInvariant()) { - case "-host": + case "-HOST": _serverHost = args[++index]; continue; - case "-port": + case "-PORT": _blastPort = args[++index]; continue; - case "-channel": + case "-CHANNEL": _treatAsChannelNumber = true; continue; - case "-pad": + case "-PAD": int.TryParse(args[++index], out _padChannelNumber); continue; Modified: trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs 2007-11-12 20:48:32 UTC (rev 1049) +++ trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -54,21 +54,21 @@ for (int index = 0; index < args.Length; index++) { - switch (args[index].ToLowerInvariant()) + switch (args[index].ToUpperInvariant()) { - case "-host": + case "-HOST": _serverHost = args[++index]; continue; - case "-port": + case "-PORT": _blastPort = args[++index]; continue; - case "-channel": + case "-CHANNEL": _treatAsChannelNumber = true; continue; - case "-pad": + case "-PAD": int.TryParse(args[++index], out _padChannelNumber); continue; Added: trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.resx =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.resx (rev 0) +++ trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.resx 2007-11-13 05:04:36 UTC (rev 1050) @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.cs 2007-11-12 20:48:32 UTC (rev 1049) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -7,6 +7,8 @@ using System.Text; using System.Windows.Forms; +using IrssUtils; + namespace IRServer { @@ -58,9 +60,9 @@ { InitializeComponent(); - string[] networkPCs = IrssUtils.Win32.GetNetworkComputers(false); + List<string> networkPCs = Network.GetComputers(false); if (networkPCs != null) - comboBoxComputer.Items.AddRange(networkPCs); + comboBoxComputer.Items.AddRange(networkPCs.ToArray()); } #endregion Constructor Modified: trunk/plugins/IR Server Suite/Applications/IR Server/Config.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/Config.cs 2007-11-12 20:48:32 UTC (rev 1049) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Config.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -100,7 +100,7 @@ if (checkBox == null) continue; - if (gridPlugins[row, 0].DisplayText.Equals(value, StringComparison.InvariantCultureIgnoreCase)) + if (gridPlugins[row, 0].DisplayText.Equals(value, StringComparison.OrdinalIgnoreCase)) checkBox.Checked = true; else checkBox.Checked = false; @@ -263,7 +263,7 @@ string plugin = gridPlugins[cell.Row.Index, 0].DisplayText; foreach (IRServerPluginBase transceiver in _transceivers) - if (transceiver.Name == plugin) + if (transceiver.Name.Equals(plugin, StringComparison.OrdinalIgnoreCase)) (transceiver as IConfigure).Configure(); } /* @@ -280,7 +280,7 @@ for (int row = 1; row < gridPlugins.RowsCount; row++) { SourceGrid.Cells.CheckBox checkBox = gridPlugins[row, 1] as SourceGrid.Cells.CheckBox; - if (checkBox != null && checkBox.Checked && !gridPlugins[row, 0].DisplayText.Equals(plugin, StringComparison.InvariantCultureIgnoreCase)) + if (checkBox != null && checkBox.Checked && !gridPlugins[row, 0].DisplayText.Equals(plugin, StringComparison.OrdinalIgnoreCase)) checkBox.Checked = false; } } @@ -298,7 +298,7 @@ for (int row = 1; row < gridPlugins.RowsCount; row++) { SourceGrid.Cells.CheckBox checkBox = gridPlugins[row, 2] as SourceGrid.Cells.CheckBox; - if (checkBox != null && checkBox.Checked && !gridPlugins[row, 0].DisplayText.Equals(plugin, StringComparison.InvariantCultureIgnoreCase)) + if (checkBox != null && checkBox.Checked && !gridPlugins[row, 0].DisplayText.Equals(plugin, StringComparison.OrdinalIgnoreCase)) checkBox.Checked = false; } } Modified: trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs 2007-11-12 20:48:32 UTC (rev 1049) +++ trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -73,7 +73,7 @@ string _pluginNameTransmit; IRServerPluginBase _pluginTransmit; - bool _inConfiguration = false; + bool _inConfiguration; #endregion Variables @@ -1115,8 +1115,7 @@ } else { - byte[] bytes = null; - + byte[] bytes; LearnStatus status = LearnIR(out bytes); switch (status) Modified: trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs 2007-11-12 20:48:32 UTC (rev 1049) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -145,7 +145,7 @@ throw new FileNotFoundException("No available plugins found"); foreach (IRServerPluginBase plugin in serverPlugins) - if (plugin.Name.Equals(pluginName, StringComparison.InvariantCultureIgnoreCase)) + if (plugin.Name.Equals(pluginName, StringComparison.OrdinalIgnoreCase)) return plugin; return null; Modified: trunk/plugins/IR Server Suite/Applications/SageSetup/FormMain.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/SageSetup/FormMain.cs 2007-11-12 20:48:32 UTC (rev 1049) +++ trunk/plugins/IR Server Suite/Applications/SageSetup/FormMain.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -24,7 +24,7 @@ private void FormMain_Load(object sender, EventArgs e) { - string[] networkPCs = Win32.GetNetworkComputers(false); + List<string> networkPCs = Network.GetComputers(false); if (networkPCs == null) { MessageBox.Show(this, "No server names detected.", "Network Error", MessageBoxButtons.OK, MessageBoxIcon.Error); @@ -33,7 +33,7 @@ } else { - comboBoxComputer.Items.AddRange(networkPCs); + comboBoxComputer.Items.AddRange(networkPCs.ToArray()); } _irBlastLocation = SystemRegistry.GetInstallFolder(); Modified: trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs 2007-11-12 20:48:32 UTC (rev 1049) +++ trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -46,7 +46,6 @@ public List<ButtonMapping> SystemWideMappings { get { return _systemWideMappings; } - set { _systemWideMappings = value; } } /// <summary> @@ -56,7 +55,6 @@ public List<ProgramSettings> Programs { get { return _programSettings; } - set { _programSettings = value; } } /// <summary> @@ -66,7 +64,6 @@ public List<MappedEvent> Events { get { return _mappedEvents; } - set { _mappedEvents = value; } } #endregion Properties Modified: trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs 2007-11-12 20:48:32 UTC (rev 1049) +++ trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -30,9 +30,7 @@ /// <summary> /// Initializes a new instance of the <see cref="CopyDataWM"/> class. /// </summary> - public CopyDataWM() - { - } + public CopyDataWM() { } /// <summary> /// Releases unmanaged resources and performs other cleanup operations before the Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-11-12 20:48:32 UTC (rev 1049) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -215,24 +215,16 @@ string[] commands = Common.SplitWindowMessageCommand(suffix); tabControl.SelectTab(tabPageMessage); - switch (commands[0].ToLowerInvariant()) + switch (commands[0].ToUpperInvariant()) { - case "active": - radioButtonActiveWindow.Checked = true; - break; - case "application": - radioButtonApplication.Checked = true; - break; - case "class": - radioButtonClass.Checked = true; - break; - case "window": - radioButtonWindowTitle.Checked = true; - break; + case Common.WMTargetActive: radioButtonActiveWindow.Checked = true; break; + case Common.WMTargetApplication: radioButtonApplication.Checked = true; break; + case Common.WMTargetClass: radioButtonClass.Checked = true; break; + case Common.WMTargetWindow: radioButtonWindowTitle.Checked = true; break; } - textBoxMsgTarget.Text = commands[1]; - numericUpDownMsg.Value = decimal.Parse(commands[2]); + textBoxMsgTarget.Text = commands[1]; + numericUpDownMsg.Value = decimal.Parse(commands[2]); numericUpDownWParam.Value = decimal.Parse(commands[3]); numericUpDownLParam.Value = decimal.Parse(commands[4]); break; @@ -262,7 +254,7 @@ else if (suffix.StartsWith(Common.MouseMoveRight)) checkBoxMouseMoveRight.Checked = true; else if (suffix.StartsWith(Common.MouseMoveUp)) checkBoxMouseMoveUp.Checked = true; - numericUpDownMouseMove.Value = Decimal.Parse(suffix.Substring(suffix.IndexOf(" "))); + numericUpDownMouseMove.Value = Decimal.Parse(suffix.Substring(suffix.IndexOf(' '))); break; } break; @@ -294,7 +286,7 @@ break; default: - if (prefix.Equals(Common.CmdPrefixEject, StringComparison.InvariantCultureIgnoreCase)) + if (prefix.Equals(Common.CmdPrefixEject, StringComparison.OrdinalIgnoreCase)) comboBoxMiscCommand.SelectedItem = Common.UITextEject; //else break; @@ -382,24 +374,24 @@ case "tabPageMessage": { - string target = "error"; + string target = "ERROR"; if (radioButtonActiveWindow.Checked) { - target = "active"; + target = Common.WMTargetActive; textBoxMsgTarget.Text = "*"; } else if (radioButtonApplication.Checked) { - target = "application"; + target = Common.WMTargetApplication; } else if (radioButtonClass.Checked) { - target = "class"; + target = Common.WMTargetClass; } else if (radioButtonWindowTitle.Checked) { - target = "window"; + target = Common.WMTargetWindow; } textBoxCommand.Text = _command = Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/EditProgramForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/EditProgramForm.cs 2007-11-12 20:48:32 UTC (rev 1049) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/EditProgramForm.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -73,7 +73,7 @@ if (progSettings != null) { DisplayName = progSettings.Name; - Filename = progSettings.Filename; + Filename = progSettings.FileName; StartupFolder = progSettings.Folder; Parameters = progSettings.Arguments; StartState = progSettings.WindowState; @@ -100,7 +100,7 @@ if (String.IsNullOrEmpty(textBoxAppStartFolder.Text)) textBoxAppStartFolder.Text = Path.GetDirectoryName(find.FileName); - if (String.IsNullOrEmpty(textBoxDisplayName.Text) || textBoxDisplayName.Text == "New Program") + if (String.IsNullOrEmpty(textBoxDisplayName.Text) || textBoxDisplayName.Text.Equals("New Program", StringComparison.Ordinal)) textBoxDisplayName.Text = Path.GetFileNameWithoutExtension(find.FileName); } } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-11-12 20:48:32 UTC (rev 1049) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -284,73 +284,71 @@ string selected = comboBoxCommands.SelectedItem as string; - if (selected == Common.UITextRun) + if (selected.Equals(Common.UITextRun, StringComparison.OrdinalIgnoreCase)) { ExternalProgram externalProgram = new ExternalProgram(false); if (externalProgram.ShowDialog(this) == DialogResult.OK) listBoxMacro.Items.Add(Common.CmdPrefixRun + externalProgram.CommandString); } - else if (selected == Common.UITextPause) + else if (selected.Equals(Common.UITextPause, StringComparison.OrdinalIgnoreCase)) { PauseTime pauseTime = new PauseTime(); if (pauseTime.ShowDialog(this) == DialogResult.OK) listBoxMacro.Items.Add(Common.CmdPrefixPause + pauseTime.Time.ToString()); } - else if (selected == Common.UITextSerial) + else if (selected.Equals(Common.UITextSerial, StringComparison.OrdinalIgnoreCase)) { SerialCommand serialCommand = new SerialCommand(); if (serialCommand.ShowDialog(this) == DialogResult.OK) listBoxMacro.Items.Add(Common.CmdPrefixSerial + serialCommand.CommandString); } - else if (selected == Common.UITextWindowMsg) + else if (selected.Equals(Common.UITextWindowMsg, StringComparison.OrdinalIgnoreCase)) { MessageCommand messageCommand = new MessageCommand(); if (messageCommand.ShowDialog(this) == DialogResult.OK) listBoxMacro.Items.Add(Common.CmdPrefixWindowMsg + messageCommand.CommandString); } - else if (selected == Common.UITextTcpMsg) + else if (selected.Equals(Common.UITextTcpMsg, StringComparison.OrdinalIgnoreCase)) { TcpMessageCommand tcpMessageCommand = new TcpMessageCommand(); - if (tcpMessageCommand.ShowDialog(this) == DialogResult.Cancel) - return; - - listBoxMacro.Items.Add(Common.CmdPrefixTcpMsg + tcpMessageCommand.CommandString); + if (tcpMessageCommand.ShowDialog(this) == DialogResult.OK) + listBoxMacro.Items.Add(Common.CmdPrefixTcpMsg + tcpMessageCommand.CommandString); } - else if (selected == Common.UITextKeys) + else if (selected.Equals(Common.UITextKeys, StringComparison.OrdinalIgnoreCase)) { KeysCommand keysCommand = new KeysCommand(); if (keysCommand.ShowDialog(this) == DialogResult.OK) listBoxMacro.Items.Add(Common.CmdPrefixKeys + keysCommand.CommandString); } - else if (selected == Common.UITextMouse) + else if (selected.Equals(Common.UITextMouse, StringComparison.OrdinalIgnoreCase)) { MouseCommand mouseCommand = new MouseCommand(); if (mouseCommand.ShowDialog(this) == DialogResult.OK) listBoxMacro.Items.Add(Common.CmdPrefixMouse + mouseCommand.CommandString); } - else if (selected == Common.UITextEject) + else if (selected.Equals(Common.UITextEject, StringComparison.OrdinalIgnoreCase)) { EjectCommand ejectCommand = new EjectCommand(); if (ejectCommand.ShowDialog(this) == DialogResult.OK) listBoxMacro.Items.Add(Common.CmdPrefixEject + ejectCommand.CommandString); } - else if (selected == Common.UITextStandby) + else if (selected.Equals(Common.UITextStandby, StringComparison.OrdinalIgnoreCase)) { listBoxMacro.Items.Add(Common.CmdPrefixStandby); } - else if (selected == Common.UITextHibernate) + else if (selected.Equals(Common.UITextHibernate, StringComparison.OrdinalIgnoreCase)) { listBoxMacro.Items.Add(Common.CmdPrefixHibernate); } - else if (selected == Common.UITextReboot) + else if (selected.Equals(Common.UITextReboot, StringComparison.OrdinalIgnoreCase)) { listBoxMacro.Items.Add(Common.CmdPrefixReboot); } - else if (selected == Common.UITextShutdown) + else if (selected.Equals(Common.UITextShutdown, StringComparison.OrdinalIgnoreCase)) { listBoxMacro.Items.Add(Common.CmdPrefixShutdown); } - else if (selected.StartsWith(Common.CmdPrefixBlast)) + else if (selected.StartsWith(Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase)) { BlastCommand blastCommand = new BlastCommand( new BlastIrDelegate(Program.BlastIR), @@ -361,7 +359,7 @@ if (blastCommand.ShowDialog(this) == DialogResult.OK) listBoxMacro.Items.Add(Common.CmdPrefixBlast + blastCommand.CommandString); } - else if (selected.StartsWith(Common.CmdPrefixMacro)) + else if (selected.StartsWith(Common.CmdPrefixMacro, StringComparison.OrdinalIgnoreCase)) { listBoxMacro.Items.Add(selected); } @@ -471,7 +469,7 @@ string selected = listBoxMacro.SelectedItem as string; - if (selected.StartsWith(Common.CmdPrefixPause)) + if (selected.StartsWith(Common.CmdPrefixPause, StringComparison.OrdinalIgnoreCase)) { PauseTime pauseTime = new PauseTime(int.Parse(selected.Substring(Common.CmdPrefixPause.Length))); if (pauseTime.ShowDialog(this) == DialogResult.Cancel) @@ -482,7 +480,7 @@ listBoxMacro.Items.Insert(index, Common.CmdPrefixPause + pauseTime.Time.ToString()); listBoxMacro.SelectedIndex = index; } - else if (selected.StartsWith(Common.CmdPrefixRun)) + else if (selected.StartsWith(Common.CmdPrefixRun, StringComparison.OrdinalIgnoreCase)) { string[] commands = Common.SplitRunCommand(selected.Substring(Common.CmdPrefixRun.Length)); @@ -495,7 +493,7 @@ listBoxMacro.Items.Insert(index, Common.CmdPrefixRun + executeProgram.CommandString); listBoxMacro.SelectedIndex = index; } - else if (selected.StartsWith(Common.CmdPrefixSerial)) + else if (selected.StartsWith(Common.CmdPrefixSerial, StringComparison.OrdinalIgnoreCase)) { string[] commands = Common.SplitSerialCommand(selected.Substring(Common.CmdPrefixSerial.Length)); @@ -508,7 +506,7 @@ listBoxMacro.Items.Insert(index, Common.CmdPrefixSerial + serialCommand.CommandString); listBoxMacro.SelectedIndex = index; } - else if (selected.StartsWith(Common.CmdPrefixWindowMsg)) + else if (selected.StartsWith(Common.CmdPrefixWindowMsg, StringComparison.OrdinalIgnoreCase)) { string[] commands = Common.SplitWindowMessageCommand(selected.Substring(Common.CmdPrefixWindowMsg.Length)); @@ -521,7 +519,7 @@ listBoxMacro.Items.Insert(index, Common.CmdPrefixWindowMsg + messageCommand.CommandString); listBoxMacro.SelectedIndex = index; } - else if (selected.StartsWith(Common.CmdPrefixTcpMsg)) + else if (selected.StartsWith(Common.CmdPrefixTcpMsg, StringComparison.OrdinalIgnoreCase)) { string[] commands = Common.SplitTcpMessageCommand(selected.Substring(Common.CmdPrefixTcpMsg.Length)); TcpMessageCommand tcpMessageCommand = new TcpMessageCommand(commands); @@ -533,7 +531,7 @@ listBoxMacro.Items.Insert(index, Common.CmdPrefixTcpMsg + tcpMessageCommand.CommandString); listBoxMacro.SelectedIndex = index; } - else if (selected.StartsWith(Common.CmdPrefixKeys)) + else if (selected.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) { KeysCommand keysCommand = new KeysCommand(selected.Substring(Common.CmdPrefixKeys.Length)); if (keysCommand.ShowDialog(this) == DialogResult.Cancel) @@ -544,7 +542,7 @@ listBoxMacro.Items.Insert(index, Common.CmdPrefixKeys + keysCommand.CommandString); listBoxMacro.SelectedIndex = index; } - else if (selected.StartsWith(Common.CmdPrefixMouse)) + else if (selected.StartsWith(Common.CmdPrefixMouse, StringComparison.OrdinalIgnoreCase)) { MouseCommand mouseCommand = new MouseCommand(selected.Substring(Common.CmdPrefixMouse.Length)); if (mouseCommand.ShowDialog(this) == DialogResult.Cancel) @@ -555,7 +553,7 @@ listBoxMacro.Items.Insert(index, Common.CmdPrefixMouse + mouseCommand.CommandString); listBoxMacro.SelectedIndex = index; } - else if (selected.StartsWith(Common.CmdPrefixEject)) + else if (selected.StartsWith(Common.CmdPrefixEject, StringComparison.OrdinalIgnoreCase)) { EjectCommand ejectCommand = new EjectCommand(selected.Substring(Common.CmdPrefixEject.Length)); if (ejectCommand.ShowDialog(this) == DialogResult.Cancel) @@ -566,7 +564,7 @@ listBoxMacro.Items.Insert(index, Common.CmdPrefixEject + ejectCommand.CommandString); listBoxMacro.SelectedIndex = index; } - else if (selected.StartsWith(Common.CmdPrefixBlast)) + else if (selected.StartsWith(Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase)) { string[] commands = Common.SplitBlastCommand(selected.Substring(Common.CmdPrefixBlast.Length)); Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-11-12 20:48:32 UTC (rev 1049) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -147,8 +147,18 @@ { imageListPrograms.Images.Clear(); imageListPrograms.Images.Add(Properties.Resources.WinLogo); - imageListPrograms.Images.Add(Properties.Resources.NoIcon); + Icon large; + Icon small; + + string folder = Environment.GetFolderPath(Environment.SpecialFolder.System); + string file = folder + "\\user32.dll"; + Win32.ExtractIcons(file, 1, out large, out small); + imageListPrograms.Images.Add(large); + + + //imageListPrograms.Images.Add(Properties.Resources.NoIcon); + string wasSelected = string.Empty; if (listViewPrograms.Items.Count > 0) wasSelected = listViewPrograms.Items[_selectedProgram].Text; @@ -165,13 +175,13 @@ int imageIndex = 2; foreach (ProgramSettings progSettings in Program.Config.Programs) { - Icon icon = Win32.GetIconFor(progSettings.Filename); + Icon icon = Win32.GetIconFor(progSettings.FileName); if (icon != null) { imageListPrograms.Images.Add(icon); newItem = new ListViewItem(progSettings.Name, imageIndex++); - newItem.ToolTipText = progSettings.Filename; + newItem.ToolTipText = progSettings.FileName; } else { @@ -222,7 +232,7 @@ comboBoxEvents.Items.Clear(); foreach (string eventName in Enum.GetNames(typeof(MappingEvent))) - if (eventName != "None") + if (!eventName.Equals("None", StringComparison.OrdinalIgnoreCase)) comboBoxEvents.Items.Add(eventName); comboBoxEvents.SelectedIndex = 0; @@ -372,7 +382,7 @@ if (editProg.ShowDialog(this) == DialogResult.OK) { progSettings.Name = editProg.DisplayName; - progSettings.Filename = editProg.Filename; + progSettings.FileName = editProg.Filename; progSettings.Folder = editProg.StartupFolder; progSettings.Arguments = editProg.Parameters; progSettings.WindowState = editProg.StartState; @@ -473,7 +483,7 @@ foreach (ButtonMapping test in currentMappings) { - if (keyCode == test.KeyCode) + if (keyCode.Equals(test.KeyCode, StringComparison.Ordinal)) { existing = test; map = new ButtonMappingForm(test.KeyCode, test.Description, test.Command); @@ -512,7 +522,7 @@ { for (int index = 0; index < listViewButtons.Items.Count; index++) { - if (listViewButtons.Items[index].SubItems[0].Text == map.KeyCode) + if (listViewButtons.Items[index].SubItems[0].Text.Equals(map.KeyCode, StringComparison.Ordinal)) { listViewButtons.Items[index].SubItems[1].Text = map.Description; listViewButtons.Items[index].SubItems[2].Text = map.Command; @@ -540,7 +550,7 @@ ButtonMapping toRemove = null; foreach (ButtonMapping test in currentMappings) { - if (test.KeyCode == item.SubItems[0].Text) + if (test.KeyCode.Equals(item.SubItems[0].Text, StringComparison.Ordinal)) { toRemove = test; break; @@ -563,7 +573,7 @@ foreach (ButtonMapping test in currentMappings) { - if (item.SubItems[0].Text == test.KeyCode) + if (item.SubItems[0].Text.Equals(test.KeyCode, StringComparison.Ordinal)) { ButtonMappingForm map = new ButtonMappingForm(test.KeyCode, test.Description, test.Command); @@ -613,7 +623,7 @@ foreach (ProgramSettings programSettings in Program.Config.Programs) { - if (programSettings.Name == programName) + if (programSettings.Name.Equals(programName, StringComparison.OrdinalIgnoreCase)) { ImportButtons(programSettings.ButtonMappings); return; @@ -633,7 +643,7 @@ foreach (ButtonMapping existingMapping in currentMappings) { - if (existingMapping.KeyCode == newMapping.KeyCode) + if (existingMapping.KeyCode.Equals(newMapping.KeyCode, StringComparison.Ordinal)) { // Change the existing mapping to the new one existingMapping.Description = newMapping.Description; @@ -952,7 +962,7 @@ string selected = comboBoxCommands.SelectedItem as string; string command = String.Empty; - if (selected == Common.UITextRun) + if (selected.Equals(Common.UITextRun, StringComparison.OrdinalIgnoreCase)) { ExternalProgram externalProgram = new ExternalProgram(false); @@ -961,7 +971,7 @@ command = Common.CmdPrefixRun + externalProgram.CommandString; } - else if (selected == Common.UITextSerial) + else if (selected.Equals(Common.UITextSerial, StringComparison.OrdinalIgnoreCase)) { SerialCommand serialCommand = new SerialCommand(); if (serialCommand.ShowDialog(this) == DialogResult.Cancel) @@ -969,7 +979,7 @@ command = Common.CmdPrefixSerial + serialCommand.CommandString; } - else if (selected == Common.UITextWindowMsg) + else if (selected.Equals(Common.UITextWindowMsg, StringComparison.OrdinalIgnoreCase)) { MessageCommand messageCommand = new MessageCommand(); if (messageCommand.ShowDialog(this) == DialogResult.Cancel) @@ -977,7 +987,7 @@ command = Common.CmdPrefixWindowMsg + messageCommand.CommandString; } - else if (selected == Common.UITextKeys) + else if (selected.Equals(Common.UITextKeys, StringComparison.OrdinalIgnoreCase)) { KeysCommand keysCommand = new KeysCommand(); if (keysCommand.ShowDialog(this) == DialogResult.Cancel) @@ -985,7 +995,7 @@ command = Common.CmdPrefixKeys + keysCommand.CommandString; } - else if (selected.StartsWith(Common.CmdPrefixBlast)) + else if (selected.StartsWith(Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase)) { BlastCommand blastCommand = new BlastCommand( new BlastIrDelegate(Program.BlastIR), @@ -998,7 +1008,7 @@ command = Common.CmdPrefixBlast + blastCommand.CommandString; } - else if (selected.StartsWith(Common.CmdPrefixMacro)) + else if (selected.StartsWith(Common.CmdPrefixMacro, StringComparison.OrdinalIgnoreCase)) { command = selected; } @@ -1025,7 +1035,7 @@ string command = listViewEventMap.SelectedItems[0].SubItems[1].Text; - if (command.StartsWith(Common.CmdPrefixRun)) + if (command.StartsWith(Common.CmdPrefixRun, StringComparison.OrdinalIgnoreCase)) { string[] commands = Common.SplitRunCommand(command.Substring(Common.CmdPrefixRun.Length)); ExternalProgram externalProgram = new ExternalProgram(commands, false); @@ -1034,7 +1044,7 @@ command = Common.CmdPrefixRun + externalProgram.CommandString; } - else if (command.StartsWith(Common.CmdPrefixSerial)) + else if (command.StartsWith(Common.CmdPrefixSerial, StringComparison.OrdinalIgnoreCase)) { string[] commands = Common.SplitSerialCommand(command.Substring(Common.CmdPrefixSerial.Length)); SerialCommand serialCommand = new SerialCommand(commands); @@ -1043,7 +1053,7 @@ command = Common.CmdPrefixSerial + serialCommand.CommandString; } - else if (command.StartsWith(Common.CmdPrefixWindowMsg)) + else if (command.StartsWith(Common.CmdPrefixWindowMsg, StringComparison.OrdinalIgnoreCase)) { string[] commands = Common.SplitWindowMessageCommand(command.Substring(Common.CmdPrefixWindowMsg.Length)); MessageCommand messageCommand = new MessageCommand(commands); @@ -1052,7 +1062,7 @@ command = Common.CmdPrefixWindowMsg + messageCommand.CommandString; } - else if (command.StartsWith(Common.CmdPrefixKeys)) + else if (command.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) { KeysCommand keysCommand = new KeysCommand(command.Substring(Common.CmdPrefixKeys.Length)); if (keysCommand.ShowDialog(this) == DialogResult.Cancel) @@ -1060,7 +1070,7 @@ command = Common.CmdPrefixKeys + keysCommand.CommandString; } - else if (command.StartsWith(Common.CmdPrefixBlast)) + else if (command.StartsWith(Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase)) { string[] commands = Common.SplitBlastCommand(command.Substring(Common.CmdPrefixBlast.Length)); @@ -1256,7 +1266,7 @@ if (programSettings.Name.Equals(selectedItem)) continue; - Icon icon = Win32.GetIconFor(programSettings.Filename); + Icon icon = Win32.GetIconFor(programSettings.FileName); Image image = null; if (icon != null) image = icon.ToBitmap(); Added: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.Designer.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -0,0 +1,115 @@ +namespace Translator +{ + partial class MenuForm + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.listViewMenu = new System.Windows.Forms.ListView(); + this.toolTips = new System.Windows.Forms.ToolTip(this.components); + this.labelHeader = new System.Windows.Forms.Label(); + this.columnHeader = new System.Windows.Forms.ColumnHeader(); + this.SuspendLayout(); + // + // listViewMenu + // + this.listViewMenu.Activation = System.Windows.Forms.ItemActivation.OneClick; + this.listViewMenu.Alignment = System.Windows.Forms.ListViewAlignment.Left; + this.listViewMenu.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.listViewMenu.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader}); + this.listViewMenu.Dock = System.Windows.Forms.DockStyle.Fill; + this.listViewMenu.FullRowSelect = true; + this.listViewMenu.GridLines = true; + this.listViewMenu.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; + this.listViewMenu.HideSelection = false; + this.listViewMenu.HotTracking = true; + this.listViewMenu.HoverSelection = true; + this.listViewMenu.Location = new System.Drawing.Point(0, 20); + this.listViewMenu.MultiSelect = false; + this.listViewMenu.Name = "listViewMenu"; + this.listViewMenu.Scrollable = false; + this.listViewMenu.ShowGroups = false; + this.listViewMenu.ShowItemToolTips = true; + this.listViewMenu.Size = new System.Drawing.Size(256, 108); + this.listViewMenu.TabIndex = 1; + this.listViewMenu.TileSize = new System.Drawing.Size(128, 96); + this.listViewMenu.UseCompatibleStateImageBehavior = false; + this.listViewMenu.ItemActivate += new System.EventHandler(this.listViewMenu_ItemActivate); + this.listViewMenu.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.listViewMenu_KeyPress); + // + // labelHeader + // + this.labelHeader.BackColor = System.Drawing.SystemColors.GradientActiveCaption; + this.labelHeader.Dock = System.Windows.Forms.DockStyle.Top; + this.labelHeader.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelHeader.Location = new System.Drawing.Point(0, 0); + this.labelHeader.Name = "labelHeader"; + this.labelHeader.Size = new System.Drawing.Size(256, 20); + this.labelHeader.TabIndex = 0; + this.labelHeader.Text = "Translator OSD"; + this.labelHeader.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // columnHeader + // + this.columnHeader.Width = 232; + // + // MenuForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(256, 128); + this.ControlBox = false; + this.Controls.Add(this.listViewMenu); + this.Controls.Add(this.labelHeader); + this.DoubleBuffered = true; + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(512, 256); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(256, 128); + this.Name = "MenuForm"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "MenuForm"; + this.TopMost = true; + this.Deactivate += new System.EventHandler(this.MenuForm_Deactivate); + this.Shown += new System.EventHandler(this.MenuForm_Shown); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ListView listViewMenu; + private System.Windows.Forms.ToolTip toolTips; + private System.Windows.Forms.Label labelHeader; + private System.Windows.Forms.ColumnHeader columnHeader; + } +} \ No newline at end of file Added: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.cs (rev 0) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.cs 2007-11-13 05:04:36 UTC (rev 1050) @@ -0,0 +1,786 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Text; +using System.Windows.Forms; + +using IrssUtils; + +namespace Translator +{ + + /// <summary> + /// Translator Menu. + /// </summary> + public partial class MenuForm : Form + { + + #region Constants + + const string WindowTitle = "Translator OSD"; + + // Menus + const string MenuMain = "Main"; + const string MenuLaunch = "Launch"; + const string MenuTasks = "Tasks"; + const string MenuMacros = "Macros"; + const string MenuSystem = "System"; + const string MenuWindows = "Windows"; + const string MenuPower = "Power"; + const string MenuAudio = "Audio"; + const string MenuEject = "Eject"; + + // Menu UI Text + const string UITextMain = "Main Menu"; + const string UITextLaunch = "Launch App"; + const string UITextTasks = "Task Swap"; + const string UITextMacros = "Macros"; + const string UITextSystem = "System Commands"; + const string UITextWindows = "Window Management"; + const string UITextPower = "Power"; + const string UITextAudio = "Audio"; + const string UITextEject = "Eject"; + + // Menu descriptions + const string DescLaunch = "Launch an application"; + const string DescTasks = "Switch between running programs"; + const string DescMacros = "Run a macro"; + const string DescSystem = "Perform a system command"; + const string DescWindows = "Manage open windows"; + const string DescPower = "Modify the computer's power state"; + const string DescAudio = "Adjust the system volume"; + const string DescEject = "Eject a disc"; + + // Tags + const string TagMenu = "Menu: "; + const string TagMacro = "Macro: "; + const string TagLaunch = "Launch: "; + const string TagCommand = "Command: "; + const string TagEject = "Eject: "; + + // Commands + const string CommandShutdown = "Shutdown"; + const string CommandReboot = "Reboot"; + const string CommandLogOff = "LogOff"; + const string CommandStandby = "Standby"; + const string CommandHibernate = "Hibernate"; + + // Icon indexes + const int IconLaunch = 24; + const int IconTasks = 98; + const int IconMacros = 70; + const int IconDesktop = 34; + const int IconWindows = 15; + const int IconPower = 27; + const int IconAudio = 168; + const int IconEject = 188; + + #endregion Constants + + #region Variables + + ImageList _listMain; + + ListViewItem _launch; + ListViewItem _taskSwitch; + ListViewItem _macro; + ListViewItem _system; + + List<string> _menuStack; + + string _startMenu = "Main"; + + #endregion Variables + + /// <summary> + /// Initializes a new instance of the <see cref="MenuForm"/> class. + /// </summary> + public MenuForm() + { + InitializeComponent(); + + CreateMainImageList(); + + _launch = new ListViewItem(UITextLaunch, 0); + _launch.ToolTipText = DescLaunch; + _launch.Tag = TagMenu + MenuLaunch; + + _taskSwitch = new ListViewItem(UITextTasks, 1); + _taskSwitch.ToolTipText = DescTasks; + _taskSwitch.Tag = TagMenu + MenuTasks; + + _macro = new ListViewItem(UITextMacros, 2); + _macro.ToolTipText = DescMacros; + _macro.Tag = TagMenu + MenuMacros; + + _system = new ListViewItem(UITextSystem, 3); + _system.ToolTipText = DescSystem; + _system.Tag = TagMenu + MenuSystem; + + _menuStack = new List<string>(); + } + + private void MenuForm_Shown(object sender, EventArgs e) + { + SwitchMenu(_startMenu); + _startMenu = MenuMain; + + Win32.SetForegroundWindow(this.Handle, true); + + //listViewMenu.Select(); + } + + private void MenuForm_Deactivate(object sender, EventArgs e) + { + this.Close(); + } + + + + void CreateMainImageList() + { + _listMain = new ImageList(); + _listMain.ColorDepth = ColorDepth.Depth32Bit; + _listMain.ImageSize = new Size(32, 32); + + Icon large; + Icon small; + + string folder = Environment.GetFolderPath(Environment.SpecialFolder.System); + string file = folder + "\\shell32.dll"; + + Win32.ExtractIcons(file, IconLaunch, out large, out small); + _listMain.Images.Add(large); + + Win32.ExtractIcons(file, IconTasks, out large, out small); + _listMain.Images.Add(large); + + Win32.ExtractIcons(file, IconMacros, out large, out small); + _listMain.Images.Add(large); + + _listMain.Images.Add(Properties.Resources.WinLogo); + } + + void SetToIconStyle() + { + listViewMenu.View = View.LargeIcon; + listViewMenu.Alignment = ListViewAlignment.Left; + listViewMenu.Scrollable = true; + + } + void SetToListStyle() + { + listViewMenu.View = View.Details; + listViewMenu.Alignment = ListViewAlignment.Top; + listViewMenu.Scrollable = true; + + } + + void SetWindowTitle(string subMenuName) + { + if (String.IsNullOrEmpty(subMenuName)) + labelHeader.Text = WindowTitle; + else + labelHeader.Text = WindowTitle + " - " + subMenuName; + } + + + void LoadMenuMain() + { + SetWindowTitle(UITextMain); + + listViewMenu.LargeImageList = _listMain; + + //listViewMenu.SelectedItems.Clear(); + listViewMenu.Items.Clear(); + + SetToIconStyle(); + + listViewMenu.Items.Add(_launch); + listViewMenu.Items.Add(_taskSwitch); + listViewMenu.Items.Add(_macro); + listViewMenu.Items.Add(_system); + + _launch.Selected = true; + } + + void LoadMenuLaunch() + { + SetWindowTitle(UITextLaunch); + + //listViewMenu.SelectedItems.Clear(); + listViewMenu.Items.Clear(); + + ImageList newList = new ImageList(); + newList.ColorDepth = ColorDepth.Depth32Bit; + newList.ImageSize = new Size(32, 32); + + listViewMenu.LargeImageList = newList; + + SetToIconStyle(); + + int index = 0; + foreach (ProgramSettings program in Program.Config.Programs) + { + newList.Images.Add(Win32.GetIconFor(program.FileName)); + ListViewItem item = new ListViewItem(program.Name, index++); + item.ToolTipText = program.FileName; + item.Tag = TagLaunch + program.FileName; + + listViewMenu.Items.Add(item); + } + + listViewMenu.Items[0].Selected = true; + } + void LoadMenuTasks() + { + SetWindowTitle(UITextTasks); + + //listViewMenu.SelectedItems.Clear(); + listViewMenu.Items.Clear(); + + ImageList newList = new ImageList(); + newList.ColorDepth = ColorDepth.Depth32Bit; + newList.ImageSize = new Size(32, 32); + + listViewMenu.LargeImageList = newList; + + SetToIconStyle(); + + Icon large; + Icon small; + + string folder = Environment.GetFolderPath(Environment.SpecialFolder.System); + string file = folder + "\\shell32.dll"; + + Win32.ExtractIcons(file, IconDesktop, out large, out small); + newList.Images.Add(large); + + ListViewItem desktop = new ListViewItem("Desktop", 0); + desktop.ToolTipText = "Show the Desktop"; + desktop.Tag = IntPtr.Zero; + d... [truncated message content] |
From: <an...@us...> - 2007-11-27 15:50:50
|
Revision: 1091 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1091&view=rev Author: and-81 Date: 2007-11-27 07:50:44 -0800 (Tue, 27 Nov 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj trunk/plugins/IR Server Suite/Applications/IR Server/IR Server.csproj trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs trunk/plugins/IR Server Suite/Applications/IR Server/Properties/Resources.Designer.cs trunk/plugins/IR Server Suite/Applications/SageSetup/Sage Setup.csproj trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/EditProgramForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Applications/Translator/ProgramSettings.cs trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray Launcher.csproj trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote/Virtual Remote.csproj trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Virtual Remote Skin Editor.csproj trunk/plugins/IR Server Suite/Common/IrssComms/GenericPCQueue.cs trunk/plugins/IR Server Suite/Common/IrssComms/IrssComms.csproj trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ExternalProgram.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj trunk/plugins/IR Server Suite/Common/MPUtils/MPCommon.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Driver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Microsoft MCE Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.cs trunk/plugins/IR Server Suite/Input Service/Input Service/Input Service.csproj trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Configuration.csproj trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/SetupForm.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MP Blast Zone Plugin.csproj trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MPBlastZonePlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/SetupForm.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapper/InputHandler.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs Added Paths: ----------- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FusionREMOTE Tiger.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FusionREMOTE.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FusionREMOTE.xml trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Dark.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Gold.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Grass.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE.xml trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Xbox Blue Plasma.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Xbox Orange.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Xbox.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Xbox.xml trunk/plugins/IR Server Suite/Documentation/ trunk/plugins/IR Server Suite/Documentation/Common/ trunk/plugins/IR Server Suite/Documentation/Common/debug_client.png trunk/plugins/IR Server Suite/Documentation/Common/external_program.html trunk/plugins/IR Server Suite/Documentation/Common/external_program.png trunk/plugins/IR Server Suite/Documentation/Common/ffdshow.html trunk/plugins/IR Server Suite/Documentation/Common/ffdshow.png trunk/plugins/IR Server Suite/Documentation/Common/ffdshow_constants.h.txt trunk/plugins/IR Server Suite/Documentation/Common/goto_command.png trunk/plugins/IR Server Suite/Documentation/Common/keystrokes.html trunk/plugins/IR Server Suite/Documentation/Common/keystrokes.png trunk/plugins/IR Server Suite/Documentation/Common/keystrokes_info.html trunk/plugins/IR Server Suite/Documentation/Common/learn_ir.html trunk/plugins/IR Server Suite/Documentation/Common/learn_ir.png trunk/plugins/IR Server Suite/Documentation/Common/macro_editor.html trunk/plugins/IR Server Suite/Documentation/Common/macro_editor.png trunk/plugins/IR Server Suite/Documentation/Common/message_command.html trunk/plugins/IR Server Suite/Documentation/Common/message_command.png trunk/plugins/IR Server Suite/Documentation/Common/pause_command.png trunk/plugins/IR Server Suite/Documentation/Common/serial_command.html trunk/plugins/IR Server Suite/Documentation/Common/serial_command.png trunk/plugins/IR Server Suite/Documentation/Common/set_server.png trunk/plugins/IR Server Suite/Documentation/IR Server/ trunk/plugins/IR Server Suite/Documentation/IR Server/configuration.png trunk/plugins/IR Server Suite/Documentation/IR Server/index.html trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhc trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhp trunk/plugins/IR Server Suite/Documentation/Plugins/ trunk/plugins/IR Server Suite/Documentation/Plugins/MP Blast Zone Plugin/ trunk/plugins/IR Server Suite/Documentation/Plugins/MP Blast Zone Plugin/Delete.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Blast Zone Plugin/DeleteAll.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Blast Zone Plugin/Edit.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Blast Zone Plugin/MoveBottom.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Blast Zone Plugin/MoveDown.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Blast Zone Plugin/MoveTop.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Blast Zone Plugin/MoveUp.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Blast Zone Plugin/Plus.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Blast Zone Plugin/index.html trunk/plugins/IR Server Suite/Documentation/Plugins/MP Blast Zone Plugin/ir_commands.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Blast Zone Plugin/macros.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Blast Zone Plugin/menu_setup.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Control Plugin/ trunk/plugins/IR Server Suite/Documentation/Plugins/MP Control Plugin/event_mapper.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Control Plugin/event_tutorial.html trunk/plugins/IR Server Suite/Documentation/Plugins/MP Control Plugin/ffdshow_control.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Control Plugin/index.html trunk/plugins/IR Server Suite/Documentation/Plugins/MP Control Plugin/ir_commands.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Control Plugin/macros.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Control Plugin/mapping.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Control Plugin/mouse_mode.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Control Plugin/multi_mapping.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Control Plugin/new_button.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Control Plugin/new_multi_mapping.png trunk/plugins/IR Server Suite/Documentation/Plugins/MP Control Plugin/remote_controls.png trunk/plugins/IR Server Suite/Documentation/Plugins/TV2 Blaster Plugin/ trunk/plugins/IR Server Suite/Documentation/Plugins/TV2 Blaster Plugin/configuration.png trunk/plugins/IR Server Suite/Documentation/Plugins/TV2 Blaster Plugin/external_channel.png trunk/plugins/IR Server Suite/Documentation/Plugins/TV2 Blaster Plugin/index.html trunk/plugins/IR Server Suite/Documentation/Plugins/TV2 Blaster Plugin/ir_commands.png trunk/plugins/IR Server Suite/Documentation/Plugins/TV2 Blaster Plugin/macros.png trunk/plugins/IR Server Suite/Documentation/Plugins/TV3 Blaster Plugin/ trunk/plugins/IR Server Suite/Documentation/Plugins/TV3 Blaster Plugin/configuration.png trunk/plugins/IR Server Suite/Documentation/Plugins/TV3 Blaster Plugin/external_channel.png trunk/plugins/IR Server Suite/Documentation/Plugins/TV3 Blaster Plugin/index.html trunk/plugins/IR Server Suite/Documentation/Plugins/TV3 Blaster Plugin/ir_commands.png trunk/plugins/IR Server Suite/Documentation/Plugins/TV3 Blaster Plugin/macros.png trunk/plugins/IR Server Suite/Documentation/Plugins/index.html trunk/plugins/IR Server Suite/Documentation/Plugins/stb.html trunk/plugins/IR Server Suite/Documentation/Sage Setup/ trunk/plugins/IR Server Suite/Documentation/Sage Setup/SageSetup.png trunk/plugins/IR Server Suite/Documentation/Translator/ trunk/plugins/IR Server Suite/Documentation/Translator/button_mapping.png trunk/plugins/IR Server Suite/Documentation/Translator/events.png trunk/plugins/IR Server Suite/Documentation/Translator/index.html trunk/plugins/IR Server Suite/Documentation/Translator/ir_commands.png trunk/plugins/IR Server Suite/Documentation/Translator/macros.png trunk/plugins/IR Server Suite/Documentation/Translator/programs.png trunk/plugins/IR Server Suite/Documentation/Tray Launcher/ trunk/plugins/IR Server Suite/Documentation/Tray Launcher/index.html trunk/plugins/IR Server Suite/Documentation/Tray Launcher/setup.png trunk/plugins/IR Server Suite/Documentation/Virtual Remote/ trunk/plugins/IR Server Suite/Documentation/Virtual Remote/Skin Editor/ trunk/plugins/IR Server Suite/Documentation/Virtual Remote/Skin Editor/index.html trunk/plugins/IR Server Suite/Documentation/Virtual Remote/Skin Editor/skin_editor.png trunk/plugins/IR Server Suite/Documentation/Virtual Remote/index.html trunk/plugins/IR Server Suite/Documentation/Virtual Remote/virtual_remote.png trunk/plugins/IR Server Suite/Documentation/ehome_driver.html trunk/plugins/IR Server Suite/Documentation/introduction.html trunk/plugins/IR Server Suite/Documentation/irblast.html trunk/plugins/IR Server Suite/Documentation/new.html trunk/plugins/IR Server Suite/Documentation/pronto.html trunk/plugins/IR Server Suite/IR Server Suite.nsi trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/AppData/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/AppData/Menu.xml trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/AppData/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/AppData/EventMapping.xml trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/AppData/MultiMapping.xml trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/AppData/Remote Presets/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/AppData/Remote Presets/FusionREMOTE.xml trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/AppData/Remote Presets/Microsoft MCE (basic).xml trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/AppData/Remote Presets/Microsoft MCE (full).xml trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/AppData/Remote Presets/Template.xml trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/AppData/Remote Presets/Windows Messages.xml trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/AppData/Remote Presets/XBCDRC - Xbox Remote.xml trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/AppData/Remotes.xml trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapping/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapping/MPControlPlugin.xml trunk/plugins/IR Server Suite/Set Top Boxes/ trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/ trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100.xml trunk/plugins/IR Server Suite/Set Top Boxes/ADB ABQ-1H4G/ trunk/plugins/IR Server Suite/Set Top Boxes/ADB ABQ-1H4G/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB ABQ-1H4G/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB ABQ-1H4G/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB ABQ-1H4G/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB ABQ-1H4G/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB ABQ-1H4G/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB ABQ-1H4G/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB ABQ-1H4G/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB ABQ-1H4G/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB ABQ-1H4G/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB ABQ-1H4G/OK.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB ABQ-1H4G.xml trunk/plugins/IR Server Suite/Set Top Boxes/Amstrad DRX-300/ trunk/plugins/IR Server Suite/Set Top Boxes/Amstrad DRX-300/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Amstrad DRX-300/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Amstrad DRX-300/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Amstrad DRX-300/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Amstrad DRX-300/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Amstrad DRX-300/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Amstrad DRX-300/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Amstrad DRX-300/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Amstrad DRX-300/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Amstrad DRX-300/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Amstrad DRX-300.xml trunk/plugins/IR Server Suite/Set Top Boxes/Coolsat/ trunk/plugins/IR Server Suite/Set Top Boxes/Coolsat/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Coolsat/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Coolsat/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Coolsat/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Coolsat/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Coolsat/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Coolsat/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Coolsat/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Coolsat/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Coolsat/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Coolsat/OK.IR trunk/plugins/IR Server Suite/Set Top Boxes/Coolsat.xml trunk/plugins/IR Server Suite/Set Top Boxes/D-Box/ trunk/plugins/IR Server Suite/Set Top Boxes/D-Box/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/D-Box/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/D-Box/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/D-Box/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/D-Box/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/D-Box/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/D-Box/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/D-Box/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/D-Box/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/D-Box/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/D-Box.xml trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/ trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/SELECT.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355.xml trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV D10/ trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV D10/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV D10/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV D10/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV D10/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV D10/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV D10/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV D10/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV D10/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV D10/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV D10/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV D10/ENTER.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV D10-100 (Serial).xml trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV D10-200 (Serial).xml trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV D10.xml trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV HR10-250/ trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV HR10-250/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV HR10-250/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV HR10-250/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV HR10-250/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV HR10-250/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV HR10-250/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV HR10-250/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV HR10-250/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV HR10-250/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV HR10-250/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV HR10-250/SELECT.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV HR10-250.xml trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV R15/ trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV R15/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV R15/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV R15/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV R15/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV R15/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV R15/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV R15/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV R15/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV R15/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV R15/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV R15/SELECT.IR trunk/plugins/IR Server Suite/Set Top Boxes/DirecTV R15.xml trunk/plugins/IR Server Suite/Set Top Boxes/Dish 301/ trunk/plugins/IR Server Suite/Set Top Boxes/Dish 301/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 301/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 301/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 301/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 301/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 301/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 301/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 301/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 301/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 301/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 301/ENTER.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 301.xml trunk/plugins/IR Server Suite/Set Top Boxes/Dish 811/ trunk/plugins/IR Server Suite/Set Top Boxes/Dish 811/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 811/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 811/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 811/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 811/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 811/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 811/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 811/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 811/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 811/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 811/GO.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dish 811.xml trunk/plugins/IR Server Suite/Set Top Boxes/DreamBox 7000/ trunk/plugins/IR Server Suite/Set Top Boxes/DreamBox 7000/0.ir trunk/plugins/IR Server Suite/Set Top Boxes/DreamBox 7000/1.ir trunk/plugins/IR Server Suite/Set Top Boxes/DreamBox 7000/2.ir trunk/plugins/IR Server Suite/Set Top Boxes/DreamBox 7000/3.ir trunk/plugins/IR Server Suite/Set Top Boxes/DreamBox 7000/4.ir trunk/plugins/IR Server Suite/Set Top Boxes/DreamBox 7000/5.ir trunk/plugins/IR Server Suite/Set Top Boxes/DreamBox 7000/6.ir trunk/plugins/IR Server Suite/Set Top Boxes/DreamBox 7000/7.ir trunk/plugins/IR Server Suite/Set Top Boxes/DreamBox 7000/8.ir trunk/plugins/IR Server Suite/Set Top Boxes/DreamBox 7000/9.ir trunk/plugins/IR Server Suite/Set Top Boxes/DreamBox 7000/OK.ir trunk/plugins/IR Server Suite/Set Top Boxes/DreamBox 7000/Power.ir trunk/plugins/IR Server Suite/Set Top Boxes/DreamBox 7000.xml trunk/plugins/IR Server Suite/Set Top Boxes/Force 536/ trunk/plugins/IR Server Suite/Set Top Boxes/Force 536/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Force 536/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Force 536/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Force 536/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Force 536/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Force 536/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Force 536/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Force 536/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Force 536/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Force 536/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Force 536/EXIT.IR trunk/plugins/IR Server Suite/Set Top Boxes/Force 536/POWER.IR trunk/plugins/IR Server Suite/Set Top Boxes/Force 536.xml trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel Digital DC420NF/ trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel Digital DC420NF/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel Digital DC420NF/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel Digital DC420NF/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel Digital DC420NF/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel Digital DC420NF/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel Digital DC420NF/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel Digital DC420NF/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel Digital DC420NF/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel Digital DC420NF/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel Digital DC420NF/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel Digital DC420NF.xml trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel STU100/ trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel STU100/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel STU100/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel STU100/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel STU100/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel STU100/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel STU100/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel STU100/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel STU100/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel STU100/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel STU100/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Foxtel STU100.xml trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2000/ trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2000/0.ir trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2000/1.ir trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2000/2.ir trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2000/3.ir trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2000/4.ir trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2000/5.ir trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2000/6.ir trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2000/7.ir trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2000/8.ir trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2000/9.ir trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2000/EXIT.ir trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2000/OK.ir trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2000/Power.ir trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2000.xml trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2224/ trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2224/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2224/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2224/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2224/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2224/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2224/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2224/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2224/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2224/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2224/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2224/OK.IR trunk/plugins/IR Server Suite/Set Top Boxes/General Instruments DCT2224.xml trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT/ trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT/BACK.IR trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT/CH_DN.IR trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT/CH_UP.IR trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT/OK.IR trunk/plugins/IR Server Suite/Set Top Boxes/Israel HOT.xml trunk/plugins/IR Server Suite/Set Top Boxes/JVC TU-4700/ trunk/plugins/IR Server Suite/Set Top Boxes/JVC TU-4700/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/JVC TU-4700/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/JVC TU-4700/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/JVC TU-4700/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/JVC TU-4700/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/JVC TU-4700/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/JVC TU-4700/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/JVC TU-4700/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/JVC TU-4700/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/JVC TU-4700/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/JVC TU-4700/SELECT.IR trunk/plugins/IR Server Suite/Set Top Boxes/JVC TU-4700.xml trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660/ trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660/0.ir trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660/1.ir trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660/2.ir trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660/3.ir trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660/4.ir trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660/5.ir trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660/6.ir trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660/7.ir trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660/8.ir trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660/9.ir trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660/Exit.ir trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660/Menu.ir trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660/OK.ir trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660/Power.ir trunk/plugins/IR Server Suite/Set Top Boxes/MultiChoice DSD660.xml trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 221T/ trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 221T/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 221T/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 221T/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 221T/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 221T/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 221T/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 221T/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 221T/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 221T/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 221T/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 221T/SELECT.IR trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 221T.xml trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 9800s/ trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 9800s/0.ir trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 9800s/1.ir trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 9800s/2.ir trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 9800s/3.ir trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 9800s/4.ir trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 9800s/5.ir trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 9800s/6.ir trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 9800s/7.ir trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 9800s/8.ir trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 9800s/9.ir trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 9800s/OK.ir trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 9800s and 9902s (Serial).xml trunk/plugins/IR Server Suite/Set Top Boxes/Nokia 9800s.xml trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital/ trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital/SELECT.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital DTR730/ trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital DTR730/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital DTR730/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital DTR730/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital DTR730/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital DTR730/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital DTR730/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital DTR730/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital DTR730/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital DTR730/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital DTR730/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital DTR730/SELECT.IR trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital DTR730.xml trunk/plugins/IR Server Suite/Set Top Boxes/OnDigital.xml trunk/plugins/IR Server Suite/Set Top Boxes/Pace 4100/ trunk/plugins/IR Server Suite/Set Top Boxes/Pace 4100/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pace 4100/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pace 4100/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pace 4100/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pace 4100/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pace 4100/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pace 4100/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pace 4100/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pace 4100/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pace 4100/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pace 4100.xml trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/ trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV.xml trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/ trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540.xml trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BD-V1100/ trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BD-V1100/0.ir trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BD-V1100/1.ir trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BD-V1100/2.ir trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BD-V1100/3.ir trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BD-V1100/4.ir trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BD-V1100/5.ir trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BD-V1100/6.ir trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BD-V1100/7.ir trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BD-V1100/8.ir trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BD-V1100/9.ir trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BD-V1100/exit.ir trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BD-V1100.xml trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer DBR-TF100GB/ trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer DBR-TF100GB/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer DBR-TF100GB/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer DBR-TF100GB/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer DBR-TF100GB/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer DBR-TF100GB/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer DBR-TF100GB/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer DBR-TF100GB/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer DBR-TF100GB/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer DBR-TF100GB/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer DBR-TF100GB/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer DBR-TF100GB/SELECT.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer DBR-TF100GB.xml trunk/plugins/IR Server Suite/Set Top Boxes/Sagem D-Box II/ trunk/plugins/IR Server Suite/Set Top Boxes/Sagem D-Box II/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem D-Box II/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem D-Box II/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem D-Box II/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem D-Box II/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem D-Box II/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem D-Box II/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem D-Box II/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem D-Box II/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem D-Box II/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem D-Box II/OK.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem D-Box II.xml trunk/plugins/IR Server Suite/Set Top Boxes/Sagem ICD-503/ trunk/plugins/IR Server Suite/Set Top Boxes/Sagem ICD-503/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem ICD-503/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem ICD-503/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem ICD-503/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem ICD-503/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem ICD-503/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem ICD-503/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem ICD-503/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem ICD-503/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem ICD-503/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sagem ICD-503.xml trunk/plugins/IR Server Suite/Set Top Boxes/Samsung SMT 2100C/ trunk/plugins/IR Server Suite/Set Top Boxes/Samsung SMT 2100C/#.IR trunk/plugins/IR Server Suite/Set Top Boxes/Samsung SMT 2100C/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Samsung SMT 2100C/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Samsung SMT 2100C/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Samsung SMT 2100C/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Samsung SMT 2100C/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Samsung SMT 2100C/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Samsung SMT 2100C/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Samsung SMT 2100C/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Samsung SMT 2100C/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Samsung SMT 2100C/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Samsung SMT 2100C/Prechange.IR trunk/plugins/IR Server Suite/Set Top Boxes/Samsung SMT 2100C.xml trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 2100/ trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 2100/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 2100/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 2100/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 2100/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 2100/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 2100/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 2100/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 2100/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 2100/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 2100/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 2100/OK.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 2100.xml trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 3250/ trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 3250/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 3250/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 3250/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 3250/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 3250/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 3250/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 3250/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 3250/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 3250/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 3250/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 3250/ENTER.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 3250/LAST.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 3250.xml trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 4000DVB/ trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 4000DVB/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 4000DVB/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 4000DVB/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 4000DVB/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 4000DVB/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 4000DVB/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 4000DVB/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 4000DVB/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 4000DVB/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 4000DVB/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 4000DVB/OK.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 4000DVB.xml trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300/ trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300/BACK.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300/ENTER.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300/EXIT.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300/SELECT.IR trunk/plugins/IR Server Suite/Set Top Boxes/Scientific Atlanta Explorer 8300.xml trunk/plugins/IR Server Suite/Set Top Boxes/Sky/ trunk/plugins/IR Server Suite/Set Top Boxes/Sky/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox 2500N/ trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox 2500N/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox 2500N/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox 2500N/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox 2500N/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox 2500N/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox 2500N/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox 2500N/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox 2500N/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox 2500N/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox 2500N/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox 2500N/SELECT.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox 2500N.xml trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox Amstrad/ trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox Amstrad/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox Amstrad/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox Amstrad/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox Amstrad/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox Amstrad/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox Amstrad/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox Amstrad/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox Amstrad/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox Amstrad/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox Amstrad/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox Amstrad/SELECT.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox Amstrad.xml trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB20/ trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB20/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB20/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB20/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB20/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB20/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB20/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB20/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB20/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB20/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB20/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB20/SELECT.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB20.xml trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB30/ trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB30/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB30/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB30/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB30/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB30/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB30/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB30/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB30/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB30/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB30/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB30/OK.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB30.xml trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB31/ trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB31/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB31/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB31/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB31/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB31/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB31/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB31/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB31/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB31/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB31/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB31/OK.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB31.xml trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB40/ trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB40/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB40/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB40/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB40/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB40/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB40/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB40/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB40/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB40/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB40/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB40/SELECT.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky DigiBox TU-DSB40.xml trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/ trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/SELECT.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith.xml trunk/plugins/IR Server Suite/Set Top Boxes/Sky+ BSKYB 2200/ trunk/plugins/IR Server Suite/Set Top Boxes/Sky+ BSKYB 2200/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky+ BSKYB 2200/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky+ BSKYB 2200/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky+ BSKYB 2200/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky+ BSKYB 2200/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky+ BSKYB 2200/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky+ BSKYB 2200/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky+ BSKYB 2200/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky+ BSKYB 2200/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky+ BSKYB 2200/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky+ BSKYB 2200.xml trunk/plugins/IR Server Suite/Set Top Boxes/Sky.xml trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/ trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/CHANNEL DOWN.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/CHANNEL UP.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/DOWN.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/LEFT.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/MUTE.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/OBUTTON.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/PLUSBUTTON.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/QUESTIONMARK.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/RIGHT.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/UP.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/VOLUME DOWN.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000/VOLUME UP.IR trunk/plugins/IR Server Suite/Set Top Boxes/SkyNZ Pace DSR6000.xml trunk/plugins/IR Server Suite/Set Top Boxes/Xsat CDTV-410/ trunk/plugins/IR Server Suite/Set Top Boxes/Xsat CDTV-410/0.ir trunk/plugins/IR Server Suite/Set Top Boxes/Xsat CDTV-410/1.ir trunk/plugins/IR Server Suite/Set Top Boxes/Xsat CDTV-410/2.ir trunk/plugins/IR Server Suite/Set Top Boxes/Xsat CDTV-410/3.ir trunk/plugins/IR Server Suite/Set Top Boxes/Xsat CDTV-410/4.ir trunk/plugins/IR Server Suite/Set Top Boxes/Xsat CDTV-410/5.ir trunk/plugins/IR Server Suite/Set Top Boxes/Xsat CDTV-410/6.ir trunk/plugins/IR Server Suite/Set Top Boxes/Xsat CDTV-410/7.ir trunk/plugins/IR Server Suite/Set Top Boxes/Xsat CDTV-410/8.ir trunk/plugins/IR Server Suite/Set Top Boxes/Xsat CDTV-410/9.ir trunk/plugins/IR Server Suite/Set Top Boxes/Xsat CDTV-410/OK.ir trunk/plugins/IR Server Suite/Set Top Boxes/Xsat CDTV-410/Power.ir trunk/plugins/IR Server Suite/Set Top Boxes/Xsat CDTV-410.xml Modified: trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj 2007-11-26 18:17:30 UTC (rev 1090) +++ trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj 2007-11-27 15:50:44 UTC (rev 1091) @@ -22,7 +22,8 @@ <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> - <DocumentationFile>bin\Debug\DebugClient.XML</DocumentationFile> + <DocumentationFile> + </DocumentationFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> Modified: trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj 2007-11-26 18:17:30 UTC (rev 1090) +++ trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj 2007-11-27 15:50:44 UTC (rev 1091) @@ -23,7 +23,8 @@ <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> - <DocumentationFile>bin\Debug\IRBlast.XML</DocumentationFile> + <DocumentationFile> + </DocumentationFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> Modified: trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj 2007-11-26 18:17:30 UTC (rev 1090) +++ trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj 2007-11-27 15:50:44 UTC (rev 1091) @@ -23,7 +23,8 @@ <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> - <DocumentationFile>bin\Debug\IRBlast-NoWindow.XML</DocumentationFile> + <DocumentationFile> + </DocumentationFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> Modified: trunk/plugins/IR Server Suite/Applications/IR Server/IR Server.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/IR Server.csproj 2007-11-26 18:17:30 UTC (rev 1090) +++ trunk/plugins/IR Server Suite/Applications/IR Server/IR Server.csproj 2007-11-27 15:50:44 UTC (rev 1091) @@ -39,7 +39,8 @@ <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <UseVSHostingProcess>true</UseVSHostingProcess> - <DocumentationFile>bin\Debug\IRServer.XML</DocumentationFile> + <DocumentationFile> + </Document... [truncated message content] |
From: <an...@us...> - 2007-11-30 11:02:50
|
Revision: 1107 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1107&view=rev Author: and-81 Date: 2007-11-30 03:02:47 -0800 (Fri, 30 Nov 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhc trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhp trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.cs trunk/plugins/IR Server Suite/IR Server Suite.sln Added Paths: ----------- trunk/plugins/IR Server Suite/Documentation/LICENSE.GPL trunk/plugins/IR Server Suite/Documentation/legal.html trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DeviceIoOverlapped.cs Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-11-30 04:06:38 UTC (rev 1106) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-11-30 11:02:47 UTC (rev 1107) @@ -317,6 +317,7 @@ else { Thread thread = new Thread(new ThreadStart(MenuThread)); + thread.Name = "Translator OSD"; thread.Start(); } } Modified: trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhc =================================================================== --- trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhc 2007-11-30 04:06:38 UTC (rev 1106) +++ trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhc 2007-11-30 11:02:47 UTC (rev 1107) @@ -66,6 +66,10 @@ <param name="Local" value="new.html"> </OBJECT> <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Legal"> + <param name="Local" value="legal.html"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> <param name="Name" value="Appendices"> </OBJECT> <UL> Modified: trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhp =================================================================== --- trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhp 2007-11-30 04:06:38 UTC (rev 1106) +++ trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhp 2007-11-30 11:02:47 UTC (rev 1107) @@ -36,6 +36,7 @@ pronto.html irblast.html ehome_driver.html +legal.html [INFOTYPES] Added: trunk/plugins/IR Server Suite/Documentation/LICENSE.GPL =================================================================== --- trunk/plugins/IR Server Suite/Documentation/LICENSE.GPL (rev 0) +++ trunk/plugins/IR Server Suite/Documentation/LICENSE.GPL 2007-11-30 11:02:47 UTC (rev 1107) @@ -0,0 +1,287 @@ + + You may use, distribute and copy IR Server Suite under the terms of + GNU General Public License version 2, which is displayed below. + +------------------------------------------------------------------------- + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS +------------------------------------------------------------------------- Added: trunk/plugins/IR Server Suite/Documentation/legal.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/legal.html (rev 0) +++ trunk/plugins/IR Server Suite/Documentation/legal.html 2007-11-30 11:02:47 UTC (rev 1107) @@ -0,0 +1,33 @@ +<HTML> +<HEAD><TITLE>Legal</TITLE></HEAD> +<BODY> + +<H2>Legal<BR><HR COLOR="RED"></H2> +<P> + +You may use, distribute and copy IR Server Suite under the terms of <a href="LICENSE.GPL">GNU General Public License version 2</a>.<br> +<br> + +<I>Microsoft</I>, <I>Windows</I>, <I>Hotmail</I>, <I>Xbox</I> and <I>Windows Media Center</I> are trademarks of <a href="http://www.microsoft.com/">Microsoft Corporation</a>.<br> +<I>Hauppauge</I> and <I>WinTV</I> are trademarks of <a href="http://www.hauppauge.com/">Hauppauge Computer Works, Inc</a>.<br> +<I>Pace</I> is a trademark of <a href="http://www.pacemicro.com/">Pace Micro Technology</a>.<br> +<I>Telewest</I> is a trademark of <a href="http://www.telewest.co.uk/">Telewest</a>.<br> +<I>NTL</I> is a trademark of <a href="http://ntl.co.uk">NTL</a>.<br> +<I>IRDA</I> is a trademark of the <a href="http://www.irda.org/">Infra Red Data Association</a>.<br> +<I>SKY</I> is a trademark of <a href="http://www.sky.com/skycom/home/">British Sky Broadcasting</a>.<br> +<I>Pronto</I> is a trademark of <a href="http://www.pronto.philips.com/">Koninklijke Philips Electronics N.V</a>.<br> +<I>DViCO</I>, <I>FusionHDTV</I>, and <I>FusionREMOTE</I> are trademarks of <a href="http://www.dvico.com/">DViCO Inc</a>.<br> +<I>Promixis</I>, <I>Girder</I> and <I>NetRemote</I> are trademarks of <a href="http://www.promixis.com/">Promixis, LLC</a>.<br> +<I>HIP</I> and <I>ByRemote</I> are trademarks of <a href="http://www.btmi.com.au/">BTM Innovation Pty Ltd</a>.<br> +<I>IrMan</I> is a trademark of <a href="http://www.evation.com/">Evation</a>.<br> +<I>Intelliremote</I> is a trademark of <a href="http://melloware.com/">Melloware</a>.<br> +<I>Red-Eye</I> is a trademark of <a href="http://www.redremote.co.uk/">White Wing Logic</a>.<br> +<I>MediaPortal</I> is a trademark of <a href="http://www.team-mediaportal.com/">Team MediaPortal</a>.<br> +<I>USB-UIRT</I> is a trademark of <a href="http://www.usbuirt.com/">Jon Rhees</a>.<br> + +<br> +Other product and company names mentioned may be the trademarks of their respective owners. All efforts are made to ensure correctness and attribution, however errors or ommisions may occur. Please report any errors or ommisions to: AaronDinnage at Hotmail dot com<br> +</P> + +</BODY> +</HTML> Added: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DeviceIoOverlapped.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DeviceIoOverlapped.cs (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DeviceIoOverlapped.cs 2007-11-30 11:02:47 UTC (rev 1107) @@ -0,0 +1,134 @@ +using System; +using System.Runtime.InteropServices; +using System.Threading; + +namespace MicrosoftMceTransceiver +{ + + /// <summary> + /// 32 and 64-bit compatible NativeOverlapped wrapper for DeviceIoControl calls. + /// </summary> + class DeviceIoOverlapped + { + + #region Variables + + IntPtr _ptrOverlapped = IntPtr.Zero; + + int _fieldOffsetInternalLow = 0; + int _fieldOffsetInternalHigh = 0; + int _fieldOffsetOffsetLow = 0; + int _fieldOffsetOffsetHigh = 0; + int _fieldOffsetEventHandle = 0; + + #endregion Variables + + #region Constructor / Destructor + + /// <summary> + /// Create a new managed Native Overlapped object. + /// </summary> + public DeviceIoOverlapped() + { + // Globally allocate the memory for the overlapped structure + _ptrOverlapped = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(NativeOverlapped))); + + // Find the structural starting positions in the NativeOverlapped structure. + _fieldOffsetInternalLow = Marshal.OffsetOf(typeof(NativeOverlapped), "InternalLow").ToInt32(); + _fieldOffsetInternalHigh = Marshal.OffsetOf(typeof(NativeOverlapped), "InternalHigh").ToInt32(); + _fieldOffsetOffsetLow = Marshal.OffsetOf(typeof(NativeOverlapped), "OffsetLow").ToInt32(); + _fieldOffsetOffsetHigh = Marshal.OffsetOf(typeof(NativeOverlapped), "OffsetHigh").ToInt32(); + _fieldOffsetEventHandle = Marshal.OffsetOf(typeof(NativeOverlapped), "EventHandle").ToInt32(); + } + + /// <summary> + /// Destructor. + /// </summary> + ~DeviceIoOverlapped() + { + if (_ptrOverlapped != IntPtr.Zero) + { + Marshal.FreeHGlobal(_ptrOverlapped); + _ptrOverlapped = IntPtr.Zero; + } + } + + #endregion Constructor / Destructor + + #region Properties + + /// <summary> + /// Gets or Sets the Internal Low value. + /// </summary> + public IntPtr InternalLow + { + get { return Marshal.ReadIntPtr(_ptrOverlapped, _fieldOffsetInternalLow); } + set { Marshal.WriteIntPtr(_ptrOverlapped, _fieldOffsetInternalLow, value); } + } + + /// <summary> + /// Gets or Sets the Internal High value; + /// </summary> + public IntPtr InternalHigh + { + get { return Marshal.ReadIntPtr(_ptrOverlapped, _fieldOffsetInternalHigh); } + set { Marshal.WriteIntPtr(_ptrOverlapped, _fieldOffsetInternalHigh, value); } + } + + /// <summary> + /// Gets or Sets the Offset Low value; + /// </summary> + public int OffsetLow + { + get { return Marshal.ReadInt32(_ptrOverlapped, _fieldOffsetOffsetLow); } + set { Marshal.WriteInt32(_ptrOverlapped, _fieldOffsetOffsetLow, value); } + } + + /// <summary> + /// Gets or Sets the Offset High value; + /// </summary> + public int OffsetHigh + { + get { return Marshal.ReadInt32(_ptrOverlapped, _fieldOffsetOffsetHigh); } + set { Marshal.WriteInt32(_ptrOverlapped, _fieldOffsetOffsetHigh, value); } + } + + /// <summary> + /// The overlapped event wait hande. + /// </summary> + public IntPtr EventHandle + { + get { return Marshal.ReadIntPtr(_ptrOverlapped, _fieldOffsetEventHandle); } + set { Marshal.WriteIntPtr(_ptrOverlapped, _fieldOffsetEventHandle, value); } + } + + /// <summary> + /// Pass this into the DeviceIoControl and GetOverlappedResult APIs. + /// </summary> + public IntPtr Overlapped + { + get { return _ptrOverlapped; } + } + + #endregion Properties + + #region Methods + + /// <summary> + /// Set the overlapped wait handle and clear out the rest of the structure. + /// </summary> + /// <param name="eventHandle"></param> + public void ClearAndSetEvent(IntPtr eventHandle) + { + EventHandle = eventHandle; + InternalLow = IntPtr.Zero; + InternalHigh = IntPtr.Zero; + OffsetLow = 0; + OffsetHigh = 0; + } + + #endregion Methods + + } + +} Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.cs 2007-11-30 04:06:38 UTC (rev 1106) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.cs 2007-11-30 11:02:47 UTC (rev 1107) @@ -162,7 +162,7 @@ /// <summary> /// Transmit an infrared command. /// </summary> - /// <param name="port">Port to transmit on.</param> + /// <param name="port">Port to transmit on (ignored).</param> /// <param name="data">Data to transmit.</param> /// <returns>true if successful, otherwise false.</returns> public bool Transmit(string port, byte[] data) Modified: trunk/plugins/IR Server Suite/IR Server Suite.sln =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite.sln 2007-11-30 04:06:38 UTC (rev 1106) +++ trunk/plugins/IR Server Suite/IR Server Suite.sln 2007-11-30 11:02:47 UTC (rev 1107) @@ -253,153 +253,311 @@ Release.AspNetCompiler.Debug = "False" EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RedEye Blaster", "IR Server Plugins\RedEye Blaster\RedEye Blaster.csproj", "{5A9954F8-344C-489C-B8DA-8E8927271A02}" + ProjectSection(WebsiteProperties) = preProject + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.Debug = "False" + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Debug|x86.ActiveCfg = Debug|x86 + {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Debug|x86.Build.0 = Debug|x86 {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Release|Any CPU.ActiveCfg = Release|Any CPU {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Release|Any CPU.Build.0 = Release|Any CPU + {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Release|x86.ActiveCfg = Release|x86 + {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Release|x86.Build.0 = Release|x86 {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Debug|x86.ActiveCfg = Debug|x86 + {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Debug|x86.Build.0 = Debug|x86 {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Release|Any CPU.ActiveCfg = Release|Any CPU {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Release|Any CPU.Build.0 = Release|Any CPU + {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Release|x86.ActiveCfg = Release|x86 + {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Release|x86.Build.0 = Release|x86 {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Debug|x86.ActiveCfg = Debug|x86 + {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Debug|x86.Build.0 = Debug|x86 {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Release|Any CPU.ActiveCfg = Release|Any CPU {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Release|Any CPU.Build.0 = Release|Any CPU + {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Release|x86.ActiveCfg = Release|x86 + {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Release|x86.Build.0 = Release|x86 {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Debug|x86.ActiveCfg = Debug|x86 + {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Debug|x86.Build.0 = Debug|x86 {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Release|Any CPU.ActiveCfg = Release|Any CPU {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Release|Any CPU.Build.0 = Release|Any CPU + {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Release|x86.ActiveCfg = Release|x86 + {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Release|x86.Build.0 = Release|x86 {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Debug|x86.ActiveCfg = Debug|x86 + {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Debug|x86.Build.0 = Debug|x86 {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Release|Any CPU.ActiveCfg = Release|Any CPU {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Release|Any CPU.Build.0 = Release|Any CPU + {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Release|x86.ActiveCfg = Release|x86 + {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Release|x86.Build.0 = Release|x86 {D871AB9A-71B3-4D63-8320-084BAD75064E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D871AB9A-71B3-4D63-8320-084BAD75064E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D871AB9A-71B3-4D63-8320-084BAD75064E}.Debug|x86.ActiveCfg = Debug|x86 + {D871AB9A-71B3-4D63-8320-084BAD75064E}.Debug|x86.Build.0 = Debug|x86 {D871AB9A-71B3-4D63-8320-084BAD75064E}.Release|Any CPU.ActiveCfg = Release|Any CPU {D871AB9A-71B3-4D63-8320-084BAD75064E}.Release|Any CPU.Build.0 = Release|Any CPU + {D871AB9A-71B3-4D63-8320-084BAD75064E}.Release|x86.ActiveCfg = Release|x86 + {D871AB9A-71B3-4D63-8320-084BAD75064E}.Release|x86.Build.0 = Release|x86 {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Debug|x86.ActiveCfg = Debug|x86 + {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Debug|x86.Build.0 = Debug|x86 {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Release|Any CPU.ActiveCfg = Release|Any CPU {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Release|Any CPU.Build.0 = Release|Any CPU + {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Release|x86.ActiveCfg = Release|x86 + {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Release|x86.Build.0 = Release|x86 {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Debug|x86.ActiveCfg = Debug|x86 + {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Debug|x86.Build.0 = Debug|x86 {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Release|Any CPU.ActiveCfg = Release|Any CPU {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Release|Any CPU.Build.0 = Release|Any CPU + {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Release|x86.ActiveCfg = Release|x86 + {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Release|x86.Build.0 = Release|x86 {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Debug|x86.ActiveCfg = Debug|x86 + {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Debug|x86.Build.0 = Debug|x86 {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Release|Any CPU.ActiveCfg = Release|Any CPU {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Release|Any CPU.Build.0 = Release|Any CPU + {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Release|x86.ActiveCfg = Release|x86 + {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Release|x86.Build.0 = Release|x86 {7C686499-7517-4338-8837-7E8617549D9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7C686499-7517-4338-8837-7E8617549D9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C686499-7517-4338-8837-7E8617549D9A}.Debug|x86.ActiveCfg = Debug|x86 + {7C686499-7517-4338-8837-7E8617549D9A}.Debug|x86.Build.0 = Debug|x86 {7C686499-7517-4338-8837-7E8617549D9A}.Release|Any CPU.ActiveCfg = Release|Any CPU {7C686499-7517-4338-8837-7E8617549D9A}.Release|Any CPU.Build.0 = Release|Any CPU + {7C686499-7517-4338-8837-7E8617549D9A}.Release|x86.ActiveCfg = Release|x86 + {7C686499-7517-4338-8837-7E8617549D9A}.Release|x86.Build.0 = Release|x86 {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Debug|x86.ActiveCfg = Debug|x86 + {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Debug|x86.Build.0 = Debug|x86 {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Release|Any CPU.ActiveCfg = Release|Any CPU {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Release|Any CPU.Build.0 = Release|Any CPU + {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Release|x86.ActiveCfg = Release|x86 + {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Release|x86.Build.0 = Release|x86 {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Debug|x86.ActiveCfg = Debug|x86 + {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Debug|x86.Build.0 = Debug|x86 {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Release|Any CPU.ActiveCfg = Release|Any CPU {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Release|Any CPU.Build.0 = Release|Any CPU + {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Release|x86.ActiveCfg = Release|x86 + {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Release|x86.Build.0 = Release|x86 {4CBA81F9-F0C2-4242-8D72-204597285042}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4CBA81F9-F0C2-4242-8D72-204597285042}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CBA81F9-F0C2-4242-8D72-204597285042}.Debug|x86.ActiveCfg = Debug|x86 + {4CBA81F9-F0C2-4242-8D72-204597285042}.Debug|x86.Build.0 = Debug|x86 {4CBA81F9-F0C2-4242-8D72-204597285042}.Release|Any CPU.ActiveCfg = Release|Any CPU {4CBA81F9-F0C2-4242-8D72-204597285042}.Release|Any CPU.Build.0 = Release|Any CPU + {4CBA81F9-F0C2-4242-8D72-204597285042}.Release|x86.ActiveCfg = Release|x86 + {4CBA81F9-F0C2-4242-8D72-204597285042}.Release|x86.Build.0 = Release|x86 {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Debug|x86.ActiveCfg = Debug|x86 + {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Debug|x86.Build.0 = Debug|x86 {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Release|Any CPU.ActiveCfg = Release|Any CPU {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Release|Any CPU.Build.0 = Release|Any CPU + {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Release|x86.ActiveCfg = Release|x86 + {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Release|x86.Build.0 = Release|x86 {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Debug|x86.ActiveCfg = Debug|x86 + {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Debug|x86.Build.0 = Debug|x86 {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Release|Any CPU.ActiveCfg = Release|Any CPU {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Release|Any CPU.Build.0 = Release|Any CPU + {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Release|x86.ActiveCfg = Release|x86 + {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Release|x86.Build.0 = Release|x86 {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Debug|x86.ActiveCfg = Debug|x86 + {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Debug|x86.Build.0 = Debug|x86 {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Release|Any CPU.ActiveCfg = Release|Any CPU {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Release|Any CPU.Build.0 = Release|Any CPU + {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Release|x86.ActiveCfg = Release|x86 + {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Release|x86.Build.0 = Release|x86 {253FFB14-AB8E-49AB-A005-A42428C3F452}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {253FFB14-AB8E-49AB-A005-A42428C3F452}.Debug|Any CPU.Build.0 = Debug|Any CPU + {253FFB14-AB8E-49AB-A005-A42428C3F452}.Debug|x86.ActiveCfg = Debug|x86 + {253FFB14-AB8E-49AB-A005-A42428C3F452}.Debug|x86.Build.0 = Debug|x86 {253FFB14-AB8E-49AB-A005-A42428C3F452}.Release|Any CPU.ActiveCfg = Release|Any CPU {253FFB14-AB8E-49AB-A005-A42428C3F452}.Release|Any CPU.Build.0 = Release|Any CPU + {253FFB14-AB8E-49AB-A005-A42428C3F452}.Release|x86.ActiveCfg = Release|x86 + {253FFB14-AB8E-49AB-A005-A42428C3F452}.Release|x86.Build.0 = Release|x86 {9FDD649E-0502-4FED-9AC1-AA0346394375}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9FDD649E-0502-4FED-9AC1-AA0346394375}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9FDD649E-0502-4FED-9AC1-AA0346394375}.Debug|x86.ActiveCfg = Debug|x86 + {9FDD649E-0502-4FED-9AC1-AA0346394375}.Debug|x86.Build.0 = Debug|x86 {9FDD649E-0502-4FED-9AC1-AA0346394375}.Release|Any CPU.ActiveCfg = Release|Any CPU {9FDD649E-0502-4FED-9AC1-AA0346394375}.Release|Any CPU.Build.0 = Release|Any CPU + {9FDD649E-0502-4FED-9AC1-AA0346394375}.Release|x86.ActiveCfg = Release|x86 + {9FDD649E-0502-4FED-9AC1-AA0346394375}.Release|x86.Build.0 = Release|x86 {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Debug|x86.ActiveCfg = Debug|x86 + {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Debug|x86.Build.0 = Debug|x86 {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Release|Any CPU.ActiveCfg = Release|Any CPU {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Release|Any CPU.Build.0 = Release|Any CPU + {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Release|x86.ActiveCfg = Release|x86 + {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Release|x86.Build.0 = Release|x86 {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Debug|x86.ActiveCfg = Debug|x86 + {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Debug|x86.Build.0 = Debug|x86 {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Release|Any CPU.ActiveCfg = Release|Any CPU {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Release|Any CPU.Build.0 = Release|Any CPU + {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Release|x86.ActiveCfg = Release|x86 + {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Release|x86.Build.0 = Release|x86 {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Debug|x86.ActiveCfg = Debug|x86 + {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Debug|x86.Build.0 = Debug|x86 {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Release|Any CPU.ActiveCfg = Release|Any CPU {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Release|Any CPU.Build.0 = Release|Any CPU + {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Release|x86.ActiveCfg = Release|x86 + {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Release|x86.Build.0 = Release|x86 {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Debug|x86.ActiveCfg = Debug|x86 + {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Debug|x86.Build.0 = Debug|x86 {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Release|Any CPU.ActiveCfg = Release|Any CPU {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Release|Any CPU.Build.0 = Release|Any CPU + {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Release|x86.ActiveCfg = Release|x86 + {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Release|x86.Build.0 = Release|x86 {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Debug|x86.ActiveCfg = Debug|x86 + {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Debug|x86.Build.0 = Debug|x86 {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Release|Any CPU.ActiveCfg = Release|Any CPU {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Release|Any CPU.Build.0 = Release|Any CPU + {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Release|x86.ActiveCfg = Release|x86 + {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Release|x86.Build.0 = Release|x86 {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Debug|Any CPU.Build.0 = Debug|Any CPU + {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Debug|x86.ActiveCfg = Debug|x86 + {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Debug|x86.Build.0 = Debug|x86 {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Release|Any CPU.ActiveCfg = Release|Any CPU {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Release|Any CPU.Build.0 = Release|Any CPU + {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Release|x86.ActiveCfg = Release|x86 + {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Release|x86.Build.0 = Release|x86 {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Debug|x86.ActiveCfg = Debug|x86 + {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Debug|x86.Build.0 = Debug|x86 {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Release|Any CPU.ActiveCfg = Release|Any CPU {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Release|Any CPU.Build.0 = Release|Any CPU + {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Release|x86.ActiveCfg = Release|x86 + {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Release|x86.Build.0 = Release|x86 {905131F8-F8AC-4A65-A722-37783902D7B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {905131F8-F8AC-4A65-A722-37783902D7B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {905131F8-F8AC-4A65-A722-37783902D7B8}.Debug|x86.ActiveCfg = Debug|x86 + {905131F8-F8AC-4A65-A722-37783902D7B8}.Debug|x86.Build.0 = Debug|x86 {905131F8-F8AC-4A65-A722-37783902D7B8}.Release|Any CPU.ActiveCfg = Release|Any CPU {905131F8-F8AC-4A65-A722-37783902D7B8}.Release|Any CPU.Build.0 = Release|Any CPU + {905131F8-F8AC-4A65-A722-37783902D7B8}.Release|x86.ActiveCfg = Release|x86 + {905131F8-F8AC-4A65-A722-37783902D7B8}.Release|x86.Build.0 = Release|x86 {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Debug|x86.ActiveCfg = Debug|x86 + {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Debug|x86.Build.0 = Debug|x86 {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Release|Any CPU.ActiveCfg = Release|Any CPU {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Release|Any CPU.Build.0 = Release|Any CPU + {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Release|x86.ActiveCfg = Release|x86 + {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Release|x86.Build.0 = Release|x86 {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Debug|Any CPU.ActiveCfg = Debug|x86 + {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Debug|x86.ActiveCfg = Debug|x86 {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Release|Any CPU.ActiveCfg = Release|x86 + {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Release|x86.ActiveCfg = Release|x86 {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Debug|x86.ActiveCfg = Debug|x86 + {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Debug|x86.Build.0 = Debug|x86 {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Release|Any CPU.ActiveCfg = Release|Any CPU {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Release|Any CPU.Build.0 = Release|Any CPU + {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Release|x86.ActiveCfg = Release|x86 + {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Release|x86.Build.0 = Release|x86 {0C291BE9-5D15-4097-9119-4FFE19C23113}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0C291BE9-5D15-4097-9119-4FFE19C23113}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C291BE9-5D15-4097-9119-4FFE19C23113}.Debug|x86.ActiveCfg = Debug|x86 + {0C291BE9-5D15-4097-9119-4FFE19C23113}.Debug|x86.Build.0 = Debug|x86 {0C291BE9-5D15-4097-9119-4FFE19C23113}.Release|Any CPU.ActiveCfg = Release|x86 + {0C291BE9-5D15-4097-9119-4FFE19C23113}.Release|x86.ActiveCfg = Release|x86 + {0C291BE9-5D15-4097-9119-4FFE19C23113}.Release|x86.Build.0 = Release|x86 {327F54E5-D1DC-4297-BF2F-4283EB30FFB1}.Debug|Any CPU.ActiveCfg = Debug|x86 + {327F54E5-D1DC-4297-BF2F-4283EB30FFB1}.Debug|x86.ActiveCfg = Debug|x86 {327F54E5-D1DC-4297-BF2F-4283EB30FFB1}.Release|Any CPU.ActiveCfg = Release|x86 + {327F54E5-D1DC-4297-BF2F-4283EB30FFB1}.Release|x86.ActiveCfg = Release|x86 {DDB52A4D-A670-411A-8273-8B1707C67028}.Debug|Any CPU.ActiveCfg = Debug|x86 + {DDB52A4D-A670-411A-8273-8B1707C67028}.Debug|x86.ActiveCfg = Debug|x86 {DDB52A4D-A670-411A-8273-8B1707C67028}.Release|Any CPU.ActiveCfg = Release|x86 + {DDB52A4D-A670-411A-8273-8B1707C67028}.Release|x86.ActiveCfg = Release|x86 {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Debug|x86.ActiveCfg = Debug|x86 + {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Debug|x86.Build.0 = Debug|x86 {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Release|Any CPU.ActiveCfg = Release|Any CPU {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Release|Any CPU.Build.0 = Release|Any CPU + {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Release|x86.ActiveCfg = Release|x86 + {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Release|x86.Build.0 = Release|x86 {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Debug|x86.ActiveCfg = Debug|x86 + {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Debug|x86.Build.0 = Debug|x86 {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Release|Any CPU.ActiveCfg = Release|Any CPU {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Release|Any CPU.Build.0 = Release|Any CPU + {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Release|x86.ActiveCfg = Release|x86 + {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Release|x86.Build.0 = Release|x86 {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Debug|x86.ActiveCfg = Debug|x86 + {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Debug|x86.Build.0 = Debug|x86 {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Release|Any CPU.ActiveCfg = Release|Any CPU {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Release|Any CPU.Build.0 = Release|Any CPU + {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Release|x86.ActiveCfg = Release|x86 + {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Release|x86.Build.0 = Release|x86 {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Debug|x86.ActiveCfg = Debug|x86 + {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Debug|x86.Build.0 = Debug|x86 {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Release|Any CPU.ActiveCfg = Release|Any CPU {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Release|Any CPU.Build.0 = Release|Any CPU + {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Release|x86.ActiveCfg = Release|x86 + {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Release|x86.Build.0 = Release|x86 {A4023992-CCD6-461E-8E14-219A496734C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A4023992-CCD6-461E-8E14-219A496734C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4023992-CCD6-461E-8E14-219A496734C5}.Debug|x86.ActiveCfg = Debug|x86 + {A4023992-CCD6-461E-8E14-219A496734C5}.Debug|x86.Build.0 = Debug|x86 {A4023992-CCD6-461E-8E14-219A496734C5}.Release|Any CPU.ActiveCfg = Release|Any CPU {A4023992-CCD6-461E-8E14-219A496734C5}.Release|Any CPU.Build.0 = Release|Any CPU + {A4023992-CCD6-461E-8E14-219A496734C5}.Release|x86.ActiveCfg = Release|x86 + {A4023992-CCD6-461E-8E14-219A496734C5}.Release|x86.Build.0 = Release|x86 + {5A9954F8-344C-489C-B8DA-8E8927271A02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5A9954F8-344C-489C-B8DA-8E8927271A02}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A9954F8-344C-489C-B8DA-8E8927271A02}.Debug|x86.ActiveCfg = Debug|x86 + {5A9954F8-344C-489C-B8DA-8E8927271A02}.Debug|x86.Build.0 = Debug|x86 + {5A9954F8-344C-489C-B8DA-8E8927271A02}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5A9954F8-344C-489C-B8DA-8E8927271A02}.Release|Any CPU.Build.0 = Release|Any CPU + {5A9954F8-344C-489C-B8DA-8E8927271A02}.Release|x86.ActiveCfg = Release|x86 + {5A9954F8-344C-489C-B8DA-8E8927271A02}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -430,6 +588,7 @@ {0C291BE9-5D15-4097-9119-4FFE19C23113} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} {A4023992-CCD6-461E-8E14-219A496734C5} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} + {5A9954F8-344C-489C-B8DA-8E8927271A02} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479} = {6C18D808-E5ED-4CFB-A7CD-E2BDBB1D9BDA} {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90} = {6C18D808-E5ED-4CFB-A7CD-E2BDBB1D9BDA} {CD395FC2-70E2-42C4-8A20-5469A0C5EB50} = {6C18D808-E5ED-4CFB-A7CD-E2BDBB1D9BDA} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2007-11-30 16:57:38
|
Revision: 1113 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1113&view=rev Author: and-81 Date: 2007-11-30 08:37:26 -0800 (Fri, 30 Nov 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.Designer.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote/Virtual Remote.csproj trunk/plugins/IR Server Suite/Documentation/Virtual Remote/index.html trunk/plugins/IR Server Suite/Documentation/new.html Added Paths: ----------- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/web.html trunk/plugins/IR Server Suite/Applications/Virtual Remote/WebServer.cs Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.Designer.cs 2007-11-30 16:14:57 UTC (rev 1112) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.Designer.cs 2007-11-30 16:37:26 UTC (rev 1113) @@ -50,13 +50,13 @@ this.contextMenuStrip.Name = "contextMenuStrip"; this.contextMenuStrip.RenderMode = System.Windows.Forms.ToolStripRenderMode.System; this.contextMenuStrip.ShowImageMargin = false; - this.contextMenuStrip.Size = new System.Drawing.Size(156, 97); + this.contextMenuStrip.Size = new System.Drawing.Size(156, 95); // // toolStripComboBoxSkin // this.toolStripComboBoxSkin.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.toolStripComboBoxSkin.Name = "toolStripComboBoxSkin"; - this.toolStripComboBoxSkin.Size = new System.Drawing.Size(120, 23); + this.toolStripComboBoxSkin.Size = new System.Drawing.Size(120, 21); this.toolStripComboBoxSkin.ToolTipText = "Select a custom skin"; this.toolStripComboBoxSkin.SelectedIndexChanged += new System.EventHandler(this.toolStripComboBoxSkin_SelectedIndexChanged); // @@ -108,7 +108,6 @@ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; - this.MinimizeBox = false; this.Name = "MainForm"; this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; this.Text = "Virtual Remote"; Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs 2007-11-30 16:14:57 UTC (rev 1112) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs 2007-11-30 16:37:26 UTC (rev 1113) @@ -23,8 +23,6 @@ #region Variables - RemoteButton []_buttons; - //Thread _updateThread; #endregion Variables @@ -57,31 +55,18 @@ if (e.Button != MouseButtons.Left) return; - if (_buttons == null) - return; - - foreach (RemoteButton button in _buttons) - { - if (e.Y >= button.Top && - e.Y < button.Top + button.Height && - e.X >= button.Left && - e.X <= button.Left + button.Width) - { - ButtonPress(button.Code); - break; - } - } + Program.ProcessClick(e.X, e.Y); } private void MainForm_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.None) return; - foreach (RemoteButton button in _buttons) + foreach (RemoteButton button in Program.Buttons) { if (button.Shortcut == e.KeyCode) { - ButtonPress(button.Code); + Program.ButtonPress(button.Code); break; } } @@ -123,7 +108,7 @@ buttons.Add(temp); } - _buttons = (RemoteButton[])buttons.ToArray(typeof(RemoteButton)); + Program.Buttons = (RemoteButton[])buttons.ToArray(typeof(RemoteButton)); return true; } @@ -185,15 +170,6 @@ } } - static void ButtonPress(string keyCode) - { - if (!Program.Registered) - return; - - IrssMessage message = new IrssMessage(MessageType.ForwardRemoteEvent, MessageFlags.Notify, keyCode); - Program.SendMessage(message); - } - void SetLabel() { while (true) Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs 2007-11-30 16:14:57 UTC (rev 1112) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs 2007-11-30 16:37:26 UTC (rev 1113) @@ -25,6 +25,7 @@ #region Constants const string DefaultSkin = "MCE"; + const int DefaultWebPort = 2481; static readonly string ConfigurationFile = Common.FolderAppData + "Virtual Remote\\Virtual Remote.xml"; @@ -42,6 +43,12 @@ static string _remoteSkin; + static RemoteButton[] _buttons; + + static WebServer _webServer; + + static int _webPort; + #endregion Variables #region Properties @@ -68,6 +75,12 @@ set { _remoteSkin = value; } } + internal static RemoteButton[] Buttons + { + get { return _buttons; } + set { _buttons = value; } + } + #endregion Properties /// <summary> @@ -181,8 +194,15 @@ } if (clientStarted) + { + _webServer = new WebServer(_webPort); + _webServer.Run(); + Application.Run(new MainForm()); + _webServer.Stop(); + } + SaveSettings(); } @@ -220,13 +240,11 @@ _installFolder = "."; } + XmlDocument doc = new XmlDocument(); + try { - XmlDocument doc = new XmlDocument(); doc.Load(ConfigurationFile); - - _serverHost = doc.DocumentElement.Attributes["ServerHost"].Value; - _remoteSkin = doc.DocumentElement.Attributes["RemoteSkin"].Value; } catch (Exception ex) { @@ -234,7 +252,14 @@ _serverHost = "localhost"; _remoteSkin = DefaultSkin; + _webPort = DefaultWebPort; + + return; } + + try { _serverHost = doc.DocumentElement.Attributes["ServerHost"].Value; } catch { _serverHost = "localhost"; } + try { _remoteSkin = doc.DocumentElement.Attributes["RemoteSkin"].Value; } catch { _remoteSkin = DefaultSkin; } + try { _webPort = int.Parse(doc.DocumentElement.Attributes["WebPort"].Value); } catch { _webPort = DefaultWebPort; } } static void SaveSettings() { @@ -250,6 +275,7 @@ writer.WriteAttributeString("ServerHost", _serverHost); writer.WriteAttributeString("RemoteSkin", _remoteSkin); + writer.WriteAttributeString("WebPort", _webPort.ToString()); writer.WriteEndElement(); // </settings> writer.WriteEndDocument(); @@ -319,8 +345,37 @@ _client = null; } - internal static void SendMessage(IrssMessage message) + internal static bool ProcessClick(int x, int y) { + if (_buttons != null) + { + foreach (RemoteButton button in _buttons) + { + if (y >= button.Top && + y < button.Top + button.Height && + x >= button.Left && + x <= button.Left + button.Width) + { + ButtonPress(button.Code); + return true; + } + } + } + + return false; + } + + internal static void ButtonPress(string keyCode) + { + if (!_registered) + return; + + IrssMessage message = new IrssMessage(MessageType.ForwardRemoteEvent, MessageFlags.Notify, keyCode); + SendMessage(message); + } + + static void SendMessage(IrssMessage message) + { if (message == null) throw new ArgumentNullException("message"); Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/web.html =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/web.html (rev 0) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/web.html 2007-11-30 16:37:26 UTC (rev 1113) @@ -0,0 +1,7 @@ +<HEAD> +<TITLE>Virtual Remote</TITLE> +</HEAD> + +<BODY STYLE="margin: 0;"> +<IMG SRC="REMOTE_SKIN" BORDER="0" USEMAP="#REMOTE_MAP"> +</BODY> Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Virtual Remote.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Virtual Remote.csproj 2007-11-30 16:14:57 UTC (rev 1112) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Virtual Remote.csproj 2007-11-30 16:37:26 UTC (rev 1113) @@ -59,6 +59,7 @@ <Reference Include="System" /> <Reference Include="System.Data" /> <Reference Include="System.Drawing" /> + <Reference Include="System.Web" /> <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> </ItemGroup> @@ -76,6 +77,7 @@ <DependentUpon>MainForm.cs</DependentUpon> </EmbeddedResource> <Compile Include="RemoteButton.cs" /> + <Compile Include="WebServer.cs" /> </ItemGroup> <ItemGroup> <Content Include="Icon.ico" /> @@ -95,6 +97,7 @@ </Content> <Content Include="Skins\MCE.xml"> </Content> + <Content Include="Skins\web.html" /> <Content Include="Skins\Xbox Blue Plasma.png"> </Content> <Content Include="Skins\Xbox Orange.png"> Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/WebServer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/WebServer.cs (rev 0) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/WebServer.cs 2007-11-30 16:37:26 UTC (rev 1113) @@ -0,0 +1,279 @@ +using System; +using System.Net; +using System.Net.Sockets; +using System.IO; +using System.Text; +using System.Threading; +using System.Web; + +namespace VirtualRemote +{ + + /// <summary> + /// Provides a Web front-end to the Virtual Remote. + /// </summary> + public class WebServer + { + + #region Constants + + const string ServerName = "Virtual Remote"; + + const string ButtonClickPrefix = "click?"; + + #endregion Constants + + #region Variables + + int _serverPort; + + Socket _serverSocket; + NetworkStream _networkStream; + TextReader _networkReader; + + Thread _runningThread; + + #endregion Variables + + #region Constructor + + /// <summary> + /// Initializes a new instance of the <see cref="WebServer"/> class. + /// </summary> + /// <param name="port">The port to serve on.</param> + public WebServer(int port) + { + _serverPort = port; + } + + #endregion Constructor + + #region Public Methods + + /// <summary> + /// Runs the Web Server. + /// </summary> + public void Run() + { + if (_runningThread != null) + _runningThread.Abort(); + + _runningThread = new Thread(new ThreadStart(RunThread)); + _runningThread.IsBackground = true; + _runningThread.Start(); + } + + /// <summary> + /// Stops the Web Server. + /// </summary> + public void Stop() + { + if (_runningThread != null) + { + try + { + _runningThread.Abort(); + } + finally + { + _runningThread = null; + } + } + } + + #endregion Public Methods + + #region Implementation + + void RunThread() + { + try + { + _serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + + IPEndPoint ipe = new IPEndPoint(IPAddress.Any, _serverPort); + _serverSocket.Bind(ipe); + + while (true) + { + Socket socket = AcceptConnection(); + string command = HttpUtility.UrlDecode(GetCommand()); + + if (command.StartsWith("GET", StringComparison.OrdinalIgnoreCase)) + { + string commandElement = GetCommandElement(command); + DoGet(commandElement); + } + + _networkStream.Flush(); + _networkStream.Close(); + } + + } + finally + { + _serverSocket.Close(); + } + } + + string CreateImageMap() + { + StringBuilder imageMap = new StringBuilder(); + imageMap.AppendLine("<MAP NAME=\"REMOTE_MAP\">"); + + foreach (RemoteButton button in Program.Buttons) + { + string area = String.Format( + "<AREA SHAPE=\"rect\" COORDS=\"{0},{1},{2},{3}\" TITLE=\"{4}\" HREF=\"{5}{6}\">", + button.Left, button.Top, button.Left + button.Width, button.Top + button.Height, + button.Name, + ButtonClickPrefix, button.Code); + + imageMap.AppendLine(area); + } + + imageMap.AppendLine("<AREA SHAPE=\"default\" NOHREF>"); + imageMap.AppendLine("</MAP>"); + + return imageMap.ToString(); + } + + void DoGet(string argument) + { + string url = GetUrl(argument); + + if (url.StartsWith("/")) + url = url.Substring(1); + + if (url.Length == 0) + url = "INDEX.HTML"; + + if (url.StartsWith(ButtonClickPrefix, StringComparison.OrdinalIgnoreCase)) + { + string command = url.Substring(ButtonClickPrefix.Length); + + Program.ButtonPress(command); + + url = "INDEX.HTML"; + } + + switch (url.ToUpperInvariant()) + { + case "INDEX.HTML": + SendOK("text/html; charset=utf-8"); + SendString("<HTML>"); + SendFile(String.Format("{0}\\Skins\\web.html", Program.InstallFolder)); + SendString(CreateImageMap()); + SendString("</HTML>"); + break; + + case "REMOTE_SKIN": + SendOK("image/png"); + SendFile(String.Format("{0}\\Skins\\{1}.png", Program.InstallFolder, Program.RemoteSkin)); + break; + + default: + SendError(404, "File Not Found"); + break; + } + } + + string GetUrl(string argument) + { + StringBuilder outputString = new StringBuilder(); + + for (int index = 0; index < argument.Length; index++) + { + char curChar = argument[index]; + + if (Char.IsWhiteSpace(curChar)) + break; + + outputString.Append(curChar); + } + + return outputString.ToString(); + } + + Socket AcceptConnection() + { + + _serverSocket.Listen(1); + Socket socket = _serverSocket.Accept(); + + _networkStream = new NetworkStream(socket, FileAccess.ReadWrite, true); + _networkReader = new StreamReader(_networkStream); + IPEndPoint ep = (IPEndPoint)socket.RemoteEndPoint; + + return socket; + } + + string GetCommand() + { + string buf; + string command = String.Empty; + bool first = true; + + while ((buf = _networkReader.ReadLine()) != null && buf.Length > 0) + { + if (first) + { + command = buf; + first = false; + } + } + + return command; + } + + string GetCommandElement(string command) + { + string[] commandElements = command.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); + return commandElements[1]; + } + + void SendFile(string path) + { + byte[] buffer = new byte[2048]; + + int byteCount; + using (FileStream fileStream = File.OpenRead(path)) + { + while ((byteCount = fileStream.Read(buffer, 0, buffer.Length)) > 0) + { + _networkStream.Write(buffer, 0, byteCount); + } + } + } + + void SendString(string message, params object[] args) + { + string output = String.Format(message, args); + + byte[] outputBytes = Encoding.ASCII.GetBytes(output); + + _networkStream.Write(outputBytes, 0, outputBytes.Length); + } + + void SendError(int errorNumber, string errorString) + { + SendString("HTTP/1.1 {0} {1}\r\n", errorNumber, errorString); + SendString("Date:{0}\r\n", DateTime.Now); + SendString("Server:{0}\r\n", ServerName); + SendString("Content-Type: text/html; charset=utf-8\r\n"); + SendString("Connection: close\r\n"); + } + + void SendOK(string contentType) + { + SendString("HTTP/1.1 200 OK\r\n"); + SendString("Date:{0}\r\n", DateTime.Now); + SendString("Server:{0}\r\n", ServerName); + SendString("Content-Type: {0}\r\n\r\n", contentType); + } + + #endregion Implementation + + } + +} Modified: trunk/plugins/IR Server Suite/Documentation/Virtual Remote/index.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/Virtual Remote/index.html 2007-11-30 16:14:57 UTC (rev 1112) +++ trunk/plugins/IR Server Suite/Documentation/Virtual Remote/index.html 2007-11-30 16:37:26 UTC (rev 1113) @@ -12,6 +12,8 @@ <P>Right-Click in the Virtual Remote window to bring up the program menu to change the server address, change the skin, or to quit the program.</P> +<P>Virtual Remote is also accessible through it's own web interface. Connect to the computer Virtual Remote is running on through port 2481 to use the Virtual Remote Web Interface.</P> + <P>Virtual Remote can also be used from the command line to simulate button presses.</P> <P>Command line parameters:<BR> Modified: trunk/plugins/IR Server Suite/Documentation/new.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/new.html 2007-11-30 16:14:57 UTC (rev 1112) +++ trunk/plugins/IR Server Suite/Documentation/new.html 2007-11-30 16:37:26 UTC (rev 1113) @@ -23,6 +23,7 @@ <LI>Added some new macro commands (HTTP requests, beep sound, wave file playback).</LI> <LI>Commands (including macros) now execute on separate threads. In the past calling a macro for example would block the caller until it finished, now the caller can continue while the macro executes independantly. Note that this will cause a subtle change in flow control, but shouldn't effect anyone.</LI> <LI>Added support for Girder 3.x plugins, still experimental at this stage. Expect to see improvements in this area, like multiple Girder plugins active at the same time.</LI> +<LI>Virtual Remote now has a built in web server accessible on port 2481.</LI> </UL></P> <BR> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2007-12-03 15:51:45
|
Revision: 1118 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1118&view=rev Author: and-81 Date: 2007-12-03 07:51:38 -0800 (Mon, 03 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FusionREMOTE.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Dark.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Gold.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Xbox.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Virtual Remote.csproj trunk/plugins/IR Server Suite/Documentation/Virtual Remote/Skin Editor/index.html trunk/plugins/IR Server Suite/Documentation/new.html trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/ExternalChannels.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/SetupForm.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/ExternalChannels.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/PluginSetup.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs Added Paths: ----------- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FireDTV.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FireDTV.xml trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FireFly.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FireFly.xml trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Hauppauge34.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Hauppauge34.xml trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Hauppauge45.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Hauppauge45.xml trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Music.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Orange.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Pink.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Tiger.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Zebra.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Medion.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Medion.xml trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/RemoteWonder.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/RemoteWonder.xml trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/ trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/ trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/DataTypes.cs trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/Events.cs trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/HIDImports.cs trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/Wiimote.cs trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/WiimoteLib.csproj trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/docs/ trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/docs/APIHelp/ trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/docs/APIHelp/AdditionalContent/ trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/docs/APIHelp/AdditionalContent/copyright.topic trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/docs/APIHelp/AdditionalContent/license.topic trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/docs/APIHelp/AdditionalContent/overview.topic trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/docs/APIHelp/Help/ trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/docs/APIHelp/Help/WiimoteLib.chm trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/docs/APIHelp/WiimoteLib.shfb trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/docs/APIHelp/WiimoteLib.sitemap trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/docs/copyright.txt trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/docs/license.txt trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/docs/readme.txt Removed Paths: ------------- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FusionREMOTE Tiger.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Grass.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Xbox Blue Plasma.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Xbox Orange.png Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-12-03 12:32:42 UTC (rev 1117) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-12-03 15:51:38 UTC (rev 1118) @@ -26,7 +26,7 @@ public MacroEditor() { InitializeComponent(); - + textBoxName.Text = "New"; textBoxName.Enabled = true; } @@ -64,6 +64,7 @@ comboBoxCommands.Items.Add(Common.UITextKeys); comboBoxCommands.Items.Add(Common.UITextMouse); comboBoxCommands.Items.Add(Common.UITextEject); + comboBoxCommands.Items.Add(Common.UITextPopup); comboBoxCommands.Items.Add(Common.UITextStandby); comboBoxCommands.Items.Add(Common.UITextHibernate); comboBoxCommands.Items.Add(Common.UITextReboot); @@ -148,6 +149,11 @@ writer.WriteAttributeString("command", Common.XmlTagEject); writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixEject.Length)); } + else if (item.StartsWith(Common.CmdPrefixPopup, StringComparison.OrdinalIgnoreCase)) + { + writer.WriteAttributeString("command", Common.XmlTagPopup); + writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixPopup.Length)); + } else if (item.StartsWith(Common.CmdPrefixStandby, StringComparison.OrdinalIgnoreCase)) { writer.WriteAttributeString("command", Common.XmlTagStandby); @@ -248,10 +254,14 @@ listBoxMacro.Items.Add(Common.CmdPrefixEject + commandProperty); break; + case Common.XmlTagPopup: + listBoxMacro.Items.Add(Common.CmdPrefixPopup + commandProperty); + break; + case Common.XmlTagStandby: listBoxMacro.Items.Add(Common.CmdPrefixStandby); break; - + case Common.XmlTagHibernate: listBoxMacro.Items.Add(Common.CmdPrefixHibernate); break; @@ -332,6 +342,12 @@ if (ejectCommand.ShowDialog(this) == DialogResult.OK) listBoxMacro.Items.Add(Common.CmdPrefixEject + ejectCommand.CommandString); } + else if (selected.Equals(Common.UITextPopup, StringComparison.OrdinalIgnoreCase)) + { + PopupMessage popupMessage = new PopupMessage(); + if (popupMessage.ShowDialog(this) == DialogResult.OK) + listBoxMacro.Items.Add(Common.CmdPrefixPopup + popupMessage.CommandString); + } else if (selected.Equals(Common.UITextStandby, StringComparison.OrdinalIgnoreCase)) { listBoxMacro.Items.Add(Common.CmdPrefixStandby); @@ -416,8 +432,10 @@ return; } - WriteToFile(Program.FolderMacros + name + Common.FileExtensionMacro); + string fileName = Program.FolderMacros + name + Common.FileExtensionMacro; + WriteToFile(fileName); + try { Program.ProcessCommand(Common.CmdPrefixMacro + name, false); @@ -562,6 +580,18 @@ listBoxMacro.Items.Insert(index, Common.CmdPrefixEject + ejectCommand.CommandString); listBoxMacro.SelectedIndex = index; } + else if (selected.StartsWith(Common.CmdPrefixPopup, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitPopupCommand(selected.Substring(Common.CmdPrefixPopup.Length)); + PopupMessage popupMessage = new PopupMessage(commands); + if (popupMessage.ShowDialog(this) == DialogResult.Cancel) + return; + + int index = listBoxMacro.SelectedIndex; + listBoxMacro.Items.RemoveAt(index); + listBoxMacro.Items.Insert(index, Common.CmdPrefixPopup + popupMessage.CommandString); + listBoxMacro.SelectedIndex = index; + } else if (selected.StartsWith(Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase)) { string[] commands = Common.SplitBlastCommand(selected.Substring(Common.CmdPrefixBlast.Length)); Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-12-03 12:32:42 UTC (rev 1117) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-12-03 15:51:38 UTC (rev 1118) @@ -1007,7 +1007,7 @@ ProcCommand(command); } } - + /// <summary> /// Used by ProcessCommand to actually handle the command. /// Can be called Synchronously or as a Parameterized Thread. @@ -1045,7 +1045,10 @@ else if (command.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) { string keyCommand = command.Substring(Common.CmdPrefixKeys.Length); - Common.ProcessKeyCommand(keyCommand); + if (_inConfiguration) + MessageBox.Show(keyCommand, Common.UITextKeys, MessageBoxButtons.OK, MessageBoxIcon.Information); + else + Common.ProcessKeyCommand(keyCommand); } else if (command.StartsWith(Common.CmdPrefixMouse, StringComparison.OrdinalIgnoreCase)) { @@ -1298,7 +1301,7 @@ stack.Add(upperCasedFileName); } - + /// <summary> /// Removes from the Macro Stack. /// </summary> Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FireDTV.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FireDTV.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FireDTV.xml =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FireDTV.xml (rev 0) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FireDTV.xml 2007-12-03 15:51:38 UTC (rev 1118) @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<skin> + <button name="Blue" code="2041" shortcut="None" top="459" left="124" height="20" width="20" /> + <button name="Yellow" code="2056" shortcut="None" top="459" left="94" height="20" width="20" /> + <button name="Green" code="2046" shortcut="None" top="460" left="64" height="20" width="20" /> + <button name="Red" code="2011" shortcut="None" top="460" left="34" height="20" width="20" /> + <button name="Hash" code="2014" shortcut="None" top="429" left="117" height="20" width="28" /> + <button name="Star" code="2010" shortcut="None" top="429" left="33" height="20" width="28" /> + <button name="9" code="2009" shortcut="NumPad9" top="399" left="116" height="20" width="27" /> + <button name="8" code="2008" shortcut="NumPad8" top="399" left="75" height="20" width="27" /> + <button name="7" code="2007" shortcut="NumPad7" top="399" left="34" height="20" width="27" /> + <button name="6" code="2006" shortcut="NumPad6" top="369" left="117" height="20" width="27" /> + <button name="5" code="2005" shortcut="NumPad5" top="369" left="76" height="20" width="27" /> + <button name="4" code="2004" shortcut="NumPad4" top="369" left="34" height="20" width="27" /> + <button name="3" code="2003" shortcut="NumPad3" top="340" left="116" height="20" width="28" /> + <button name="2" code="2002" shortcut="NumPad2" top="340" left="74" height="20" width="28" /> + <button name="1" code="2001" shortcut="NumPad1" top="340" left="34" height="20" width="28" /> + <button name="0" code="2000" shortcut="NumPad0" top="429" left="75" height="20" width="28" /> + <button name="TV" code="2028" shortcut="None" top="54" left="33" height="20" width="21" /> + <button name="Guide" code="2027" shortcut="None" top="81" left="33" height="20" width="21" /> + <button name="Mute" code="2015" shortcut="None" top="215" left="78" height="20" width="22" /> + <button name="ChDown" code="2033" shortcut="None" top="208" left="110" height="28" width="30" /> + <button name="ChUp" code="2032" shortcut="None" top="185" left="117" height="24" width="27" /> + <button name="Prev Ch" code="2018" shortcut="None" top="185" left="73" height="23" width="31" /> + <button name="VolDown" code="2017" shortcut="None" top="211" left="38" height="25" width="29" /> + <button name="VolUp" code="2016" shortcut="None" top="183" left="31" height="27" width="28" /> + <button name="OK" code="2037" shortcut="Enter" top="115" left="74" height="29" width="30" /> + <button name="Right" code="2023" shortcut="Right" top="106" left="115" height="46" width="21" /> + <button name="Left" code="2022" shortcut="Left" top="106" left="39" height="46" width="22" /> + <button name="Down" code="2021" shortcut="Down" top="154" left="65" height="20" width="46" /> + <button name="Up" code="2020" shortcut="Up" top="82" left="65" height="22" width="47" /> + <button name="Info" code="2013" shortcut="None" top="159" left="124" height="18" width="20" /> + <button name="Back" code="2031" shortcut="Back" top="158" left="33" height="20" width="20" /> + <button name="Skip Forward" code="2030" shortcut="MediaNextTrack" top="298" left="115" height="25" width="30" /> + <button name="Skip Previous" code="2036" shortcut="MediaPreviousTrack" top="298" left="32" height="24" width="28" /> + <button name="FastForward" code="2052" shortcut="None" top="271" left="118" height="20" width="25" /> + <button name="Rewind" code="2050" shortcut="None" top="271" left="34" height="20" width="25" /> + <button name="Pause" code="2048" shortcut="None" top="300" left="78" height="23" width="21" /> + <button name="Play" code="2053" shortcut="None" top="261" left="71" height="33" width="34" /> + <button name="Record" code="2055" shortcut="None" top="240" left="32" height="24" width="28" /> + <button name="Power" code="2061" shortcut="None" top="23" left="110" height="23" width="25" /> + <button name="Stop" code="2054" shortcut="MediaStop" top="240" left="116" height="24" width="29" /> + <button name="Home" code="2059" shortcut="None" top="25" left="44" height="19" width="22" /> + <button name="Videos" code="2024" shortcut="None" top="52" left="63" height="21" width="22" /> + <button name="Music" code="2025" shortcut="None" top="52" left="92" height="21" width="22" /> + <button name="Pictures" code="2026" shortcut="None" top="52" left="122" height="21" width="22" /> + <button name="Radio" code="2012" shortcut="None" top="80" left="122" height="21" width="22" /> +</skin> \ No newline at end of file Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FireFly.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FireFly.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FireFly.xml =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FireFly.xml (rev 0) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FireFly.xml 2007-12-03 15:51:38 UTC (rev 1118) @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<skin> + <button name="Power" code="30" shortcut="None" top="13" left="21" height="20" width="20" /> + <button name="Close" code="X" shortcut="None" top="12" left="80" height="20" width="21" /> + <button name="1" code="44" shortcut="NumPad1" top="37" left="19" height="14" width="25" /> + <button name="2" code="47" shortcut="NumPad2" top="37" left="48" height="14" width="25" /> + <button name="3" code="42" shortcut="NumPad3" top="37" left="78" height="14" width="25" /> + <button name="4" code="22" shortcut="NumPad4" top="55" left="19" height="14" width="25" /> + <button name="5" code="27" shortcut="NumPad5" top="55" left="48" height="14" width="25" /> + <button name="6" code="25" shortcut="NumPad6" top="55" left="78" height="14" width="25" /> + <button name="7" code="23" shortcut="NumPad7" top="72" left="19" height="14" width="25" /> + <button name="8" code="26" shortcut="NumPad8" top="72" left="48" height="14" width="25" /> + <button name="9" code="21" shortcut="NumPad9" top="72" left="78" height="14" width="25" /> + <button name="Back" code="X" shortcut="None" top="90" left="19" height="14" width="25" /> + <button name="0" code="20" shortcut="NumPad0" top="90" left="48" height="14" width="25" /> + <button name="Enter" code="15" shortcut="None" top="90" left="78" height="14" width="25" /> + <button name="VolUp" code="37" shortcut="None" top="112" left="18" height="23" width="23" /> + <button name="VolDown" code="35" shortcut="None" top="140" left="18" height="23" width="23" /> + <button name="Mute" code="40" shortcut="None" top="118" left="47" height="14" width="25" /> + <button name="ChannelUp" code="41" shortcut="None" top="111" left="82" height="23" width="23" /> + <button name="ChannelDown" code="48" shortcut="None" top="140" left="82" height="23" width="23" /> + <button name="FireFly" code="X" shortcut="None" top="145" left="45" height="28" width="33" /> + <button name="Info" code="X" shortcut="None" top="169" left="16" height="14" width="27" /> + <button name="Option" code="X" shortcut="None" top="169" left="79" height="14" width="27" /> + <button name="Up" code="19" shortcut="None" top="184" left="42" height="15" width="37" /> + <button name="Left" code="13" shortcut="None" top="197" left="29" height="36" width="16" /> + <button name="Right" code="11" shortcut="None" top="197" left="77" height="36" width="16" /> + <button name="Down" code="12" shortcut="None" top="231" left="42" height="15" width="37" /> + <button name="OK" code="17" shortcut="None" top="202" left="48" height="26" width="26" /> + <button name="Menu" code="97" shortcut="None" top="249" left="16" height="14" width="27" /> + <button name="Exit" code="98" shortcut="None" top="249" left="79" height="14" width="27" /> + <button name="Record" code="1" shortcut="None" top="271" left="19" height="14" width="25" /> + <button name="Play" code="6" shortcut="None" top="271" left="48" height="21" width="26" /> + <button name="Stop" code="5" shortcut="None" top="271" left="79" height="14" width="25" /> + <button name="Rewind" code="2" shortcut="None" top="288" left="19" height="14" width="25" /> + <button name="FastForward" code="4" shortcut="None" top="288" left="79" height="14" width="25" /> + <button name="SkipBack" code="48" shortcut="None" top="305" left="19" height="14" width="25" /> + <button name="Pause" code="0" shortcut="None" top="298" left="48" height="21" width="26" /> + <button name="SkipForward" code="41" shortcut="None" top="305" left="79" height="14" width="26" /> + <button name="Music" code="X" shortcut="None" top="332" left="14" height="16" width="16" /> + <button name="Photos" code="X" shortcut="None" top="334" left="34" height="16" width="16" /> + <button name="DVD" code="81" shortcut="None" top="335" left="54" height="16" width="16" /> + <button name="TV" code="80" shortcut="None" top="334" left="73" height="16" width="16" /> + <button name="Video" code="X" shortcut="None" top="332" left="93" height="16" width="16" /> + <button name="Button" code="X" shortcut="None" top="355" left="36" height="15" width="24" /> + <button name="Button" code="X" shortcut="None" top="355" left="64" height="15" width="24" /> + <button name="A" code="74" shortcut="A" top="375" left="13" height="14" width="23" /> + <button name="B" code="75" shortcut="B" top="375" left="37" height="14" width="23" /> + <button name="C" code="76" shortcut="C" top="375" left="62" height="14" width="23" /> + <button name="D" code="77" shortcut="D" top="375" left="87" height="14" width="23" /> +</skin> \ No newline at end of file Deleted: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FusionREMOTE Tiger.png =================================================================== (Binary files differ) Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/FusionREMOTE.png =================================================================== (Binary files differ) Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Hauppauge34.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Hauppauge34.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Hauppauge34.xml =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Hauppauge34.xml (rev 0) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Hauppauge34.xml 2007-12-03 15:51:38 UTC (rev 1118) @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<skin> + <button name="Blue" code="1041" shortcut="None" top="277" left="127" height="22" width="22" /> + <button name="Yellow" code="1056" shortcut="None" top="277" left="25" height="21" width="21" /> + <button name="Green" code="1046" shortcut="None" top="185" left="127" height="21" width="21" /> + <button name="Red" code="1011" shortcut="None" top="186" left="26" height="21" width="21" /> + <button name="9" code="1009" shortcut="NumPad9" top="120" left="124" height="24" width="26" /> + <button name="8" code="1008" shortcut="NumPad8" top="120" left="75" height="24" width="26" /> + <button name="7" code="1007" shortcut="NumPad7" top="121" left="25" height="23" width="26" /> + <button name="6" code="1006" shortcut="NumPad6" top="90" left="125" height="23" width="26" /> + <button name="5" code="1005" shortcut="NumPad5" top="90" left="76" height="23" width="25" /> + <button name="4" code="1004" shortcut="NumPad4" top="91" left="26" height="23" width="26" /> + <button name="3" code="1003" shortcut="NumPad3" top="60" left="125" height="23" width="25" /> + <button name="2" code="1002" shortcut="NumPad2" top="60" left="76" height="23" width="25" /> + <button name="1" code="1001" shortcut="NumPad1" top="61" left="27" height="22" width="25" /> + <button name="0" code="1000" shortcut="NumPad0" top="150" left="75" height="24" width="26" /> + <button name="Menu" code="1013" shortcut="None" top="154" left="125" height="22" width="25" /> + <button name="Mute" code="1015" shortcut="None" top="324" left="31" height="20" width="25" /> + <button name="ChDown" code="1033" shortcut="None" top="261" left="59" height="22" width="56" /> + <button name="ChUp" code="1032" shortcut="None" top="201" left="59" height="23" width="57" /> + <button name="Func" code="1012" shortcut="None" top="323" left="74" height="22" width="27" /> + <button name="VolDown" code="1017" shortcut="None" top="218" left="35" height="51" width="26" /> + <button name="VolUp" code="1016" shortcut="None" top="217" left="113" height="50" width="27" /> + <button name="OK" code="1037" shortcut="Enter" top="228" left="72" height="29" width="30" /> + <button name="Back" code="1031" shortcut="Back" top="155" left="25" height="21" width="26" /> + <button name="Skip Forward" code="1030" shortcut="MediaNextTrack" top="423" left="96" height="21" width="26" /> + <button name="Skip Previous" code="1036" shortcut="MediaPreviousTrack" top="423" left="52" height="22" width="25" /> + <button name="FastForward" code="1052" shortcut="None" top="357" left="118" height="20" width="25" /> + <button name="Rewind" code="1050" shortcut="None" top="358" left="30" height="20" width="25" /> + <button name="Pause" code="1048" shortcut="None" top="390" left="118" height="21" width="26" /> + <button name="Play" code="1053" shortcut="None" top="356" left="74" height="23" width="25" /> + <button name="Record" code="1055" shortcut="None" top="390" left="30" height="20" width="25" /> + <button name="Power" code="1061" shortcut="None" top="32" left="27" height="23" width="25" /> + <button name="Stop" code="1054" shortcut="MediaStop" top="390" left="74" height="21" width="26" /> + <button name="Home" code="1059" shortcut="None" top="32" left="125" height="20" width="25" /> + <button name="Full" code="1060" shortcut="None" top="324" left="118" height="22" width="26" /> +</skin> \ No newline at end of file Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Hauppauge45.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Hauppauge45.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Hauppauge45.xml =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Hauppauge45.xml (rev 0) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Hauppauge45.xml 2007-12-03 15:51:38 UTC (rev 1118) @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<skin> + <button name="Blue" code="2041" shortcut="None" top="459" left="124" height="20" width="20" /> + <button name="Yellow" code="2056" shortcut="None" top="459" left="94" height="20" width="20" /> + <button name="Green" code="2046" shortcut="None" top="460" left="64" height="20" width="20" /> + <button name="Red" code="2011" shortcut="None" top="460" left="34" height="20" width="20" /> + <button name="Hash" code="2014" shortcut="None" top="429" left="117" height="20" width="28" /> + <button name="Star" code="2010" shortcut="None" top="429" left="33" height="20" width="28" /> + <button name="9" code="2009" shortcut="NumPad9" top="399" left="116" height="20" width="27" /> + <button name="8" code="2008" shortcut="NumPad8" top="399" left="75" height="20" width="27" /> + <button name="7" code="2007" shortcut="NumPad7" top="399" left="34" height="20" width="27" /> + <button name="6" code="2006" shortcut="NumPad6" top="369" left="117" height="20" width="27" /> + <button name="5" code="2005" shortcut="NumPad5" top="369" left="76" height="20" width="27" /> + <button name="4" code="2004" shortcut="NumPad4" top="369" left="34" height="20" width="27" /> + <button name="3" code="2003" shortcut="NumPad3" top="340" left="116" height="20" width="28" /> + <button name="2" code="2002" shortcut="NumPad2" top="340" left="74" height="20" width="28" /> + <button name="1" code="2001" shortcut="NumPad1" top="340" left="34" height="20" width="28" /> + <button name="0" code="2000" shortcut="NumPad0" top="429" left="75" height="20" width="28" /> + <button name="TV" code="2028" shortcut="None" top="54" left="33" height="20" width="21" /> + <button name="Guide" code="2027" shortcut="None" top="81" left="33" height="20" width="21" /> + <button name="Mute" code="2015" shortcut="None" top="215" left="78" height="20" width="22" /> + <button name="ChDown" code="2033" shortcut="None" top="208" left="110" height="28" width="30" /> + <button name="ChUp" code="2032" shortcut="None" top="185" left="117" height="24" width="27" /> + <button name="Prev Ch" code="2018" shortcut="None" top="185" left="73" height="23" width="31" /> + <button name="VolDown" code="2017" shortcut="None" top="211" left="38" height="25" width="29" /> + <button name="VolUp" code="2016" shortcut="None" top="183" left="31" height="27" width="28" /> + <button name="OK" code="2037" shortcut="Enter" top="115" left="74" height="29" width="30" /> + <button name="Right" code="2023" shortcut="Right" top="106" left="115" height="46" width="21" /> + <button name="Left" code="2022" shortcut="Left" top="106" left="39" height="46" width="22" /> + <button name="Down" code="2021" shortcut="Down" top="154" left="65" height="20" width="46" /> + <button name="Up" code="2020" shortcut="Up" top="82" left="65" height="22" width="47" /> + <button name="Info" code="2013" shortcut="None" top="159" left="124" height="18" width="20" /> + <button name="Back" code="2031" shortcut="Back" top="158" left="33" height="20" width="20" /> + <button name="Skip Forward" code="2030" shortcut="MediaNextTrack" top="298" left="115" height="25" width="30" /> + <button name="Skip Previous" code="2036" shortcut="MediaPreviousTrack" top="298" left="32" height="24" width="28" /> + <button name="FastForward" code="2052" shortcut="None" top="271" left="118" height="20" width="25" /> + <button name="Rewind" code="2050" shortcut="None" top="271" left="34" height="20" width="25" /> + <button name="Pause" code="2048" shortcut="None" top="300" left="78" height="23" width="21" /> + <button name="Play" code="2053" shortcut="None" top="261" left="71" height="33" width="34" /> + <button name="Record" code="2055" shortcut="None" top="240" left="32" height="24" width="28" /> + <button name="Power" code="2061" shortcut="None" top="23" left="110" height="23" width="25" /> + <button name="Stop" code="2054" shortcut="MediaStop" top="240" left="116" height="24" width="29" /> + <button name="Home" code="2059" shortcut="None" top="25" left="44" height="19" width="22" /> + <button name="Videos" code="2024" shortcut="None" top="52" left="63" height="21" width="22" /> + <button name="Music" code="2025" shortcut="None" top="52" left="92" height="21" width="22" /> + <button name="Pictures" code="2026" shortcut="None" top="52" left="122" height="21" width="22" /> + <button name="Radio" code="2012" shortcut="None" top="80" left="122" height="21" width="22" /> +</skin> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Dark.png =================================================================== (Binary files differ) Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Gold.png =================================================================== (Binary files differ) Deleted: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Grass.png =================================================================== (Binary files differ) Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Music.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Music.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Orange.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Orange.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Pink.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Pink.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Tiger.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Tiger.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Zebra.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE Zebra.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/MCE.png =================================================================== (Binary files differ) Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Medion.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Medion.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Medion.xml =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Medion.xml (rev 0) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Medion.xml 2007-12-03 15:51:38 UTC (rev 1118) @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<skin> + <button name="Blue" code="153" shortcut="None" top="181" left="98" height="20" width="20" /> + <button name="Yellow" code="143" shortcut="None" top="184" left="72" height="20" width="20" /> + <button name="Green" code="142" shortcut="None" top="181" left="46" height="20" width="20" /> + <button name="Red" code="141" shortcut="None" top="172" left="23" height="20" width="20" /> + <button name="Teletext" code="156" shortcut="None" top="172" left="121" height="20" width="20" /> + <button name="9" code="21" shortcut="NumPad9" top="252" left="106" height="20" width="32" /> + <button name="8" code="26" shortcut="NumPad8" top="257" left="65" height="20" width="33" /> + <button name="7" code="23" shortcut="NumPad7" top="252" left="26" height="19" width="32" /> + <button name="6" code="25" shortcut="NumPad6" top="228" left="106" height="20" width="32" /> + <button name="5" code="27" shortcut="NumPad5" top="234" left="66" height="19" width="32" /> + <button name="4" code="22" shortcut="NumPad4" top="227" left="27" height="20" width="32" /> + <button name="3" code="42" shortcut="NumPad3" top="204" left="106" height="20" width="32" /> + <button name="2" code="47" shortcut="NumPad2" top="209" left="66" height="20" width="32" /> + <button name="1" code="44" shortcut="NumPad1" top="204" left="26" height="20" width="32" /> + <button name="0" code="20" shortcut="NumPad0" top="281" left="66" height="20" width="32" /> + <button name="DVD Menu" code="76" shortcut="None" top="492" left="27" height="21" width="22" /> + <button name="Ch Search" code="97" shortcut="None" top="276" left="27" height="19" width="32" /> + <button name="Mute" code="74" shortcut="None" top="120" left="67" height="28" width="30" /> + <button name="ChDown" code="48" shortcut="None" top="157" left="54" height="21" width="57" /> + <button name="ChUp" code="41" shortcut="None" top="88" left="52" height="21" width="60" /> + <button name="VolDown" code="37" shortcut="None" top="106" left="34" height="55" width="23" /> + <button name="VolUp" code="35" shortcut="None" top="107" left="107" height="54" width="23" /> + <button name="OK" code="15" shortcut="Enter" top="336" left="67" height="32" width="30" /> + <button name="Right" code="11" shortcut="Right" top="327" left="102" height="48" width="20" /> + <button name="Left" code="13" shortcut="Left" top="327" left="41" height="48" width="20" /> + <button name="Down" code="12" shortcut="Down" top="372" left="57" height="20" width="48" /> + <button name="Up" code="19" shortcut="Up" top="312" left="57" height="20" width="48" /> + <button name="Back" code="98" shortcut="Back" top="276" left="105" height="19" width="32" /> + <button name="Skip Forward" code="79" shortcut="MediaNextTrack" top="464" left="114" height="23" width="23" /> + <button name="Skip Previous" code="78" shortcut="MediaPreviousTrack" top="463" left="26" height="23" width="23" /> + <button name="Fast Forward" code="4" shortcut="None" top="417" left="106" height="18" width="33" /> + <button name="Rewind" code="2" shortcut="None" top="416" left="26" height="18" width="32" /> + <button name="Pause" code="0" shortcut="None" top="440" left="106" height="18" width="32" /> + <button name="Play" code="6" shortcut="None" top="416" left="65" height="18" width="33" /> + <button name="Record" code="1" shortcut="None" top="440" left="25" height="19" width="32" /> + <button name="Power" code="30" shortcut="None" top="499" left="66" height="31" width="31" /> + <button name="Stop" code="5" shortcut="MediaStop" top="440" left="66" height="18" width="32" /> + <button name="TV" code="158" shortcut="None" top="31" left="14" height="19" width="30" /> + <button name="DVD Audio" code="144" shortcut="None" top="493" left="114" height="23" width="23" /> + <button name="Fullscreen" code="155" shortcut="None" top="463" left="70" height="23" width="24" /> + <button name="VCR" code="159" shortcut="None" top="30" left="49" height="18" width="29" /> + <button name="DVD" code="81" shortcut="None" top="29" left="85" height="18" width="29" /> + <button name="Music" code="83" shortcut="None" top="30" left="120" height="19" width="28" /> + <button name="Radio" code="160" shortcut="None" top="57" left="14" height="19" width="30" /> + <button name="Photo" code="82" shortcut="None" top="54" left="49" height="18" width="30" /> + <button name="TV Preview" code="150" shortcut="None" top="55" left="84" height="19" width="30" /> + <button name="Channel List" code="161" shortcut="None" top="57" left="119" height="17" width="30" /> + <button name="Setup" code="77" shortcut="None" top="81" left="18" height="22" width="24" /> + <button name="Video Desktop" code="140" shortcut="None" top="81" left="123" height="21" width="23" /> + <button name="Snapshot" code="157" shortcut="None" top="305" left="114" height="23" width="23" /> + <button name="Acquire Image" code="154" shortcut="None" top="382" left="26" height="24" width="23" /> + <button name="Edit Image" code="152" shortcut="None" top="383" left="114" height="24" width="24" /> +</skin> \ No newline at end of file Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/RemoteWonder.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/RemoteWonder.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/RemoteWonder.xml =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/RemoteWonder.xml (rev 0) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/RemoteWonder.xml 2007-12-03 15:51:38 UTC (rev 1118) @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<skin> + <button name="A" code="74" shortcut="A" top="37" left="28" height="20" width="20" /> + <button name="B" code="75" shortcut="B" top="33" left="70" height="20" width="20" /> + <button name="TV" code="80" shortcut="None" top="72" left="20" height="20" width="20" /> + <button name="DVD" code="81" shortcut="None" top="65" left="44" height="20" width="20" /> + <button name="Web" code="82" shortcut="None" top="63" left="70" height="20" width="20" /> + <button name="9" code="21" shortcut="NumPad9" top="248" left="105" height="20" width="32" /> + <button name="8" code="26" shortcut="NumPad8" top="254" left="64" height="20" width="33" /> + <button name="7" code="23" shortcut="NumPad7" top="249" left="24" height="19" width="32" /> + <button name="6" code="25" shortcut="NumPad6" top="224" left="104" height="20" width="32" /> + <button name="5" code="27" shortcut="NumPad5" top="230" left="64" height="19" width="32" /> + <button name="4" code="22" shortcut="NumPad4" top="224" left="24" height="20" width="32" /> + <button name="3" code="42" shortcut="NumPad3" top="200" left="104" height="20" width="32" /> + <button name="2" code="47" shortcut="NumPad2" top="205" left="64" height="20" width="32" /> + <button name="1" code="44" shortcut="NumPad1" top="199" left="24" height="20" width="32" /> + <button name="0" code="20" shortcut="NumPad0" top="279" left="65" height="20" width="32" /> + <button name="Book Symbol" code="83" shortcut="None" top="65" left="96" height="20" width="20" /> + <button name="Hand Symbol" code="84" shortcut="None" top="72" left="121" height="19" width="19" /> + <button name="Mute" code="40" shortcut="None" top="221" left="69" height="17" width="20" /> + <button name="ChDown" code="48" shortcut="None" top="202" left="113" height="21" width="20" /> + <button name="ChUp" code="41" shortcut="None" top="207" left="93" height="19" width="20" /> + <button name="ATI" code="31730" shortcut="None" top="525" left="54" height="34" width="48" /> + <button name="VolDown" code="37" shortcut="None" top="207" left="45" height="21" width="20" /> + <button name="VolUp" code="35" shortcut="None" top="203" left="25" height="22" width="20" /> + <button name="OK" code="15" shortcut="Enter" top="392" left="69" height="21" width="22" /> + <button name="Right" code="11" shortcut="Right" top="384" left="92" height="36" width="21" /> + <button name="Left" code="13" shortcut="Left" top="384" left="46" height="37" width="21" /> + <button name="Down" code="12" shortcut="Down" top="415" left="62" height="21" width="35" /> + <button name="Up" code="19" shortcut="Up" top="369" left="62" height="20" width="35" /> + <button name="Fast Forward" code="4" shortcut="None" top="448" left="112" height="25" width="25" /> + <button name="Rewind" code="2" shortcut="None" top="448" left="23" height="25" width="24" /> + <button name="Pause" code="0" shortcut="None" top="482" left="109" height="25" width="23" /> + <button name="Play" code="6" shortcut="None" top="456" left="61" height="24" width="38" /> + <button name="Record" code="1" shortcut="None" top="483" left="27" height="23" width="23" /> + <button name="Power" code="30" shortcut="None" top="28" left="99" height="31" width="31" /> + <button name="Stop" code="5" shortcut="MediaStop" top="490" left="61" height="24" width="38" /> + <button name="MouseButtonLeft" code="85" shortcut="None" top="176" left="13" height="26" width="19" /> + <button name="MouseButtonRight" code="87" shortcut="None" top="176" left="128" height="27" width="19" /> + <button name="Resize" code="98" shortcut="None" top="389" left="120" height="27" width="18" /> + <button name="Stopwatch" code="97" shortcut="None" top="389" left="22" height="26" width="17" /> + <button name="List Symbol" code="156" shortcut="None" top="330" left="24" height="25" width="31" /> + <button name="Checkmark Symbol" code="157" shortcut="None" top="331" left="105" height="24" width="30" /> + <button name="C" code="76" shortcut="C" top="362" left="35" height="19" width="18" /> + <button name="D" code="77" shortcut="D" top="362" left="106" height="18" width="18" /> + <button name="E" code="78" shortcut="E" top="424" left="35" height="18" width="18" /> + <button name="F" code="79" shortcut="F" top="424" left="106" height="18" width="19" /> + <button name="MouseUp" code="MouseUp" shortcut="None" top="107" left="68" height="37" width="25" /> + <button name="MouseDown" code="MouseDown" shortcut="None" top="169" left="68" height="37" width="25" /> + <button name="MouseRight" code="MouseRight" shortcut="None" top="144" left="93" height="25" width="37" /> + <button name="MouseLeft" code="MouseLeft" shortcut="None" top="144" left="31" height="25" width="37" /> + <button name="MouseUpRight" code="MouseUpRight" shortcut="None" top="118" left="93" height="26" width="26" /> + <button name="MouseUpLeft" code="MouseUpLeft" shortcut="None" top="118" left="42" height="26" width="26" /> + <button name="MouseDownRight" code="MouseDownRight" shortcut="None" top="169" left="93" height="26" width="26" /> + <button name="MouseDownLeft" code="MouseDownLeft" shortcut="None" top="169" left="42" height="26" width="26" /> +</skin> \ No newline at end of file Deleted: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Xbox Blue Plasma.png =================================================================== (Binary files differ) Deleted: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Xbox Orange.png =================================================================== (Binary files differ) Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Xbox.png =================================================================== (Binary files differ) Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Virtual Remote.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Virtual Remote.csproj 2007-12-03 12:32:42 UTC (rev 1117) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Virtual Remote.csproj 2007-12-03 15:51:38 UTC (rev 1118) @@ -79,29 +79,17 @@ </ItemGroup> <ItemGroup> <Content Include="Icon.ico" /> - <Content Include="Skins\FusionREMOTE Tiger.png"> - </Content> - <Content Include="Skins\FusionREMOTE.png"> - </Content> + <Content Include="Skins\FireDTV.xml" /> + <Content Include="Skins\FireFly.xml" /> <Content Include="Skins\FusionREMOTE.xml"> </Content> - <Content Include="Skins\MCE Dark.png"> - </Content> - <Content Include="Skins\MCE Gold.png"> - </Content> - <Content Include="Skins\MCE Grass.png"> - </Content> - <Content Include="Skins\MCE.png"> - </Content> + <Content Include="Skins\Hauppauge34.xml" /> + <Content Include="Skins\Hauppauge45.xml" /> <Content Include="Skins\MCE.xml"> </Content> + <Content Include="Skins\Medion.xml" /> + <Content Include="Skins\RemoteWonder.xml" /> <Content Include="Skins\web.html" /> - <Content Include="Skins\Xbox Blue Plasma.png"> - </Content> - <Content Include="Skins\Xbox Orange.png"> - </Content> - <Content Include="Skins\Xbox.png"> - </Content> <Content Include="Skins\Xbox.xml"> </Content> </ItemGroup> Modified: trunk/plugins/IR Server Suite/Documentation/Virtual Remote/Skin Editor/index.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/Virtual Remote/Skin Editor/index.html 2007-12-03 12:32:42 UTC (rev 1117) +++ trunk/plugins/IR Server Suite/Documentation/Virtual Remote/Skin Editor/index.html 2007-12-03 15:51:38 UTC (rev 1118) @@ -8,5 +8,9 @@ <IMG SRC="skin_editor.png"> +<P>Move buttons around by clicking and dragging with the mouse.</P> + +<P>Change the size of buttons with the W, A, S, and D keys on your keyboard.</P> + </BODY> </HTML> Modified: trunk/plugins/IR Server Suite/Documentation/new.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/new.html 2007-12-03 12:32:42 UTC (rev 1117) +++ trunk/plugins/IR Server Suite/Documentation/new.html 2007-12-03 15:51:38 UTC (rev 1118) @@ -24,6 +24,7 @@ <LI>Commands (including macros) now execute on separate threads. In the past calling a macro for example would block the caller until it finished, now the caller can continue while the macro executes independantly. Note that this will cause a subtle change in flow control, but shouldn't effect anyone.</LI> <LI>Added support for Girder 3.x plugins, still experimental at this stage. Expect to see improvements in this area, like multiple Girder plugins active at the same time.</LI> <LI>Virtual Remote now has a companion application called Web Remote, with a built in web server for simulating a remote control over the web.</LI> +<LI>Added support for the RedEye blaster device.</LI> </UL></P> <BR> Added: trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Properties/AssemblyInfo.cs 2007-12-03 15:51:38 UTC (rev 1118) @@ -0,0 +1,39 @@ +using System; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Security.Permissions; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Wii Remote Receiver")] +[assembly: AssemblyDescription("IR Server plugin to support the Wii Remote")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("and-81")] +[assembly: AssemblyProduct("WiiRemoteReceiver")] +[assembly: AssemblyCopyright("Aaron Dinnage")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.3.5")] +[assembly: AssemblyFileVersion("1.0.3.5")] + +[assembly: CLSCompliant(true)] +[assembly: GuidAttribute("B82A00C1-71EF-4f5e-97A1-615DE0D602B0")] + +[assembly: SecurityPermission(SecurityAction.RequestMinimum, UnmanagedCode = true)] Added: trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs 2007-12-03 15:51:38 UTC (rev 1118) @@ -0,0 +1,242 @@ +using System; +using System.Diagnostics; +using System.Drawing; + +using IRServerPluginInterface; + +using WiimoteLib; + +namespace WiiRemoteReceiver +{ + + /// <summary> + /// IR Server Plugin for the Wii Remote. + /// </summary> + public class WiiRemoteReceiver : IRServerPluginBase, IRemoteReceiver + { + + #region Delegates + + delegate void UpdateWiimoteStateDelegate(WiimoteChangedEventArgs args); + delegate void UpdateExtensionChangedDelegate(WiimoteExtensionChangedEventArgs args); + + #endregion Delegates + + #region Variables + + RemoteHandler _remoteButtonHandler; + + Wiimote wm; + Bitmap b; + Graphics g; + + #endregion Variables + + #region Implementation + + /// <summary> + /// Name of the IR Server plugin. + /// </summary> + /// <value>The name.</value> + public override string Name { get { return "Wii Remote"; } } + /// <summary> + /// IR Server plugin version. + /// </summary> + /// <value>The version.</value> + public override string Version { get { return "1.0.3.5"; } } + /// <summary> + /// The IR Server plugin's author. + /// </summary> + /// <value>The author.</value> + public override string Author { get { return "and-81"; } } + /// <summary> + /// A description of the IR Server plugin. + /// </summary> + /// <value>The description.</value> + public override string Description { get { return "Supports the Wii Remote"; } } + + /// <summary> + /// Detect the presence of this device. Devices that cannot be detected will always return false. + /// </summary> + /// <returns> + /// true if the device is present, otherwise false. + /// </returns> + public override bool Detect() + { + return false; + } + + /// <summary> + /// Start the IR Server plugin. + /// </summary> + /// <returns>true if successful, otherwise false.</returns> + public override bool Start() + { + wm = new Wiimote(); + + wm.WiimoteChanged += new WiimoteChangedEventHandler(wm_WiimoteChanged); + wm.WiimoteExtensionChanged += new WiimoteExtensionChangedEventHandler(wm_WiimoteExtensionChanged); + + b = new Bitmap(256, 192, PixelFormat.Format24bppRgb); + + g = Graphics.FromImage(b); + + wm.Connect(); + wm.SetReportType(Wiimote.InputReport.IRAccel, true); + wm.SetLEDs(false, true, true, false); + + return true; + } + /// <summary> + /// Suspend the IR Server plugin when computer enters standby. + /// </summary> + public override void Suspend() + { + Stop(); + } + /// <summary> + /// Resume the IR Server plugin when the computer returns from standby. + /// </summary> + public override void Resume() + { + Start(); + } + /// <summary> + /// Stop the IR Server plugin. + /// </summary> + public override void Stop() + { + if (wm == null) + return; + + wm.Disconnect(); + } + + /// <summary> + /// Callback for remote button presses. + /// </summary> + /// <value>The remote callback.</value> + public RemoteHandler RemoteCallback + { + get { return _remoteButtonHandler; } + set { _remoteButtonHandler = value; } + } + + + + + private void UpdateExtensionChanged(WiimoteExtensionChangedEventArgs args) + { + chkExtension.Text = args.ExtensionType.ToString(); + chkExtension.Checked = args.Inserted; + + if (args.Inserted) + wm.SetReportType(Wiimote.InputReport.IRExtensionAccel, true); + else + wm.SetReportType(Wiimote.InputReport.IRAccel, true); + } + + private void UpdateWiimoteState(WiimoteChangedEventArgs args) + { + WiimoteState ws = args.WiimoteState; + + clbButtons.SetItemChecked(0, ws.ButtonState.A); + clbButtons.SetItemChecked(1, ws.ButtonState.B); + clbButtons.SetItemChecked(2, ws.ButtonState.Minus); + clbButtons.SetItemChecked(3, ws.ButtonState.Home); + clbButtons.SetItemChecked(4, ws.ButtonState.Plus); + clbButtons.SetItemChecked(5, ws.ButtonState.One); + clbButtons.SetItemChecked(6, ws.ButtonState.Two); + clbButtons.SetItemChecked(7, ws.ButtonState.Up); + clbButtons.SetItemChecked(8, ws.ButtonState.Down); + clbButtons.SetItemChecked(9, ws.ButtonState.Left); + clbButtons.SetItemChecked(10, ws.ButtonState.Right); + clbButtons.SetItemChecked(11, ws.NunchukState.C); + clbButtons.SetItemChecked(12, ws.NunchukState.Z); + + lblX.Text = ws.AccelState.X.ToString(); + lblY.Text = ws.AccelState.Y.ToString(); + lblZ.Text = ws.AccelState.Z.ToString(); + + if (ws.ExtensionType == ExtensionType.Nunchuk) + { + lblChukX.Text = ws.NunchukState.AccelState.X.ToString(); + lblChukY.Text = ws.NunchukState.AccelState.Y.ToString(); + lblChukZ.Text = ws.NunchukState.AccelState.Z.ToString(); + + lblChukJoyX.Text = ws.NunchukState.X.ToString(); + lblChukJoyY.Text = ws.NunchukState.Y.ToString(); + } + + if (ws.ExtensionType == ExtensionType.ClassicController) + { + clbCCButtons.SetItemChecked(0, ws.ClassicControllerState.ButtonState.A); + clbCCButtons.SetItemChecked(1, ws.ClassicControllerState.ButtonState.B); + clbCCButtons.SetItemChecked(2, ws.ClassicControllerState.ButtonState.X); + clbCCButtons.SetItemChecked(3, ws.ClassicControllerState.ButtonState.Y); + clbCCButtons.SetItemChecked(4, ws.ClassicControllerState.ButtonState.Minus); + clbCCButtons.SetItemChecked(5, ws.ClassicControllerState.ButtonState.Home); + clbCCButtons.SetItemChecked(6, ws.ClassicControllerState.ButtonState.Plus); + clbCCButtons.SetItemChecked(7, ws.ClassicControllerState.ButtonState.Up); + clbCCButtons.SetItemChecked(8, ws.ClassicControllerState.ButtonState.Down); + clbCCButtons.SetItemChecked(9, ws.ClassicControllerState.ButtonState.Left); + clbCCButtons.SetItemChecked(10, ws.ClassicControllerState.ButtonState.Right); + clbCCButtons.SetItemChecked(11, ws.ClassicControllerState.ButtonState.ZL); + clbCCButtons.SetItemChecked(12, ws.ClassicControllerState.ButtonState.ZR); + clbCCButtons.SetItemChecked(13, ws.ClassicControllerState.ButtonState.TriggerL); + clbCCButtons.SetItemChecked(14, ws.ClassicControllerState.ButtonState.TriggerR); + + lblXL.Text = ws.ClassicControllerState.XL.ToString(); + lblYL.Text = ws.ClassicControllerState.YL.ToString(); + lblXR.Text = ws.ClassicControllerState.XR.ToString(); + lblYR.Text = ws.ClassicControllerState.YR.ToString(); + + lblTriggerL.Text = ws.ClassicControllerState.TriggerL.ToString(); + lblTriggerR.Text = ws.ClassicControllerState.TriggerR.ToString(); + } + + if (ws.IRState.Found1) + { + lblIR1.Text = ws.IRState.X1.ToString() + ", " + ws.IRState.Y1.ToString() + ", " + ws.IRState.Size1; + lblIR1Raw.Text = ws.IRState.RawX1.ToString() + ", " + ws.IRState.RawY1.ToString(); + } + if (ws.IRState.Found2) + { + lblIR2.Text = ws.IRState.X2.ToString() + ", " + ws.IRState.Y2.ToString() + ", " + ws.IRState.Size2; + lblIR2Raw.Text = ws.IRState.RawX2.ToString() + ", " + ws.IRState.RawY2.ToString(); + } + + chkFound1.Checked = ws.IRState.Found1; + chkFound2.Checked = ws.IRState.Found2; + + pbBattery.Value = (ws.Battery > 0xc8 ? 0xc8 : (int)ws.Battery); + float f = (((100.0f * 48.0f * (float)(ws.Battery / 48.0f))) / 192.0f); + lblBattery.Text = f.ToString("F"); + + g.Clear(Color.Black); + if (w... [truncated message content] |
From: <an...@us...> - 2007-12-04 04:22:18
|
Revision: 1121 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1121&view=rev Author: and-81 Date: 2007-12-03 20:22:16 -0800 (Mon, 03 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs trunk/plugins/IR Server Suite/IR Server Suite.nsi Added Paths: ----------- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiAll.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiAll.xml trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiClassic.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiClassic.xml trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiRemote.png trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiRemote.xml Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiAll.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiAll.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiAll.xml =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiAll.xml (rev 0) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiAll.xml 2007-12-04 04:22:16 UTC (rev 1121) @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<skin> + <button name="Up" code="Wiimote_Pad:Up" shortcut="Up" top="58" left="57" height="25" width="25" /> + <button name="Left" code="Wiimote_Pad:Left" shortcut="Left" top="81" left="34" height="25" width="25" /> + <button name="Right" code="Wiimote_Pad:Right" shortcut="Right" top="81" left="81" height="25" width="25" /> + <button name="Down" code="Wiimote_Pad:Down" shortcut="Down" top="105" left="57" height="25" width="25" /> + <button name="A" code="Wiimote_Button:A" shortcut="A" top="156" left="46" height="50" width="50" /> + <button name="Minus" code="Wiimote_Button:Minus" shortcut="Subtract" top="263" left="20" height="25" width="25" /> + <button name="Home" code="Wiimote_Button:Home" shortcut="None" top="263" left="58" height="25" width="25" /> + <button name="Plus" code="Wiimote_Button:Plus" shortcut="Add" top="263" left="97" height="25" width="25" /> + <button name="One" code="Wiimote_Button:One" shortcut="NumPad1" top="407" left="55" height="32" width="32" /> + <button name="Two" code="Wiimote_Button:Two" shortcut="NumPad2" top="458" left="55" height="32" width="32" /> + <button name="B" code="Wiimote_Button:B" shortcut="B" top="90" left="268" height="77" width="57" /> + <button name="Power" code="Wiimote_Special" shortcut="None" top="16" left="21" height="25" width="25" /> + <button name="Up" code="WiimoteClassic_Pad:Up" shortcut="Up" top="401" left="496" height="30" width="30" /> + <button name="Left" code="WiimoteClassic_Pad:Left" shortcut="Left" top="426" left="466" height="30" width="30" /> + <button name="Right" code="WiimoteClassic_Pad:Right" shortcut="Right" top="429" left="526" height="30" width="30" /> + <button name="Down" code="WiimoteClassic_Pad:Down" shortcut="Down" top="456" left="496" height="30" width="30" /> + <button name="Minus" code="WiimoteClassic_Button:Minus" shortcut="Subtract" top="433" left="620" height="23" width="23" /> + <button name="Home" code="WiimoteClassic_Button:Home" shortcut="None" top="433" left="658" height="23" width="23" /> + <button name="Plus" code="WiimoteClassic_Button:Plus" shortcut="Add" top="433" left="697" height="23" width="23" /> + <button name="Y" code="WiimoteClassic_Button:Y" shortcut="Y" top="425" left="758" height="40" width="40" /> + <button name="X" code="WiimoteClassic_Button:X" shortcut="X" top="390" left="809" height="40" width="40" /> + <button name="B" code="WiimoteClassic_Button:B" shortcut="B" top="458" left="806" height="40" width="40" /> + <button name="A" code="WiimoteClassic_Button:A" shortcut="A" top="424" left="857" height="40" width="40" /> + <button name="L" code="WiimoteClassic_Button:TriggerL" shortcut="L" top="324" left="461" height="36" width="95" /> + <button name="R" code="WiimoteClassic_Button:TriggerR" shortcut="R" top="324" left="781" height="36" width="95" /> + <button name="ZL" code="WiimoteClassic_Button:ZL" shortcut="None" top="324" left="586" height="20" width="40" /> + <button name="ZR" code="WiimoteClassic_Button:ZR" shortcut="None" top="324" left="712" height="20" width="40" /> +</skin> \ No newline at end of file Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiClassic.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiClassic.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiClassic.xml =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiClassic.xml (rev 0) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiClassic.xml 2007-12-04 04:22:16 UTC (rev 1121) @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<skin> + <button name="Up" code="WiimoteClassic_Pad:Up" shortcut="Up" top="78" left="86" height="30" width="30" /> + <button name="Left" code="WiimoteClassic_Pad:Left" shortcut="Left" top="104" left="56" height="30" width="30" /> + <button name="Right" code="WiimoteClassic_Pad:Right" shortcut="Right" top="104" left="117" height="30" width="30" /> + <button name="Down" code="WiimoteClassic_Pad:Down" shortcut="Down" top="132" left="86" height="30" width="30" /> + <button name="Minus" code="WiimoteClassic_Button:Minus" shortcut="Subtract" top="109" left="210" height="23" width="23" /> + <button name="Home" code="WiimoteClassic_Button:Home" shortcut="None" top="109" left="248" height="23" width="23" /> + <button name="Plus" code="WiimoteClassic_Button:Plus" shortcut="Add" top="109" left="287" height="23" width="23" /> + <button name="Y" code="WiimoteClassic_Button:Y" shortcut="Y" top="101" left="347" height="40" width="40" /> + <button name="X" code="WiimoteClassic_Button:X" shortcut="X" top="66" left="398" height="40" width="40" /> + <button name="B" code="WiimoteClassic_Button:B" shortcut="B" top="134" left="395" height="40" width="40" /> + <button name="A" code="WiimoteClassic_Button:A" shortcut="A" top="100" left="446" height="40" width="40" /> + <button name="L" code="WiimoteClassic_Button:TriggerL" shortcut="L" top="0" left="51" height="36" width="95" /> + <button name="R" code="WiimoteClassic_Button:TriggerR" shortcut="R" top="0" left="373" height="36" width="95" /> + <button name="ZL" code="WiimoteClassic_Button:ZL" shortcut="None" top="0" left="178" height="20" width="40" /> + <button name="ZR" code="WiimoteClassic_Button:ZR" shortcut="None" top="0" left="302" height="20" width="40" /> +</skin> \ No newline at end of file Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiRemote.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiRemote.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiRemote.xml =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiRemote.xml (rev 0) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/WiiRemote.xml 2007-12-04 04:22:16 UTC (rev 1121) @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<skin> + <button name="Up" code="Wiimote_Pad:Up" shortcut="Up" top="58" left="57" height="25" width="25" /> + <button name="Left" code="Wiimote_Pad:Left" shortcut="Left" top="81" left="34" height="25" width="25" /> + <button name="Right" code="Wiimote_Pad:Right" shortcut="Right" top="81" left="81" height="25" width="25" /> + <button name="Down" code="Wiimote_Pad:Down" shortcut="Down" top="105" left="57" height="25" width="25" /> + <button name="A" code="Wiimote_Button:A" shortcut="A" top="156" left="46" height="50" width="50" /> + <button name="Minus" code="Wiimote_Button:Minus" shortcut="Subtract" top="263" left="20" height="25" width="25" /> + <button name="Home" code="Wiimote_Button:Home" shortcut="None" top="263" left="58" height="25" width="25" /> + <button name="Plus" code="Wiimote_Button:Plus" shortcut="Add" top="263" left="97" height="25" width="25" /> + <button name="One" code="Wiimote_Button:One" shortcut="NumPad1" top="407" left="55" height="32" width="32" /> + <button name="Two" code="Wiimote_Button:Two" shortcut="NumPad2" top="458" left="55" height="32" width="32" /> + <button name="B" code="Wiimote_Button:B" shortcut="B" top="90" left="268" height="77" width="57" /> + <button name="Power" code="Wiimote_Special" shortcut="None" top="16" left="21" height="25" width="25" /> +</skin> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs 2007-12-04 03:33:40 UTC (rev 1120) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs 2007-12-04 04:22:16 UTC (rev 1121) @@ -13,12 +13,13 @@ /// <summary> /// IR Server Plugin for the Wii Remote. /// </summary> - public class WiiRemoteReceiver : IRServerPluginBase, IRemoteReceiver + public class WiiRemoteReceiver : IRServerPluginBase, IRemoteReceiver, IMouseReceiver { #region Variables RemoteHandler _remoteButtonHandler; + MouseHandler _mouseHandler; Wiimote _wiimote; @@ -118,7 +119,17 @@ set { _remoteButtonHandler = value; } } + /// <summary> + /// Callback for mouse events. + /// </summary> + /// <value>The mouse callback.</value> + public MouseHandler MouseCallback + { + get { return _mouseHandler; } + set { _mouseHandler = value; } + } + void WiimoteChanged(object sender, WiimoteChangedEventArgs args) { WiimoteState ws = args.WiimoteState; @@ -169,16 +180,20 @@ int x = (int)(screenWidth - (ws.IRState.X1 + ws.IRState.X2) / 2 * screenWidth); int y = (int)((ws.IRState.Y1 + ws.IRState.Y2) / 2 * screenHeight); - Cursor.Position = new Point(x, y); + if (_mouseHandler == null) + { + Cursor.Position = new Point(x, y); + } + else + { + int prevX = (int)(screenWidth - (_previousState.IRState.X1 + _previousState.IRState.X2) / 2 * screenWidth); + int prevY = (int)((_previousState.IRState.Y1 + _previousState.IRState.Y2) / 2 * screenHeight); - int prevX = (int)(screenWidth - (_previousState.IRState.X1 + _previousState.IRState.X2) / 2 * screenWidth); - int prevY = (int)((_previousState.IRState.Y1 + _previousState.IRState.Y2) / 2 * screenHeight); + int deltaX = x - prevX; + int deltaY = y - prevY; - int deltaX = x - prevX; - int deltaY = y - prevY; - - Trace.WriteLine("DeltaX: " + deltaX.ToString() + " DeltaY: " + deltaY.ToString()); - + MouseCallback(deltaX, deltaY, 0); + } } } else Modified: trunk/plugins/IR Server Suite/IR Server Suite.nsi =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite.nsi 2007-12-04 03:33:40 UTC (rev 1120) +++ trunk/plugins/IR Server Suite/IR Server Suite.nsi 2007-12-04 04:22:16 UTC (rev 1121) @@ -43,10 +43,17 @@ Function .onInit ${If} ${RunningX64} + + ${DisableX64FSRedirection} + StrCpy '$INSTDIR' '$PROGRAMFILES\IR Server Suite' + ${EnableX64FSRedirection} + SetRegView 64 - ${DisableX64FSRedirection} + ${Else} + SetRegView 32 + ${Endif} FunctionEnd @@ -138,6 +145,8 @@ File "IR Server Plugins\Microsoft MCE Transceiver\bin\Release\*.*" File "IR Server Plugins\Serial IR Blaster\bin\Release\*.*" File "IR Server Plugins\USB-UIRT Transceiver\bin\Release\*.*" + File "IR Server Plugins\Wii Remote Receiver\bin\Debug\*.*" + File "IR Server Plugins\WiimoteLib\bin\Debug\*.*" File "IR Server Plugins\Windows Message Receiver\bin\Release\*.*" File "IR Server Plugins\WinLirc Transceiver\bin\Release\*.*" File "IR Server Plugins\X10 Transceiver\bin\Release\*.*" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2007-12-04 04:31:01
|
Revision: 1122 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1122&view=rev Author: and-81 Date: 2007-12-03 20:31:00 -0800 (Mon, 03 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj trunk/plugins/IR Server Suite/Applications/IR File Tool/IR File Tool.csproj trunk/plugins/IR Server Suite/Applications/SageSetup/Sage Setup.csproj trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj trunk/plugins/IR Server Suite/Applications/Virtual Remote/Virtual Remote.csproj trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Virtual Remote Skin Editor.csproj trunk/plugins/IR Server Suite/Applications/Web Remote/Web Remote.csproj trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj trunk/plugins/IR Server Suite/Common/MPUtils/MPUtils.csproj trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/USB-UIRT Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/WiimoteLib.csproj trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/Input Service/Input Service/Input Service.csproj trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Configuration.csproj Added Paths: ----------- trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi Removed Paths: ------------- trunk/plugins/IR Server Suite/IR Server Suite.nsi Modified: trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj 2007-12-04 04:22:16 UTC (rev 1121) +++ trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj 2007-12-04 04:31:00 UTC (rev 1122) @@ -24,6 +24,7 @@ <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <DocumentationFile> </DocumentationFile> + <UseVSHostingProcess>false</UseVSHostingProcess> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> Modified: trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj 2007-12-04 04:22:16 UTC (rev 1121) +++ trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj 2007-12-04 04:31:00 UTC (rev 1122) @@ -25,6 +25,7 @@ <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <DocumentationFile> </DocumentationFile> + <UseVSHostingProcess>false</UseVSHostingProcess> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> Modified: trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj 2007-12-04 04:22:16 UTC (rev 1121) +++ trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj 2007-12-04 04:31:00 UTC (rev 1122) @@ -25,6 +25,7 @@ <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <DocumentationFile> </DocumentationFile> + <UseVSHostingProcess>false</UseVSHostingProcess> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> Modified: trunk/plugins/IR Server Suite/Applications/IR File Tool/IR File Tool.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR File Tool/IR File Tool.csproj 2007-12-04 04:22:16 UTC (rev 1121) +++ trunk/plugins/IR Server Suite/Applications/IR File Tool/IR File Tool.csproj 2007-12-04 04:31:00 UTC (rev 1122) @@ -21,6 +21,7 @@ <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <UseVSHostingProcess>false</UseVSHostingProcess> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> Modified: trunk/plugins/IR Server Suite/Applications/SageSetup/Sage Setup.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/SageSetup/Sage Setup.csproj 2007-12-04 04:22:16 UTC (rev 1121) +++ trunk/plugins/IR Server Suite/Applications/SageSetup/Sage Setup.csproj 2007-12-04 04:31:00 UTC (rev 1122) @@ -39,6 +39,7 @@ <DocumentationFile> </DocumentationFile> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <UseVSHostingProcess>false</UseVSHostingProcess> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <OutputPath>bin\Release\</OutputPath> Modified: trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj 2007-12-04 04:22:16 UTC (rev 1121) +++ trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj 2007-12-04 04:31:00 UTC (rev 1122) @@ -32,7 +32,7 @@ <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> - <UseVSHostingProcess>true</UseVSHostingProcess> + <UseVSHostingProcess>false</UseVSHostingProcess> <DocumentationFile> </DocumentationFile> </PropertyGroup> Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Virtual Remote.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Virtual Remote.csproj 2007-12-04 04:22:16 UTC (rev 1121) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Virtual Remote.csproj 2007-12-04 04:31:00 UTC (rev 1122) @@ -34,6 +34,7 @@ <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <DocumentationFile> </DocumentationFile> + <UseVSHostingProcess>false</UseVSHostingProcess> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> @@ -90,6 +91,9 @@ <Content Include="Skins\Medion.xml" /> <Content Include="Skins\RemoteWonder.xml" /> <Content Include="Skins\web.html" /> + <Content Include="Skins\WiiAll.xml" /> + <Content Include="Skins\WiiClassic.xml" /> + <Content Include="Skins\WiiRemote.xml" /> <Content Include="Skins\Xbox.xml"> </Content> </ItemGroup> Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Virtual Remote Skin Editor.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Virtual Remote Skin Editor.csproj 2007-12-04 04:22:16 UTC (rev 1121) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Virtual Remote Skin Editor.csproj 2007-12-04 04:31:00 UTC (rev 1122) @@ -24,6 +24,7 @@ <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <DocumentationFile> </DocumentationFile> + <UseVSHostingProcess>false</UseVSHostingProcess> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> Modified: trunk/plugins/IR Server Suite/Applications/Web Remote/Web Remote.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Web Remote/Web Remote.csproj 2007-12-04 04:22:16 UTC (rev 1121) +++ trunk/plugins/IR Server Suite/Applications/Web Remote/Web Remote.csproj 2007-12-04 04:31:00 UTC (rev 1122) @@ -21,6 +21,7 @@ <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <UseVSHostingProcess>false</UseVSHostingProcess> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>pdbonly</DebugType> Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj 2007-12-04 04:22:16 UTC (rev 1121) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj 2007-12-04 04:31:00 UTC (rev 1122) @@ -22,6 +22,7 @@ <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <DocumentationFile> </DocumentationFile> + <UseVSHostingProcess>false</UseVSHostingProcess> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> Modified: trunk/plugins/IR Server Suite/Common/MPUtils/MPUtils.csproj =================================================================== --- trunk/plugins/IR Server Suite/Common/MPUtils/MPUtils.csproj 2007-12-04 04:22:16 UTC (rev 1121) +++ trunk/plugins/IR Server Suite/Common/MPUtils/MPUtils.csproj 2007-12-04 04:31:00 UTC (rev 1122) @@ -21,6 +21,7 @@ <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <DocumentationFile>bin\Debug\MPUtils.XML</DocumentationFile> + <UseVSHostingProcess>false</UseVSHostingProcess> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/USB-UIRT Transceiver.csproj =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/USB-UIRT Transceiver.csproj 2007-12-04 04:22:16 UTC (rev 1121) +++ trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/USB-UIRT Transceiver.csproj 2007-12-04 04:31:00 UTC (rev 1122) @@ -20,7 +20,7 @@ <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> - <UseVSHostingProcess>true</UseVSHostingProcess> + <UseVSHostingProcess>false</UseVSHostingProcess> <DocumentationFile>bin\Debug\USB-UIRT Transceiver.XML</DocumentationFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/WiimoteLib.csproj =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/WiimoteLib.csproj 2007-12-04 04:22:16 UTC (rev 1121) +++ trunk/plugins/IR Server Suite/IR Server Plugins/WiimoteLib/WiimoteLib.csproj 2007-12-04 04:31:00 UTC (rev 1122) @@ -31,6 +31,7 @@ <WarningLevel>4</WarningLevel> <DocumentationFile>bin\Debug\WiimoteLib.XML</DocumentationFile> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <UseVSHostingProcess>false</UseVSHostingProcess> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>pdbonly</DebugType> Added: trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi 2007-12-04 04:31:00 UTC (rev 1122) @@ -0,0 +1,469 @@ +; IR Server Suite.nsi +; +; (C) Copyright Aaron Dinnage, 2007 +; +; Install script for IR Server Suite +; +;-------------------------------- + +; The name of the installer +Name "IR Server Suite" + +; The file to write +OutFile "IR Server Suite.exe" + +; The default installation directory +InstallDir "$PROGRAMFILES\IR Server Suite" + +; Registry key to check for directory (so if you install again, it will overwrite the old one automatically) +InstallDirRegKey HKLM "Software\IR Server Suite" "Install_Dir" + +; Show the installation/uninstallation steps to the user +ShowInstDetails show +ShowUninstDetails show + +; Set the compression method +SetCompressor /SOLID /FINAL lzma + +!include "x64.nsh" + +;-------------------------------- + +; Pages + +Page components +Page directory +Page instfiles + +UninstPage uninstConfirm +UninstPage instfiles + +;-------------------------------- + +Function .onInit + + ${If} ${RunningX64} + + ${DisableX64FSRedirection} + StrCpy '$INSTDIR' '$PROGRAMFILES\IR Server Suite' + ${EnableX64FSRedirection} + + SetRegView 64 + + ${Else} + + SetRegView 32 + + ${Endif} + +FunctionEnd + +;-------------------------------- + +Section "-Core" + + DetailPrint "Installing Core files ..." + + ; Use the all users context + SetShellVarContext all + + ; Kill running Programs + DetailPrint "Terminating processes ..." + ExecWait '"taskkill" /F /IM IRServer.exe' + ExecWait '"taskkill" /F /IM Translator.exe' + ExecWait '"taskkill" /F /IM TrayLauncher.exe' + ExecWait '"taskkill" /F /IM WebRemote.exe' + ExecWait '"taskkill" /F /IM VirtualRemote.exe' + ExecWait '"taskkill" /F /IM VirtualRemoteSkinEditor.exe' + ExecWait '"taskkill" /F /IM DebugClient.exe' + Sleep 100 + + CreateDirectory "$APPDATA\IR Server Suite" + CreateDirectory "$APPDATA\IR Server Suite\Logs" + CreateDirectory "$APPDATA\IR Server Suite\IR Commands" + + ; Copy known set top boxes + CreateDirectory "$APPDATA\IR Server Suite\Set Top Boxes" + SetOutPath "$APPDATA\IR Server Suite\Set Top Boxes" + SetOverwrite ifnewer + File /r /x .svn "Set Top Boxes\*.*" + + ; Set output path to install dir + SetOutPath "$INSTDIR" + + ; Write documentation + SetOverwrite ifnewer + File "Documentation\IR Server Suite.chm" + + ; Write the uninstaller + WriteUninstaller "Uninstall IR Server Suite.exe" + + ; Create a shortcut to the uninstaller & documentation + CreateDirectory "$SMPROGRAMS\IR Server Suite" + CreateShortCut "$SMPROGRAMS\IR Server Suite\Log Files.lnk" "$APPDATA\IR Server Suite\Logs" "" "" 0 + CreateShortCut "$SMPROGRAMS\IR Server Suite\Uninstall.lnk" "$INSTDIR\Uninstall IR Server Suite.exe" "" "$INSTDIR\Uninstall IR Server Suite.exe" 0 + CreateShortCut "$SMPROGRAMS\IR Server Suite\Documentation.lnk" "$INSTDIR\IR Server Suite.chm" "" "" 0 + + ; Write the installation path into the registry + WriteRegStr HKLM "Software\IR Server Suite" "Install_Dir" "$INSTDIR" + + ; Write the uninstall keys for Windows + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "DisplayName" "IR Server Suite" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "UninstallString" '"$INSTDIR\Uninstall IR Server Suite.exe"' + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "NoModify" 1 + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "NoRepair" 1 + +SectionEnd + +;-------------------------------- + +Section "IR Server" + + DetailPrint "Installing IR Server ..." + + ; Use the all users context + SetShellVarContext all + + ; Installing IR Server + CreateDirectory "$INSTDIR\IR Server" + SetOutPath "$INSTDIR\IR Server" + SetOverwrite ifnewer + File "Applications\IR Server\bin\Debug\*.*" + + ; Install IR Server Plugins ... + DetailPrint "Installing IR Server Plugins ..." + CreateDirectory "$INSTDIR\IR Server Plugins" + SetOutPath "$INSTDIR\IR Server Plugins" + SetOverwrite ifnewer + File "IR Server Plugins\Custom HID Receiver\bin\Debug\*.*" + File "IR Server Plugins\FusionRemote Receiver\bin\Debug\*.*" + File "IR Server Plugins\Girder Plugin\bin\Debug\*.*" + ;File "IR Server Plugins\HCW Transceiver\bin\Debug\*.*" + File "IR Server Plugins\IgorPlug Receiver\bin\Debug\*.*" + File "IR Server Plugins\IRMan Receiver\bin\Debug\*.*" + File "IR Server Plugins\IRTrans Transceiver\bin\Debug\*.*" + File "IR Server Plugins\Microsoft MCE Transceiver\bin\Debug\*.*" + File "IR Server Plugins\Serial IR Blaster\bin\Debug\*.*" + File "IR Server Plugins\USB-UIRT Transceiver\bin\Debug\*.*" + File "IR Server Plugins\Wii Remote Receiver\bin\Debug\*.*" + File "IR Server Plugins\WiimoteLib\bin\Debug\*.*" + File "IR Server Plugins\Windows Message Receiver\bin\Debug\*.*" + File "IR Server Plugins\WinLirc Transceiver\bin\Debug\*.*" + File "IR Server Plugins\X10 Transceiver\bin\Debug\*.*" + File "IR Server Plugins\XBCDRC Receiver\bin\Debug\*.*" + + ; Create App Data Folder for IR Server configuration files. + CreateDirectory "$APPDATA\IR Server Suite\IR Server" + + ; Create start menu shortcut + CreateShortCut "$SMPROGRAMS\IR Server Suite\IR Server.lnk" "$INSTDIR\IR Server\IRServer.exe" "" "$INSTDIR\IR Server\IRServer.exe" 0 + + ; Launch IR Server + Exec '"$INSTDIR\IR Server\IRServer.exe"' + +SectionEnd + +;-------------------------------- + +Section "MP Control Plugin" + + DetailPrint "Installing MP Control Plugin ..." + + ; Use the all users context + SetShellVarContext all + + ; Write plugin dll + SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process" + SetOverwrite ifnewer + File "MediaPortal Plugins\MP Control Plugin\bin\Debug\MPUtils.dll" + File "MediaPortal Plugins\MP Control Plugin\bin\Debug\IrssComms.dll" + File "MediaPortal Plugins\MP Control Plugin\bin\Debug\IrssUtils.dll" + File "MediaPortal Plugins\MP Control Plugin\bin\Debug\MPControlPlugin.dll" + + ; Write input mapping + SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\InputDeviceMappings\defaults" + SetOverwrite ifnewer + File "MediaPortal Plugins\MP Control Plugin\InputMapping\MPControlPlugin.xml" + + ; Write app data + CreateDirectory "$APPDATA\IR Server Suite\MP Control Plugin" + SetOutPath "$APPDATA\IR Server Suite\MP Control Plugin" + SetOverwrite ifnewer + File /r /x .svn "MediaPortal Plugins\MP Control Plugin\AppData\*.*" + + ; Create Macro folder + CreateDirectory "$APPDATA\IR Server Suite\MP Control Plugin\Macro" + +SectionEnd + +;-------------------------------- + +Section "MP Blast Zone Plugin" + + DetailPrint "Installing MP Blast Zone Plugin ..." + + ; Use the all users context + SetShellVarContext all + + ; Write plugin dll + SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows" + SetOverwrite ifnewer + File "MediaPortal Plugins\MP Blast Zone Plugin\bin\Debug\MPUtils.dll" + File "MediaPortal Plugins\MP Blast Zone Plugin\bin\Debug\IrssComms.dll" + File "MediaPortal Plugins\MP Blast Zone Plugin\bin\Debug\IrssUtils.dll" + File "MediaPortal Plugins\MP Blast Zone Plugin\bin\Debug\MPBlastZonePlugin.dll" + + ; Write app data + CreateDirectory "$APPDATA\IR Server Suite\MP Blast Zone Plugin" + SetOutPath "$APPDATA\IR Server Suite\MP Blast Zone Plugin" + SetOverwrite off + File "MediaPortal Plugins\MP Blast Zone Plugin\AppData\Menu.xml" + + ; Write skin files + SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Skin\BlueTwo" + SetOverwrite on + File /r /x .svn "MediaPortal Plugins\MP Blast Zone Plugin\Skin\*.*" + + SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Skin\BlueTwo wide" + SetOverwrite on + File /r /x .svn "MediaPortal Plugins\MP Blast Zone Plugin\Skin\*.*" + + ; Create Macro folder + CreateDirectory "$APPDATA\IR Server Suite\MP Blast Zone Plugin\Macro" + +SectionEnd + +;-------------------------------- + +Section /o "TV2 Blaster Plugin" + + DetailPrint "Installing TV2 Blaster Plugin ..." + + ; Use the all users context + SetShellVarContext all + + ; Write plugin dll + SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process" + SetOverwrite ifnewer + File "MediaPortal Plugins\TV2 Blaster Plugin\bin\Debug\MPUtils.dll" + File "MediaPortal Plugins\TV2 Blaster Plugin\bin\Debug\IrssComms.dll" + File "MediaPortal Plugins\TV2 Blaster Plugin\bin\Debug\IrssUtils.dll" + File "MediaPortal Plugins\TV2 Blaster Plugin\bin\Debug\TV2BlasterPlugin.dll" + + ; Create folders + CreateDirectory "$APPDATA\IR Server Suite\TV2 Blaster Plugin" + CreateDirectory "$APPDATA\IR Server Suite\TV2 Blaster Plugin\Macro" + +SectionEnd + +;-------------------------------- + +Section /o "TV3 Blaster Plugin" + + DetailPrint "Installing TV3 Blaster Plugin ..." + + ; Use the all users context + SetShellVarContext all + + ; Write plugin dll + SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins" + SetOverwrite ifnewer + File "MediaPortal Plugins\TV3 Blaster Plugin\bin\Debug\MPUtils.dll" + File "MediaPortal Plugins\TV3 Blaster Plugin\bin\Debug\IrssComms.dll" + File "MediaPortal Plugins\TV3 Blaster Plugin\bin\Debug\IrssUtils.dll" + File "MediaPortal Plugins\TV3 Blaster Plugin\bin\Debug\TV3BlasterPlugin.dll" + + ; Create folders + CreateDirectory "$APPDATA\IR Server Suite\TV3 Blaster Plugin" + CreateDirectory "$APPDATA\IR Server Suite\TV3 Blaster Plugin\Macro" + +SectionEnd + +;-------------------------------- + +Section "Translator" + + DetailPrint "Installing Translator ..." + + ; Installing Translator + CreateDirectory "$INSTDIR\Translator" + SetOutPath "$INSTDIR\Translator" + SetOverwrite ifnewer + File "Applications\Translator\bin\Debug\*.*" + + ; Create folders + CreateDirectory "$APPDATA\IR Server Suite\Translator" + CreateDirectory "$APPDATA\IR Server Suite\Translator\Macro" + + ; Create start menu shortcut + CreateShortCut "$SMPROGRAMS\IR Server Suite\Translator.lnk" "$INSTDIR\Translator\Translator.exe" "" "$INSTDIR\Translator\Translator.exe" 0 + +SectionEnd + +;-------------------------------- + +Section /o "Tray Launcher" + + DetailPrint "Installing Tray Launcher ..." + + ; Installing Translator + CreateDirectory "$INSTDIR\Tray Launcher" + SetOutPath "$INSTDIR\Tray Launcher" + SetOverwrite ifnewer + File "Applications\Tray Launcher\bin\Debug\*.*" + + ; Create folders + CreateDirectory "$APPDATA\IR Server Suite\Tray Launcher" + + ; Create start menu shortcut + CreateShortCut "$SMPROGRAMS\IR Server Suite\Tray Launcher.lnk" "$INSTDIR\Tray Launcher\TrayLauncher.exe" "" "$INSTDIR\Tray Launcher\TrayLauncher.exe" 0 + +SectionEnd + +;-------------------------------- + +Section "Virtual Remote and Web Remote" + + DetailPrint "Installing Virtual Remote and Web Remote..." + + ; Installing Virtual Remote and Web Remote + CreateDirectory "$INSTDIR\Virtual Remote" + SetOutPath "$INSTDIR\Virtual Remote" + SetOverwrite ifnewer + File "Applications\Virtual Remote\bin\Debug\*.*" + File "Applications\Web Remote\bin\Debug\WebRemote.exe" + + CreateDirectory "$INSTDIR\Virtual Remote\Skins" + SetOutPath "$INSTDIR\Virtual Remote\Skins" + SetOverwrite ifnewer + File "Applications\Virtual Remote\Skins\*.*" + + ; Create folders + CreateDirectory "$APPDATA\IR Server Suite\Virtual Remote" + + ; Create start menu shortcut + CreateShortCut "$SMPROGRAMS\IR Server Suite\Virtual Remote.lnk" "$INSTDIR\Virtual Remote\VirtualRemote.exe" "" "$INSTDIR\Virtual Remote\VirtualRemote.exe" 0 + CreateShortCut "$SMPROGRAMS\IR Server Suite\Web Remote.lnk" "$INSTDIR\Virtual Remote\WebRemote.exe" "" "$INSTDIR\Virtual Remote\WebRemote.exe" 0 + +SectionEnd + +;-------------------------------- + +Section /o "Virtual Remote Skin Editor" + + DetailPrint "Installing Virtual Remote Skin Editor ..." + + ; Installing Virtual Remote + CreateDirectory "$INSTDIR\Virtual Remote Skin Editor" + SetOutPath "$INSTDIR\Virtual Remote Skin Editor" + SetOverwrite ifnewer + File "Applications\Virtual Remote Skin Editor\bin\Debug\*.*" + + ; Create folders + CreateDirectory "$APPDATA\IR Server Suite\Virtual Remote Skin Editor" + + ; Create start menu shortcut + CreateShortCut "$SMPROGRAMS\IR Server Suite\Virtual Remote Skin Editor.lnk" "$INSTDIR\Virtual Remote Skin Editor\VirtualRemoteSkinEditor.exe" "" "$INSTDIR\Virtual Remote Skin Editor\VirtualRemoteSkinEditor.exe" 0 + +SectionEnd + +;-------------------------------- + +Section "IR Blast (Command line tool)" + + DetailPrint "Installing IR Blast ..." + + ; Installing IR Server + CreateDirectory "$INSTDIR\IR Blast" + SetOutPath "$INSTDIR\IR Blast" + SetOverwrite ifnewer + File "Applications\IR Blast\bin\Debug\IRBlast.exe" + File "Applications\IR Blast (No Window)\bin\Debug\*.*" + +SectionEnd + +;-------------------------------- + +Section /o "Debug Client" + + DetailPrint "Installing Debug Client ..." + + ; Installing Debug Client + CreateDirectory "$INSTDIR\Debug Client" + SetOutPath "$INSTDIR\Debug Client" + SetOverwrite ifnewer + File "Applications\Debug Client\bin\Debug\*.*" + + ; Create folders + CreateDirectory "$APPDATA\IR Server Suite\Debug Client" + + ; Create start menu shortcut + CreateShortCut "$SMPROGRAMS\IR Server Suite\Debug Client.lnk" "$INSTDIR\Debug Client\DebugClient.exe" "" "$INSTDIR\Debug Client\DebugClient.exe" 0 + +SectionEnd + +;-------------------------------- +;-------------------------------- + +Section "Uninstall" + + ; Use the all users context + SetShellVarContext all + + ; Kill running Programs + DetailPrint "Terminating processes ..." + ExecWait '"taskkill" /F /IM IRServer.exe' + ExecWait '"taskkill" /F /IM Translator.exe' + ExecWait '"taskkill" /F /IM TrayLauncher.exe' + ExecWait '"taskkill" /F /IM VirtualRemote.exe' + ExecWait '"taskkill" /F /IM VirtualRemoteSkinEditor.exe' + ExecWait '"taskkill" /F /IM DebugClient.exe' + Sleep 100 + + ; Remove files and uninstaller + DetailPrint "Attempting to remove MediaPortal Blast Zone Plugin ..." + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\MPUtils.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\IrssComms.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\IrssUtils.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\MPBlastZonePlugin.dll" + + DetailPrint "Attempting to remove MediaPortal Process Plugin Common Files ..." + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\MPUtils.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\IrssComms.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\IrssUtils.dll" + + DetailPrint "Attempting to remove MediaPortal Control Plugin ..." + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\MPControlPlugin.dll" + + DetailPrint "Attempting to remove MediaPortal TV2 Plugin ..." + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\TV2BlasterPlugin.dll" + + DetailPrint "Attempting to remove MediaPortal TV3 Plugin ..." + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins\MPUtils.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins\IrssComms.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins\IrssUtils.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins\TV3BlasterPlugin.dll" + + DetailPrint "Removing Set Top Box presets ..." + RMDir /R "$APPDATA\IR Server Suite\Set Top Boxes" + + DetailPrint "Removing program files ..." + RMDir /R /REBOOTOK "$INSTDIR" + + DetailPrint "Removing start menu shortcuts ..." + RMDir /R "$SMPROGRAMS\IR Server Suite" + + ; Remove registry keys + DetailPrint "Removing registry keys ..." + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" + DeleteRegKey HKLM "SOFTWARE\IR Server Suite" + + ; Remove auto-runs + DetailPrint "Removing application auto-runs ..." + DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "IR Server" + DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Tray Launcher" + DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Translator" + +SectionEnd + +;-------------------------------- Copied: trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi (from rev 1121, trunk/plugins/IR Server Suite/IR Server Suite.nsi) =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi 2007-12-04 04:31:00 UTC (rev 1122) @@ -0,0 +1,469 @@ +; IR Server Suite.nsi +; +; (C) Copyright Aaron Dinnage, 2007 +; +; Install script for IR Server Suite +; +;-------------------------------- + +; The name of the installer +Name "IR Server Suite" + +; The file to write +OutFile "IR Server Suite.exe" + +; The default installation directory +InstallDir "$PROGRAMFILES\IR Server Suite" + +; Registry key to check for directory (so if you install again, it will overwrite the old one automatically) +InstallDirRegKey HKLM "Software\IR Server Suite" "Install_Dir" + +; Show the installation/uninstallation steps to the user +ShowInstDetails show +ShowUninstDetails show + +; Set the compression method +SetCompressor /SOLID /FINAL lzma + +!include "x64.nsh" + +;-------------------------------- + +; Pages + +Page components +Page directory +Page instfiles + +UninstPage uninstConfirm +UninstPage instfiles + +;-------------------------------- + +Function .onInit + + ${If} ${RunningX64} + + ${DisableX64FSRedirection} + StrCpy '$INSTDIR' '$PROGRAMFILES\IR Server Suite' + ${EnableX64FSRedirection} + + SetRegView 64 + + ${Else} + + SetRegView 32 + + ${Endif} + +FunctionEnd + +;-------------------------------- + +Section "-Core" + + DetailPrint "Installing Core files ..." + + ; Use the all users context + SetShellVarContext all + + ; Kill running Programs + DetailPrint "Terminating processes ..." + ExecWait '"taskkill" /F /IM IRServer.exe' + ExecWait '"taskkill" /F /IM Translator.exe' + ExecWait '"taskkill" /F /IM TrayLauncher.exe' + ExecWait '"taskkill" /F /IM WebRemote.exe' + ExecWait '"taskkill" /F /IM VirtualRemote.exe' + ExecWait '"taskkill" /F /IM VirtualRemoteSkinEditor.exe' + ExecWait '"taskkill" /F /IM DebugClient.exe' + Sleep 100 + + CreateDirectory "$APPDATA\IR Server Suite" + CreateDirectory "$APPDATA\IR Server Suite\Logs" + CreateDirectory "$APPDATA\IR Server Suite\IR Commands" + + ; Copy known set top boxes + CreateDirectory "$APPDATA\IR Server Suite\Set Top Boxes" + SetOutPath "$APPDATA\IR Server Suite\Set Top Boxes" + SetOverwrite ifnewer + File /r /x .svn "Set Top Boxes\*.*" + + ; Set output path to install dir + SetOutPath "$INSTDIR" + + ; Write documentation + SetOverwrite ifnewer + File "Documentation\IR Server Suite.chm" + + ; Write the uninstaller + WriteUninstaller "Uninstall IR Server Suite.exe" + + ; Create a shortcut to the uninstaller & documentation + CreateDirectory "$SMPROGRAMS\IR Server Suite" + CreateShortCut "$SMPROGRAMS\IR Server Suite\Log Files.lnk" "$APPDATA\IR Server Suite\Logs" "" "" 0 + CreateShortCut "$SMPROGRAMS\IR Server Suite\Uninstall.lnk" "$INSTDIR\Uninstall IR Server Suite.exe" "" "$INSTDIR\Uninstall IR Server Suite.exe" 0 + CreateShortCut "$SMPROGRAMS\IR Server Suite\Documentation.lnk" "$INSTDIR\IR Server Suite.chm" "" "" 0 + + ; Write the installation path into the registry + WriteRegStr HKLM "Software\IR Server Suite" "Install_Dir" "$INSTDIR" + + ; Write the uninstall keys for Windows + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "DisplayName" "IR Server Suite" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "UninstallString" '"$INSTDIR\Uninstall IR Server Suite.exe"' + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "NoModify" 1 + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "NoRepair" 1 + +SectionEnd + +;-------------------------------- + +Section "IR Server" + + DetailPrint "Installing IR Server ..." + + ; Use the all users context + SetShellVarContext all + + ; Installing IR Server + CreateDirectory "$INSTDIR\IR Server" + SetOutPath "$INSTDIR\IR Server" + SetOverwrite ifnewer + File "Applications\IR Server\bin\Release\*.*" + + ; Install IR Server Plugins ... + DetailPrint "Installing IR Server Plugins ..." + CreateDirectory "$INSTDIR\IR Server Plugins" + SetOutPath "$INSTDIR\IR Server Plugins" + SetOverwrite ifnewer + File "IR Server Plugins\Custom HID Receiver\bin\Release\*.*" + File "IR Server Plugins\FusionRemote Receiver\bin\Release\*.*" + File "IR Server Plugins\Girder Plugin\bin\Release\*.*" + ;File "IR Server Plugins\HCW Transceiver\bin\Release\*.*" + File "IR Server Plugins\IgorPlug Receiver\bin\Release\*.*" + File "IR Server Plugins\IRMan Receiver\bin\Release\*.*" + File "IR Server Plugins\IRTrans Transceiver\bin\Release\*.*" + File "IR Server Plugins\Microsoft MCE Transceiver\bin\Release\*.*" + File "IR Server Plugins\Serial IR Blaster\bin\Release\*.*" + File "IR Server Plugins\USB-UIRT Transceiver\bin\Release\*.*" + File "IR Server Plugins\Wii Remote Receiver\bin\Debug\*.*" + File "IR Server Plugins\WiimoteLib\bin\Debug\*.*" + File "IR Server Plugins\Windows Message Receiver\bin\Release\*.*" + File "IR Server Plugins\WinLirc Transceiver\bin\Release\*.*" + File "IR Server Plugins\X10 Transceiver\bin\Release\*.*" + File "IR Server Plugins\XBCDRC Receiver\bin\Release\*.*" + + ; Create App Data Folder for IR Server configuration files. + CreateDirectory "$APPDATA\IR Server Suite\IR Server" + + ; Create start menu shortcut + CreateShortCut "$SMPROGRAMS\IR Server Suite\IR Server.lnk" "$INSTDIR\IR Server\IRServer.exe" "" "$INSTDIR\IR Server\IRServer.exe" 0 + + ; Launch IR Server + Exec '"$INSTDIR\IR Server\IRServer.exe"' + +SectionEnd + +;-------------------------------- + +Section "MP Control Plugin" + + DetailPrint "Installing MP Control Plugin ..." + + ; Use the all users context + SetShellVarContext all + + ; Write plugin dll + SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process" + SetOverwrite ifnewer + File "MediaPortal Plugins\MP Control Plugin\bin\Release\MPUtils.dll" + File "MediaPortal Plugins\MP Control Plugin\bin\Release\IrssComms.dll" + File "MediaPortal Plugins\MP Control Plugin\bin\Release\IrssUtils.dll" + File "MediaPortal Plugins\MP Control Plugin\bin\Release\MPControlPlugin.dll" + + ; Write input mapping + SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\InputDeviceMappings\defaults" + SetOverwrite ifnewer + File "MediaPortal Plugins\MP Control Plugin\InputMapping\MPControlPlugin.xml" + + ; Write app data + CreateDirectory "$APPDATA\IR Server Suite\MP Control Plugin" + SetOutPath "$APPDATA\IR Server Suite\MP Control Plugin" + SetOverwrite ifnewer + File /r /x .svn "MediaPortal Plugins\MP Control Plugin\AppData\*.*" + + ; Create Macro folder + CreateDirectory "$APPDATA\IR Server Suite\MP Control Plugin\Macro" + +SectionEnd + +;-------------------------------- + +Section "MP Blast Zone Plugin" + + DetailPrint "Installing MP Blast Zone Plugin ..." + + ; Use the all users context + SetShellVarContext all + + ; Write plugin dll + SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows" + SetOverwrite ifnewer + File "MediaPortal Plugins\MP Blast Zone Plugin\bin\Release\MPUtils.dll" + File "MediaPortal Plugins\MP Blast Zone Plugin\bin\Release\IrssComms.dll" + File "MediaPortal Plugins\MP Blast Zone Plugin\bin\Release\IrssUtils.dll" + File "MediaPortal Plugins\MP Blast Zone Plugin\bin\Release\MPBlastZonePlugin.dll" + + ; Write app data + CreateDirectory "$APPDATA\IR Server Suite\MP Blast Zone Plugin" + SetOutPath "$APPDATA\IR Server Suite\MP Blast Zone Plugin" + SetOverwrite off + File "MediaPortal Plugins\MP Blast Zone Plugin\AppData\Menu.xml" + + ; Write skin files + SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Skin\BlueTwo" + SetOverwrite on + File /r /x .svn "MediaPortal Plugins\MP Blast Zone Plugin\Skin\*.*" + + SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Skin\BlueTwo wide" + SetOverwrite on + File /r /x .svn "MediaPortal Plugins\MP Blast Zone Plugin\Skin\*.*" + + ; Create Macro folder + CreateDirectory "$APPDATA\IR Server Suite\MP Blast Zone Plugin\Macro" + +SectionEnd + +;-------------------------------- + +Section /o "TV2 Blaster Plugin" + + DetailPrint "Installing TV2 Blaster Plugin ..." + + ; Use the all users context + SetShellVarContext all + + ; Write plugin dll + SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process" + SetOverwrite ifnewer + File "MediaPortal Plugins\TV2 Blaster Plugin\bin\Release\MPUtils.dll" + File "MediaPortal Plugins\TV2 Blaster Plugin\bin\Release\IrssComms.dll" + File "MediaPortal Plugins\TV2 Blaster Plugin\bin\Release\IrssUtils.dll" + File "MediaPortal Plugins\TV2 Blaster Plugin\bin\Release\TV2BlasterPlugin.dll" + + ; Create folders + CreateDirectory "$APPDATA\IR Server Suite\TV2 Blaster Plugin" + CreateDirectory "$APPDATA\IR Server Suite\TV2 Blaster Plugin\Macro" + +SectionEnd + +;-------------------------------- + +Section /o "TV3 Blaster Plugin" + + DetailPrint "Installing TV3 Blaster Plugin ..." + + ; Use the all users context + SetShellVarContext all + + ; Write plugin dll + SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins" + SetOverwrite ifnewer + File "MediaPortal Plugins\TV3 Blaster Plugin\bin\Release\MPUtils.dll" + File "MediaPortal Plugins\TV3 Blaster Plugin\bin\Release\IrssComms.dll" + File "MediaPortal Plugins\TV3 Blaster Plugin\bin\Release\IrssUtils.dll" + File "MediaPortal Plugins\TV3 Blaster Plugin\bin\Release\TV3BlasterPlugin.dll" + + ; Create folders + CreateDirectory "$APPDATA\IR Server Suite\TV3 Blaster Plugin" + CreateDirectory "$APPDATA\IR Server Suite\TV3 Blaster Plugin\Macro" + +SectionEnd + +;-------------------------------- + +Section "Translator" + + DetailPrint "Installing Translator ..." + + ; Installing Translator + CreateDirectory "$INSTDIR\Translator" + SetOutPath "$INSTDIR\Translator" + SetOverwrite ifnewer + File "Applications\Translator\bin\Release\*.*" + + ; Create folders + CreateDirectory "$APPDATA\IR Server Suite\Translator" + CreateDirectory "$APPDATA\IR Server Suite\Translator\Macro" + + ; Create start menu shortcut + CreateShortCut "$SMPROGRAMS\IR Server Suite\Translator.lnk" "$INSTDIR\Translator\Translator.exe" "" "$INSTDIR\Translator\Translator.exe" 0 + +SectionEnd + +;-------------------------------- + +Section /o "Tray Launcher" + + DetailPrint "Installing Tray Launcher ..." + + ; Installing Translator + CreateDirectory "$INSTDIR\Tray Launcher" + SetOutPath "$INSTDIR\Tray Launcher" + SetOverwrite ifnewer + File "Applications\Tray Launcher\bin\Release\*.*" + + ; Create folders + CreateDirectory "$APPDATA\IR Server Suite\Tray Launcher" + + ; Create start menu shortcut + CreateShortCut "$SMPROGRAMS\IR Server Suite\Tray Launcher.lnk" "$INSTDIR\Tray Launcher\TrayLauncher.exe" "" "$INSTDIR\Tray Launcher\TrayLauncher.exe" 0 + +SectionEnd + +;-------------------------------- + +Section "Virtual Remote and Web Remote" + + DetailPrint "Installing Virtual Remote and Web Remote..." + + ; Installing Virtual Remote and Web Remote + CreateDirectory "$INSTDIR\Virtual Remote" + SetOutPath "$INSTDIR\Virtual Remote" + SetOverwrite ifnewer + File "Applications\Virtual Remote\bin\Release\*.*" + File "Applications\Web Remote\bin\Release\WebRemote.exe" + + CreateDirectory "$INSTDIR\Virtual Remote\Skins" + SetOutPath "$INSTDIR\Virtual Remote\Skins" + SetOverwrite ifnewer + File "Applications\Virtual Remote\Skins\*.*" + + ; Create folders + CreateDirectory "$APPDATA\IR Server Suite\Virtual Remote" + + ; Create start menu shortcut + CreateShortCut "$SMPROGRAMS\IR Server Suite\Virtual Remote.lnk" "$INSTDIR\Virtual Remote\VirtualRemote.exe" "" "$INSTDIR\Virtual Remote\VirtualRemote.exe" 0 + CreateShortCut "$SMPROGRAMS\IR Server Suite\Web Remote.lnk" "$INSTDIR\Virtual Remote\WebRemote.exe" "" "$INSTDIR\Virtual Remote\WebRemote.exe" 0 + +SectionEnd + +;-------------------------------- + +Section /o "Virtual Remote Skin Editor" + + DetailPrint "Installing Virtual Remote Skin Editor ..." + + ; Installing Virtual Remote + CreateDirectory "$INSTDIR\Virtual Remote Skin Editor" + SetOutPath "$INSTDIR\Virtual Remote Skin Editor" + SetOverwrite ifnewer + File "Applications\Virtual Remote Skin Editor\bin\Release\*.*" + + ; Create folders + CreateDirectory "$APPDATA\IR Server Suite\Virtual Remote Skin Editor" + + ; Create start menu shortcut + CreateShortCut "$SMPROGRAMS\IR Server Suite\Virtual Remote Skin Editor.lnk" "$INSTDIR\Virtual Remote Skin Editor\VirtualRemoteSkinEditor.exe" "" "$INSTDIR\Virtual Remote Skin Editor\VirtualRemoteSkinEditor.exe" 0 + +SectionEnd + +;-------------------------------- + +Section "IR Blast (Command line tool)" + + DetailPrint "Installing IR Blast ..." + + ; Installing IR Server + CreateDirectory "$INSTDIR\IR Blast" + SetOutPath "$INSTDIR\IR Blast" + SetOverwrite ifnewer + File "Applications\IR Blast\bin\Release\IRBlast.exe" + File "Applications\IR Blast (No Window)\bin\Release\*.*" + +SectionEnd + +;-------------------------------- + +Section /o "Debug Client" + + DetailPrint "Installing Debug Client ..." + + ; Installing Debug Client + CreateDirectory "$INSTDIR\Debug Client" + SetOutPath "$INSTDIR\Debug Client" + SetOverwrite ifnewer + File "Applications\Debug Client\bin\Release\*.*" + + ; Create folders + CreateDirectory "$APPDATA\IR Server Suite\Debug Client" + + ; Create start menu shortcut + CreateShortCut "$SMPROGRAMS\IR Server Suite\Debug Client.lnk" "$INSTDIR\Debug Client\DebugClient.exe" "" "$INSTDIR\Debug Client\DebugClient.exe" 0 + +SectionEnd + +;-------------------------------- +;-------------------------------- + +Section "Uninstall" + + ; Use the all users context + SetShellVarContext all + + ; Kill running Programs + DetailPrint "Terminating processes ..." + ExecWait '"taskkill" /F /IM IRServer.exe' + ExecWait '"taskkill" /F /IM Translator.exe' + ExecWait '"taskkill" /F /IM TrayLauncher.exe' + ExecWait '"taskkill" /F /IM VirtualRemote.exe' + ExecWait '"taskkill" /F /IM VirtualRemoteSkinEditor.exe' + ExecWait '"taskkill" /F /IM DebugClient.exe' + Sleep 100 + + ; Remove files and uninstaller + DetailPrint "Attempting to remove MediaPortal Blast Zone Plugin ..." + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\MPUtils.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\IrssComms.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\IrssUtils.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\MPBlastZonePlugin.dll" + + DetailPrint "Attempting to remove MediaPortal Process Plugin Common Files ..." + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\MPUtils.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\IrssComms.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\IrssUtils.dll" + + DetailPrint "Attempting to remove MediaPortal Control Plugin ..." + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\MPControlPlugin.dll" + + DetailPrint "Attempting to remove MediaPortal TV2 Plugin ..." + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\TV2BlasterPlugin.dll" + + DetailPrint "Attempting to remove MediaPortal TV3 Plugin ..." + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins\MPUtils.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins\IrssComms.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins\IrssUtils.dll" + Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins\TV3BlasterPlugin.dll" + + DetailPrint "Removing Set Top Box presets ..." + RMDir /R "$APPDATA\IR Server Suite\Set Top Boxes" + + DetailPrint "Removing program files ..." + RMDir /R /REBOOTOK "$INSTDIR" + + DetailPrint "Removing start menu shortcuts ..." + RMDir /R "$SMPROGRAMS\IR Server Suite" + + ; Remove registry keys + DetailPrint "Removing registry keys ..." + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" + DeleteRegKey HKLM "SOFTWARE\IR Server Suite" + + ; Remove auto-runs + DetailPrint "Removing application auto-runs ..." + DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "IR Server" + DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Tray Launcher" + DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Translator" + +SectionEnd + +;-------------------------------- Deleted: trunk/plugins/IR Server Suite/IR Server Suite.nsi =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite.nsi 2007-12-04 04:22:16 UTC (rev 1121) +++ trunk/plugins/IR Server Suite/IR Server Suite.nsi 2007-12-04 04:31:00 UTC (rev 1122) @@ -1,469 +0,0 @@ -; IR Server Suite.nsi -; -; (C) Copyright Aaron Dinnage, 2007 -; -; Install script for IR Server Suite -; -;-------------------------------- - -; The name of the installer -Name "IR Server Suite" - -; The file to write -OutFile "IR Server Suite.exe" - -; The default installation directory -InstallDir "$PROGRAMFILES\IR Server Suite" - -; Registry key to check for directory (so if you install again, it will overwrite the old one automatically) -InstallDirRegKey HKLM "Software\IR Server Suite" "Install_Dir" - -; Show the installation/uninstallation steps to the user -ShowInstDetails show -ShowUninstDetails show - -; Set the compression method -SetCompressor /SOLID /FINAL lzma - -!include "x64.nsh" - -;-------------------------------- - -; Pages - -Page components -Page directory -Page instfiles - -UninstPage uninstConfirm -UninstPage instfiles - -;-------------------------------- - -Function .onInit - - ${If} ${RunningX64} - - ${DisableX64FSRedirection} - StrCpy '$INSTDIR' '$PROGRAMFILES\IR Server Suite' - ${EnableX64FSRedirection} - - SetRegView 64 - - ${Else} - - SetRegView 32 - - ${Endif} - -FunctionEnd - -;-------------------------------- - -Section "-Core" - - DetailPrint "Installing Core files ..." - - ; Use the all users context - SetShellVarContext all - - ; Kill running Programs - DetailPrint "Terminating processes ..." - ExecWait '"taskkill" /F /IM IRServer.exe' - ExecWait '"taskkill" /F /IM Translator.exe' - ExecWait '"taskkill" /F /IM TrayLauncher.exe' - ExecWait '"taskkill" /F /IM WebRemote.exe' - ExecWait '"taskkill" /F /IM VirtualRemote.exe' - ExecWait '"taskkill" /F /IM VirtualRemoteSkinEditor.exe' - ExecWait '"taskkill" /F /IM DebugClient.exe' - Sleep 100 - - CreateDirectory "$APPDATA\IR Server Suite" - CreateDirectory "$APPDATA\IR Server Suite\Logs" - CreateDirectory "$APPDATA\IR Server Suite\IR Commands" - - ; Copy known set top boxes - CreateDirectory "$APPDATA\IR Server Suite\Set Top Boxes" - SetOutPath "$APPDATA\IR Server Suite\Set Top Boxes" - SetOverwrite ifnewer - File /r /x .svn "Set Top Boxes\*.*" - - ; Set output path to install dir - SetOutPath "$INSTDIR" - - ; Write documentation - SetOverwrite ifnewer - File "Documentation\IR Server Suite.chm" - - ; Write the uninstaller - WriteUninstaller "Uninstall IR Server Suite.exe" - - ; Create a shortcut to the uninstaller & documentation - CreateDirectory "$SMPROGRAMS\IR Server Suite" - CreateShortCut "$SMPROGRAMS\IR Server Suite\Log Files.lnk" "$APPDATA\IR Server Suite\Logs" "" "" 0 - CreateShortCut "$SMPROGRAMS\IR Server Suite\Uninstall.lnk" "$INSTDIR\Uninstall IR Server Suite.exe" "" "$INSTDIR\Uninstall IR Server Suite.exe" 0 - CreateShortCut "$SMPROGRAMS\IR Server Suite\Documentation.lnk" "$INSTDIR\IR Server Suite.chm" "" "" 0 - - ; Write the installation path into the registry - WriteRegStr HKLM "Software\IR Server Suite" "Install_Dir" "$INSTDIR" - - ; Write the uninstall keys for Windows - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "DisplayName" "IR Server Suite" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "UninstallString" '"$INSTDIR\Uninstall IR Server Suite.exe"' - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "NoModify" 1 - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "NoRepair" 1 - -SectionEnd - -;-------------------------------- - -Section "IR Server" - - DetailPrint "Installing IR Server ..." - - ; Use the all users context - SetShellVarContext all - - ; Installing IR Server - CreateDirectory "$INSTDIR\IR Server" - SetOutPath "$INSTDIR\IR Server" - SetOverwrite ifnewer - File "Applications\IR Server\bin\Release\*.*" - - ; Install IR Server Plugins ... - DetailPrint "Installing IR Server Plugins ..." - CreateDirectory "$INSTDIR\IR Server Plugins" - SetOutPath "$INSTDIR\IR Server Plugins" - SetOverwrite ifnewer - File "IR Server Plugins\Custom HID Receiver\bin\Release\*.*" - File "IR Server Plugins\FusionRemote Receiver\bin\Release\*.*" - File "IR Server Plugins\Girder Plugin\bin\Release\*.*" - ;File "IR Server Plugins\HCW Transceiver\bin\Release\*.*" - File "IR Server Plugins\IgorPlug Receiver\bin\Release\*.*" - File "IR Server Plugins\IRMan Receiver\bin\Release\*.*" - File "IR Server Plugins\IRTrans Transceiver\bin\Release\*.*" - File "IR Server Plugins\Microsoft MCE Transceiver\bin\Release\*.*" - File "IR Server Plugins\Serial IR Blaster\bin\Release\*.*" - File "IR Server Plugins\USB-UIRT Transceiver\bin\Release\*.*" - File "IR Server Plugins\Wii Remote Receiver\bin\Debug\*.*" - File "IR Server Plugins\WiimoteLib\bin\Debug\*.*" - File "IR Server Plugins\Windows Message Receiver\bin\Release\*.*" - File "IR Server Plugins\WinLirc Transceiver\bin\Release\*.*" - File "IR Server Plugins\X10 Transceiver\bin\Release\*.*" - File "IR Server Plugins\XBCDRC Receiver\bin\Release\*.*" - - ; Create App Data Folder for IR Server configuration files. - CreateDirectory "$APPDATA\IR Server Suite\IR Server" - - ; Create start menu shortcut - CreateShortCut "$SMPROGRAMS\IR Server Suite\IR Server.lnk" "$INSTDIR\IR Server\IRServer.exe" "" "$INSTDIR\IR Server\IRServer.exe" 0 - - ; Launch IR Server - Exec '"$INSTDIR\IR Server\IRServer.exe"' - -SectionEnd - -;-------------------------------- - -Section "MP Control Plugin" - - DetailPrint "Installing MP Control Plugin ..." - - ; Use the all users context - SetShellVarContext all - - ; Write plugin dll - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process" - SetOverwrite ifnewer - File "MediaPortal Plugins\MP Control Plugin\bin\Release\MPUtils.dll" - File "MediaPortal Plugins\MP Control Plugin\bin\Release\IrssComms.dll" - File "MediaPortal Plugins\MP Control Plugin\bin\Release\IrssUtils.dll" - File "MediaPortal Plugins\MP Control Plugin\bin\Release\MPControlPlugin.dll" - - ; Write input mapping - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\InputDeviceMappings\defaults" - SetOverwrite ifnewer - File "MediaPortal Plugins\MP Control Plugin\InputMapping\MPControlPlugin.xml" - - ; Write app data - CreateDirectory "$APPDATA\IR Server Suite\MP Control Plugin" - SetOutPath "$APPDATA\IR Server Suite\MP Control Plugin" - SetOverwrite ifnewer - File /r /x .svn "MediaPortal Plugins\MP Control Plugin\AppData\*.*" - - ; Create Macro folder - CreateDirectory "$APPDATA\IR Server Suite\MP Control Plugin\Macro" - -SectionEnd - -;-------------------------------- - -Section "MP Blast Zone Plugin" - - DetailPrint "Installing MP Blast Zone Plugin ..." - - ; Use the all users context - SetShellVarContext all - - ; Write plugin dll - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows" - SetOverwrite ifnewer - File "MediaPortal Plugins\MP Blast Zone Plugin\bin\Release\MPUtils.dll" - File "MediaPortal Plugins\MP Blast Zone Plugin\bin\Release\IrssComms.dll" - File "MediaPortal Plugins\MP Blast Zone Plugin\bin\Release\IrssUtils.dll" - File "MediaPortal Plugins\MP Blast Zone Plugin\bin\Release\MPBlastZonePlugin.dll" - - ; Write app data - CreateDirectory "$APPDATA\IR Server Suite\MP Blast Zone Plugin" - SetOutPath "$APPDATA\IR Server Suite\MP Blast Zone Plugin" - SetOverwrite off - File "MediaPortal Plugins\MP Blast Zone Plugin\AppData\Menu.xml" - - ; Write skin files - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Skin\BlueTwo" - SetOverwrite on - File /r /x .svn "MediaPortal Plugins\MP Blast Zone Plugin\Skin\*.*" - - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Skin\BlueTwo wide" - SetOverwrite on - File /r /x .svn "MediaPortal Plugins\MP Blast Zone Plugin\Skin\*.*" - - ; Create Macro folder - CreateDirectory "$APPDATA\IR Server Suite\MP Blast Zone Plugin\Macro" - -SectionEnd - -;-------------------------------- - -Section /o "TV2 Blaster Plugin" - - DetailPrint "Installing TV2 Blaster Plugin ..." - - ; Use the all users context - SetShellVarContext all - - ; Write plugin dll - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process" - SetOverwrite ifnewer - File "MediaPortal Plugins\TV2 Blaster Plugin\bin\Release\MPUtils.dll" - File "MediaPortal Plugins\TV2 Blaster Plugin\bin\Release\IrssComms.dll" - File "MediaPortal Plugins\TV2 Blaster Plugin\bin\Release\IrssUtils.dll" - File "MediaPortal Plugins\TV2 Blaster Plugin\bin\Release\TV2BlasterPlugin.dll" - - ; Create folders - CreateDirectory "$APPDATA\IR Server Suite\TV2 Blaster Plugin" - CreateDirectory "$APPDATA\IR Server Suite\TV2 Blaster Plugin\Macro" - -SectionEnd - -;-------------------------------- - -Section /o "TV3 Blaster Plugin" - - DetailPrint "Installing TV3 Blaster Plugin ..." - - ; Use the all users context - SetShellVarContext all - - ; Write plugin dll - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins" - SetOverwrite ifnewer - File "MediaPortal Plugins\TV3 Blaster Plugin\bin\Release\MPUtils.dll" - File "MediaPortal Plugins\TV3 Blaster Plugin\bin\Release\IrssComms.dll" - File "MediaPortal Plugins\TV3 Blaster Plugin\bin\Release\IrssUtils.dll" - File "MediaPortal Plugins\TV3 Blaster Plugin\bin\Release\TV3BlasterPlugin.dll" - - ; Create folders - CreateDirectory "$APPDATA\IR Server Suite\TV3 Blaster Plugin" - CreateDirectory "$APPDATA\IR Server Suite\TV3 Blaster Plugin\Macro" - -SectionEnd - -;-------------------------------- - -Section "Translator" - - DetailPrint "Installing Translator ..." - - ; Installing Translator - CreateDirectory "$INSTDIR\Translator" - SetOutPath "$INSTDIR\Translator" - SetOverwrite ifnewer - File "Applications\Translator\bin\Release\*.*" - - ; Create folders - CreateDirectory "$APPDATA\IR Server Suite\Translator" - CreateDirectory "$APPDATA\IR Server Suite\Translator\Macro" - - ; Create start menu shortcut - CreateShortCut "$SMPROGRAMS\IR Server Suite\Translator.lnk" "$INSTDIR\Translator\Translator.exe" "" "$INSTDIR\Translator\Translator.exe" 0 - -SectionEnd - -;-------------------------------- - -Section /o "Tray Launcher" - - DetailPrint "Installing Tray Launcher ..." - - ; Installing Translator - CreateDirectory "$INSTDIR\Tray Launcher" - SetOutPath "$INSTDIR\Tray Launcher" - SetOverwrite ifnewer - File "Applications\Tray Launcher\bin\Release\*.*" - - ; Create folders - CreateDirectory "$APPDATA\IR Server Suite\Tray Launcher" - - ; Create start menu shortcut - CreateShortCut "$SMPROGRAMS\IR Server Suite\Tray Launcher.lnk" "$INSTDIR\Tray Launcher\TrayLauncher.exe" "" "$INSTDIR\Tray Launcher\TrayLauncher.exe" 0 - -SectionEnd - -;-------------------------------- - -Section "Virtual Remote and Web Remote" - - DetailPrint "Installing Virtual Remote and Web Remote..." - - ; Installing Virtual Remote and Web Remote - CreateDirectory "$INSTDIR\Virtual Remote" - SetOutPath "$INSTDIR\Virtual Remote" - SetOverwrite ifnewer - File "Applications\Virtual Remote\bin\Release\*.*" - File "Applications\Web Remote\bin\Release\WebRemote.exe" - - CreateDirectory "$INSTDIR\Virtual Remote\Skins" - SetOutPath "$INSTDIR\Virtual Remote\Skins" - SetOverwrite ifnewer - File "Applications\Virtual Remote\Skins\*.*" - - ; Create folders - CreateDirectory "$APPDATA\IR Server Suite\Virtual Remote" - - ; Create start menu shortcut - CreateShortCut "$SMPROGRAMS\IR Server Suite\Virtual Remote.lnk" "$INSTDIR\Virtual Remote\VirtualRemote.exe" "" "$INSTDIR\Virtual Remote\VirtualRemote.exe" 0 - CreateShortCut "$SMPROGRAMS\IR Server Suite\Web Remote.lnk" "$INSTDIR\Virtual Remote\WebRemote.exe" "" "$INSTDIR\Virtual Remote\WebRemote.exe" 0 - -SectionEnd - -;-------------------------------- - -Section /o "Virtual Remote Skin Editor" - - DetailPrint "Installing Virtual Remote Skin Editor ..." - - ; Installing Virtual Remote - CreateDirectory "$INSTDIR\Virtual Remote Skin Editor" - SetOutPath "$INSTDIR\Virtual Remote Skin Editor" - SetOverwrite ifnewer - File "Applications\Virtual Remote Skin Editor\bin\Release\*.*" - - ; Create folders - CreateDirectory "$APPDATA\IR Server Suite\Virtual Remote Skin Editor" - - ; Create start menu shortcut - CreateShortCut "$SMPROGRAMS\IR Server Suite\Virtual Remote Skin Editor.lnk" "$INSTDIR\Virtual Remote Skin Editor\VirtualRemoteSkinEditor.exe" "" "$INSTDIR\Virtual Remote Skin Editor\VirtualRemoteSkinEditor.exe" 0 - -SectionEnd - -;-------------------------------- - -Section "IR Blast (Command line tool)" - - DetailPrint "Installing IR Blast ..." - - ; Installing IR Server - CreateDirectory "$INSTDIR\IR Blast" - SetOutPath "$INSTDIR\IR Blast" - SetOverwrite ifnewer - File "Applications\IR Blast\bin\Release\IRBlast.exe" - File "Applications\IR Blast (No Window)\bin\Release\*.*" - -SectionEnd - -;-------------------------------- - -Section /o "Debug Client" - - DetailPrint "Installing Debug Client ..." - - ; Installing Debug Client - CreateDirectory "$INSTDIR\Debug Client" - SetOutPath "$INSTDIR\Debug Client" - SetOverwrite ifnewer - File "Applications\Debug Client\bin\Release\*.*" - - ; Create folders - CreateDirectory "$APPDATA\IR Server Suite\Debug Client" - - ; Create start menu shortcut - CreateShortCut "$SMPROGRAMS\IR Server Suite\Debug Client.lnk" "$INSTDIR\Debug Client\DebugClient.exe" "" "$INSTDIR\Debug Client\DebugClient.exe" 0 - -SectionEnd - -;-------------------------------- -;-------------------------------- - -Section "Uninstall" - - ; Use the all users context - SetShellVarContext all - - ; Kill running Programs - DetailPrint "Terminating processes ..." - ExecWait '"taskkill" /F /IM IRServer.exe' - ExecWait '"taskkill" /F /IM Translator.exe' - ExecWait '"taskkill" /F /IM TrayLauncher.exe' - ExecWait '"taskkill" /F /IM VirtualRemote.exe' - ExecWait '"taskkill" /F /IM VirtualRemoteSkinEditor.exe' - ExecWait '"taskkill" /F /IM DebugClient.exe' - Sleep 100 - - ; Remove files and uninstaller - DetailPrint "Attempting to remove MediaPortal Blast Zone Plugin ..." - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\MPUtils.dll" - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\IrssComms.dll" - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\IrssUtils.dll" - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\MPBlastZonePlugin.dll" - - DetailPrint "Attempting to remove MediaPortal Process Plugin Common Files ..." - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\MPUtils.dll" - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\IrssComms.dll" - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\IrssUtils.dll" - - DetailPrint "Attempting to remove MediaPortal Control Plugin ..." - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\MPControlPlugin.dll" - - DetailPrint "Attempting to remove MediaPortal TV2 Plugin ..." - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\TV2BlasterPlugin.dll" - - DetailPrint "Attempting to remove MediaPortal TV3 Plugin ..." - Delete /REBOOTOK "$PROGRAMFILES\Team MediaP... [truncated message content] |
From: <an...@us...> - 2007-12-04 14:18:38
|
Revision: 1123 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1123&view=rev Author: and-81 Date: 2007-12-04 06:18:35 -0800 (Tue, 04 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/IR File Tool/IrDecoder.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs trunk/plugins/IR Server Suite/Applications/Web Remote/WebServer.cs trunk/plugins/IR Server Suite/Common/IrssComms/ClientManager.cs trunk/plugins/IR Server Suite/Common/IrssComms/GenericPCQueue.cs trunk/plugins/IR Server Suite/Common/IrssComms/Server.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssLog.cs trunk/plugins/IR Server Suite/Documentation/new.html trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/RawInput.cs trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionRemoteReceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/IRMan Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IrDecoder.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs trunk/plugins/IR Server Suite/IR Server Plugins/RedEye Blaster/RedEye Blaster.cs trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.cs trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/UirtTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLircServer.cs trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Windows Message Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/X10Transceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.cs trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/Input Service/Input Service/InputService.cs trunk/plugins/IR Server Suite/Input Service/Input Service/InputServiceInstaller.cs trunk/plugins/IR Server Suite/Input Service/Input Service/Program.cs trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Program.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MPBlastZonePlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapper/InputHandler.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/ExternalChannels.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/ExternalChannels.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/PluginSetup.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs Added Paths: ----------- trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Mouse.cs trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Setup.Designer.cs trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Setup.cs trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Setup.resx Modified: trunk/plugins/IR Server Suite/Applications/IR File Tool/IrDecoder.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR File Tool/IrDecoder.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/Applications/IR File Tool/IrDecoder.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; +#if TRACE using System.Diagnostics; +#endif using System.Text; namespace IrFileTool Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -2,7 +2,9 @@ using System.Collections.Generic; using System.ComponentModel; using System.Data; +#if TRACE using System.Diagnostics; +#endif using System.Drawing; using System.IO; using System.Text; Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -2,8 +2,10 @@ using System.Collections.Generic; using System.ComponentModel; using System.Data; +#if TRACE +using System.Diagnostics; +#endif using System.Drawing; -using System.Diagnostics; using System.IO; using System.Net; using System.Text; Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -2,7 +2,9 @@ using System.Collections.Generic; using System.ComponentModel; using System.Data; +#if TRACE using System.Diagnostics; +#endif using System.Drawing; using System.IO; using System.Text; @@ -788,9 +790,7 @@ Command(tag.Substring(TagCommand.Length)); else if (tag.StartsWith(TagEject, StringComparison.OrdinalIgnoreCase)) Eject(tag.Substring(TagEject.Length)); - } - } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -30,6 +30,8 @@ internal static readonly string FolderMacros = Common.FolderAppData + "Translator\\Macro\\"; + const string ProcessCommandThreadName = "ProcessCommand"; + #endregion Constants #region Variables @@ -96,16 +98,11 @@ { ProcessCommandLine(args); } -#if TRACE catch (Exception ex) { - Trace.WriteLine(ex.ToString()); + MessageBox.Show(ex.ToString(), "Translator - Error processing command line", MessageBoxButtons.OK, MessageBoxIcon.Error); } -#else - catch - { - } -#endif + return; } @@ -987,20 +984,25 @@ /// <summary> /// Given a command this method processes the request accordingly. + /// Throws exceptions only if run synchronously, if async exceptions are logged instead. /// </summary> /// <param name="command">Command to process.</param> /// <param name="async">Process command asynchronously?</param> internal static void ProcessCommand(string command, bool async) { - if (String.IsNullOrEmpty(command)) - throw new ArgumentNullException("command"); - if (async) { - Thread newThread = new Thread(new ParameterizedThreadStart(ProcCommand)); - newThread.Name = "ProcessCommand"; - newThread.Priority = ThreadPriority.BelowNormal; - newThread.Start(command); + try + { + Thread newThread = new Thread(new ParameterizedThreadStart(ProcCommand)); + newThread.Name = ProcessCommandThreadName; + newThread.Priority = ThreadPriority.BelowNormal; + newThread.Start(command); + } + catch (Exception ex) + { + IrssLog.Error(ex.ToString()); + } } else { @@ -1015,84 +1017,100 @@ /// <param name="commandObj">Command string to process.</param> static void ProcCommand(object commandObj) { - string command = commandObj as string; + try + { + if (commandObj == null) + throw new ArgumentNullException("commandObj"); - if (command.StartsWith(Common.CmdPrefixMacro, StringComparison.OrdinalIgnoreCase)) - { - string fileName = FolderMacros + command.Substring(Common.CmdPrefixMacro.Length) + Common.FileExtensionMacro; - ProcMacro(fileName); + string command = commandObj as string; + + if (String.IsNullOrEmpty(command)) + throw new ArgumentException("commandObj translates to empty or null string", "commandObj"); + + if (command.StartsWith(Common.CmdPrefixMacro, StringComparison.OrdinalIgnoreCase)) + { + string fileName = FolderMacros + command.Substring(Common.CmdPrefixMacro.Length) + Common.FileExtensionMacro; + ProcMacro(fileName); + } + else if (command.StartsWith(Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitBlastCommand(command.Substring(Common.CmdPrefixBlast.Length)); + BlastIR(Common.FolderIRCommands + commands[0] + Common.FileExtensionIR, commands[1]); + } + else if (command.StartsWith(Common.CmdPrefixRun, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitRunCommand(command.Substring(Common.CmdPrefixRun.Length)); + Common.ProcessRunCommand(commands); + } + else if (command.StartsWith(Common.CmdPrefixSerial, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitSerialCommand(command.Substring(Common.CmdPrefixSerial.Length)); + Common.ProcessSerialCommand(commands); + } + else if (command.StartsWith(Common.CmdPrefixWindowMsg, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitWindowMessageCommand(command.Substring(Common.CmdPrefixWindowMsg.Length)); + Common.ProcessWindowMessageCommand(commands); + } + else if (command.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) + { + string keyCommand = command.Substring(Common.CmdPrefixKeys.Length); + if (_inConfiguration) + MessageBox.Show(keyCommand, Common.UITextKeys, MessageBoxButtons.OK, MessageBoxIcon.Information); + else + Common.ProcessKeyCommand(keyCommand); + } + else if (command.StartsWith(Common.CmdPrefixMouse, StringComparison.OrdinalIgnoreCase)) + { + string mouseCommand = command.Substring(Common.CmdPrefixMouse.Length); + Common.ProcessMouseCommand(mouseCommand); + } + else if (command.StartsWith(Common.CmdPrefixEject, StringComparison.OrdinalIgnoreCase)) + { + string ejectCommand = command.Substring(Common.CmdPrefixEject.Length); + Common.ProcessEjectCommand(ejectCommand); + } + else if (command.StartsWith(Common.CmdPrefixHibernate, StringComparison.OrdinalIgnoreCase)) + { + if (!Common.Hibernate()) + IrssLog.Warn("Hibernate request was rejected by another application."); + } + else if (command.StartsWith(Common.CmdPrefixLogOff, StringComparison.OrdinalIgnoreCase)) + { + if (!Common.LogOff()) + IrssLog.Warn("LogOff request failed."); + } + else if (command.StartsWith(Common.CmdPrefixReboot, StringComparison.OrdinalIgnoreCase)) + { + if (!Common.Reboot()) + IrssLog.Warn("Reboot request failed."); + } + else if (command.StartsWith(Common.CmdPrefixShutdown, StringComparison.OrdinalIgnoreCase)) + { + if (!Common.ShutDown()) + IrssLog.Warn("ShutDown request failed."); + } + else if (command.StartsWith(Common.CmdPrefixStandby, StringComparison.OrdinalIgnoreCase)) + { + if (!Common.Standby()) + IrssLog.Warn("Standby request was rejected by another application."); + } + else if (command.StartsWith(Common.CmdPrefixTranslator, StringComparison.OrdinalIgnoreCase)) + { + ShowOSD(); + } + else + { + throw new ArgumentException(String.Format("Cannot process unrecognized command \"{0}\"", command), "command"); + } } - else if (command.StartsWith(Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase)) + catch (Exception ex) { - string[] commands = Common.SplitBlastCommand(command.Substring(Common.CmdPrefixBlast.Length)); - BlastIR(Common.FolderIRCommands + commands[0] + Common.FileExtensionIR, commands[1]); - } - else if (command.StartsWith(Common.CmdPrefixRun, StringComparison.OrdinalIgnoreCase)) - { - string[] commands = Common.SplitRunCommand(command.Substring(Common.CmdPrefixRun.Length)); - Common.ProcessRunCommand(commands); - } - else if (command.StartsWith(Common.CmdPrefixSerial, StringComparison.OrdinalIgnoreCase)) - { - string[] commands = Common.SplitSerialCommand(command.Substring(Common.CmdPrefixSerial.Length)); - Common.ProcessSerialCommand(commands); - } - else if (command.StartsWith(Common.CmdPrefixWindowMsg, StringComparison.OrdinalIgnoreCase)) - { - string[] commands = Common.SplitWindowMessageCommand(command.Substring(Common.CmdPrefixWindowMsg.Length)); - Common.ProcessWindowMessageCommand(commands); - } - else if (command.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) - { - string keyCommand = command.Substring(Common.CmdPrefixKeys.Length); - if (_inConfiguration) - MessageBox.Show(keyCommand, Common.UITextKeys, MessageBoxButtons.OK, MessageBoxIcon.Information); + if (Thread.CurrentThread.Name.Equals(ProcessCommandThreadName, StringComparison.OrdinalIgnoreCase)) + IrssLog.Error(ex.ToString()); else - Common.ProcessKeyCommand(keyCommand); + throw ex; } - else if (command.StartsWith(Common.CmdPrefixMouse, StringComparison.OrdinalIgnoreCase)) - { - string mouseCommand = command.Substring(Common.CmdPrefixMouse.Length); - Common.ProcessMouseCommand(mouseCommand); - } - else if (command.StartsWith(Common.CmdPrefixEject, StringComparison.OrdinalIgnoreCase)) - { - string ejectCommand = command.Substring(Common.CmdPrefixEject.Length); - Common.ProcessEjectCommand(ejectCommand); - } - else if (command.StartsWith(Common.CmdPrefixHibernate, StringComparison.OrdinalIgnoreCase)) - { - if (!Common.Hibernate()) - IrssLog.Warn("Hibernate request was rejected by another application."); - } - else if (command.StartsWith(Common.CmdPrefixLogOff, StringComparison.OrdinalIgnoreCase)) - { - if (!Common.LogOff()) - IrssLog.Warn("LogOff request failed."); - } - else if (command.StartsWith(Common.CmdPrefixReboot, StringComparison.OrdinalIgnoreCase)) - { - if (!Common.Reboot()) - IrssLog.Warn("Reboot request failed."); - } - else if (command.StartsWith(Common.CmdPrefixShutdown, StringComparison.OrdinalIgnoreCase)) - { - if (!Common.ShutDown()) - IrssLog.Warn("ShutDown request failed."); - } - else if (command.StartsWith(Common.CmdPrefixStandby, StringComparison.OrdinalIgnoreCase)) - { - if (!Common.Standby()) - IrssLog.Warn("Standby request was rejected by another application."); - } - else if (command.StartsWith(Common.CmdPrefixTranslator, StringComparison.OrdinalIgnoreCase)) - { - ShowOSD(); - } - else - { - throw new ArgumentException(String.Format("Cannot process unrecognized command \"{0}\"", command), "command"); - } } /// <summary> @@ -1240,6 +1258,20 @@ Common.LogOff(); break; } + + case Common.XmlTagBeep: + { + string[] commands = Common.SplitBeepCommand(commandProperty); + Common.ProcessBeepCommand(commands); + break; + } + + case Common.XmlTagDisplay: + { + string[] commands = Common.SplitDisplayModeCommand(commandProperty); + Common.ProcessDisplayModeCommand(commands); + break; + } } } } Modified: trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -2,6 +2,9 @@ using System.Collections; using System.Collections.Generic; using System.Data; +#if TRACE +using System.Diagnostics; +#endif using System.Drawing; using System.IO; using System.Net; @@ -12,10 +15,6 @@ using System.Windows.Forms; using System.Xml; -#if TRACE -using System.Diagnostics; -#endif - using IrssComms; using IrssUtils; using IrssUtils.Forms; Modified: trunk/plugins/IR Server Suite/Applications/Web Remote/WebServer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Web Remote/WebServer.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/Applications/Web Remote/WebServer.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,16 +1,15 @@ using System; +#if TRACE +using System.Diagnostics; +#endif +using System.IO; using System.Net; using System.Net.Sockets; -using System.IO; using System.Text; using System.Threading; using System.Web; using System.Windows.Forms; -#if TRACE -using System.Diagnostics; -#endif - using IrssUtils; namespace WebRemote Modified: trunk/plugins/IR Server Suite/Common/IrssComms/ClientManager.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/ClientManager.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/Common/IrssComms/ClientManager.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; +#if TRACE using System.Diagnostics; +#endif using System.Net; using System.Net.Sockets; using System.Text; Modified: trunk/plugins/IR Server Suite/Common/IrssComms/GenericPCQueue.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/GenericPCQueue.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/Common/IrssComms/GenericPCQueue.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,7 +1,9 @@ using System; using System.Collections; using System.Collections.Generic; +#if TRACE using System.Diagnostics; +#endif using System.Threading; namespace IrssComms Modified: trunk/plugins/IR Server Suite/Common/IrssComms/Server.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/Server.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/Common/IrssComms/Server.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; +#if TRACE using System.Diagnostics; +#endif using System.Net; using System.Net.Sockets; using System.Text; Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/IrssLog.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/IrssLog.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/IrssLog.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,5 +1,7 @@ using System; +#if TRACE using System.Diagnostics; +#endif using System.IO; namespace IrssUtils Modified: trunk/plugins/IR Server Suite/Documentation/new.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/new.html 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/Documentation/new.html 2007-12-04 14:18:35 UTC (rev 1123) @@ -25,6 +25,7 @@ <LI>Added support for Girder 3.x plugins, still experimental at this stage. Expect to see improvements in this area, like multiple Girder plugins active at the same time.</LI> <LI>Virtual Remote now has a companion application called Web Remote, with a built in web server for simulating a remote control over the web.</LI> <LI>Added support for the RedEye blaster device.</LI> +<LI>Added support for the Nintendo Wii Remote (no analog stick or accelerometer support yet).</LI> </UL></P> <BR> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,6 +1,8 @@ using System; using System.ComponentModel; +#if TRACE using System.Diagnostics; +#endif using System.IO; using System.Runtime.InteropServices; using System.Text; @@ -70,8 +72,7 @@ } #endregion Constructor - - + /// <summary> /// Name of the IR Server plugin. /// </summary> @@ -155,8 +156,7 @@ SaveSettings(); } } - - + /// <summary> /// Callback for remote button presses. /// </summary> @@ -200,11 +200,16 @@ _useAllBytes = bool.Parse(doc.DocumentElement.Attributes["UseAllBytes"].Value); _repeatDelay = int.Parse(doc.DocumentElement.Attributes["RepeatDelay"].Value); } +#if TRACE catch (Exception ex) { Trace.WriteLine(ex.ToString()); +#else + catch + { +#endif - _device.usUsage = 0x00; + _device.usUsage = 0x00; _device.usUsagePage = 0x00; _inputByte = 3; @@ -239,10 +244,16 @@ writer.WriteEndDocument(); writer.Close(); } +#if TRACE catch (Exception ex) { Trace.WriteLine(ex.ToString()); } +#else + catch + { + } +#endif } bool RegisterForRawInput(RawInput.RAWINPUTDEVICE device) @@ -341,7 +352,9 @@ foreach (byte b in newArray) str.Append(String.Format("{0:X2} ", b)); +#if TRACE Trace.WriteLine(str.ToString()); +#endif if (_remoteHandler != null) _remoteHandler(str.ToString()); Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/RawInput.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/RawInput.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/RawInput.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,11 +1,10 @@ using System; using System.Collections.Generic; -using System.Runtime.InteropServices; -using System.Windows.Forms; - #if TRACE using System.Diagnostics; #endif +using System.Runtime.InteropServices; +using System.Windows.Forms; using Microsoft.Win32; Modified: trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionRemoteReceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionRemoteReceiver.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionRemoteReceiver.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -2,7 +2,9 @@ using System.Collections; using System.Collections.Generic; using System.ComponentModel; +#if TRACE using System.Diagnostics; +#endif using System.IO; using System.Runtime.InteropServices; using System.Text; Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,6 +1,8 @@ using System; using System.ComponentModel; +#if TRACE using System.Diagnostics; +#endif using System.IO; using System.Windows.Forms; using System.Xml; Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,12 +1,11 @@ using System; +#if TRACE +using System.Diagnostics; +#endif using System.Runtime.InteropServices; using System.Text; using System.Threading; -#if TRACE -using System.Diagnostics; -#endif - namespace GirderPlugin { Modified: trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/IRMan Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/IRMan Receiver.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/IRMan Receiver.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; +#if TRACE using System.Diagnostics; +#endif using System.IO; using System.IO.Ports; using System.Text; Modified: trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -2,7 +2,9 @@ using System.Collections; using System.Collections.Generic; using System.ComponentModel; +#if TRACE using System.Diagnostics; +#endif using System.IO; using System.Net.Sockets; using System.Runtime.InteropServices; Modified: trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,7 +1,9 @@ using System; using System.Collections.Generic; using System.ComponentModel; +#if TRACE using System.Diagnostics; +#endif using System.IO; using System.Runtime.InteropServices; using System.Text; Modified: trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IrDecoder.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IrDecoder.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IrDecoder.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; +#if TRACE using System.Diagnostics; +#endif using System.Text; namespace IgorPlugReceiver Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; +#if TRACE using System.Diagnostics; +#endif using System.Text; namespace MicrosoftMceTransceiver Modified: trunk/plugins/IR Server Suite/IR Server Plugins/RedEye Blaster/RedEye Blaster.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/RedEye Blaster/RedEye Blaster.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/IR Server Plugins/RedEye Blaster/RedEye Blaster.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; +#if TRACE using System.Diagnostics; +#endif using System.IO; using System.IO.Ports; using System.Text; Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; +#if TRACE using System.Diagnostics; +#endif using System.IO; using System.IO.Ports; using System.Text; Modified: trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/UirtTransceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/UirtTransceiver.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/UirtTransceiver.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,5 +1,7 @@ using System; +#if TRACE using System.Diagnostics; +#endif using System.IO; using System.Runtime.InteropServices; using System.Security.Permissions; Added: trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Mouse.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Mouse.cs (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Mouse.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -0,0 +1,87 @@ +using System; +using System.Runtime.InteropServices; + +namespace WiiRemoteReceiver +{ + + /// <summary> + /// Win32 native method wrapper for Mouse control functions. + /// </summary> + static class Mouse + { + + #region Interop + + [DllImport("user32")] + static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, IntPtr dwExtraInfo); + + #endregion Interop + + #region Enumerations + + /// <summary> + /// Used to simulate mouse actions. + /// </summary> + [Flags] + public enum MouseEvents + { + None = 0x0000, + Move = 0x0001, + LeftDown = 0x0002, + LeftUp = 0x0004, + RightDown = 0x0008, + RightUp = 0x0010, + MiddleDown = 0x0020, + MiddleUp = 0x0040, + Scroll = 0x0800, + Absolute = 0x8000, + } + + /// <summary> + /// Used to simulate mouse wheel scrolling. + /// </summary> + public enum ScrollDir + { + None = 0, + Up = 120, + Down = -120, + } + + #endregion Enumerations + + #region Public Methods + + /// <summary> + /// Simulates mouse button actions. + /// </summary> + /// <param name="flags">The button action to simulate.</param> + public static void Button(MouseEvents flags) + { + mouse_event((int)flags, 0, 0, 0, IntPtr.Zero); + } + + /// <summary> + /// Simulate mouse movements. + /// </summary> + /// <param name="dx">Movement on the X axis.</param> + /// <param name="dy">Movement on the Y axis.</param> + /// <param name="absolute">If true, dx and dy are taken as absolute position. If false, dx and dy are taken as relative to the current position.</param> + public static void Move(int dx, int dy, bool absolute) + { + mouse_event((int)(absolute ? MouseEvents.Move | MouseEvents.Absolute : MouseEvents.Move), dx, dy, 0, IntPtr.Zero); + } + + /// <summary> + /// Simulates mouse wheel scrolling. + /// </summary> + /// <param name="direction">The direction to scroll.</param> + public static void Scroll(ScrollDir direction) + { + mouse_event((int)MouseEvents.Scroll, 0, 0, (int)direction, IntPtr.Zero); + } + + #endregion Public Methods + + } + +} Added: trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Setup.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Setup.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Setup.Designer.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -0,0 +1,226 @@ +namespace WiiRemoteReceiver +{ + partial class Setup + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.labelMouseSensitivity = new System.Windows.Forms.Label(); + this.numericUpDownMouseSensitivity = new System.Windows.Forms.NumericUpDown(); + this.checkBoxHandleMouseLocal = new System.Windows.Forms.CheckBox(); + this.checkBoxNunchukMouse = new System.Windows.Forms.CheckBox(); + this.buttonOK = new System.Windows.Forms.Button(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.checkBoxLED1 = new System.Windows.Forms.CheckBox(); + this.checkBoxLED2 = new System.Windows.Forms.CheckBox(); + this.checkBoxLED3 = new System.Windows.Forms.CheckBox(); + this.checkBoxLED4 = new System.Windows.Forms.CheckBox(); + this.groupBoxLEDs = new System.Windows.Forms.GroupBox(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMouseSensitivity)).BeginInit(); + this.groupBoxLEDs.SuspendLayout(); + this.SuspendLayout(); + // + // labelMouseSensitivity + // + this.labelMouseSensitivity.Location = new System.Drawing.Point(8, 80); + this.labelMouseSensitivity.Name = "labelMouseSensitivity"; + this.labelMouseSensitivity.Size = new System.Drawing.Size(112, 20); + this.labelMouseSensitivity.TabIndex = 2; + this.labelMouseSensitivity.Text = "Mouse sensitivity:"; + this.labelMouseSensitivity.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // numericUpDownMouseSensitivity + // + this.numericUpDownMouseSensitivity.DecimalPlaces = 1; + this.numericUpDownMouseSensitivity.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.numericUpDownMouseSensitivity.Location = new System.Drawing.Point(120, 80); + this.numericUpDownMouseSensitivity.Maximum = new decimal(new int[] { + 10, + 0, + 0, + 0}); + this.numericUpDownMouseSensitivity.Minimum = new decimal(new int[] { + 10, + 0, + 0, + -2147483648}); + this.numericUpDownMouseSensitivity.Name = "numericUpDownMouseSensitivity"; + this.numericUpDownMouseSensitivity.Size = new System.Drawing.Size(80, 20); + this.numericUpDownMouseSensitivity.TabIndex = 3; + this.numericUpDownMouseSensitivity.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.numericUpDownMouseSensitivity.Value = new decimal(new int[] { + 15, + 0, + 0, + 65536}); + // + // checkBoxHandleMouseLocal + // + this.checkBoxHandleMouseLocal.AutoSize = true; + this.checkBoxHandleMouseLocal.Checked = true; + this.checkBoxHandleMouseLocal.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxHandleMouseLocal.Location = new System.Drawing.Point(8, 16); + this.checkBoxHandleMouseLocal.Name = "checkBoxHandleMouseLocal"; + this.checkBoxHandleMouseLocal.Size = new System.Drawing.Size(126, 17); + this.checkBoxHandleMouseLocal.TabIndex = 0; + this.checkBoxHandleMouseLocal.Text = "Handle mouse locally"; + this.checkBoxHandleMouseLocal.UseVisualStyleBackColor = true; + // + // checkBoxNunchukMouse + // + this.checkBoxNunchukMouse.AutoSize = true; + this.checkBoxNunchukMouse.Checked = true; + this.checkBoxNunchukMouse.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxNunchukMouse.Location = new System.Drawing.Point(8, 48); + this.checkBoxNunchukMouse.Name = "checkBoxNunchukMouse"; + this.checkBoxNunchukMouse.Size = new System.Drawing.Size(140, 17); + this.checkBoxNunchukMouse.TabIndex = 1; + this.checkBoxNunchukMouse.Text = "Use Nunchuk as mouse"; + this.checkBoxNunchukMouse.UseVisualStyleBackColor = true; + // + // buttonOK + // + this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonOK.Location = new System.Drawing.Point(88, 184); + this.buttonOK.Name = "buttonOK"; + this.buttonOK.Size = new System.Drawing.Size(56, 24); + this.buttonOK.TabIndex = 5; + this.buttonOK.Text = "OK"; + this.buttonOK.UseVisualStyleBackColor = true; + this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); + // + // buttonCancel + // + this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(152, 184); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(56, 24); + this.buttonCancel.TabIndex = 6; + this.buttonCancel.Text = "Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; + this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + // + // checkBoxLED1 + // + this.checkBoxLED1.Location = new System.Drawing.Point(8, 24); + this.checkBoxLED1.Name = "checkBoxLED1"; + this.checkBoxLED1.Size = new System.Drawing.Size(40, 24); + this.checkBoxLED1.TabIndex = 0; + this.checkBoxLED1.Text = "1"; + this.checkBoxLED1.UseVisualStyleBackColor = true; + // + // checkBoxLED2 + // + this.checkBoxLED2.Checked = true; + this.checkBoxLED2.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxLED2.Location = new System.Drawing.Point(56, 24); + this.checkBoxLED2.Name = "checkBoxLED2"; + this.checkBoxLED2.Size = new System.Drawing.Size(40, 24); + this.checkBoxLED2.TabIndex = 1; + this.checkBoxLED2.Text = "2"; + this.checkBoxLED2.UseVisualStyleBackColor = true; + // + // checkBoxLED3 + // + this.checkBoxLED3.Checked = true; + this.checkBoxLED3.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxLED3.Location = new System.Drawing.Point(104, 24); + this.checkBoxLED3.Name = "checkBoxLED3"; + this.checkBoxLED3.Size = new System.Drawing.Size(40, 24); + this.checkBoxLED3.TabIndex = 2; + this.checkBoxLED3.Text = "3"; + this.checkBoxLED3.UseVisualStyleBackColor = true; + // + // checkBoxLED4 + // + this.checkBoxLED4.Location = new System.Drawing.Point(152, 24); + this.checkBoxLED4.Name = "checkBoxLED4"; + this.checkBoxLED4.Size = new System.Drawing.Size(40, 24); + this.checkBoxLED4.TabIndex = 3; + this.checkBoxLED4.Text = "4"; + this.checkBoxLED4.UseVisualStyleBackColor = true; + // + // groupBoxLEDs + // + this.groupBoxLEDs.Controls.Add(this.checkBoxLED1); + this.groupBoxLEDs.Controls.Add(this.checkBoxLED4); + this.groupBoxLEDs.Controls.Add(this.checkBoxLED2); + this.groupBoxLEDs.Controls.Add(this.checkBoxLED3); + this.groupBoxLEDs.Location = new System.Drawing.Point(8, 112); + this.groupBoxLEDs.Name = "groupBoxLEDs"; + this.groupBoxLEDs.Size = new System.Drawing.Size(200, 56); + this.groupBoxLEDs.TabIndex = 4; + this.groupBoxLEDs.TabStop = false; + this.groupBoxLEDs.Text = "Remote LEDs"; + // + // Setup + // + this.AcceptButton = this.buttonOK; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.buttonCancel; + this.ClientSize = new System.Drawing.Size(216, 217); + this.Controls.Add(this.groupBoxLEDs); + this.Controls.Add(this.buttonCancel); + this.Controls.Add(this.buttonOK); + this.Controls.Add(this.checkBoxNunchukMouse); + this.Controls.Add(this.labelMouseSensitivity); + this.Controls.Add(this.numericUpDownMouseSensitivity); + this.Controls.Add(this.checkBoxHandleMouseLocal); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(224, 244); + this.Name = "Setup"; + this.ShowIcon = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Wii Remote Setup"; + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMouseSensitivity)).EndInit(); + this.groupBoxLEDs.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label labelMouseSensitivity; + private System.Windows.Forms.NumericUpDown numericUpDownMouseSensitivity; + private System.Windows.Forms.CheckBox checkBoxHandleMouseLocal; + private System.Windows.Forms.CheckBox checkBoxNunchukMouse; + private System.Windows.Forms.Button buttonOK; + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.CheckBox checkBoxLED1; + private System.Windows.Forms.CheckBox checkBoxLED2; + private System.Windows.Forms.CheckBox checkBoxLED3; + private System.Windows.Forms.CheckBox checkBoxLED4; + private System.Windows.Forms.GroupBox groupBoxLEDs; + } +} \ No newline at end of file Added: trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Setup.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Setup.cs (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Setup.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -0,0 +1,114 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace WiiRemoteReceiver +{ + + /// <summary> + /// Setup form for Wii Remote Receiver IR Server Plugin. + /// </summary> + public partial class Setup : Form + { + + #region Properties + + /// <summary> + /// Gets or sets a value indicating whether to handle mouse commands locally or to pass them on to the IR Server. + /// </summary> + /// <value><c>true</c> to handle the mouse commands locally; otherwise, <c>false</c>.</value> + public bool HandleMouseLocal + { + get { return checkBoxHandleMouseLocal.Checked; } + set { checkBoxHandleMouseLocal.Checked = value; } + } + + /// <summary> + /// Gets or sets a value indicating whether to use the nunchuk as a mouse control. + /// </summary> + /// <value><c>true</c> if the nunchuk is used as a mouse; otherwise, <c>false</c>.</value> + public bool UseNunchukAsMouse + { + get { return checkBoxNunchukMouse.Checked; } + set { checkBoxNunchukMouse.Checked = value; } + } + + /// <summary> + /// Gets or sets the mouse sensitivity. + /// </summary> + /// <value>The mouse sensitivity.</value> + public double MouseSensitivity + { + get { return Decimal.ToInt32(numericUpDownMouseSensitivity.Value); } + set { numericUpDownMouseSensitivity.Value = new Decimal(value); } + } + + /// <summary> + /// Gets or sets a value indicating LED state. + /// </summary> + /// <value><c>true</c> if LED1 is on; otherwise, <c>false</c>.</value> + public bool LED1 + { + get { return checkBoxLED1.Checked; } + set { checkBoxLED1.Checked = value; } + } + /// <summary> + /// Gets or sets a value indicating LED state. + /// </summary> + /// <value><c>true</c> if LED2 is on; otherwise, <c>false</c>.</value> + public bool LED2 + { + get { return checkBoxLED2.Checked; } + set { checkBoxLED2.Checked = value; } + } + /// <summary> + /// Gets or sets a value indicating LED state. + /// </summary> + /// <value><c>true</c> if LED1 is on; otherwise, <c>false</c>.</value> + public bool LED3 + { + get { return checkBoxLED3.Checked; } + set { checkBoxLED3.Checked = value; } + } + /// <summary> + /// Gets or sets a value indicating LED state. + /// </summary> + /// <value><c>true</c> if LED4 is on; otherwise, <c>false</c>.</value> + public bool LED4 + { + get { return checkBoxLED4.Checked; } + set { checkBoxLED4.Checked = value; } + } + + #endregion Properties + + #region Constructor + + /// <summary> + /// Initializes a new instance of the <see cref="Setup"/> class. + /// </summary> + public Setup() + { + InitializeComponent(); + } + + #endregion Constructor + + private void buttonOK_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.OK; + this.Close(); + } + private void buttonCancel_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + + } + +} Added: trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Setup.resx =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Setup.resx (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Setup.resx 2007-12-04 14:18:35 UTC (rev 1123) @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs 2007-12-04 04:31:00 UTC (rev 1122) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs 2007-12-04 14:18:35 UTC (rev 1123) @@ -1,7 +1,10 @@ using System; +#if TRACE using System.Diagnostics; +#endif using System.Drawing; using System.Windows.Forms; +using System.Xml; using IRServerPluginInterface; @@ -13,20 +16,38 @@ /// <summary> /// IR Server Plugin for the Wii Remote. /// </summary> - public class WiiRemoteReceiver : IRServerPluginBase, IRemoteReceiver, IMouseReceiver + public class WiiRemoteReceiver : IRServerPluginBase, IRemoteReceiver, IMouseReceiver, IConfigure { + #region Constants + + static readonly string ConfigurationFile = + Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + + "\\IR Server Suite\\IR Server\\Wii Remote Receiver.xml"; + + + #endregion Constants + #region Variables RemoteHandler _remoteButtonHandler; MouseHandler _mouseHandler; + bool _handleMouseLocally = true; + bool _useNunchukAsMouse = false; + double _mouseSensitivity = 1.5; + + bool _led1 = false; + bool _led2 = true; + bool _led3 = true; + bool _led4 = false; + Wiimote _wiimote; WiimoteState _previousState; - int screenWidth = Screen.PrimaryScreen.WorkingArea.Width; - int screenHeight = Screen.PrimaryScreen.WorkingArea.Height; + int _screenWidth = Screen.PrimaryScreen.WorkingArea.Width; + int _screenHeight = Screen.PrimaryScreen.WorkingArea.Height; #endregion Variables @@ -51,7 +72,7 @@ /// A description of the IR Server plugin. /// </summary> /// <value>The description.</value> - public override string Description { get { return "Supports the Wii Remote"; } } + public override string Description { get { return "Supports the Nintendo Wii Remote"; } } /// <summary> /// Detect the presence of this device. Devices that cannot be detected will always return false. @@ -70,6 +91,8 @@ /// <returns>true if successful, otherwise false.</returns> public override bool Start() { + LoadSettings(); + _wiimote = new Wiimote(); _wiimote.WiimoteChanged += new WiimoteChangedEventHandler(WiimoteChanged); @@ -77,7 +100,7 @@ _wiimote.Connect(); _wiimote.SetReportType(Wiimote.InputReport.IRAccel, true); - _wiimote.SetLEDs(false, true, true, false); + _wiimote.SetLEDs(_led1, _led2, _led3, _led4); _wiimote.SetRumble(false); return true; @@ -110,6 +133,39 @@ } /// <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(); + + Setup setup = new Setup(); + + setup.HandleMouseLocal = _handleMouseLocally; + setup.UseNunchukAsMouse = _useNunchukAsMouse; + setup.MouseSensitivity = _mouseSensitivity; + setup.LED1 = _led1; + setup.LED2 = _led2; + setup.LED3 = _led3; + setup.LED4 = _led4; + + + if (setup.ShowDialog(owner) == DialogResult.OK) + { + _handleMouseLocally = setup.HandleMouseLocal; + _useNunchukAsMouse = setup.UseNunchukAsMouse; + _mouseSensitivity = setup.MouseSensitivity; + _led1 = setup.LED1; + _led2 = setup.LED2; + _led3 = setup.LED3; + _led4 = setup.LED4; + + SaveSettings(); + } + } + + /// <summary> /// Callback for remote button presses. /// </summary> /// <value>The remote callback.</value> @@ -129,7 +185,71 @@ set { _mouseHandler = value; } } + void LoadSettings() + { + XmlDocument doc = new XmlDocument(); + try { doc.Load(ConfigurationFile); } + catch { return; } + + try { _handleMouseLocally = bool.Parse(doc.DocumentElement.Attributes["HandleMouseLocally"].Value); } + catch { } + + try { _useNunchukAsMouse = bool.Parse(doc.DocumentElement.Attributes["UseNunchukAsMouse"].Value); } + catch { } + + try { _mouseSensitivity = double.Parse(doc.DocumentElement.Attributes["MouseSensitivity"].Value); } + catch { } + + try { _led1 = bool.Parse(doc.DocumentElement.Attributes["LED1"].Value); } + catch { } + try { _led2 = bool.Parse(doc.DocumentElement.Attributes["LED2"].Value); } + catch { } + try { _led3 = bool.Parse(doc.DocumentElement.Attributes["LED3"].Value); } + catch { } + try { _led4 = bool.Parse(doc.DocumentElement.Attributes["LED4"].Value); } + catch { } + } + void SaveSettings() + { + try + { + using (XmlTextWriter writer = new XmlTextWriter(ConfigurationFile, System.Text.Encoding.UTF8)) + { + writer.Formatting = Formatting.Indented; + writer.Indentation = 1; + writer.IndentChar = (char)9; + writer.WriteStartDocument(true); + writer.WriteStartElement("settings"); // <settings> + + writer.WriteAttributeString("HandleMouseLocally", _handleMouseLocally.ToString()); + writer.WriteAttributeString("UseNunchukAsMouse", _useNunchukAsMouse.ToString()); + writer.WriteAttributeString("MouseSensitivity", _mouseSensitivity.ToString()); + + writer.WriteAttributeString("LED1", _led1.ToString()); + writer.WriteAttributeString("LED2", _led2.ToString()); + writer.WriteAttributeString("LED3", _led3.ToString()); + writer.WriteAttributeString("LED4", _l... [truncated message content] |
From: <an...@us...> - 2007-12-06 12:39:40
|
Revision: 1130 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1130&view=rev Author: and-81 Date: 2007-12-06 04:30:25 -0800 (Thu, 06 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Applications/Translator/Properties/Resources.Designer.cs trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj trunk/plugins/IR Server Suite/Common/IrssUtils/Properties/Resources.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Properties/Resources.resx Added Paths: ----------- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.resx trunk/plugins/IR Server Suite/Common/IrssUtils/Graphics/Background.png trunk/plugins/IR Server Suite/Common/IrssUtils/Graphics/Bottom.png trunk/plugins/IR Server Suite/Common/IrssUtils/Graphics/BottomLeft.png trunk/plugins/IR Server Suite/Common/IrssUtils/Graphics/BottomRight.png trunk/plugins/IR Server Suite/Common/IrssUtils/Graphics/Left.png trunk/plugins/IR Server Suite/Common/IrssUtils/Graphics/Right.png trunk/plugins/IR Server Suite/Common/IrssUtils/Graphics/Top.png trunk/plugins/IR Server Suite/Common/IrssUtils/Graphics/TopLeft.png trunk/plugins/IR Server Suite/Common/IrssUtils/Graphics/TopRight.png Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-12-06 03:38:52 UTC (rev 1129) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-12-06 12:30:25 UTC (rev 1130) @@ -145,6 +145,7 @@ // Setup Misc tab comboBoxMiscCommand.Items.Clear(); comboBoxMiscCommand.Items.Add(Common.UITextTranslator); + comboBoxMiscCommand.Items.Add(Common.UITextVirtualKB); comboBoxMiscCommand.Items.Add(Common.UITextEject); comboBoxMiscCommand.Items.Add(Common.UITextStandby); comboBoxMiscCommand.Items.Add(Common.UITextHibernate); @@ -289,6 +290,10 @@ comboBoxMiscCommand.SelectedItem = Common.UITextTranslator; break; + case Common.CmdPrefixVirtualKB: + comboBoxMiscCommand.SelectedItem = Common.UITextVirtualKB; + break; + default: if (prefix.Equals(Common.CmdPrefixEject, StringComparison.OrdinalIgnoreCase)) comboBoxMiscCommand.SelectedItem = Common.UITextEject; @@ -457,17 +462,21 @@ textBoxCommand.Text = _command = Common.CmdPrefixReboot; break; - case Common.CmdPrefixShutdown: + case Common.UITextShutdown: textBoxCommand.Text = _command = Common.CmdPrefixShutdown; break; - case Common.CmdPrefixStandby: + case Common.UITextStandby: textBoxCommand.Text = _command = Common.CmdPrefixStandby; break; - case Common.CmdPrefixTranslator: + case Common.UITextTranslator: textBoxCommand.Text = _command = Common.CmdPrefixTranslator; break; + + case Common.UITextVirtualKB: + textBoxCommand.Text = _command = Common.CmdPrefixVirtualKB; + break; } break; Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-12-06 03:38:52 UTC (rev 1129) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-12-06 12:30:25 UTC (rev 1130) @@ -1099,6 +1099,19 @@ { ShowOSD(); } + else if (command.StartsWith(Common.CmdPrefixVirtualKB, StringComparison.OrdinalIgnoreCase)) + { + if (_inConfiguration) + { + MessageBox.Show("Cannot show Virtual Keyboard in configuration", "Virtual Keyboard", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + IrssUtils.Forms.VirtualKeyboard vk = new IrssUtils.Forms.VirtualKeyboard(); + if (vk.ShowDialog() == DialogResult.OK) + Keyboard.ProcessCommand(vk.TextOutput); + } + } else { throw new ArgumentException(String.Format("Cannot process unrecognized command \"{0}\"", command), "command"); Modified: trunk/plugins/IR Server Suite/Applications/Translator/Properties/Resources.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Properties/Resources.Designer.cs 2007-12-06 03:38:52 UTC (rev 1129) +++ trunk/plugins/IR Server Suite/Applications/Translator/Properties/Resources.Designer.cs 2007-12-06 12:30:25 UTC (rev 1130) @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool. -// Runtime Version:2.0.50727.312 +// Runtime Version:2.0.50727.832 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. Modified: trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj 2007-12-06 03:38:52 UTC (rev 1129) +++ trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj 2007-12-06 12:30:25 UTC (rev 1130) @@ -163,20 +163,29 @@ </ItemGroup> <ItemGroup> <Content Include="Default Settings\Default.xml" /> + <None Include="Graphics\BottomLeft.png" /> + <None Include="Graphics\BottomRight.png" /> + <None Include="Graphics\Bottom.png" /> + <None Include="Graphics\Background.png" /> <Content Include="Graphics\ClickLeft.png" /> <Content Include="Graphics\ClickMiddle.png" /> <Content Include="Graphics\ClickRight.png" /> <Content Include="Graphics\Delete.png" /> <Content Include="Graphics\DeleteAll.png" /> <Content Include="Graphics\Edit.png" /> + <None Include="Graphics\Left.png" /> <Content Include="Graphics\MoveDown.png" /> <Content Include="Graphics\MoveLeft.png" /> <Content Include="Graphics\MoveRight.png" /> <Content Include="Graphics\MoveUp.png" /> <Content Include="Graphics\NoIcon.png" /> <Content Include="Graphics\Plus.png" /> + <None Include="Graphics\Right.png" /> <Content Include="Graphics\ScrollDown.png" /> <Content Include="Graphics\ScrollUp.png" /> + <None Include="Graphics\TopRight.png" /> + <None Include="Graphics\TopLeft.png" /> + <None Include="Graphics\Top.png" /> <Content Include="Graphics\WinLogo.png" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-12-06 03:38:52 UTC (rev 1129) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-12-06 12:30:25 UTC (rev 1130) @@ -100,7 +100,7 @@ public const string CmdPrefixPopup = "Popup: "; public const string CmdPrefixMouseMode = "Mouse Mode: "; // public const string CmdPrefixWindowState = "Toggle Window State"; - + public const string CmdPrefixStandby = "Standby"; public const string CmdPrefixHibernate = "Hibernate"; public const string CmdPrefixReboot = "Reboot"; @@ -114,6 +114,7 @@ public const string CmdPrefixDisplay = "Display: "; public const string CmdPrefixTranslator = "Show Translator OSD"; + public const string CmdPrefixVirtualKB = "Show Virtual Keyboard"; // For MediaPortal ... public const string CmdPrefixMultiMap = "Multi-Mapping: "; @@ -155,6 +156,7 @@ public const string XmlTagDisplay = "DISPLAY"; public const string XmlTagTranslator = "TRANSLATOR"; + public const string XmlTagVirtualKB = "VIRTUAL_KEYBOARD"; #endregion XML Tags @@ -188,6 +190,7 @@ public const string UITextDisplay = "Display"; public const string UITextTranslator = "Show Translator OSD"; + public const string UITextVirtualKB = "Show Virtual Keyboard"; #endregion User Interface Text @@ -241,15 +244,15 @@ /// <summary> /// Number of Segments in a Blast Command. /// </summary> - public const int SegmentsBlastCommand = 2; + public const int SegmentsBlastCommand = 2; /// <summary> /// Number of Segments in a Run Command. /// </summary> - public const int SegmentsRunCommand = 8; + public const int SegmentsRunCommand = 8; /// <summary> /// Number of Segments in a Serial Command. /// </summary> - public const int SegmentsSerialCommand = 7; + public const int SegmentsSerialCommand = 7; /// <summary> /// Number of Segments in a Windows Message Command. /// </summary> @@ -257,23 +260,23 @@ /// <summary> /// Number of Segments in a Popup Command. /// </summary> - public const int SegmentsPopupCommand = 3; + public const int SegmentsPopupCommand = 3; /// <summary> /// Number of Segments in a TCP Message Command. /// </summary> - public const int SegmentsTcpMessageCommand = 3; + public const int SegmentsTcpMessageCommand = 3; /// <summary> /// Number of Segments in a HTTP Message Command. /// </summary> - public const int SegmentsHttpMessageCommand = 4; + public const int SegmentsHttpMessageCommand = 4; /// <summary> /// Number of Segments in a Beep Command. /// </summary> - public const int SegmentsBeepCommand = 2; + public const int SegmentsBeepCommand = 2; /// <summary> /// Number of Segments in a Display Mode Command. /// </summary> - public const int SegmentsDisplayModeCommand = 4; + public const int SegmentsDisplayModeCommand = 4; #endregion Command Segments Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.Designer.cs 2007-12-06 12:30:25 UTC (rev 1130) @@ -0,0 +1,1187 @@ +namespace IrssUtils.Forms +{ + partial class VirtualKeyboard + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(VirtualKeyboard)); + this.panelTop = new System.Windows.Forms.Panel(); + this.panelBottom = new System.Windows.Forms.Panel(); + this.panelLeft = new System.Windows.Forms.Panel(); + this.panelRight = new System.Windows.Forms.Panel(); + this.panelTopLeft = new System.Windows.Forms.Panel(); + this.panelTopRight = new System.Windows.Forms.Panel(); + this.panelBottomRight = new System.Windows.Forms.Panel(); + this.panelBottomLeft = new System.Windows.Forms.Panel(); + this.panelMain = new System.Windows.Forms.Panel(); + this.tableLayoutPanelKeys = new System.Windows.Forms.TableLayoutPanel(); + this.button2 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.button9 = new System.Windows.Forms.Button(); + this.button0 = new System.Windows.Forms.Button(); + this.buttonBackspace = new System.Windows.Forms.Button(); + this.buttonA = new System.Windows.Forms.Button(); + this.buttonB = new System.Windows.Forms.Button(); + this.buttonC = new System.Windows.Forms.Button(); + this.buttonD = new System.Windows.Forms.Button(); + this.buttonE = new System.Windows.Forms.Button(); + this.buttonF = new System.Windows.Forms.Button(); + this.buttonG = new System.Windows.Forms.Button(); + this.buttonH = new System.Windows.Forms.Button(); + this.buttonI = new System.Windows.Forms.Button(); + this.buttonJ = new System.Windows.Forms.Button(); + this.buttonK = new System.Windows.Forms.Button(); + this.buttonL = new System.Windows.Forms.Button(); + this.buttonM = new System.Windows.Forms.Button(); + this.buttonN = new System.Windows.Forms.Button(); + this.buttonO = new System.Windows.Forms.Button(); + this.buttonP = new System.Windows.Forms.Button(); + this.buttonQ = new System.Windows.Forms.Button(); + this.buttonR = new System.Windows.Forms.Button(); + this.buttonS = new System.Windows.Forms.Button(); + this.buttonT = new System.Windows.Forms.Button(); + this.buttonCapsLock = new System.Windows.Forms.Button(); + this.buttonShift = new System.Windows.Forms.Button(); + this.buttonU = new System.Windows.Forms.Button(); + this.buttonV = new System.Windows.Forms.Button(); + this.buttonW = new System.Windows.Forms.Button(); + this.buttonX = new System.Windows.Forms.Button(); + this.buttonY = new System.Windows.Forms.Button(); + this.buttonZ = new System.Windows.Forms.Button(); + this.buttonSpace = new System.Windows.Forms.Button(); + this.buttonHome = new System.Windows.Forms.Button(); + this.buttonSymbols = new System.Windows.Forms.Button(); + this.buttonLeft = new System.Windows.Forms.Button(); + this.buttonRight = new System.Windows.Forms.Button(); + this.buttonEnd = new System.Windows.Forms.Button(); + this.buttonDone = new System.Windows.Forms.Button(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.textBoxKeys = new System.Windows.Forms.TextBox(); + this.panelMain.SuspendLayout(); + this.tableLayoutPanelKeys.SuspendLayout(); + this.SuspendLayout(); + // + // panelTop + // + this.panelTop.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panelTop.BackgroundImage = global::IrssUtils.Properties.Resources.Top; + this.panelTop.Location = new System.Drawing.Point(16, 0); + this.panelTop.Name = "panelTop"; + this.panelTop.Size = new System.Drawing.Size(544, 16); + this.panelTop.TabIndex = 1; + // + // panelBottom + // + this.panelBottom.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panelBottom.BackgroundImage = global::IrssUtils.Properties.Resources.Bottom; + this.panelBottom.Location = new System.Drawing.Point(16, 264); + this.panelBottom.Name = "panelBottom"; + this.panelBottom.Size = new System.Drawing.Size(544, 16); + this.panelBottom.TabIndex = 6; + // + // panelLeft + // + this.panelLeft.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.panelLeft.BackgroundImage = global::IrssUtils.Properties.Resources.Left; + this.panelLeft.Location = new System.Drawing.Point(0, 16); + this.panelLeft.Name = "panelLeft"; + this.panelLeft.Size = new System.Drawing.Size(16, 248); + this.panelLeft.TabIndex = 3; + // + // panelRight + // + this.panelRight.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.panelRight.BackgroundImage = global::IrssUtils.Properties.Resources.Right; + this.panelRight.Location = new System.Drawing.Point(560, 16); + this.panelRight.Name = "panelRight"; + this.panelRight.Size = new System.Drawing.Size(16, 248); + this.panelRight.TabIndex = 4; + // + // panelTopLeft + // + this.panelTopLeft.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("panelTopLeft.BackgroundImage"))); + this.panelTopLeft.Location = new System.Drawing.Point(0, 0); + this.panelTopLeft.Name = "panelTopLeft"; + this.panelTopLeft.Size = new System.Drawing.Size(16, 16); + this.panelTopLeft.TabIndex = 0; + // + // panelTopRight + // + this.panelTopRight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.panelTopRight.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("panelTopRight.BackgroundImage"))); + this.panelTopRight.Location = new System.Drawing.Point(560, 0); + this.panelTopRight.Name = "panelTopRight"; + this.panelTopRight.Size = new System.Drawing.Size(16, 16); + this.panelTopRight.TabIndex = 2; + // + // panelBottomRight + // + this.panelBottomRight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.panelBottomRight.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("panelBottomRight.BackgroundImage"))); + this.panelBottomRight.Location = new System.Drawing.Point(560, 264); + this.panelBottomRight.Name = "panelBottomRight"; + this.panelBottomRight.Size = new System.Drawing.Size(16, 16); + this.panelBottomRight.TabIndex = 7; + // + // panelBottomLeft + // + this.panelBottomLeft.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.panelBottomLeft.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("panelBottomLeft.BackgroundImage"))); + this.panelBottomLeft.Location = new System.Drawing.Point(0, 264); + this.panelBottomLeft.Name = "panelBottomLeft"; + this.panelBottomLeft.Size = new System.Drawing.Size(16, 16); + this.panelBottomLeft.TabIndex = 5; + // + // panelMain + // + this.panelMain.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panelMain.BackgroundImage = global::IrssUtils.Properties.Resources.Background; + this.panelMain.Controls.Add(this.tableLayoutPanelKeys); + this.panelMain.Controls.Add(this.textBoxKeys); + this.panelMain.Location = new System.Drawing.Point(16, 16); + this.panelMain.Name = "panelMain"; + this.panelMain.Size = new System.Drawing.Size(546, 250); + this.panelMain.TabIndex = 8; + // + // tableLayoutPanelKeys + // + this.tableLayoutPanelKeys.BackColor = System.Drawing.Color.Transparent; + this.tableLayoutPanelKeys.ColumnCount = 12; + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.333554F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.333555F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.333555F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.333555F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.333555F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.333555F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.333555F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.333555F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.333554F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.332721F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.332721F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 8.33257F)); + this.tableLayoutPanelKeys.Controls.Add(this.button2, 1, 0); + this.tableLayoutPanelKeys.Controls.Add(this.button1, 0, 0); + this.tableLayoutPanelKeys.Controls.Add(this.button3, 2, 0); + this.tableLayoutPanelKeys.Controls.Add(this.button4, 3, 0); + this.tableLayoutPanelKeys.Controls.Add(this.button5, 4, 0); + this.tableLayoutPanelKeys.Controls.Add(this.button6, 5, 0); + this.tableLayoutPanelKeys.Controls.Add(this.button7, 6, 0); + this.tableLayoutPanelKeys.Controls.Add(this.button8, 7, 0); + this.tableLayoutPanelKeys.Controls.Add(this.button9, 8, 0); + this.tableLayoutPanelKeys.Controls.Add(this.button0, 9, 0); + this.tableLayoutPanelKeys.Controls.Add(this.buttonBackspace, 10, 0); + this.tableLayoutPanelKeys.Controls.Add(this.buttonA, 0, 1); + this.tableLayoutPanelKeys.Controls.Add(this.buttonB, 1, 1); + this.tableLayoutPanelKeys.Controls.Add(this.buttonC, 2, 1); + this.tableLayoutPanelKeys.Controls.Add(this.buttonD, 3, 1); + this.tableLayoutPanelKeys.Controls.Add(this.buttonE, 4, 1); + this.tableLayoutPanelKeys.Controls.Add(this.buttonF, 5, 1); + this.tableLayoutPanelKeys.Controls.Add(this.buttonG, 6, 1); + this.tableLayoutPanelKeys.Controls.Add(this.buttonH, 7, 1); + this.tableLayoutPanelKeys.Controls.Add(this.buttonI, 8, 1); + this.tableLayoutPanelKeys.Controls.Add(this.buttonJ, 9, 1); + this.tableLayoutPanelKeys.Controls.Add(this.buttonK, 0, 2); + this.tableLayoutPanelKeys.Controls.Add(this.buttonL, 1, 2); + this.tableLayoutPanelKeys.Controls.Add(this.buttonM, 2, 2); + this.tableLayoutPanelKeys.Controls.Add(this.buttonN, 3, 2); + this.tableLayoutPanelKeys.Controls.Add(this.buttonO, 4, 2); + this.tableLayoutPanelKeys.Controls.Add(this.buttonP, 5, 2); + this.tableLayoutPanelKeys.Controls.Add(this.buttonQ, 6, 2); + this.tableLayoutPanelKeys.Controls.Add(this.buttonR, 7, 2); + this.tableLayoutPanelKeys.Controls.Add(this.buttonS, 8, 2); + this.tableLayoutPanelKeys.Controls.Add(this.buttonT, 9, 2); + this.tableLayoutPanelKeys.Controls.Add(this.buttonCapsLock, 10, 1); + this.tableLayoutPanelKeys.Controls.Add(this.buttonShift, 10, 2); + this.tableLayoutPanelKeys.Controls.Add(this.buttonU, 0, 3); + this.tableLayoutPanelKeys.Controls.Add(this.buttonV, 1, 3); + this.tableLayoutPanelKeys.Controls.Add(this.buttonW, 2, 3); + this.tableLayoutPanelKeys.Controls.Add(this.buttonX, 3, 3); + this.tableLayoutPanelKeys.Controls.Add(this.buttonY, 4, 3); + this.tableLayoutPanelKeys.Controls.Add(this.buttonZ, 5, 3); + this.tableLayoutPanelKeys.Controls.Add(this.buttonSpace, 6, 3); + this.tableLayoutPanelKeys.Controls.Add(this.buttonHome, 0, 4); + this.tableLayoutPanelKeys.Controls.Add(this.buttonSymbols, 10, 3); + this.tableLayoutPanelKeys.Controls.Add(this.buttonLeft, 2, 4); + this.tableLayoutPanelKeys.Controls.Add(this.buttonRight, 4, 4); + this.tableLayoutPanelKeys.Controls.Add(this.buttonEnd, 6, 4); + this.tableLayoutPanelKeys.Controls.Add(this.buttonDone, 8, 4); + this.tableLayoutPanelKeys.Controls.Add(this.buttonCancel, 10, 4); + this.tableLayoutPanelKeys.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanelKeys.Location = new System.Drawing.Point(0, 30); + this.tableLayoutPanelKeys.Name = "tableLayoutPanelKeys"; + this.tableLayoutPanelKeys.RowCount = 5; + this.tableLayoutPanelKeys.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanelKeys.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanelKeys.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanelKeys.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanelKeys.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanelKeys.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanelKeys.Size = new System.Drawing.Size(546, 220); + this.tableLayoutPanelKeys.TabIndex = 1; + // + // button2 + // + this.button2.Cursor = System.Windows.Forms.Cursors.Hand; + this.button2.Dock = System.Windows.Forms.DockStyle.Fill; + this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button2.Location = new System.Drawing.Point(48, 3); + this.button2.MinimumSize = new System.Drawing.Size(32, 24); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(39, 37); + this.button2.TabIndex = 1; + this.button2.Text = "2"; + this.button2.UseMnemonic = false; + this.button2.UseVisualStyleBackColor = true; + this.button2.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.button2.Click += new System.EventHandler(this.NumberButton_Click); + this.button2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // button1 + // + this.button1.Cursor = System.Windows.Forms.Cursors.Hand; + this.button1.Dock = System.Windows.Forms.DockStyle.Fill; + this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button1.Location = new System.Drawing.Point(3, 3); + this.button1.MinimumSize = new System.Drawing.Size(32, 24); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(39, 37); + this.button1.TabIndex = 0; + this.button1.Text = "1"; + this.button1.UseMnemonic = false; + this.button1.UseVisualStyleBackColor = true; + this.button1.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.button1.Click += new System.EventHandler(this.NumberButton_Click); + this.button1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // button3 + // + this.button3.Cursor = System.Windows.Forms.Cursors.Hand; + this.button3.Dock = System.Windows.Forms.DockStyle.Fill; + this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button3.Location = new System.Drawing.Point(93, 3); + this.button3.MinimumSize = new System.Drawing.Size(32, 24); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(39, 37); + this.button3.TabIndex = 2; + this.button3.Text = "3"; + this.button3.UseMnemonic = false; + this.button3.UseVisualStyleBackColor = true; + this.button3.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.button3.Click += new System.EventHandler(this.NumberButton_Click); + this.button3.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // button4 + // + this.button4.Cursor = System.Windows.Forms.Cursors.Hand; + this.button4.Dock = System.Windows.Forms.DockStyle.Fill; + this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button4.Location = new System.Drawing.Point(138, 3); + this.button4.MinimumSize = new System.Drawing.Size(32, 24); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(39, 37); + this.button4.TabIndex = 3; + this.button4.Text = "4"; + this.button4.UseMnemonic = false; + this.button4.UseVisualStyleBackColor = true; + this.button4.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.button4.Click += new System.EventHandler(this.NumberButton_Click); + this.button4.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // button5 + // + this.button5.Cursor = System.Windows.Forms.Cursors.Hand; + this.button5.Dock = System.Windows.Forms.DockStyle.Fill; + this.button5.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button5.Location = new System.Drawing.Point(183, 3); + this.button5.MinimumSize = new System.Drawing.Size(32, 24); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(39, 37); + this.button5.TabIndex = 4; + this.button5.Text = "5"; + this.button5.UseMnemonic = false; + this.button5.UseVisualStyleBackColor = true; + this.button5.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.button5.Click += new System.EventHandler(this.NumberButton_Click); + this.button5.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // button6 + // + this.button6.Cursor = System.Windows.Forms.Cursors.Hand; + this.button6.Dock = System.Windows.Forms.DockStyle.Fill; + this.button6.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button6.Location = new System.Drawing.Point(228, 3); + this.button6.MinimumSize = new System.Drawing.Size(32, 24); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(39, 37); + this.button6.TabIndex = 5; + this.button6.Text = "6"; + this.button6.UseMnemonic = false; + this.button6.UseVisualStyleBackColor = true; + this.button6.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.button6.Click += new System.EventHandler(this.NumberButton_Click); + this.button6.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // button7 + // + this.button7.Cursor = System.Windows.Forms.Cursors.Hand; + this.button7.Dock = System.Windows.Forms.DockStyle.Fill; + this.button7.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button7.Location = new System.Drawing.Point(273, 3); + this.button7.MinimumSize = new System.Drawing.Size(32, 24); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(39, 37); + this.button7.TabIndex = 6; + this.button7.Text = "7"; + this.button7.UseMnemonic = false; + this.button7.UseVisualStyleBackColor = true; + this.button7.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.button7.Click += new System.EventHandler(this.NumberButton_Click); + this.button7.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // button8 + // + this.button8.Cursor = System.Windows.Forms.Cursors.Hand; + this.button8.Dock = System.Windows.Forms.DockStyle.Fill; + this.button8.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button8.Location = new System.Drawing.Point(318, 3); + this.button8.MinimumSize = new System.Drawing.Size(32, 24); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(39, 37); + this.button8.TabIndex = 7; + this.button8.Text = "8"; + this.button8.UseMnemonic = false; + this.button8.UseVisualStyleBackColor = true; + this.button8.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.button8.Click += new System.EventHandler(this.NumberButton_Click); + this.button8.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // button9 + // + this.button9.Cursor = System.Windows.Forms.Cursors.Hand; + this.button9.Dock = System.Windows.Forms.DockStyle.Fill; + this.button9.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button9.Location = new System.Drawing.Point(363, 3); + this.button9.MinimumSize = new System.Drawing.Size(32, 24); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(39, 37); + this.button9.TabIndex = 8; + this.button9.Text = "9"; + this.button9.UseMnemonic = false; + this.button9.UseVisualStyleBackColor = true; + this.button9.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.button9.Click += new System.EventHandler(this.NumberButton_Click); + this.button9.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // button0 + // + this.button0.Cursor = System.Windows.Forms.Cursors.Hand; + this.button0.Dock = System.Windows.Forms.DockStyle.Fill; + this.button0.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button0.Location = new System.Drawing.Point(408, 3); + this.button0.MinimumSize = new System.Drawing.Size(32, 24); + this.button0.Name = "button0"; + this.button0.Size = new System.Drawing.Size(39, 37); + this.button0.TabIndex = 9; + this.button0.Text = "0"; + this.button0.UseMnemonic = false; + this.button0.UseVisualStyleBackColor = true; + this.button0.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.button0.Click += new System.EventHandler(this.NumberButton_Click); + this.button0.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonBackspace + // + this.tableLayoutPanelKeys.SetColumnSpan(this.buttonBackspace, 2); + this.buttonBackspace.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonBackspace.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonBackspace.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonBackspace.Location = new System.Drawing.Point(453, 3); + this.buttonBackspace.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonBackspace.Name = "buttonBackspace"; + this.buttonBackspace.Size = new System.Drawing.Size(90, 37); + this.buttonBackspace.TabIndex = 10; + this.buttonBackspace.Text = "Backspace"; + this.buttonBackspace.UseMnemonic = false; + this.buttonBackspace.UseVisualStyleBackColor = true; + this.buttonBackspace.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonBackspace.Click += new System.EventHandler(this.SpecialButton_Click); + this.buttonBackspace.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonA + // + this.buttonA.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonA.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonA.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonA.Location = new System.Drawing.Point(3, 46); + this.buttonA.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonA.Name = "buttonA"; + this.buttonA.Size = new System.Drawing.Size(39, 37); + this.buttonA.TabIndex = 11; + this.buttonA.Text = "A"; + this.buttonA.UseMnemonic = false; + this.buttonA.UseVisualStyleBackColor = true; + this.buttonA.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonA.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonA.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonB + // + this.buttonB.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonB.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonB.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonB.Location = new System.Drawing.Point(48, 46); + this.buttonB.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonB.Name = "buttonB"; + this.buttonB.Size = new System.Drawing.Size(39, 37); + this.buttonB.TabIndex = 12; + this.buttonB.Text = "B"; + this.buttonB.UseMnemonic = false; + this.buttonB.UseVisualStyleBackColor = true; + this.buttonB.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonB.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonB.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonC + // + this.buttonC.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonC.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonC.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonC.Location = new System.Drawing.Point(93, 46); + this.buttonC.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonC.Name = "buttonC"; + this.buttonC.Size = new System.Drawing.Size(39, 37); + this.buttonC.TabIndex = 13; + this.buttonC.Text = "C"; + this.buttonC.UseMnemonic = false; + this.buttonC.UseVisualStyleBackColor = true; + this.buttonC.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonC.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonC.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonD + // + this.buttonD.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonD.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonD.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonD.Location = new System.Drawing.Point(138, 46); + this.buttonD.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonD.Name = "buttonD"; + this.buttonD.Size = new System.Drawing.Size(39, 37); + this.buttonD.TabIndex = 14; + this.buttonD.Text = "D"; + this.buttonD.UseMnemonic = false; + this.buttonD.UseVisualStyleBackColor = true; + this.buttonD.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonD.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonD.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonE + // + this.buttonE.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonE.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonE.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonE.Location = new System.Drawing.Point(183, 46); + this.buttonE.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonE.Name = "buttonE"; + this.buttonE.Size = new System.Drawing.Size(39, 37); + this.buttonE.TabIndex = 15; + this.buttonE.Text = "E"; + this.buttonE.UseMnemonic = false; + this.buttonE.UseVisualStyleBackColor = true; + this.buttonE.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonE.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonE.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonF + // + this.buttonF.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonF.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonF.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonF.Location = new System.Drawing.Point(228, 46); + this.buttonF.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonF.Name = "buttonF"; + this.buttonF.Size = new System.Drawing.Size(39, 37); + this.buttonF.TabIndex = 16; + this.buttonF.Text = "F"; + this.buttonF.UseMnemonic = false; + this.buttonF.UseVisualStyleBackColor = true; + this.buttonF.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonF.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonF.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonG + // + this.buttonG.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonG.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonG.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonG.Location = new System.Drawing.Point(273, 46); + this.buttonG.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonG.Name = "buttonG"; + this.buttonG.Size = new System.Drawing.Size(39, 37); + this.buttonG.TabIndex = 17; + this.buttonG.Text = "G"; + this.buttonG.UseMnemonic = false; + this.buttonG.UseVisualStyleBackColor = true; + this.buttonG.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonG.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonG.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonH + // + this.buttonH.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonH.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonH.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonH.Location = new System.Drawing.Point(318, 46); + this.buttonH.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonH.Name = "buttonH"; + this.buttonH.Size = new System.Drawing.Size(39, 37); + this.buttonH.TabIndex = 18; + this.buttonH.Text = "H"; + this.buttonH.UseMnemonic = false; + this.buttonH.UseVisualStyleBackColor = true; + this.buttonH.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonH.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonH.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonI + // + this.buttonI.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonI.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonI.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonI.Location = new System.Drawing.Point(363, 46); + this.buttonI.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonI.Name = "buttonI"; + this.buttonI.Size = new System.Drawing.Size(39, 37); + this.buttonI.TabIndex = 19; + this.buttonI.Text = "I"; + this.buttonI.UseMnemonic = false; + this.buttonI.UseVisualStyleBackColor = true; + this.buttonI.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonI.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonI.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonJ + // + this.buttonJ.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonJ.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonJ.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonJ.Location = new System.Drawing.Point(408, 46); + this.buttonJ.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonJ.Name = "buttonJ"; + this.buttonJ.Size = new System.Drawing.Size(39, 37); + this.buttonJ.TabIndex = 20; + this.buttonJ.Text = "J"; + this.buttonJ.UseMnemonic = false; + this.buttonJ.UseVisualStyleBackColor = true; + this.buttonJ.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonJ.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonJ.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonK + // + this.buttonK.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonK.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonK.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonK.Location = new System.Drawing.Point(3, 89); + this.buttonK.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonK.Name = "buttonK"; + this.buttonK.Size = new System.Drawing.Size(39, 37); + this.buttonK.TabIndex = 22; + this.buttonK.Text = "K"; + this.buttonK.UseMnemonic = false; + this.buttonK.UseVisualStyleBackColor = true; + this.buttonK.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonK.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonK.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonL + // + this.buttonL.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonL.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonL.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonL.Location = new System.Drawing.Point(48, 89); + this.buttonL.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonL.Name = "buttonL"; + this.buttonL.Size = new System.Drawing.Size(39, 37); + this.buttonL.TabIndex = 23; + this.buttonL.Text = "L"; + this.buttonL.UseMnemonic = false; + this.buttonL.UseVisualStyleBackColor = true; + this.buttonL.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonL.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonL.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonM + // + this.buttonM.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonM.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonM.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonM.Location = new System.Drawing.Point(93, 89); + this.buttonM.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonM.Name = "buttonM"; + this.buttonM.Size = new System.Drawing.Size(39, 37); + this.buttonM.TabIndex = 24; + this.buttonM.Text = "M"; + this.buttonM.UseMnemonic = false; + this.buttonM.UseVisualStyleBackColor = true; + this.buttonM.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonM.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonM.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonN + // + this.buttonN.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonN.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonN.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonN.Location = new System.Drawing.Point(138, 89); + this.buttonN.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonN.Name = "buttonN"; + this.buttonN.Size = new System.Drawing.Size(39, 37); + this.buttonN.TabIndex = 25; + this.buttonN.Text = "N"; + this.buttonN.UseMnemonic = false; + this.buttonN.UseVisualStyleBackColor = true; + this.buttonN.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonN.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonN.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonO + // + this.buttonO.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonO.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonO.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonO.Location = new System.Drawing.Point(183, 89); + this.buttonO.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonO.Name = "buttonO"; + this.buttonO.Size = new System.Drawing.Size(39, 37); + this.buttonO.TabIndex = 26; + this.buttonO.Text = "O"; + this.buttonO.UseMnemonic = false; + this.buttonO.UseVisualStyleBackColor = true; + this.buttonO.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonO.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonO.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonP + // + this.buttonP.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonP.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonP.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonP.Location = new System.Drawing.Point(228, 89); + this.buttonP.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonP.Name = "buttonP"; + this.buttonP.Size = new System.Drawing.Size(39, 37); + this.buttonP.TabIndex = 27; + this.buttonP.Text = "P"; + this.buttonP.UseMnemonic = false; + this.buttonP.UseVisualStyleBackColor = true; + this.buttonP.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonP.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonP.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonQ + // + this.buttonQ.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonQ.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonQ.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonQ.Location = new System.Drawing.Point(273, 89); + this.buttonQ.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonQ.Name = "buttonQ"; + this.buttonQ.Size = new System.Drawing.Size(39, 37); + this.buttonQ.TabIndex = 28; + this.buttonQ.Text = "Q"; + this.buttonQ.UseMnemonic = false; + this.buttonQ.UseVisualStyleBackColor = true; + this.buttonQ.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonQ.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonQ.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonR + // + this.buttonR.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonR.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonR.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonR.Location = new System.Drawing.Point(318, 89); + this.buttonR.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonR.Name = "buttonR"; + this.buttonR.Size = new System.Drawing.Size(39, 37); + this.buttonR.TabIndex = 29; + this.buttonR.Text = "R"; + this.buttonR.UseMnemonic = false; + this.buttonR.UseVisualStyleBackColor = true; + this.buttonR.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonR.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonR.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonS + // + this.buttonS.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonS.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonS.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonS.Location = new System.Drawing.Point(363, 89); + this.buttonS.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonS.Name = "buttonS"; + this.buttonS.Size = new System.Drawing.Size(39, 37); + this.buttonS.TabIndex = 30; + this.buttonS.Text = "S"; + this.buttonS.UseMnemonic = false; + this.buttonS.UseVisualStyleBackColor = true; + this.buttonS.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonS.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonS.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonT + // + this.buttonT.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonT.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonT.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonT.Location = new System.Drawing.Point(408, 89); + this.buttonT.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonT.Name = "buttonT"; + this.buttonT.Size = new System.Drawing.Size(39, 37); + this.buttonT.TabIndex = 31; + this.buttonT.Text = "T"; + this.buttonT.UseMnemonic = false; + this.buttonT.UseVisualStyleBackColor = true; + this.buttonT.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonT.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonT.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonCapsLock + // + this.tableLayoutPanelKeys.SetColumnSpan(this.buttonCapsLock, 2); + this.buttonCapsLock.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonCapsLock.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonCapsLock.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonCapsLock.Location = new System.Drawing.Point(453, 46); + this.buttonCapsLock.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonCapsLock.Name = "buttonCapsLock"; + this.buttonCapsLock.Size = new System.Drawing.Size(90, 37); + this.buttonCapsLock.TabIndex = 21; + this.buttonCapsLock.Text = "Caps Lock"; + this.buttonCapsLock.UseMnemonic = false; + this.buttonCapsLock.UseVisualStyleBackColor = true; + this.buttonCapsLock.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonCapsLock.Click += new System.EventHandler(this.SpecialButton_Click); + this.buttonCapsLock.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonShift + // + this.tableLayoutPanelKeys.SetColumnSpan(this.buttonShift, 2); + this.buttonShift.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonShift.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonShift.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonShift.Location = new System.Drawing.Point(453, 89); + this.buttonShift.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonShift.Name = "buttonShift"; + this.buttonShift.Size = new System.Drawing.Size(90, 37); + this.buttonShift.TabIndex = 32; + this.buttonShift.Text = "Shift"; + this.buttonShift.UseMnemonic = false; + this.buttonShift.UseVisualStyleBackColor = true; + this.buttonShift.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonShift.Click += new System.EventHandler(this.SpecialButton_Click); + this.buttonShift.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonU + // + this.buttonU.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonU.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonU.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonU.Location = new System.Drawing.Point(3, 132); + this.buttonU.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonU.Name = "buttonU"; + this.buttonU.Size = new System.Drawing.Size(39, 37); + this.buttonU.TabIndex = 33; + this.buttonU.Text = "U"; + this.buttonU.UseMnemonic = false; + this.buttonU.UseVisualStyleBackColor = true; + this.buttonU.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonU.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonU.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonV + // + this.buttonV.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonV.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonV.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonV.Location = new System.Drawing.Point(48, 132); + this.buttonV.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonV.Name = "buttonV"; + this.buttonV.Size = new System.Drawing.Size(39, 37); + this.buttonV.TabIndex = 34; + this.buttonV.Text = "V"; + this.buttonV.UseMnemonic = false; + this.buttonV.UseVisualStyleBackColor = true; + this.buttonV.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonV.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonV.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonW + // + this.buttonW.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonW.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonW.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonW.Location = new System.Drawing.Point(93, 132); + this.buttonW.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonW.Name = "buttonW"; + this.buttonW.Size = new System.Drawing.Size(39, 37); + this.buttonW.TabIndex = 35; + this.buttonW.Text = "W"; + this.buttonW.UseMnemonic = false; + this.buttonW.UseVisualStyleBackColor = true; + this.buttonW.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Button_PreviewKeyDown); + this.buttonW.Click += new System.EventHandler(this.LetterButton_Click); + this.buttonW.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Button_KeyDown); + // + // buttonX + ... [truncated message content] |
From: <an...@us...> - 2007-12-08 13:42:10
|
Revision: 1134 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1134&view=rev Author: and-81 Date: 2007-12-08 05:42:04 -0800 (Sat, 08 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.Designer.cs trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Xbox.png trunk/plugins/IR Server Suite/Documentation/new.html trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/SELECT.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Panasat IRD624DSTV/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Pioneer BCT-1540/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/Sky Zenith/SELECT.IR Modified: trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.Designer.cs 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.Designer.cs 2007-12-08 13:42:04 UTC (rev 1134) @@ -168,7 +168,6 @@ this.buttonAttemptDecode.Text = "Attempt decode"; this.toolTips.SetToolTip(this.buttonAttemptDecode, "Try to decode the IR signal into a recognised format"); this.buttonAttemptDecode.UseVisualStyleBackColor = true; - this.buttonAttemptDecode.Visible = false; this.buttonAttemptDecode.Click += new System.EventHandler(this.buttonAttemptDecode_Click); // // textBoxCarrier Modified: trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.cs 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.cs 2007-12-08 13:42:04 UTC (rev 1134) @@ -25,6 +25,11 @@ void RefreshForm() { + if (String.IsNullOrEmpty(_fileName)) + this.Text = "IR File Tool"; + else + this.Text = "IR File Tool - " + _fileName; + textBoxPronto.Text = Encoding.ASCII.GetString(_code.ToByteArray(true)); switch (_code.Carrier) @@ -59,11 +64,12 @@ } } } - + private void newToolStripMenuItem_Click(object sender, EventArgs e) { _code = new IrCode(); + _fileName = "New File.IR"; RefreshForm(); } @@ -88,6 +94,8 @@ _code = IrCode.FromByteArray(fileData); } + _fileName = openFileDialog.FileName; + RefreshForm(); } @@ -162,10 +170,27 @@ return output; } - + void RemoteEvent(IrProtocol codeType, uint keyCode, bool firstPress) { MessageBox.Show(this, String.Format("Remote: {0}, {1}", Enum.GetName(typeof(IrProtocol), codeType), keyCode), "Decode IR", MessageBoxButtons.OK, MessageBoxIcon.Information); + + if (textBoxCarrier.Text.Equals("Unknown", StringComparison.OrdinalIgnoreCase)) + { + switch (codeType) + { + case IrProtocol.RC5: textBoxCarrier.Text = "36000"; break; + case IrProtocol.RC5X: textBoxCarrier.Text = "36000"; break; + case IrProtocol.NEC: textBoxCarrier.Text = "38000"; break; + + default: + return; + } + + _code.Carrier = int.Parse(textBoxCarrier.Text); + + RefreshForm(); + } } void KeyboardEvent(uint keyCode, uint modifiers) { @@ -188,7 +213,7 @@ RefreshForm(); } - + } } Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Skins/Xbox.png =================================================================== (Binary files differ) Modified: trunk/plugins/IR Server Suite/Documentation/new.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/new.html 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Documentation/new.html 2007-12-08 13:42:04 UTC (rev 1134) @@ -25,7 +25,8 @@ <LI>Added support for Girder 3.x plugins, still experimental at this stage. Expect to see improvements in this area, like multiple Girder plugins active at the same time.</LI> <LI>Virtual Remote now has a companion application called Web Remote, with a built in web server for simulating a remote control over the web.</LI> <LI>Added support for the RedEye blaster device.</LI> -<LI>Added support for the Nintendo Wii Remote (no analog stick or accelerometer support yet).</LI> +<LI>Added support for the Nintendo Wii Remote (no classic controller or accelerometer support yet).</LI> +<LI>Improved suspend/resume handling ... again ... hopefully this works!</LI> </UL></P> <BR> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs 2007-12-08 13:42:04 UTC (rev 1134) @@ -98,19 +98,19 @@ // Microsoft Port Packets static readonly byte[][] MicrosoftPorts = new byte[][] - { - new byte[] { 0x9F, 0x08, 0x06 }, // Both - new byte[] { 0x9F, 0x08, 0x04 }, // 1 - new byte[] { 0x9F, 0x08, 0x02 }, // 2 - }; + { + new byte[] { 0x9F, 0x08, 0x06 }, // Both + new byte[] { 0x9F, 0x08, 0x04 }, // 1 + new byte[] { 0x9F, 0x08, 0x02 }, // 2 + }; // SMK / Topseed Port Packets static readonly byte[][] SmkTopseedPorts = new byte[][] - { - new byte[] { 0x9F, 0x08, 0x00 }, // Both - new byte[] { 0x9F, 0x08, 0x01 }, // 1 - new byte[] { 0x9F, 0x08, 0x02 }, // 2 - }; + { + new byte[] { 0x9F, 0x08, 0x00 }, // Both + new byte[] { 0x9F, 0x08, 0x01 }, // 1 + new byte[] { 0x9F, 0x08, 0x02 }, // 2 + }; // Start, Stop and Reset Packets static readonly byte[] StartPacket = { 0x00, 0xFF, 0xAA }; @@ -159,6 +159,8 @@ DeviceType _deviceType = DeviceType.Microsoft; + bool _deviceAvailable; + #endregion Variables #region Constructor @@ -189,20 +191,11 @@ _notifyWindow = new NotifyWindow(); _notifyWindow.Class = _deviceGuid; - int lastError; + OpenDevice(); + StartReadThread(); - _readHandle = CreateFile(_devicePath + "\\Pipe01", CreateFileAccessTypes.GenericRead, CreateFileShares.None, IntPtr.Zero, CreateFileDisposition.OpenExisting, CreateFileAttributes.Overlapped, IntPtr.Zero); - lastError = Marshal.GetLastWin32Error(); - if (_readHandle.IsInvalid) - throw new Win32Exception(lastError); + _deviceAvailable = true; - _writeHandle = CreateFile(_devicePath + "\\Pipe00", CreateFileAccessTypes.GenericWrite, CreateFileShares.None, IntPtr.Zero, CreateFileDisposition.OpenExisting, CreateFileAttributes.Overlapped, IntPtr.Zero); - lastError = Marshal.GetLastWin32Error(); - if (_writeHandle.IsInvalid) - throw new Win32Exception(lastError); - - StartReadThread(); - // Initialize device ... WriteSync(StartPacket); Thread.Sleep(PacketTimeout); @@ -211,9 +204,10 @@ SetInputPort(InputPort.Receive); _notifyWindow.Create(); + _notifyWindow.RegisterDeviceArrival(); + _notifyWindow.RegisterDeviceRemoval(_readHandle.DangerousGetHandle()); _notifyWindow.DeviceArrival += new DeviceEventHandler(OnDeviceArrival); _notifyWindow.DeviceRemoval += new DeviceEventHandler(OnDeviceRemoval); - _notifyWindow.RegisterDeviceRemoval(_readHandle.DangerousGetHandle()); } /// <summary> @@ -228,6 +222,7 @@ _notifyWindow.DeviceArrival -= new DeviceEventHandler(OnDeviceArrival); _notifyWindow.DeviceRemoval -= new DeviceEventHandler(OnDeviceRemoval); + /* try { WriteSync(StopPacket); @@ -243,15 +238,16 @@ { } #endif + */ + _deviceAvailable = false; + StopReadThread(); + CloseDevice(); - _notifyWindow.UnregisterDeviceRemoval(); _notifyWindow.Dispose(); _notifyWindow = null; - CloseDevice(); - #if DEBUG DebugClose(); #endif @@ -266,7 +262,15 @@ DebugWriteLine("Suspend()"); #endif - Stop(); // Unlike the default driver, the replacement driver requires this. + WriteSync(StopPacket); + Thread.Sleep(PacketTimeout); + + _deviceAvailable = false; + + StopReadThread(); + CloseDevice(); + + //Stop(); // Unlike the default driver, the replacement driver requires this. } /// <summary> @@ -278,7 +282,24 @@ DebugWriteLine("Resume()"); #endif - Start(); // Unlike the default driver, the replacement driver requires this. + try + { + OpenDevice(); + StartReadThread(); + + _deviceAvailable = true; + } + catch + { +#if DEBUG + DebugWriteLine("Resume(): Failed to start device"); +#endif + } + + //WriteSync(StartPacket); + //Thread.Sleep(PacketTimeout); + + //Start(); // Unlike the default driver, the replacement driver requires this. } /// <summary> @@ -417,16 +438,16 @@ /// <returns>Raw device data.</returns> static byte[] DataPacket(IrCode code) { +#if DEBUG + DebugWriteLine("DataPacket()"); +#endif + if (code.TimingData.Length == 0) return null; // Construct data bytes into "packet" ... List<byte> packet = new List<byte>(); -#if DEBUG - DebugWriteLine("DataPacket()"); -#endif - for (int index = 0; index < code.TimingData.Length; index++) { double time = (double)code.TimingData[index]; @@ -514,6 +535,9 @@ DebugWriteLine("StartReadThread()"); #endif + if (_readThread != null && _readThread.IsAlive) + return; + _stopReadThread = new ManualResetEvent(false); _readThreadMode = ReadThreadMode.Receiving; @@ -531,19 +555,52 @@ DebugWriteLine("StopReadThread()"); #endif - if (_readThread != null && _readThread.IsAlive) - { - _readThreadMode = ReadThreadMode.Stop; - _stopReadThread.Set(); + if (_readThread == null || !_readThread.IsAlive) + return; - if (!_readThread.Join(PacketTimeout * 2)) - _readThread.Abort(); + _readThreadMode = ReadThreadMode.Stop; + _stopReadThread.Set(); - _stopReadThread.Close(); - _stopReadThread = null; + if (!_readThread.Join(PacketTimeout * 2)) + _readThread.Abort(); - _readThread = null; + _stopReadThread.Close(); + _stopReadThread = null; + + _readThread = null; + } + + /// <summary> + /// Opens the device. + /// </summary> + void OpenDevice() + { +#if DEBUG + DebugWriteLine("OpenDevice()"); +#endif + + if (_readHandle != null) + return; + + int lastError; + + _readHandle = CreateFile(_devicePath + "\\Pipe01", CreateFileAccessTypes.GenericRead, CreateFileShares.None, IntPtr.Zero, CreateFileDisposition.OpenExisting, CreateFileAttributes.Overlapped, IntPtr.Zero); + lastError = Marshal.GetLastWin32Error(); + if (_readHandle.IsInvalid) + { + _readHandle = null; + throw new Win32Exception(lastError); } + + _writeHandle = CreateFile(_devicePath + "\\Pipe00", CreateFileAccessTypes.GenericWrite, CreateFileShares.None, IntPtr.Zero, CreateFileDisposition.OpenExisting, CreateFileAttributes.Overlapped, IntPtr.Zero); + lastError = Marshal.GetLastWin32Error(); + if (_writeHandle.IsInvalid) + { + _writeHandle = null; + CloseHandle(_readHandle); + _readHandle.Dispose(); + throw new Win32Exception(lastError); + } } /// <summary> @@ -574,18 +631,25 @@ void OnDeviceArrival() { - _notifyWindow.UnregisterDeviceArrival(); +#if DEBUG + DebugWriteLine("OnDeviceArrival()"); +#endif + OpenDevice(); StartReadThread(); - _notifyWindow.RegisterDeviceRemoval(_readHandle.DangerousGetHandle()); + _deviceAvailable = true; } void OnDeviceRemoval() { - _notifyWindow.UnregisterDeviceRemoval(); - _notifyWindow.RegisterDeviceArrival(); +#if DEBUG + DebugWriteLine("OnDeviceRemoval()"); +#endif + _deviceAvailable = false; + StopReadThread(); + CloseDevice(); } /// <summary> @@ -772,6 +836,9 @@ DebugDump(data); #endif + if (!_deviceAvailable) + throw new ApplicationException("Device not available"); + int lastError; WaitHandle waitHandle = new ManualResetEvent(false); Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs 2007-12-08 13:42:04 UTC (rev 1134) @@ -11,6 +11,8 @@ using IRServerPluginInterface; +// TODO: Lock ehome handle on access to driver + namespace MicrosoftMceTransceiver { @@ -312,6 +314,8 @@ IrCode _learningCode; + bool _deviceAvailable; + #endregion Variables #region Constructor @@ -498,6 +502,9 @@ void IoControl(IoCtrl ioControlCode, IntPtr inBuffer, int inBufferSize, IntPtr outBuffer, int outBufferSize, out int bytesReturned) { + if (!_deviceAvailable) + throw new ApplicationException("Device not available"); + try { int lastError; @@ -552,13 +559,8 @@ _notifyWindow = new NotifyWindow(); _notifyWindow.Class = _deviceGuid; - int lastError; + OpenDevice(); - _eHomeHandle = CreateFile(_devicePath, CreateFileAccessTypes.GenericRead | CreateFileAccessTypes.GenericWrite, CreateFileShares.None, IntPtr.Zero, CreateFileDisposition.OpenExisting, CreateFileAttributes.Overlapped, IntPtr.Zero); - lastError = Marshal.GetLastWin32Error(); - if (_eHomeHandle.IsInvalid) - throw new Win32Exception(lastError); - // Initialize device ... GetDeviceCapabilities(); GetBlasters(); @@ -569,10 +571,13 @@ StartReadThread(); + _deviceAvailable = true; + _notifyWindow.Create(); + _notifyWindow.RegisterDeviceArrival(); + _notifyWindow.RegisterDeviceRemoval(_eHomeHandle.DangerousGetHandle()); _notifyWindow.DeviceArrival += new DeviceEventHandler(OnDeviceArrival); _notifyWindow.DeviceRemoval += new DeviceEventHandler(OnDeviceRemoval); - _notifyWindow.RegisterDeviceRemoval(_eHomeHandle.DangerousGetHandle()); } /// <summary> @@ -587,14 +592,14 @@ _notifyWindow.DeviceArrival -= new DeviceEventHandler(OnDeviceArrival); _notifyWindow.DeviceRemoval -= new DeviceEventHandler(OnDeviceRemoval); + _deviceAvailable = false; + StopReadThread(); + CloseDevice(); - _notifyWindow.UnregisterDeviceRemoval(); _notifyWindow.Dispose(); _notifyWindow = null; - CloseDevice(); - #if DEBUG DebugClose(); #endif @@ -609,7 +614,10 @@ DebugWriteLine("Suspend()"); #endif - Stop(); + _deviceAvailable = false; + + StopReadThread(); + CloseDevice(); } /// <summary> @@ -621,7 +629,21 @@ DebugWriteLine("Resume()"); #endif - Start(); + try + { + OpenDevice(); + StartReadThread(); + + _deviceAvailable = true; + } + catch + { +#if DEBUG + DebugWriteLine("Resume(): Failed to start device"); +#endif + } + + //Start(); } /// <summary> @@ -724,8 +746,17 @@ #region Implementation + /// <summary> + /// Converts an IrCode into raw data for the device. + /// </summary> + /// <param name="code">IrCode to convert.</param> + /// <returns>Raw device data.</returns> static byte[] DataPacket(IrCode code) { +#if DEBUG + DebugWriteLine("DataPacket()"); +#endif + if (code.TimingData.Length == 0) return null; @@ -746,71 +777,115 @@ return data; } + /// <summary> + /// Start the device read thread. + /// </summary> void StartReadThread() { #if DEBUG DebugWriteLine("StartReadThread()"); #endif + if (_readThread != null && _readThread.IsAlive) + return; + _readThread = new Thread(new ThreadStart(ReadThread)); _readThread.Name = "MicrosoftMceTransceiver.DriverVista.ReadThread"; _readThread.IsBackground = true; _readThread.Start(); } + /// <summary> + /// Stop the device read thread. + /// </summary> void StopReadThread() { #if DEBUG DebugWriteLine("StopReadThread()"); #endif - if (_readThread != null && _readThread.IsAlive) - { - _readThreadMode = ReadThreadMode.Stop; + if (_readThread == null || !_readThread.IsAlive) + return; - _readThread.Abort(); + _readThreadMode = ReadThreadMode.Stop; - if (Thread.CurrentThread != _readThread) - _readThread.Join(); + _readThread.Abort(); - _readThread = null; - } + if (Thread.CurrentThread != _readThread) + _readThread.Join(); + + _readThread = null; } - void CloseDevice() + /// <summary> + /// Opens the device. + /// </summary> + void OpenDevice() { #if DEBUG - DebugWriteLine("CloseDevice()"); + DebugWriteLine("OpenDevice()"); #endif if (_eHomeHandle != null) + return; + + _eHomeHandle = CreateFile(_devicePath, CreateFileAccessTypes.GenericRead | CreateFileAccessTypes.GenericWrite, CreateFileShares.None, IntPtr.Zero, CreateFileDisposition.OpenExisting, CreateFileAttributes.Overlapped, IntPtr.Zero); + int lastError = Marshal.GetLastWin32Error(); + if (_eHomeHandle.IsInvalid) { - CloseHandle(_eHomeHandle); - - _eHomeHandle.Dispose(); _eHomeHandle = null; + throw new Win32Exception(lastError); } } - + + /// <summary> + /// Close all handles to the device. + /// </summary> + void CloseDevice() + { +#if DEBUG + DebugWriteLine("CloseDevice()"); +#endif + + if (_eHomeHandle == null) + return; + + CloseHandle(_eHomeHandle); + + _eHomeHandle.Dispose(); + _eHomeHandle = null; + } + void OnDeviceArrival() { - _notifyWindow.UnregisterDeviceArrival(); +#if DEBUG + DebugWriteLine("OnDeviceArrival()"); +#endif + OpenDevice(); + StartReceive(_receivePort, PacketTimeout); _readThreadMode = ReadThreadMode.Receiving; StartReadThread(); - _notifyWindow.RegisterDeviceRemoval(_eHomeHandle.DangerousGetHandle()); + _deviceAvailable = true; } void OnDeviceRemoval() { - _notifyWindow.UnregisterDeviceRemoval(); - _notifyWindow.RegisterDeviceArrival(); +#if DEBUG + DebugWriteLine("OnDeviceRemoval()"); +#endif + _deviceAvailable = false; + StopReadThread(); + CloseDevice(); } - + + /// <summary> + /// Device read thread method. + /// </summary> void ReadThread() { int bytesRead; @@ -896,7 +971,7 @@ } #if DEBUG - DebugWriteLine("Read Thread Ended"); + DebugWriteLine("Read Thread Ended"); #endif } Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs 2007-12-08 13:42:04 UTC (rev 1134) @@ -98,19 +98,19 @@ // Microsoft Port Packets static readonly byte[][] MicrosoftPorts = new byte[][] - { - new byte[] { 0x9F, 0x08, 0x06 }, // Both - new byte[] { 0x9F, 0x08, 0x04 }, // 1 - new byte[] { 0x9F, 0x08, 0x02 }, // 2 - }; + { + new byte[] { 0x9F, 0x08, 0x06 }, // Both + new byte[] { 0x9F, 0x08, 0x04 }, // 1 + new byte[] { 0x9F, 0x08, 0x02 }, // 2 + }; // SMK / Topseed Port Packets static readonly byte[][] SmkTopseedPorts = new byte[][] - { - new byte[] { 0x9F, 0x08, 0x00 }, // Both - new byte[] { 0x9F, 0x08, 0x01 }, // 1 - new byte[] { 0x9F, 0x08, 0x02 }, // 2 - }; + { + new byte[] { 0x9F, 0x08, 0x00 }, // Both + new byte[] { 0x9F, 0x08, 0x01 }, // 1 + new byte[] { 0x9F, 0x08, 0x02 }, // 2 + }; // Start, Stop and Reset Packets static readonly byte[] StartPacket = { 0x00, 0xFF, 0xAA }; @@ -240,7 +240,7 @@ */ _deviceAvailable = false; - + StopReadThread(); CloseDevice(); @@ -435,16 +435,16 @@ /// <returns>Raw device data.</returns> static byte[] DataPacket(IrCode code) { +#if DEBUG + DebugWriteLine("DataPacket()"); +#endif + if (code.TimingData.Length == 0) return null; // Construct data bytes into "packet" ... List<byte> packet = new List<byte>(); -#if DEBUG - DebugWriteLine("DataPacket()"); -#endif - for (int index = 0; index < code.TimingData.Length; index++) { double time = (double)code.TimingData[index]; @@ -798,7 +798,7 @@ } #if DEBUG - DebugWriteLine("Read Thread Ended"); + DebugWriteLine("Read Thread Ended"); #endif } Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs 2007-12-08 13:42:04 UTC (rev 1134) @@ -21,7 +21,7 @@ None, /// <summary> - /// Daewoo protocol. + /// Daewoo protocol. 38kHz carrier. /// </summary> Daewoo, /// <summary> @@ -29,75 +29,75 @@ /// </summary> ITT, /// <summary> - /// JVC protocol. + /// JVC protocol. 38kHz carrier. /// </summary> JVC, /// <summary> - /// Matsushita protocol. + /// Matsushita protocol. 56.8kHz carrier. /// </summary> Matsushita, /// <summary> - /// Mitsubishi protocol. + /// Mitsubishi protocol. 40kHz carrier. /// </summary> Mitsubishi, /// <summary> - /// NEC protocol. + /// NEC protocol. 38kHz carrier. /// </summary> NEC, /// <summary> - /// Nokia NRC17 protocol. + /// Nokia NRC17 protocol. 38kHz carrier. /// </summary> NRC17, /// <summary> - /// Panasonic protocol. + /// Panasonic protocol. 38kHz carrier. /// </summary> Panasonic, /// <summary> - /// Philips RC5 protocol. + /// Philips RC5 protocol. 36kHz carrier. /// </summary> RC5, /// <summary> - /// Philips RC5X protocol. + /// Philips RC5X protocol. 36kHz carrier. /// </summary> RC5X, /// <summary> - /// Philips RC6 protocol (Mode 0). + /// Philips RC6 protocol (Mode 0). 36kHz carrier. /// </summary> RC6, /// <summary> - /// Philips RC6 protocol (Mode 6A). + /// Philips RC6 protocol (Mode 6A). 36kHz carrier. /// </summary> RC6A, /// <summary> - /// Microsoft's protocol variation of Philips RC6. + /// Microsoft's protocol variation of Philips RC6. 36kHz carrier. /// </summary> RC6_MCE, /// <summary> - /// RCA protocol. + /// RCA protocol. 56kHz carrier. /// </summary> RCA, /// <summary> - /// Philips RC-MM protocol. This protocol cannot be reliably (if at all) decoded by the MCE device. + /// Philips RC-MM protocol. This protocol cannot be reliably (if at all) decoded by the MCE device. 36kHz carrier. /// </summary> RCMM, /// <summary> - /// RECS-80 protocol. + /// RECS-80 protocol. 38kHz carrier. /// </summary> RECS80, /// <summary> - /// Sharp protocol (unsupported). + /// Sharp protocol (unsupported). 38kHz carrier /// </summary> Sharp, /// <summary> - /// Sony SIRC protocol. + /// Sony SIRC protocol. 40kHz carrier. /// </summary> SIRC, /// <summary> - /// Toshiba protocol. + /// Toshiba protocol. 38kHz carrier. /// </summary> Toshiba, /// <summary> - /// X-Sat protocol (unsupported). + /// X-Sat protocol (unsupported). 38kHz carrier. /// </summary> XSAT, Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs 2007-12-08 13:42:04 UTC (rev 1134) @@ -93,10 +93,10 @@ { LoadSettings(); + _wiimote = new Wiimote(); + try { - _wiimote = new Wiimote(); - _wiimote.WiimoteChanged += new WiimoteChangedEventHandler(WiimoteChanged); _wiimote.WiimoteExtensionChanged += new WiimoteExtensionChangedEventHandler(WiimoteExtensionChanged); @@ -107,6 +107,7 @@ } catch { + _wiimote.Dispose(); _wiimote = null; throw; } @@ -118,14 +119,12 @@ /// </summary> public override void Suspend() { - Stop(); } /// <summary> /// Resume the IR Server plugin when the computer returns from standby. /// </summary> public override void Resume() { - Start(); } /// <summary> /// Stop the IR Server plugin. Modified: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs =================================================================== --- trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs 2007-12-08 13:42:04 UTC (rev 1134) @@ -677,6 +677,9 @@ /// <param name="port">Port to blast to.</param> internal static void BlastIR(string fileName, string port) { + if (LogVerbose) + Log.Debug("TV2BlasterPlugin - BlastIR(): {0}, {1}", fileName, port); + if (!_registered) throw new ApplicationException("Cannot Blast, not registered to an active IR Server"); Modified: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs =================================================================== --- trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs 2007-12-08 13:42:04 UTC (rev 1134) @@ -607,6 +607,9 @@ /// <param name="port">Port to blast to.</param> internal static void BlastIR(string fileName, string port) { + if (LogVerbose) + Log.Debug("TV3BlasterPlugin - BlastIR(): {0}, {1}", fileName, port); + if (!_registered) throw new ApplicationException("Cannot Blast, not registered to an active IR Server"); Modified: trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/0.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/0.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/0.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1,17 +1 @@ -\xFF\xB5X\x8D \x8D -\x8C!\x8C -\x8C -\x8D -\x8C -\x8C!\x8C -\x8C -\x8D \x8C!\x8C!\x8C \x8D -\x8C -\x8C!\x8C!\x8C -\x8C -\x8D \x8C!\x8C -\x8C\x8C -\x8C -\x8C!\x8C!\x8C -\x8C -\x8D \x8C!\x8CM\xFF\xB4-\x8C\xFF\xB4,\x8C_ \ No newline at end of file +0000 006D 0026 0000 0156 00A7 0019 0011 0019 0013 0017 003F 0017 0013 0017 0013 0019 0013 0017 0013 0017 003F 0017 0013 0017 0013 0019 003D 0017 003F 0017 003F 0017 003D 0019 0013 0017 0013 0017 003F 0017 003F 0017 0013 0017 0013 0019 003D 0017 003F 0017 0013 0017 0015 0017 0013 0017 0013 0017 003F 0017 003F 0017 0013 0017 0013 0019 003D 0017 003F 0017 063B 0154 0056 0017 0E35 0154 0054 0017 0EDB \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/1.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/1.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/1.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1,17 +1 @@ -\xFF\xB5X\x8D -\x8C -\x8D \x8C -\x8D \x8D -\x8C -\x8D \x8C -\x8D -\x8C \x8D \x8D \x8C!\x8C -\x8C -\x8D -\x8C -\x8C -\x8D -\x8C!\x8C \x8D -\x8C -\x8C!\x8C!\x8C \x8C!\x8C -\x8C\x8C!\x8C \x8CM\xFF\xB5,\x8C\xFF\xB4-\x8B_ \ No newline at end of file +0000 006D 0026 0000 0156 00A7 0019 0013 0017 0013 0019 003D 0017 0013 0019 0011 0019 0013 0017 0013 0019 003D 0017 0013 0019 0013 0017 003D 0019 003D 0019 003D 0017 003F 0017 0013 0017 0013 0019 0013 0017 0013 0017 0013 0019 0013 0017 003F 0017 003D 0019 0013 0017 0013 0017 003F 0017 003F 0017 003D 0017 003F 0017 0013 0017 0015 0017 003F 0017 003D 0017 063B 0156 0054 0017 0E35 0154 0056 0015 0EDB \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/2.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/2.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/2.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1,18 +1 @@ -\xFF\xB5Y\x8C -\x8D \x8D \x8D -\x8C -\x8C -\x8D -\x8C \x8D -\x8C -\x8C!\x8C!\x8C \x8D \x8C -\x8D -\x8C!\x8C -\x8C -\x8D \x8C -\x8D \x8C -\x8D -\x8C -\x8C!\x8C!\x8C -\x8C!\x8C -\x8C!\x8C!\x8CM\xFF\xB4,\x8C\xFF\xB5,\x8C\xFF\xB4,\x8C_ \ No newline at end of file +0000 006D 0028 0000 0156 00A9 0017 0013 0019 0011 0019 003D 0019 0013 0017 0013 0017 0013 0019 0013 0017 003D 0019 0013 0017 0013 0017 003F 0017 003F 0017 003D 0019 003D 0017 0013 0019 0013 0017 003F 0017 0013 0017 0013 0019 003D 0017 0013 0019 003D 0017 0013 0019 0013 0017 0013 0017 003F 0017 003F 0017 0013 0017 003F 0017 0013 0017 003F 0017 003F 0017 063B 0154 0054 0017 0E35 0156 0054 0017 0E35 0154 0054 0017 0EDB \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/3.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/3.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/3.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1,16 +1 @@ -\xFF\xB5X\x8D \x8D -\x8C!\x8C -\x8C -\x8D -\x8C -\x8C!\x8C -\x8C -\x8D \x8D \x8C!\x8C \x8D -\x8C -\x8C!\x8C -\x8D -\x8C \x8D \x8C!\x8C -\x8C\x8C -\x8C!\x8C!\x8C -\x8C -\x8C\x8C \x8C!\x8CM\xFF\xB5,\x8C\xFF\xB4,\x8C\xFF\xB5,\x8C\xFF\xB4,\x8C\xFF\xB5,\x8C_ \ No newline at end of file +0000 006D 002C 0000 0156 00A7 0019 0011 0019 0013 0017 003F 0017 0013 0017 0013 0019 0013 0017 0013 0017 003F 0017 0013 0017 0013 0019 003D 0019 003D 0017 003F 0017 003D 0019 0013 0017 0013 0017 003F 0017 0013 0019 0013 0017 003D 0019 003D 0017 003F 0017 0013 0017 0015 0017 0013 0017 003F 0017 003F 0017 0013 0017 0013 0017 0015 0017 003D 0017 003F 0017 063B 0156 0054 0017 0E35 0154 0054 0017 0E35 0156 0054 0017 0E35 0154 0054 0017 0E35 0156 0054 0017 0EDB \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/4.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/4.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/4.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1,18 +1 @@ -\xFF\xB5Y\x8C -\x8C -\x8D \x8C -\x8D -\x8C -\x8C -\x8D \x8D \x8D -\x8C!\x8C \x8D \x8C!\x8C -\x8D -\x8C -\x8C -\x8D -\x8C \x8D -\x8C!\x8C -\x8C -\x8C!\x8C!\x8C!\x8C -\x8C!\x8C -\x8C!\x8C \x8CN\xFF\xB4,\x8C\xFF\xB5,\x8C_ \ No newline at end of file +0000 006D 0026 0000 0156 00A9 0017 0013 0017 0013 0019 003D 0017 0013 0019 0013 0017 0013 0017 0013 0019 003D 0019 0011 0019 0013 0017 003F 0017 003D 0019 003D 0017 003F 0017 0013 0019 0013 0017 0013 0017 0013 0019 0013 0017 003D 0019 0013 0017 003F 0017 0013 0017 0013 0017 003F 0017 003F 0017 003F 0017 0013 0017 003F 0017 0013 0017 003F 0017 003D 0017 063D 0154 0054 0017 0E35 0156 0054 0017 0EDB \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/5.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/5.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/5.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1,18 +1 @@ -\xFF\xB5Y\x8C -\x8C -\x8D \x8C -\x8D -\x8C -\x8C -\x8D \x8D \x8D -\x8C!\x8C \x8D \x8C!\x8C -\x8D -\x8C -\x8C -\x8D -\x8C -\x8C -\x8D \x8C -\x8D -\x8C!\x8C \x8C!\x8C!\x8C!\x8C -\x8C!\x8C!\x8CM\xFF\xB4,\x8C\xFF\xB5,\x8C_ \ No newline at end of file +0000 006D 0026 0000 0156 00A9 0017 0013 0017 0013 0019 003D 0017 0013 0019 0013 0017 0013 0017 0013 0019 003D 0019 0011 0019 0013 0017 003F 0017 003D 0019 003D 0017 003F 0017 0013 0019 0013 0017 0013 0017 0013 0019 0013 0017 0013 0017 0013 0019 003D 0017 0013 0019 0013 0017 003F 0017 003D 0017 003F 0017 003F 0017 003F 0017 0013 0017 003F 0017 003F 0017 063B 0154 0054 0017 0E35 0156 0054 0017 0EDB \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/6.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/6.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/6.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1,16 +1 @@ -\xFF\xB5X\x8D -\x8C -\x8D \x8C -\x8D -\x8C -\x8C -\x8D \x8C -\x8D -\x8C!\x8C \x8D \x8C!\x8C -\x8C\x8C -\x8C -\x8D -\x8C \x8D \x8C!\x8C -\x8C\x8C \x8C!\x8C!\x8C -\x8C\x8C -\x8C!\x8C \x8CM\xFF\xB5,\x8C\xFF\xB4-\x8C\xFF\xB4,\x8C_ \ No newline at end of file +0000 006D 0028 0000 0156 00A7 0019 0013 0017 0013 0019 003D 0017 0013 0019 0013 0017 0013 0017 0013 0019 003D 0017 0013 0019 0013 0017 003F 0017 003D 0019 003D 0017 003F 0017 0013 0017 0015 0017 0013 0017 0013 0019 0013 0017 003D 0019 003D 0017 003F 0017 0013 0017 0015 0017 003D 0017 003F 0017 003F 0017 0013 0017 0015 0017 0013 0017 003F 0017 003D 0017 063B 0156 0054 0017 0E35 0154 0056 0017 0E35 0154 0054 0017 0EDB \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/7.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/7.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/7.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1,18 +1 @@ -\xFF\xB5Y\x8C -\x8C -\x8D \x8C -\x8D -\x8C -\x8C -\x8D \x8D -\x8C -\x8C!\x8C \x8D \x8C!\x8C -\x8D -\x8C -\x8C!\x8C -\x8C -\x8D \x8C!\x8C -\x8D -\x8C \x8D -\x8C!\x8C \x8C\x8C -\x8C!\x8C!\x8CM\xFF\xB4,\x8C\xFF\xB5,\x8C_ \ No newline at end of file +0000 006D 0026 0000 0156 00A9 0017 0013 0017 0013 0019 003D 0017 0013 0019 0013 0017 0013 0017 0013 0019 003D 0019 0013 0017 0013 0017 003F 0017 003D 0019 003D 0017 003F 0017 0013 0019 0013 0017 0013 0017 003F 0017 0013 0017 0013 0019 003D 0017 003F 0017 0013 0019 0013 0017 003D 0019 0013 0017 003F 0017 003D 0017 0015 0017 0013 0017 003F 0017 003F 0017 063B 0154 0054 0017 0E35 0156 0054 0017 0EDB \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/8.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/8.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/8.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1,15 +1 @@ -\xFF\xB5X\x8D -\x8C -\x8D \x8C -\x8D \x8D -\x8C -\x8D \x8C -\x8D -\x8C \x8D \x8C!\x8C!\x8C -\x8C -\x8D -\x8C!\x8C -\x8C!\x8C -\x8C!\x8C -\x8C -\x8D \x8C\x8C \x8C\x8C \x8C\x8C!\x8C \x8CM\xFF\xB5,\x8C\xFF\xB4-\x8B\xFF\xB5,\x8C_ \ No newline at end of file +0000 006D 0028 0000 0156 00A7 0019 0013 0017 0013 0019 003D 0017 0013 0019 0011 0019 0013 0017 0013 0019 003D 0017 0013 0019 0013 0017 003D 0019 003D 0017 003F 0017 003F 0017 0013 0017 0013 0019 0013 0017 003F 0017 0013 0017 003F 0017 0013 0017 003F 0017 0013 0017 0013 0019 003D 0017 0015 0017 003D 0017 0015 0017 003D 0017 0015 0017 003F 0017 003D 0017 063B 0156 0054 0017 0E35 0154 0056 0015 0E35 0156 0054 0017 0EDB \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/9.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/9.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/ADB 3100/9.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1,18 +1 @@ -\xFF\xB5Y\x8C -\x8C -\x8D \x8D \x8D -\x8C -\x8C -\x8D \x8D -\x8C -\x8C!\x8C \x8D \x8D \x8C -\x8D -\x8C -\x8C!\x8C -\x8C -\x8D -\x8C!\x8C -\x8C -\x8C!\x8C -\x8D \x8C!\x8C!\x8C -\x8C!\x8C!\x8CM\xFF\xB4,\x8C\xFF\xB5,\x8C_ \ No newline at end of file +0000 006D 0026 0000 0156 00A9 0017 0013 0017 0013 0019 003D 0019 0011 0019 0013 0017 0013 0017 0013 0019 003D 0019 0013 0017 0013 0017 003F 0017 003D 0019 003D 0019 003D 0017 0013 0019 0013 0017 0013 0017 003F 0017 0013 0017 0013 0019 0013 0017 003F 0017 0013 0017 0013 0017 003F 0017 0013 0019 003D 0017 003F 0017 003F 0017 0013 0017 003F 0017 003F 0017 063B 0154 0054 0017 0E35 0156 0054 0017 0EDB \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/0.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/0.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/0.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1 +1 @@ -\x92\xA3 \xA3\x93\x92 \xA3 \xA3\x93\x92\x91!\x92|\x92\xA2!\xA2\x92\x92!\xA2!\xA2\x92\x92\x92 \x92}\x91\xA3 \xA3\x92\x92 \xA3 \xA3\x92\x91\x92!\x91}\x92\xA3!\xA2\x91\x92!\xA2!\xA2\x91\x92\x91!\x92}\x91\xA2!\xA2\x92\x91!\xA2!\xA2\x92\x91\x92!\x91}\x91\xA3!\xA2\x91\x92!\xA2!\xA2\x91\x92\x91!\x92_ \ No newline at end of file +0000 0073 0042 0000 0020 001B 003F 003A 003F 001B 0022 001B 0020 003A 003F 003A 003F 001B 0022 001B 0020 001D 001F 003B 0020 038E 0020 001D 003D 003B 003D 001D 0020 001B 0020 003B 003D 003B 003D 001D 0020 001B 0020 001D 0020 003A 0020 0390 001F 001D 003F 003A 003F 001B 0020 001D 0020 003A 003F 003A 003F 001B 0020 001D 001F 001D 0020 003B 001F 0390 0020 001B 003F 003B 003D 001D 001F 001D 0020 003B 003D 003B 003D 001D 001F 001D 0020 001D 001F 003B 0020 0390 001F 001D 003D 003B 003D 001D 0020 001D 001F 003B 003D 003B 003D 001D 0020 001D 001F 001D 0020 003B 001F 0390 001F 001D 003F 003B 003D 001D 001F 001D 0020 003B 003D 003B 003D 001D 001F 001D 0020 001D 001F 003B 0020 0E14 \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/1.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/1.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/1.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1 +1 @@ -\x93\x92\x93\xA3\x92\x92 \xA3 \xA3\x92\x92 \xA3\x92\x92\x91\xA3\x92\x92 \xA3 \xA3\x91\x92 \xA3\x92\x91\x92\xA2\x91\x92!\xA2!\xA2\x91\x92!\xA2\x92\x92\x92\xA2\x92\x91!\xA2!\xA2\x92\x91!\xA2\x91\x92\x91\xA3\x91\x92 \xA3 \xA3\x91\x92!\xA2\x92\x91\x92\xA2\x91\x91!\xA2!\xA2\x91\x91!\xA2\x91\x91\x91\xA2\x92\x91!\xA2!\xA2\x91\x91!\xA2\x91\x92\x91\xA2\x91\x92!\xA2!\xA2\x91\x92!\xA2\x92\x91\x92\xA2\x92\x91!\xA2!\xA2\x92\x91!\xA2\x91\x92\x91\xA2\x91\x91!\xA2!\xA2\x91\x91!\xA3\x92\x91\x92\xA2\x91\x91!\xA2!\xA2\x91\x91!\xA2\x91\x91\x91\xA2\x92\x91!\xA2!\xA2\x92\x91!\xA2\x91\x92\x91\xA2\x91\x92!\xA2!\xA2\x91\x92!\xA2_ \ No newline at end of file +0000 0073 008F 0000 0022 001B 0020 001B 0022 001B 003F 001B 0020 001D 0020 003A 003F 003A 003F 001B 0020 001D 0020 003A 003F 03AD 0020 001B 0020 001D 001F 001D 003F 001B 0020 001D 0020 003A 003F 003A 003F 001D 001F 001D 0020 003A 003F 03AD 0020 001D 001F 001D 0020 001D 003D 001D 001F 001D 0020 003B 003D 003B 003D 001D 001F 001D 0020 003B 003D 03AD 0020 001D 0020 001B 0020 001D 003D 001D 0020 001D 001F 003B 003D 003B 003D 001D 0020 001D 001F 003B 003D 03AF 001F 001D 0020 001D 001F 001D 003F 001D 001F 001D 0020 003A 003F 003A 003F 001D 001F 001D 0020 003B 003D 03AD 0020 001D 001F 001D 0020 001D 003D 001D 001F 001F 001F 003B 003D 003B 003D 001D 001F 001F 001F 003B 003D 03AF 001F 001D 001F 001F 001F 001D 003D 001D 0020 001D 001F 003B 003D 003B 003D 001F 001F 001D 001F 003B 003D 03AF 001F 001D 0020 001D 001F 001F 003D 001D 001F 001D 0020 003B 003D 003B 003D 001D 001F 001D 0020 003B 003D 03AD 0020 001D 001F 001D 0020 001D 003D 001D 0020 001D 001F 003B 003D 003B 003D 001D 0020 001D 001F 003B 003D 03AF 001F 001D 0020 001D 001F 001D 003D 001F 001F 001D 001F 003B 003D 003B 003D 001F 001F 001D 001F 003B 003F 03AD 0020 001D 001F 001D 0020 001D 003D 001D 001F 001F 001F 003B 003D 003B 003D 001D 001F 001F 001F 003B 003D 03AF 001F 001D 001F 001F 001F 001D 003D 001D 0020 001D 001F 003B 003D 003B 003D 001D 0020 001D 001F 003B 003D 03AF 001F 001D 0020 001D 001F 001F 003D 001D 001F 001D 0020 003B 003D 003B 003D 001D 001F 001D 0020 003B 003D 0E14 \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/2.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/2.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/2.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1 +1 @@ -\x92\x93\x92\xA3\x93\x92 \xA3 \xA3\x92 \xA3\x92\x92\x92\x92\xA2\x92\x92!\xA2!\xA2\x92 \xA3\x91\x91\x92\x91\xA3\x92\x92 \xA3 \xA2\x92!\xA2\x91\x92\x92\x92\xA3\x91\x92!\xA2!\xA2\x91!\xA2\x92\x92\x91\x92\xA2\x92\x91!\xA2!\xA2\x92!\xA2\x91\x91\x92\x91\xA2\x91\x91!\xA3 \xA3\x91!\xA2\x92\x92\x91\x92\xA2\x91\x91!\xA2!\xA2\x91!\xA2\x91_ \ No newline at end of file +0000 0073 004D 0000 0020 001B 0022 001B 0020 001B 003F 001B 0022 001B 0020 003A 003F 003A 003F 001D 0020 003A 003F 001B 0020 03AD 0020 001D 0020 001B 0020 001D 003D 001D 0020 001B 0020 003B 003D 003B 003D 001D 0020 003A 003F 001D 001F 03AF 001F 001D 0020 001D 001F 001D 003F 001B 0020 001D 0020 003A 003F 003A 003D 001D 0020 003B 003D 001D 001F 03AF 0020 001B 0020 001D 0020 001B 003F 001D 001F 001D 0020 003B 003D 003B 003D 001D 001F 003B 003D 001D 0020 03AD 0020 001D 001F 001D 0020 001D 003D 001D 0020 001D 001F 003B 003D 003B 003D 001D 0020 003B 003D 001D 001F 03AF 001F 001D 0020 001D 001F 001D 003D 001F 001F 001D 001F 003B 003F 003A 003F 001D 001F 003B 003D 001D 0020 03AD 0020 001D 001F 001D 0020 001D 003D 001D 001F 001F 001F 003B 003D 003B 003D 001D 001F 003B 003D 001F 001F 0E14 \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/3.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/3.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/3.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1 +1 @@ -\x93\xA3 \xA3\x92\x93 \xA3 \xA3\x92 \x92\x92\x92}\x92\xA3 \xA3\x92\x92 \xA3 \xA3\x92!\x92\x92\x91}\x92\xA3!\xA2\x92\x92!\xA2!\xA2\x91!\x92\x91\x92|\x92\xA2!\xA2\x92\x91!\xA2!\xA2\x92!\x91\x92\x91}\x91\xA3 \xA3\x91\x92 \xA3!\xA2\x91!\x91\x91\x91}\x92\xA2!\xA2\x92\x91!\xA2!\xA2\x92!\x91\x91\x91_ \ No newline at end of file +0000 0073 0042 0000 0022 001B 003F 003A 003F 001B 0020 001B 0022 003A 003F 003A 003F 001B 0020 003A 0020 001D 0020 001B 0020 0390 0020 001B 003F 003A 003F 001B 0020 001D 0020 003A 003F 003A 003F 001B 0020 003B 0020 001B 0020 001D 001F 0390 0020 001B 003F 003B 003D 001D 0020 001B 0020 003B 003D 003B 003D 001D 001F 003B 0020 001D 001F 001D 0020 038E 0020 001D 003D 003B 003D 001D 0020 001D 001F 003B 003D 003B 003D 001D 0020 003B 001F 001D 0020 001D 001F 0390 001F 001D 003F 003A 003F 001D 001F 001D 0020 003A 003F 003B 003D 001D 001F 003B 001F 001F 001F 001D 001F 0390 0020 001D 003D 003B 003D 001D 0020 001D 001F 003B 003D 003B 003D 001D 0020 003B 001F 001D 001F 001F 001F 0E14 \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/4.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/4.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/4.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1 +1 @@ -\x92\x93\x92\xA3\x93\x92 \xA3 \xA3 \xA3\x92\x92\x92\x92\x92\xA2\x92\x92!\xA2!\xA2!\xA2\x92\x91\x91\x92\x91\xA3\x92\x92 \xA3 \xA3 \xA2\x92\x91\x92\x92\x92\xA3\x91\x92!\xA2!\xA2!\xA2\x91\x92\x92\x91\x92\xA2\x92\x91!\xA2!\xA2!\xA2\x92\x91\x91\x92\x91\xA3\x91\x92 \xA3 \xA3!\xA2\x91\x92\x92\x91\x92\xA2\x91\x91!\xA2!\xA2!\xA2\x92\x91\x91\x92\x91\xA2\x91\x91!\xA2!\xA2!\xA2\x91\x91\x92\x91\x92\xA2\x91\x92!\xA2!\xA2!\xA2\x91\x91\x91\x91\x91\xA2\x92\x91!\xA2!\xA2!\xA2\x91\x91_ \ No newline at end of file +0000 0073 006E 0000 0020 001B 0022 001B 0020 001B 003F 001B 0022 001B 0020 003A 003F 003A 003F 003A 003F 001D 0020 001B 0020 03AD 0020 001D 0020 001B 0020 001D 003D 001D 0020 001B 0020 003B 003D 003B 003D 003B 003D 001D 0020 001D 001F 03AF 001F 001D 0020 001D 001F 001D 003F 001B 0020 001D 0020 003A 003F 003A 003F 003A 003D 001D 0020 001D 001F 03AF 0020 001B 0020 001D 0020 001B 003F 001D 001F 001D 0020 003B 003D 003B 003D 003B 003D 001D 001F 001D 0020 03AD 0020 001D 001F 001D 0020 001D 003D 001D 0020 001D 001F 003B 003D 003B 003D 003B 003D 001D 0020 001D 001F 03AF 001F 001D 0020 001D 001F 001D 003F 001D 001F 001D 0020 003A 003F 003A 003F 003B 003D 001D 001F 001D 0020 03AD 0020 001D 001F 001D 0020 001D 003D 001D 001F 001F 001F 003B 003D 003B 003D 003B 003D 001D 0020 001D 001F 03AF 001F 001D 0020 001D 001F 001D 003D 001F 001F 001D 001F 003B 003D 003B 003D 003B 003D 001F 001F 001D 001F 03AF 0020 001D 001F 001D 0020 001D 003D 001D 001F 001D 0020 003B 003D 003B 003D 003B 003D 001D 001F 001F 001F 03AF 001F 001D 001F 001F 001F 001D 003D 001D 0020 001D 001F 003B 003D 003B 003D 003B 003D 001F 001F 001D 001F 0E14 \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/5.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/5.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/5.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1 +1 @@ -\x93\xA3 \xA3\x92\x93 \xA3 \xA3 \xA3 \x92\x92}\x92\xA3 \xA3\x92\x92 \xA3 \xA3 \xA3 \x92\x92|\x92\xA2!\xA2\x92\x92!\xA2!\xA2!\xA2!\x91\x92}\x91\xA2!\xA2\x92\x91!\xA2!\xA2!\xA2!\x92\x91}\x92\xA3!\xA2\x91\x92!\xA2!\xA2!\xA2!\x91\x92|\x92\xA2!\xA2\x92\x91!\xA2!\xA2!\xA2!\x91\x91}\x91\xA3 \xA3\x91\x92 \xA3!\xA2!\xA2!\x91\x91}\x92\xA2!\xA2\x91\x91!\xA2!\xA2!\xA2!\x91\x91_ \ No newline at end of file +0000 0073 0050 0000 0022 001B 003F 003A 003F 001B 0020 001B 0022 003A 003F 003A 003F 003A 003F 003A 0020 001B 0020 0390 0020 001B 003F 003A 003F 001B 0020 001D 0020 003A 003F 003A 003F 003A 003F 003A 0020 001D 0020 038E 0020 001D 003D 003B 003D 001D 0020 001B 0020 003B 003D 003B 003D 003B 003D 003B 001F 001D 0020 0390 001F 001D 003D 003B 003D 001D 0020 001D 001F 003B 003D 003B 003D 003B 003D 003B 0020 001D 001F 0390 0020 001B 003F 003B 003D 001D 001F 001D 0020 003B 003D 003B 003D 003B 003D 003B 001F 001D 0020 038E 0020 001D 003D 003B 003D 001D 0020 001D 001F 003B 003D 003B 003D 003B 003D 003B 001F 001F 001F 0390 001F 001D 003F 003A 003F 001D 001F 001D 0020 003A 003F 003B 003D 003B 003D 003B 001F 001D 001F 0390 0020 001D 003D 003B 003D 001D 001F 001F 001F 003B 003D 003B 003D 003B 003D 003B 001F 001F 001F 0E14 \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/6.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/6.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/6.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1 +1 @@ -\x93\xA3 \xA3\x92\x93 \xA3 \xA3 \x92\xA3 \x92}\x92\xA3 \xA3\x92\x92 \xA3 \xA3 \x92\xA2!\x91}\x92\xA3!\xA2\x92\x92!\xA2!\xA2!\x91\xA2!\x92|\x92\xA2!\xA2\x92\x91!\xA2!\xA2!\x92\xA2!\x91}\x91\xA3 \xA3\x91\x92!\xA2!\xA2!\x91\xA2!\x91}\x92\xA2!\xA2\x92\x91!\xA2!\xA2!\x91\xA2!\x91}\x91\xA2!\xA2\x91\x91!\xA3 \xA3!\x91\xA2!\x91}\x92\xA2!\xA2\x91\x91!\xA2!\xA2!\x91\xA3!\x91}\x91\xA2!\xA2\x91\x91!\xA2!\xA2!\x92\xA2!\x91}\x92\xA2!\xA2\x91\x91!\xA2!\xA2!\x91\xA2!\x92}\x91\xA2!\xA2\x92\x91!\xA2!\xA2!\x92\xA2!\x91}\x91\xA2!\xA2\x91\x92!\xA2!\xA2!\x91\xA2!\x92_ \ No newline at end of file +0000 0073 0078 0000 0022 001B 003F 003A 003F 001B 0020 001B 0022 003A 003F 003A 003F 003A 0020 001B 003F 003A 0020 0390 0020 001B 003F 003A 003F 001B 0020 001D 0020 003A 003F 003A 003F 003A 0020 001D 003D 003B 001F 0390 0020 001B 003F 003B 003D 001D 0020 001B 0020 003B 003D 003B 003D 003B 001F 001D 003D 003B 0020 038E 0020 001D 003D 003B 003D 001D 0020 001D 001F 003B 003D 003B 003D 003B 0020 001D 003D 003B 001F 0390 001F 001D 003F 003A 003F 001D 001F 001D 0020 003B 003D 003B 003D 003B 001F 001D 003D 003B 001F 0390 0020 001D 003D 003B 003D 001D 0020 001D 001F 003B 003D 003B 003D 003B 001F 001F 003D 003B 001F 0390 001F 001D 003D 003B 003D 001F 001F 001D 001F 003B 003F 003A 003F 003B 001F 001D 003D 003B 001F 0390 0020 001D 003D 003B 003D 001D 001F 001F 001F 003B 003D 003B 003D 003B 001F 001D 003F 003B 001F 0390 001F 001D 003D 003B 003D 001F 001F 001D 001F 003B 003D 003B 003D 003B 0020 001D 003D 003B 001F 0390 0020 001D 003D 003B 003D 001D 001F 001F 001F 003B 003D 003B 003D 003B 001F 001D 003D 003B 0020 0390 001F 001D 003D 003B 003D 001D 0020 001D 001F 003B 003D 003B 003D 003B 0020 001D 003D 003B 001F 0390 001F 001F 003D 003B 003D 001D 001F 001D 0020 003B 003D 003B 003D 003B 001F 001D 003D 003B 0020 0E14 \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/7.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/7.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/7.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1 +1 @@ -\x93\xA3 \xA3\x93\x92 \xA3 \xA3 \x92\x92\xA3\x92\xA3 \xA3\x92\x92 \xA3!\xA2!\x91\x92\xA2\x92\xA2!\xA2\x92\x91!\xA2!\xA2!\x92\x91\xA2\x92\xA3!\xA2\x91\x92!\xA2!\xA2!\x91\x92\xA2\x91\xA2!\xA2\x92\x91!\xA2!\xA2!\x92\x91\xA2\x91\xA2!\xA2\x91\x92!\xA2!\xA2!\x91\x92\xA2\x91\xA2!\xA2\x92\x91!\xA2!\xA2!\x92\x91\xA2_ \ No newline at end of file +0000 0073 0046 0000 0022 001B 003F 003A 003F 001B 0022 001B 0020 003A 003F 003A 003F 003A 0020 001D 0020 001B 003F 03AD 0020 001B 003F 003A 003F 001D 0020 001B 0020 003A 003F 003B 003D 003B 001F 001D 0020 001D 003D 03AD 0020 001D 003D 003B 003D 001D 0020 001D 001F 003B 003D 003B 003D 003B 0020 001D 001F 001D 003D 03AF 0020 001B 003F 003B 003D 001D 001F 001D 0020 003B 003D 003B 003D 003B 001F 001D 0020 001D 003D 03AF 001F 001D 003D 003B 003D 001D 0020 001D 001F 003B 003D 003B 003D 003B 0020 001D 001F 001D 003D 03AF 001F 001F 003D 003B 003D 001D 001F 001D 0020 003B 003D 003B 003D 003B 001F 001D 0020 001D 003D 03AF 001F 001D 003D 003B 003D 001D 0020 001D 001F 003B 003D 003B 003D 003B 0020 001D 001F 001D 003D 0E14 \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/8.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/8.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/8.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1 +1 @@ -\x93\x93\x92\xA3\x92\x92 \xA3\x92 \xA3\x92\x92 \x92|\x92\x92\x92\xA2\x92\x91!\xA2\x92 \xA3\x91\x92 \x92}\x91\x92\x91\xA3\x92\x92 \xA3\x91!\xA2\x92\x91!\x91}\x92\x91\x92\xA2\x91\x92!\xA2\x91!\xA2\x91\x91!\x92}\x91\x92\x91\xA2\x92\x91!\xA2\x92!\xA2\x91\x91!\x91}\x91\x91\x91\xA2\x91\x92!\xA2\x91!\xA2\x92\x91!\x92_ \ No newline at end of file +0000 0073 0048 0000 0022 0019 0022 001B 0020 001B 003F 001D 0020 001B 0020 003A 003F 001D 0020 003A 003F 001B 0020 001D 0020 003A 0020 038E 0020 001D 0020 001B 0020 001D 003D 001D 0020 001D 001F 003B 003D 001D 0020 003A 003F 001D 001F 001D 0020 003A 0020 0390 001F 001D 0020 001D 001F 001D 003F 001B 0020 001D 0020 003A 003F 001D 001F 003B 003D 001D 0020 001D 001F 003B 001F 0390 0020 001D 001F 001D 0020 001D 003D 001D 001F 001D 0020 003B 003D 001D 001F 003B 003D 001F 001F 001D 001F 003B 0020 0390 001F 001D 0020 001D 001F 001D 003D 001D 0020 001D 001F 003B 003D 001D 0020 003B 003D 001D 001F 001F 001F 003B 001F 0390 001F 001F 001F 001D 001F 001F 003D 001D 001F 001D 0020 003B 003D 001D 001F 003B 003D 001D 0020 001D 001F 003B 0020 0E14 \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/9.IR =================================================================== --- trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/9.IR 2007-12-07 15:00:50 UTC (rev 1133) +++ trunk/plugins/IR Server Suite/Set Top Boxes/Dilog DT-355/9.IR 2007-12-08 13:42:04 UTC (rev 1134) @@ -1 +1 @@ -\x92\x93\x92\xA3\x93\x92 \xA3\x92 \xA3\x92 \xA3\x92\x92\x92\xA2\x92\x92!\xA2\x92 \xA3\x91!\xA2\x91\x92\x91\xA3\x92\x92 \xA3\x92!\xA2\x92 \xA3\x92\x91\x92\xA2\x91\x92!\xA2\x91!\xA2\x92!\xA2\x91\x91\x91\xA2\x92\x91!\xA2\x92!\xA2\x91!\xA2\x91\x92\x91\xA2\x91\x92!\xA2\x91!\xA2\x92!\xA2\x92\x91\x92\xA2\x92\x91!\xA2\x92!\xA2\x91!\xA2_ \ No newline at end of file +0000 0073 004D 0000 0020 001B 0022 001B 0020 001B 003F 001B 0022 001B 0020 003A 003F 001D 0020 003A 003F 001B 0020 003A 003F 03AD 0020 001D 0020 001B 0020 001D 003D 001D 0020 001B 0020 003B 003D 001D 0020 003A 003F 001D 001F 003B 003D 03AF 001F 001D 0020 001D 001F 001D 003F 001B 0020 001D 0020 003A 003F 001B 0020 003B 003D 001D 0020 003A 003F 03AD 0020 001D 001F 001D 0020 001D 003D 001D 001F 001D 0020 003B 003D 001D 001F 003B 003D 001D 0020 003B 003D 03AF 001F 001D 001F 001F 001F 001D 003D 001D 0020 001D 001F 003B 003D 001D 0020 003B 003D 001D 001F 003B 003D 03AF 001F 001D 0020 001D 001F 001F 003D 001D 001F 001D 0020 003B 003D 001D 001F 003B 003D 001D 0020 003B 003D 03AD 0020 001D 001F 001D 0020 001D 003D 001D 0020 001D 001F 003B 003D 001D 0020 003B 003D 001D 001F 003B 003D 0E14 \ N... [truncated message content] |
From: <an...@us...> - 2007-12-12 06:17:46
|
Revision: 1146 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1146&view=rev Author: and-81 Date: 2007-12-11 22:17:42 -0800 (Tue, 11 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs trunk/plugins/IR Server Suite/Applications/IR Server/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/Input Service/Input Service/Icon.ico trunk/plugins/IR Server Suite/Input Service/Input Service/InputService.cs trunk/plugins/IR Server Suite/Input Service/Input Service/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Icon.ico trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Properties/AssemblyInfo.cs Added Paths: ----------- trunk/plugins/IR Server Suite/Util Apps/ trunk/plugins/IR Server Suite/Util Apps/MacroConverter/ trunk/plugins/IR Server Suite/Util Apps/MacroConverter/FormMain.Designer.cs trunk/plugins/IR Server Suite/Util Apps/MacroConverter/FormMain.cs trunk/plugins/IR Server Suite/Util Apps/MacroConverter/FormMain.resx trunk/plugins/IR Server Suite/Util Apps/MacroConverter/MacroConverter.csproj trunk/plugins/IR Server Suite/Util Apps/MacroConverter/Program.cs trunk/plugins/IR Server Suite/Util Apps/MacroConverter/Properties/ trunk/plugins/IR Server Suite/Util Apps/MacroConverter/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Util Apps/TestClient/ trunk/plugins/IR Server Suite/Util Apps/TestClient/Program.cs trunk/plugins/IR Server Suite/Util Apps/TestClient/Properties/ trunk/plugins/IR Server Suite/Util Apps/TestClient/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Util Apps/TestClient/TestClient.csproj trunk/plugins/IR Server Suite/Util Apps/TestServer/ trunk/plugins/IR Server Suite/Util Apps/TestServer/Program.cs trunk/plugins/IR Server Suite/Util Apps/TestServer/Properties/ trunk/plugins/IR Server Suite/Util Apps/TestServer/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Util Apps/TestServer/TestServer.csproj Modified: trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs 2007-12-11 14:47:41 UTC (rev 1145) +++ trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs 2007-12-12 06:17:42 UTC (rev 1146) @@ -460,6 +460,104 @@ _inConfiguration = false; } + void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e) + { + switch (e.Mode) + { + + #region Suspend + case PowerModes.Suspend: + IrssLog.Info("Enter standby ..."); + + bool suspendedTransmit = false; + + if (_pluginReceive != null) + { + foreach (IRServerPluginBase plugin in _pluginReceive) + { + try + { + plugin.Suspend(); + + if (plugin == _pluginTransmit) + suspendedTransmit = true; + } + catch (Exception ex) + { + IrssLog.Error(ex.ToString()); + } + } + } + + if (_pluginTransmit != null && !suspendedTransmit) + { + try + { + _pluginTransmit.Suspend(); + } + catch (Exception ex) + { + IrssLog.Error(ex.ToString()); + } + } + + // Inform clients ... + if (_mode == IRServerMode.ServerMode) + { + IrssMessage message = new IrssMessage(MessageType.ServerSuspend, MessageFlags.Notify); + SendToAll(message); + } + break; + #endregion Suspend + + #region Resume + case PowerModes.Resume: + IrssLog.Info("Resume from standby ..."); + + bool resumedTransmit = false; + + if (_pluginReceive != null) + { + foreach (IRServerPluginBase plugin in _pluginReceive) + { + try + { + if (plugin == _pluginTransmit) + resumedTransmit = true; + + plugin.Resume(); + } + catch (Exception ex) + { + IrssLog.Error(ex.ToString()); + } + } + } + + if (_pluginTransmit != null && !resumedTransmit) + { + try + { + _pluginTransmit.Resume(); + } + catch (Exception ex) + { + IrssLog.Error(ex.ToString()); + } + } + + // Inform clients ... + if (_mode == IRServerMode.ServerMode) + { + IrssMessage message = new IrssMessage(MessageType.ServerResume, MessageFlags.Notify); + SendToAll(message); + } + break; + #endregion Resume + + } + } + void StartServer() { if (_server != null) @@ -734,102 +832,6 @@ } } - void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e) - { - switch (e.Mode) - { - case PowerModes.Resume: - { - IrssLog.Info("Resume from standby ..."); - - bool resumedTransmit = false; - - if (_pluginReceive != null) - { - foreach (IRServerPluginBase plugin in _pluginReceive) - { - try - { - if (plugin == _pluginTransmit) - resumedTransmit = true; - - plugin.Resume(); - } - catch (Exception ex) - { - IrssLog.Error(ex.ToString()); - } - } - } - - if (_pluginTransmit != null && !resumedTransmit) - { - try - { - _pluginTransmit.Resume(); - } - catch (Exception ex) - { - IrssLog.Error(ex.ToString()); - } - } - - // Inform clients ... - if (_mode == IRServerMode.ServerMode) - { - IrssMessage message = new IrssMessage(MessageType.ServerResume, MessageFlags.Notify); - SendToAll(message); - } - break; - } - - case PowerModes.Suspend: - { - IrssLog.Info("Enter standby ..."); - - bool suspendedTransmit = false; - - if (_pluginReceive != null) - { - foreach (IRServerPluginBase plugin in _pluginReceive) - { - try - { - plugin.Suspend(); - - if (plugin == _pluginTransmit) - suspendedTransmit = true; - } - catch (Exception ex) - { - IrssLog.Error(ex.ToString()); - } - } - } - - if (_pluginTransmit != null && !suspendedTransmit) - { - try - { - _pluginTransmit.Suspend(); - } - catch (Exception ex) - { - IrssLog.Error(ex.ToString()); - } - } - - // Inform clients ... - if (_mode == IRServerMode.ServerMode) - { - IrssMessage message = new IrssMessage(MessageType.ServerSuspend, MessageFlags.Notify); - SendToAll(message); - } - break; - } - } - } - void SendToAll(IrssMessage message) { IrssLog.Debug("SendToAll({0}, {1})", message.Type, message.Flags); Modified: trunk/plugins/IR Server Suite/Applications/IR Server/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/Properties/AssemblyInfo.cs 2007-12-11 14:47:41 UTC (rev 1145) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Properties/AssemblyInfo.cs 2007-12-12 06:17:42 UTC (rev 1146) @@ -8,7 +8,7 @@ // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("IR Server")] -[assembly: AssemblyDescription("Provides multiple connections for local and network access to a remote control transceiver")] +[assembly: AssemblyDescription("Provides multiple connections for local and network access to attached remote control transceivers")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("and-81")] [assembly: AssemblyProduct("IR Server")] Modified: trunk/plugins/IR Server Suite/IR Server Suite.sln =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite.sln 2007-12-11 14:47:41 UTC (rev 1145) +++ trunk/plugins/IR Server Suite/IR Server Suite.sln 2007-12-12 06:17:42 UTC (rev 1146) @@ -265,11 +265,16 @@ Release.AspNetCompiler.Debug = "False" EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MacroConverter", "Applications\MacroConverter\MacroConverter.csproj", "{6BF20ECD-A459-42B6-AFFE-6CA8CD308AC6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Util Apps", "Util Apps", "{D4CDABD0-B82E-4DEE-A2A8-A2A52774FC2F}" ProjectSection(WebsiteProperties) = preProject Debug.AspNetCompiler.Debug = "True" Release.AspNetCompiler.Debug = "False" EndProjectSection + ProjectSection(SolutionItems) = preProject + Util Apps\MacroConverter\MacroConverter.csproj = Util Apps\MacroConverter\MacroConverter.csproj + Util Apps\TestClient\TestClient.csproj = Util Apps\TestClient\TestClient.csproj + Util Apps\TestServer\TestServer.csproj = Util Apps\TestServer\TestServer.csproj + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -387,7 +392,8 @@ {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Release|Any CPU.Build.0 = Release|Any CPU {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Release|Any CPU.ActiveCfg = Release|x86 + {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Release|Any CPU.Build.0 = Release|Any CPU {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Debug|Any CPU.Build.0 = Debug|Any CPU {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -432,10 +438,6 @@ {37A555DF-7012-4B99-8A47-1C922A361E52}.Debug|Any CPU.Build.0 = Debug|Any CPU {37A555DF-7012-4B99-8A47-1C922A361E52}.Release|Any CPU.ActiveCfg = Release|Any CPU {37A555DF-7012-4B99-8A47-1C922A361E52}.Release|Any CPU.Build.0 = Release|Any CPU - {6BF20ECD-A459-42B6-AFFE-6CA8CD308AC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6BF20ECD-A459-42B6-AFFE-6CA8CD308AC6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6BF20ECD-A459-42B6-AFFE-6CA8CD308AC6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6BF20ECD-A459-42B6-AFFE-6CA8CD308AC6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -452,7 +454,6 @@ {905131F8-F8AC-4A65-A722-37783902D7B8} = {0C209E91-5AD5-4662-AD0E-976A940D4806} {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D} = {0C209E91-5AD5-4662-AD0E-976A940D4806} {CCDBA239-8E8E-4F5F-A098-7132EED5F160} = {0C209E91-5AD5-4662-AD0E-976A940D4806} - {6BF20ECD-A459-42B6-AFFE-6CA8CD308AC6} = {0C209E91-5AD5-4662-AD0E-976A940D4806} {7C686499-7517-4338-8837-7E8617549D9A} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} Modified: trunk/plugins/IR Server Suite/Input Service/Input Service/Icon.ico =================================================================== (Binary files differ) Modified: trunk/plugins/IR Server Suite/Input Service/Input Service/InputService.cs =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service/InputService.cs 2007-12-11 14:47:41 UTC (rev 1145) +++ trunk/plugins/IR Server Suite/Input Service/Input Service/InputService.cs 2007-12-12 06:17:42 UTC (rev 1146) @@ -482,10 +482,10 @@ { try { - plugin.Resume(); - if (plugin == _pluginTransmit) resumedTransmit = true; + + plugin.Resume(); } catch (Exception ex) { Modified: trunk/plugins/IR Server Suite/Input Service/Input Service/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service/Properties/AssemblyInfo.cs 2007-12-11 14:47:41 UTC (rev 1145) +++ trunk/plugins/IR Server Suite/Input Service/Input Service/Properties/AssemblyInfo.cs 2007-12-12 06:17:42 UTC (rev 1146) @@ -7,11 +7,11 @@ // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("MediaPortal Input Service")] -[assembly: AssemblyDescription("Provides access to input devices")] +[assembly: AssemblyTitle("Input Service")] +[assembly: AssemblyDescription("Provides multiple connections for local and network access to attached input devices")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("and-81")] -[assembly: AssemblyProduct("MediaPortal Input Service")] +[assembly: AssemblyProduct("Input Service")] [assembly: AssemblyCopyright("Aaron Dinnage")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] Modified: trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Icon.ico =================================================================== (Binary files differ) Modified: trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Properties/AssemblyInfo.cs 2007-12-11 14:47:41 UTC (rev 1145) +++ trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Properties/AssemblyInfo.cs 2007-12-12 06:17:42 UTC (rev 1146) @@ -5,11 +5,11 @@ // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("MediaPortal Input Service Configuration")] -[assembly: AssemblyDescription("Configure the MediaPortal Input Service")] +[assembly: AssemblyTitle("Input Service Configuration")] +[assembly: AssemblyDescription("Configure the Input Service")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("and-81")] -[assembly: AssemblyProduct("MediaPortal Input Service Configuration")] +[assembly: AssemblyProduct("Input Service Configuration")] [assembly: AssemblyCopyright("Aaron Dinnage")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] Added: trunk/plugins/IR Server Suite/Util Apps/MacroConverter/FormMain.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/MacroConverter/FormMain.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/MacroConverter/FormMain.Designer.cs 2007-12-12 06:17:42 UTC (rev 1146) @@ -0,0 +1,91 @@ +namespace MacroConverter +{ + partial class FormMain + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.buttonGO = new System.Windows.Forms.Button(); + this.listViewStatus = new System.Windows.Forms.ListView(); + this.columnHeaderText = new System.Windows.Forms.ColumnHeader(); + this.SuspendLayout(); + // + // buttonGO + // + this.buttonGO.Dock = System.Windows.Forms.DockStyle.Top; + this.buttonGO.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.buttonGO.Location = new System.Drawing.Point(0, 0); + this.buttonGO.Name = "buttonGO"; + this.buttonGO.Size = new System.Drawing.Size(506, 32); + this.buttonGO.TabIndex = 0; + this.buttonGO.Text = "GO !"; + this.buttonGO.UseVisualStyleBackColor = true; + this.buttonGO.Click += new System.EventHandler(this.buttonGO_Click); + // + // listViewStatus + // + this.listViewStatus.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeaderText}); + this.listViewStatus.Dock = System.Windows.Forms.DockStyle.Fill; + this.listViewStatus.Location = new System.Drawing.Point(0, 32); + this.listViewStatus.Name = "listViewStatus"; + this.listViewStatus.Size = new System.Drawing.Size(506, 455); + this.listViewStatus.TabIndex = 1; + this.listViewStatus.UseCompatibleStateImageBehavior = false; + this.listViewStatus.View = System.Windows.Forms.View.Details; + // + // columnHeaderText + // + this.columnHeaderText.Text = "Status"; + this.columnHeaderText.Width = 485; + // + // FormMain + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(506, 487); + this.Controls.Add(this.listViewStatus); + this.Controls.Add(this.buttonGO); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FormMain"; + this.ShowIcon = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Macro Converter"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button buttonGO; + private System.Windows.Forms.ListView listViewStatus; + private System.Windows.Forms.ColumnHeader columnHeaderText; + } +} + Added: trunk/plugins/IR Server Suite/Util Apps/MacroConverter/FormMain.cs =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/MacroConverter/FormMain.cs (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/MacroConverter/FormMain.cs 2007-12-12 06:17:42 UTC (rev 1146) @@ -0,0 +1,270 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Text; +using System.Windows.Forms; +using System.Xml; + +using IrssUtils; + +namespace MacroConverter +{ + + public partial class FormMain : Form + { + + public const string XmlTagMacro = "MACRO"; + public const string XmlTagBlast = "BLAST"; + public const string XmlTagPause = "PAUSE"; + public const string XmlTagRun = "RUN"; + public const string XmlTagSerial = "SERIAL"; + public const string XmlTagKeys = "KEYS"; + public const string XmlTagWindowMsg = "WINDOW_MESSAGE"; + public const string XmlTagTcpMsg = "TCP_MESSAGE"; + public const string XmlTagGoto = "GOTO"; + public const string XmlTagPopup = "POPUP"; + public const string XmlTagMultiMap = "MULTI_MAPPING"; + public const string XmlTagMouseMode = "MOUSE_MODE"; + public const string XmlTagInputLayer = "INPUT_LAYER"; + public const string XmlTagWindowState = "WINDOW_STATE"; + public const string XmlTagFocus = "GET_FOCUS"; + public const string XmlTagExit = "EXIT"; + + public const string XmlTagStandby = "STANDBY"; + public const string XmlTagHibernate = "HIBERNATE"; + public const string XmlTagReboot = "REBOOT"; + public const string XmlTagShutdown = "SHUTDOWN"; + public const string XmlTagLogOff = "LOG_OFF"; + + public const string XmlTagMouse = "MOUSE"; + public const string XmlTagEject = "EJECT"; + public const string XmlTagSound = "SOUND"; + public const string XmlTagBeep = "BEEP"; + public const string XmlTagDisplay = "DISPLAY"; + + public const string XmlTagTranslator = "TRANSLATOR"; + public const string XmlTagVirtualKB = "VIRTUAL_KEYBOARD"; + public const string XmlTagSmsKB = "SMS_KEYBOARD"; + + + + public FormMain() + { + InitializeComponent(); + } + + private void buttonGO_Click(object sender, EventArgs e) + { + listViewStatus.Items.Add("Translator Macros ..."); + ProcessFolder(Common.FolderAppData + "Translator\\Macro\\"); + + listViewStatus.Items.Add("MP Blast Zone Plugin Macros ..."); + ProcessFolder(Common.FolderAppData + "MP Blast Zone Plugin\\Macro\\"); + + listViewStatus.Items.Add("MP Control Plugin Macros ..."); + ProcessFolder(Common.FolderAppData + "MP Control Plugin\\Macro\\"); + + listViewStatus.Items.Add("TV2 Blaster Plugin Macros ..."); + ProcessFolder(Common.FolderAppData + "TV2 Blaster Plugin\\Macro\\"); + + listViewStatus.Items.Add("TV3 Blaster Plugin Macros ..."); + ProcessFolder(Common.FolderAppData + "TV3 Blaster Plugin\\Macro\\"); + + listViewStatus.Items.Add("MCE Replacement Plugin Macros ..."); + ProcessFolder(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\MediaPortal MCE Replacement Plugin\\Macro\\"); + + listViewStatus.Items.Add("Done."); + } + + void ProcessFolder(string folder) + { + try + { + string[] macros = Directory.GetFiles(folder, '*' + Common.FileExtensionMacro); + ProcessMacros(macros); + } + catch (Exception ex) + { + listViewStatus.Items.Add(ex.Message); + } + } + + void ProcessMacros(string[] macros) + { + string[] macroContents; + + foreach (string macro in macros) + { + try + { + listViewStatus.Items.Add(Path.GetFileName(macro)); + + macroContents = LoadMacro(macro); + SaveMacro(macro, macroContents); + } + catch (Exception ex) + { + listViewStatus.Items.Add(ex.Message); + } + } + } + + + string[] LoadMacro(string fileName) + { + List<string> macroContents = new List<string>(); + + XmlDocument doc = new XmlDocument(); + doc.Load(fileName); + + XmlNodeList commandSequence = doc.DocumentElement.SelectNodes("action"); + + string commandProperty; + foreach (XmlNode item in commandSequence) + { + commandProperty = item.Attributes["cmdproperty"].Value; + + switch (item.Attributes["command"].Value) + { + case XmlTagMacro: + macroContents.Add(Common.CmdPrefixMacro + commandProperty); + break; + + case XmlTagBlast: + macroContents.Add(Common.CmdPrefixBlast + commandProperty); + break; + + case XmlTagPause: + macroContents.Add(Common.CmdPrefixPause + commandProperty); + break; + + case XmlTagRun: + macroContents.Add(Common.CmdPrefixRun + commandProperty); + break; + + case XmlTagSerial: + macroContents.Add(Common.CmdPrefixSerial + commandProperty); + break; + + case XmlTagWindowMsg: + macroContents.Add(Common.CmdPrefixWindowMsg + commandProperty); + break; + + case XmlTagTcpMsg: + macroContents.Add(Common.CmdPrefixTcpMsg + commandProperty); + break; + + case XmlTagKeys: + macroContents.Add(Common.CmdPrefixKeys + commandProperty); + break; + + case XmlTagMouse: + macroContents.Add(Common.CmdPrefixMouse + commandProperty); + break; + + case XmlTagEject: + macroContents.Add(Common.CmdPrefixEject + commandProperty); + break; + + case XmlTagGoto: + macroContents.Add(Common.CmdPrefixGoto + commandProperty); + break; + + case XmlTagPopup: + macroContents.Add(Common.CmdPrefixPopup + commandProperty); + break; + + case XmlTagMultiMap: + macroContents.Add(Common.CmdPrefixMultiMap + commandProperty); + break; + + case XmlTagMouseMode: + macroContents.Add(Common.CmdPrefixMouseMode + commandProperty); + break; + + case XmlTagInputLayer: + macroContents.Add(Common.CmdPrefixInputLayer); + break; + + case XmlTagFocus: + macroContents.Add(Common.CmdPrefixFocus); + break; + + case XmlTagExit: + macroContents.Add(Common.CmdPrefixExit); + break; + + case XmlTagStandby: + macroContents.Add(Common.CmdPrefixStandby); + break; + + case XmlTagHibernate: + macroContents.Add(Common.CmdPrefixHibernate); + break; + + case XmlTagReboot: + macroContents.Add(Common.CmdPrefixReboot); + break; + + case XmlTagShutdown: + macroContents.Add(Common.CmdPrefixShutdown); + break; + + case XmlTagBeep: + macroContents.Add(Common.CmdPrefixBeep + commandProperty); + break; + + case XmlTagDisplay: + macroContents.Add(Common.CmdPrefixDisplay + commandProperty); + break; + + case XmlTagSmsKB: + macroContents.Add(Common.CmdPrefixSmsKB); + break; + + case XmlTagSound: + macroContents.Add(Common.CmdPrefixSound + commandProperty); + break; + + case XmlTagTranslator: + macroContents.Add(Common.CmdPrefixTranslator); + break; + + case XmlTagVirtualKB: + macroContents.Add(Common.CmdPrefixVirtualKB); + break; + + default: + throw new Exception("Unrecognised Macro TAG: " + item.Attributes["command"].Value); + } + } + + return macroContents.ToArray(); + } + + void SaveMacro(string fileName, string[] contents) + { + using (XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.UTF8)) + { + writer.Formatting = Formatting.Indented; + writer.WriteStartDocument(true); + writer.WriteStartElement("macro"); + + foreach (string item in contents) + { + writer.WriteStartElement("item"); + writer.WriteAttributeString("command", item); + writer.WriteEndElement(); + } + + writer.WriteEndElement(); + writer.WriteEndDocument(); + } + } + + } + +} Added: trunk/plugins/IR Server Suite/Util Apps/MacroConverter/FormMain.resx =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/MacroConverter/FormMain.resx (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/MacroConverter/FormMain.resx 2007-12-12 06:17:42 UTC (rev 1146) @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file Added: trunk/plugins/IR Server Suite/Util Apps/MacroConverter/MacroConverter.csproj =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/MacroConverter/MacroConverter.csproj (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/MacroConverter/MacroConverter.csproj 2007-12-12 06:17:42 UTC (rev 1146) @@ -0,0 +1,68 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{6BF20ECD-A459-42B6-AFFE-6CA8CD308AC6}</ProjectGuid> + <OutputType>WinExe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>MacroConverter</RootNamespace> + <AssemblyName>MacroConverter</AssemblyName> + <StartupObject>MacroConverter.Program</StartupObject> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <UseVSHostingProcess>false</UseVSHostingProcess> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="FormMain.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="FormMain.Designer.cs"> + <DependentUpon>FormMain.cs</DependentUpon> + </Compile> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <EmbeddedResource Include="FormMain.resx"> + <SubType>Designer</SubType> + <DependentUpon>FormMain.cs</DependentUpon> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\Common\IrssUtils\IrssUtils.csproj"> + <Project>{CA15769C-232E-4CA7-94FD-206A06CA3ABB}</Project> + <Name>IrssUtils</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project> \ No newline at end of file Added: trunk/plugins/IR Server Suite/Util Apps/MacroConverter/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/MacroConverter/Program.cs (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/MacroConverter/Program.cs 2007-12-12 06:17:42 UTC (rev 1146) @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace MacroConverter +{ + static class Program + { + /// <summary> + /// The main entry point for the application. + /// </summary> + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new FormMain()); + } + } +} \ No newline at end of file Added: trunk/plugins/IR Server Suite/Util Apps/MacroConverter/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/MacroConverter/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/MacroConverter/Properties/AssemblyInfo.cs 2007-12-12 06:17:42 UTC (rev 1146) @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MacroConverter")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MacroConverter")] +[assembly: AssemblyCopyright("Aaron Dinnage")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("f4aa7712-7298-4a5d-b114-087ad0fc4057")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.3.5")] +[assembly: AssemblyFileVersion("1.0.3.5")] Added: trunk/plugins/IR Server Suite/Util Apps/TestClient/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/TestClient/Program.cs (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/TestClient/Program.cs 2007-12-12 06:17:42 UTC (rev 1146) @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Threading; + +using IrssComms; + +namespace TestClient +{ + + class Program + { + + static int clientNumber = -1; + + static Client _client; + + static void Main(string[] args) + { + ClientMessageSink sink = new ClientMessageSink(Sink); + + IPAddress serverIP = Client.GetIPFromName("localhost"); + + IPEndPoint endPoint = new IPEndPoint(serverIP, Server.DefaultPort); + + _client = new Client(endPoint, sink); + _client.CommsFailureCallback = new WaitCallback(CommsFailure); + _client.ConnectCallback = new WaitCallback(Connected); + _client.DisconnectCallback = new WaitCallback(Disconnected); + + + if (_client.Start()) + { + Console.WriteLine("Client started"); + } + else + { + Console.WriteLine("Couldn't start communications"); + return; + } + + Console.ReadLine(); + + IrssMessage message = new IrssMessage(MessageType.ForwardRemoteEvent, MessageFlags.Request); + + try + { + for (int index = 0; index < 10000; index++) + { + message.SetDataAsString(index.ToString()); + _client.Send(message); + + Console.WriteLine("ForwardRemoteEvent: {0}", index); + + Thread.Sleep(10); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + + Console.ReadLine(); + + _client.Send(new IrssMessage(MessageType.UnregisterClient, MessageFlags.Request, String.Format("Unregister {0}", clientNumber))); + + Thread.Sleep(1000); + + _client.Dispose(); + } + + + static void CommsFailure(object obj) + { + Exception ex = obj as Exception; + + if (ex != null) + Console.WriteLine("Communications failure: {0}", ex.Message); + else + Console.WriteLine("Communications failure"); + } + static void Connected(object obj) + { + Console.WriteLine("Connected to server"); + + IrssMessage message = new IrssMessage(MessageType.RegisterClient, MessageFlags.Request); + _client.Send(message); + } + static void Disconnected(object obj) + { + Console.WriteLine("Communications with server has been lost"); + + Thread.Sleep(1000); + } + + + + static void Sink(IrssMessage message) + { + switch (message.Type) + { + case MessageType.RegisterClient: + clientNumber = BitConverter.ToInt32(message.GetDataAsBytes(), 0); + Console.WriteLine("Registered: {0}, {1}, {2}", message.Type, message.Flags, clientNumber); + break; + + case MessageType.ForwardRemoteEvent: + Console.WriteLine("ForwardRemoteEvent: {0}", message.GetDataAsString()); + break; + + default: + Console.WriteLine("Message: {0}, {1}", message.Type, message.Flags); + break; + } + } + + } + +} Added: trunk/plugins/IR Server Suite/Util Apps/TestClient/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/TestClient/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/TestClient/Properties/AssemblyInfo.cs 2007-12-12 06:17:42 UTC (rev 1146) @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("TestClient")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("TestClient")] +[assembly: AssemblyCopyright("Copyright © 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("9ae66d14-61cc-4b15-9d35-d8988a3d2afc")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] Added: trunk/plugins/IR Server Suite/Util Apps/TestClient/TestClient.csproj =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/TestClient/TestClient.csproj (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/TestClient/TestClient.csproj 2007-12-12 06:17:42 UTC (rev 1146) @@ -0,0 +1,72 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{DDB52A4D-A670-411A-8273-8B1707C67028}</ProjectGuid> + <OutputType>Exe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>TestClient</RootNamespace> + <AssemblyName>TestClient</AssemblyName> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <PlatformTarget>x86</PlatformTarget> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> + <DebugSymbols>true</DebugSymbols> + <OutputPath>bin\x86\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <DebugType>full</DebugType> + <PlatformTarget>x86</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> + <OutputPath>bin\x86\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <Optimize>true</Optimize> + <DebugType>pdbonly</DebugType> + <PlatformTarget>x86</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Common\IrssComms\IrssComms.csproj"> + <Project>{BCAFDF45-70DD-46FD-8B98-880DDA585AD2}</Project> + <Name>IrssComms</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project> \ No newline at end of file Added: trunk/plugins/IR Server Suite/Util Apps/TestServer/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/TestServer/Program.cs (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/TestServer/Program.cs 2007-12-12 06:17:42 UTC (rev 1146) @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.Net.Sockets; +using System.Text; +using System.Threading; + +using IrssComms; + +namespace TestServer +{ + + class Program + { + + static int count = 1; + + static Server server; + + static void Main(string[] args) + { + ServerMessageSink sink = new ServerMessageSink(MessageSink); + + server = new Server(Server.DefaultPort, sink); + try + { + if (server.Start()) + { + Console.WriteLine("Server Started"); + } + else + { + Console.WriteLine("Failed to start Server"); + } + + Console.ReadLine(); + + server.Dispose(); + + Console.WriteLine("Stopped"); + } + catch (SocketException socketException) + { + Console.WriteLine(socketException.ToString()); + Console.ReadLine(); + } + } + + static void MessageSink(MessageManagerCombo combo) + { + IrssMessage response = new IrssMessage(MessageType.Unknown, MessageFlags.None); + + switch (combo.Message.Type) + { + case MessageType.RegisterClient: + Console.WriteLine("Registered: {0}", count); + + response.Type = MessageType.RegisterClient; + response.Flags = MessageFlags.Success; + response.SetDataAsBytes(BitConverter.GetBytes(count)); + + count++; + break; + + default: + Console.WriteLine("Message: {0}, {1}", combo.Message.Type, combo.Message.Flags); + break; + } + + //Thread.Sleep(50); + + server.Send(combo.Manager, response); + } + + } + +} Added: trunk/plugins/IR Server Suite/Util Apps/TestServer/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/TestServer/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/TestServer/Properties/AssemblyInfo.cs 2007-12-12 06:17:42 UTC (rev 1146) @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("TestServer")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("TestServer")] +[assembly: AssemblyCopyright("Copyright © 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("4ba77968-0dab-4ced-8eeb-6e0458426243")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] Added: trunk/plugins/IR Server Suite/Util Apps/TestServer/TestServer.csproj =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/TestServer/TestServer.csproj (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/TestServer/TestServer.csproj 2007-12-12 06:17:42 UTC (rev 1146) @@ -0,0 +1,70 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{327F54E5-D1DC-4297-BF2F-4283EB30FFB1}</ProjectGuid> + <OutputType>Exe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>TestServer</RootNamespace> + <AssemblyName>TestServer</AssemblyName> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> + <DebugSymbols>true</DebugSymbols> + <OutputPath>bin\x86\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <DebugType>full</DebugType> + <PlatformTarget>x86</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> + <OutputPath>bin\x86\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <Optimize>true</Optimize> + <DebugType>pdbonly</DebugType> + <PlatformTarget>x86</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Common\IrssComms\IrssComms.csproj"> + <Project>{BCAFDF45-70DD-46FD-8B98-880DDA585AD2}</Project> + <Name>IrssComms</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2007-12-12 06:23:24
|
Revision: 1147 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1147&view=rev Author: and-81 Date: 2007-12-11 22:23:22 -0800 (Tue, 11 Dec 2007) Log Message: ----------- Added Paths: ----------- trunk/plugins/IR Server Suite/Util Apps/IR File Tool/ trunk/plugins/IR Server Suite/Util Apps/IR File Tool/FormMain.Designer.cs trunk/plugins/IR Server Suite/Util Apps/IR File Tool/FormMain.cs trunk/plugins/IR Server Suite/Util Apps/IR File Tool/FormMain.resx trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IR File Tool.csproj trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrCode.cs trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrDecoder.cs trunk/plugins/IR Server Suite/Util Apps/IR File Tool/MceDetectionData.cs trunk/plugins/IR Server Suite/Util Apps/IR File Tool/Program.cs trunk/plugins/IR Server Suite/Util Apps/IR File Tool/Pronto.cs trunk/plugins/IR Server Suite/Util Apps/IR File Tool/Properties/ trunk/plugins/IR Server Suite/Util Apps/IR File Tool/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Util Apps/IR File Tool/RemoteDetectionData.cs trunk/plugins/IR Server Suite/Util Apps/SageSetup/ trunk/plugins/IR Server Suite/Util Apps/SageSetup/FormMain.Designer.cs trunk/plugins/IR Server Suite/Util Apps/SageSetup/FormMain.cs trunk/plugins/IR Server Suite/Util Apps/SageSetup/FormMain.resx trunk/plugins/IR Server Suite/Util Apps/SageSetup/Program.cs trunk/plugins/IR Server Suite/Util Apps/SageSetup/Properties/ trunk/plugins/IR Server Suite/Util Apps/SageSetup/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Util Apps/SageSetup/Sage Setup.csproj trunk/plugins/IR Server Suite/Util Apps/SageSetup/SageSetup.exe.manifest Removed Paths: ------------- trunk/plugins/IR Server Suite/Applications/IR File Tool/ trunk/plugins/IR Server Suite/Applications/SageSetup/ Added: trunk/plugins/IR Server Suite/Util Apps/IR File Tool/FormMain.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/IR File Tool/FormMain.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/IR File Tool/FormMain.Designer.cs 2007-12-12 06:23:22 UTC (rev 1147) @@ -0,0 +1,237 @@ +namespace IrFileTool +{ + partial class FormMain + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.menuStrip = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveasToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.quitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.textBoxPronto = new System.Windows.Forms.TextBox(); + this.labelCarrier = new System.Windows.Forms.Label(); + this.toolTips = new System.Windows.Forms.ToolTip(this.components); + this.buttonSetCarrier = new System.Windows.Forms.Button(); + this.checkBoxStoreBinary = new System.Windows.Forms.CheckBox(); + this.buttonAttemptDecode = new System.Windows.Forms.Button(); + this.textBoxCarrier = new System.Windows.Forms.TextBox(); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.saveFileDialog = new System.Windows.Forms.SaveFileDialog(); + this.menuStrip.SuspendLayout(); + this.SuspendLayout(); + // + // menuStrip + // + this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem}); + this.menuStrip.Location = new System.Drawing.Point(0, 0); + this.menuStrip.Name = "menuStrip"; + this.menuStrip.Size = new System.Drawing.Size(497, 24); + this.menuStrip.TabIndex = 0; + this.menuStrip.Text = "menuStrip"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.newToolStripMenuItem, + this.openToolStripMenuItem, + this.saveToolStripMenuItem, + this.saveasToolStripMenuItem, + this.toolStripSeparator1, + this.quitToolStripMenuItem}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(35, 20); + this.fileToolStripMenuItem.Text = "&File"; + // + // newToolStripMenuItem + // + this.newToolStripMenuItem.Name = "newToolStripMenuItem"; + this.newToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.newToolStripMenuItem.Text = "&New"; + this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click); + // + // openToolStripMenuItem + // + this.openToolStripMenuItem.Name = "openToolStripMenuItem"; + this.openToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.openToolStripMenuItem.Text = "&Open ..."; + this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); + // + // saveToolStripMenuItem + // + this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; + this.saveToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.saveToolStripMenuItem.Text = "&Save"; + this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); + // + // saveasToolStripMenuItem + // + this.saveasToolStripMenuItem.Name = "saveasToolStripMenuItem"; + this.saveasToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.saveasToolStripMenuItem.Text = "Save &as ..."; + this.saveasToolStripMenuItem.Click += new System.EventHandler(this.saveasToolStripMenuItem_Click); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(135, 6); + // + // quitToolStripMenuItem + // + this.quitToolStripMenuItem.Name = "quitToolStripMenuItem"; + this.quitToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.quitToolStripMenuItem.Text = "&Quit"; + this.quitToolStripMenuItem.Click += new System.EventHandler(this.quitToolStripMenuItem_Click); + // + // textBoxPronto + // + this.textBoxPronto.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxPronto.Font = new System.Drawing.Font("Courier New", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.textBoxPronto.Location = new System.Drawing.Point(8, 32); + this.textBoxPronto.Multiline = true; + this.textBoxPronto.Name = "textBoxPronto"; + this.textBoxPronto.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.textBoxPronto.Size = new System.Drawing.Size(481, 136); + this.textBoxPronto.TabIndex = 1; + // + // labelCarrier + // + this.labelCarrier.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labelCarrier.Location = new System.Drawing.Point(8, 176); + this.labelCarrier.Name = "labelCarrier"; + this.labelCarrier.Size = new System.Drawing.Size(56, 20); + this.labelCarrier.TabIndex = 2; + this.labelCarrier.Text = "Carrier:"; + this.labelCarrier.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // buttonSetCarrier + // + this.buttonSetCarrier.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonSetCarrier.Location = new System.Drawing.Point(136, 176); + this.buttonSetCarrier.Name = "buttonSetCarrier"; + this.buttonSetCarrier.Size = new System.Drawing.Size(32, 20); + this.buttonSetCarrier.TabIndex = 4; + this.buttonSetCarrier.Text = "Set"; + this.toolTips.SetToolTip(this.buttonSetCarrier, "Change the carrier frequency"); + this.buttonSetCarrier.UseVisualStyleBackColor = true; + this.buttonSetCarrier.Click += new System.EventHandler(this.buttonSetCarrier_Click); + // + // checkBoxStoreBinary + // + this.checkBoxStoreBinary.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.checkBoxStoreBinary.Location = new System.Drawing.Point(328, 176); + this.checkBoxStoreBinary.Name = "checkBoxStoreBinary"; + this.checkBoxStoreBinary.Size = new System.Drawing.Size(160, 24); + this.checkBoxStoreBinary.TabIndex = 6; + this.checkBoxStoreBinary.Text = "Store mceir.dll compatible"; + this.toolTips.SetToolTip(this.checkBoxStoreBinary, "Store this IR Code in an MceIr.dll compatible form"); + this.checkBoxStoreBinary.UseVisualStyleBackColor = true; + // + // buttonAttemptDecode + // + this.buttonAttemptDecode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonAttemptDecode.Location = new System.Drawing.Point(192, 176); + this.buttonAttemptDecode.Name = "buttonAttemptDecode"; + this.buttonAttemptDecode.Size = new System.Drawing.Size(112, 24); + this.buttonAttemptDecode.TabIndex = 5; + this.buttonAttemptDecode.Text = "Attempt decode"; + this.toolTips.SetToolTip(this.buttonAttemptDecode, "Try to decode the IR signal into a recognised format"); + this.buttonAttemptDecode.UseVisualStyleBackColor = true; + this.buttonAttemptDecode.Click += new System.EventHandler(this.buttonAttemptDecode_Click); + // + // textBoxCarrier + // + this.textBoxCarrier.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.textBoxCarrier.Location = new System.Drawing.Point(64, 176); + this.textBoxCarrier.Name = "textBoxCarrier"; + this.textBoxCarrier.Size = new System.Drawing.Size(64, 20); + this.textBoxCarrier.TabIndex = 3; + // + // openFileDialog + // + this.openFileDialog.DefaultExt = "IR"; + this.openFileDialog.Filter = "IR Files|*.IR"; + this.openFileDialog.Title = "Open an IR file ..."; + // + // saveFileDialog + // + this.saveFileDialog.DefaultExt = "IR"; + this.saveFileDialog.Filter = "IR Files|*.IR"; + this.saveFileDialog.Title = "Save an IR file ..."; + // + // FormMain + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(497, 209); + this.Controls.Add(this.buttonAttemptDecode); + this.Controls.Add(this.checkBoxStoreBinary); + this.Controls.Add(this.buttonSetCarrier); + this.Controls.Add(this.textBoxCarrier); + this.Controls.Add(this.labelCarrier); + this.Controls.Add(this.textBoxPronto); + this.Controls.Add(this.menuStrip); + this.MainMenuStrip = this.menuStrip; + this.MinimumSize = new System.Drawing.Size(505, 236); + this.Name = "FormMain"; + this.Text = "IR File Tool"; + this.menuStrip.ResumeLayout(false); + this.menuStrip.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.MenuStrip menuStrip; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem saveasToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripMenuItem quitToolStripMenuItem; + private System.Windows.Forms.TextBox textBoxPronto; + private System.Windows.Forms.Label labelCarrier; + private System.Windows.Forms.ToolTip toolTips; + private System.Windows.Forms.TextBox textBoxCarrier; + private System.Windows.Forms.Button buttonSetCarrier; + private System.Windows.Forms.CheckBox checkBoxStoreBinary; + private System.Windows.Forms.Button buttonAttemptDecode; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.SaveFileDialog saveFileDialog; + } +} + Added: trunk/plugins/IR Server Suite/Util Apps/IR File Tool/FormMain.cs =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/IR File Tool/FormMain.cs (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/IR File Tool/FormMain.cs 2007-12-12 06:23:22 UTC (rev 1147) @@ -0,0 +1,219 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Text; +using System.Windows.Forms; + +namespace IrFileTool +{ + + public partial class FormMain : Form + { + + string _fileName = String.Empty; + + IrCode _code = new IrCode(); + + + public FormMain() + { + InitializeComponent(); + } + + void RefreshForm() + { + if (String.IsNullOrEmpty(_fileName)) + this.Text = "IR File Tool"; + else + this.Text = "IR File Tool - " + _fileName; + + textBoxPronto.Text = Encoding.ASCII.GetString(_code.ToByteArray(true)); + + switch (_code.Carrier) + { + case IrCode.CarrierFrequencyDCMode: + textBoxCarrier.Text = "DC Mode"; + break; + + case IrCode.CarrierFrequencyUnknown: + textBoxCarrier.Text = "Unknown"; + break; + + default: + textBoxCarrier.Text = _code.Carrier.ToString(); + break; + } + } + + void Save() + { + if (!checkBoxStoreBinary.Checked) + { + Pronto.WriteProntoFile(_fileName, Pronto.ConvertIrCodeToProntoRaw(_code)); + } + else + { + using (FileStream file = File.OpenWrite(_fileName)) + { + byte[] fileBytes = DataPacket(_code); + + file.Write(fileBytes, 0, fileBytes.Length); + } + } + } + + + private void newToolStripMenuItem_Click(object sender, EventArgs e) + { + _code = new IrCode(); + _fileName = "New File.IR"; + + RefreshForm(); + } + + private void openToolStripMenuItem_Click(object sender, EventArgs e) + { + if (openFileDialog.ShowDialog(this) != DialogResult.OK) + return; + + using (FileStream file = File.OpenRead(openFileDialog.FileName)) + { + if (file.Length == 0) + { + MessageBox.Show(this, "The selected file is empty", "Empty file", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + byte[] fileData = new byte[file.Length]; + + file.Read(fileData, 0, (int)file.Length); + + _code = IrCode.FromByteArray(fileData); + } + + _fileName = openFileDialog.FileName; + + RefreshForm(); + } + + private void saveToolStripMenuItem_Click(object sender, EventArgs e) + { + Save(); + } + + private void saveasToolStripMenuItem_Click(object sender, EventArgs e) + { + if (saveFileDialog.ShowDialog(this) != DialogResult.OK) + return; + + _fileName = saveFileDialog.FileName; + + Save(); + } + + private void quitToolStripMenuItem_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void buttonAttemptDecode_Click(object sender, EventArgs e) + { + IrDecoder.DecodeIR(_code.TimingData, new RemoteCallback(RemoteEvent), new KeyboardCallback(KeyboardEvent), new MouseCallback(MouseEvent)); + } + + static byte[] DataPacket(IrCode code) + { + if (code.TimingData.Length == 0) + return null; + + // Construct data bytes into "packet" ... + List<byte> packet = new List<byte>(); + + for (int index = 0; index < code.TimingData.Length; index++) + { + double time = (double)code.TimingData[index]; + + byte duration = (byte)Math.Abs(Math.Round(time / 50)); + bool pulse = (time > 0); + + while (duration > 0x7F) + { + packet.Add((byte)(pulse ? 0xFF : 0x7F)); + + duration -= 0x7F; + } + + packet.Add((byte)(pulse ? 0x80 | duration : duration)); + } + + // Insert byte count markers into packet data bytes ... + int subpackets = (int)Math.Ceiling(packet.Count / (double)4); + + byte[] output = new byte[packet.Count + subpackets + 1]; + + int outputPos = 0; + + for (int packetPos = 0; packetPos < packet.Count; ) + { + byte copyCount = (byte)(packet.Count - packetPos < 4 ? packet.Count - packetPos : 0x04); + + output[outputPos++] = (byte)(0x80 | copyCount); + + for (int index = 0; index < copyCount; index++) + output[outputPos++] = packet[packetPos++]; + } + + output[outputPos] = 0x80; + + return output; + } + + void RemoteEvent(IrProtocol codeType, uint keyCode, bool firstPress) + { + MessageBox.Show(this, String.Format("Remote: {0}, {1}", Enum.GetName(typeof(IrProtocol), codeType), keyCode), "Decode IR", MessageBoxButtons.OK, MessageBoxIcon.Information); + + if (textBoxCarrier.Text.Equals("Unknown", StringComparison.OrdinalIgnoreCase)) + { + switch (codeType) + { + case IrProtocol.RC5: textBoxCarrier.Text = "36000"; break; + case IrProtocol.RC5X: textBoxCarrier.Text = "36000"; break; + case IrProtocol.NEC: textBoxCarrier.Text = "38000"; break; + + default: + return; + } + + _code.Carrier = int.Parse(textBoxCarrier.Text); + + RefreshForm(); + } + } + void KeyboardEvent(uint keyCode, uint modifiers) + { + MessageBox.Show(this, String.Format("Keyboard: {0}, {1}", keyCode, modifiers), "Decode IR", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + void MouseEvent(int deltaX, int deltaY, bool right, bool left) + { + MessageBox.Show(this, String.Format("Mouse: DX {0}, DY {1}, Right: {2}, Left: {3}", deltaX, deltaY, right, left), "Decode IR", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + + private void buttonSetCarrier_Click(object sender, EventArgs e) + { + if (textBoxCarrier.Text == "Unknown") + return; + + if (textBoxCarrier.Text == "DC Mode") + _code.Carrier = IrCode.CarrierFrequencyDCMode; + + _code.Carrier = int.Parse(textBoxCarrier.Text); + + RefreshForm(); + } + + } + +} Added: trunk/plugins/IR Server Suite/Util Apps/IR File Tool/FormMain.resx =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/IR File Tool/FormMain.resx (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/IR File Tool/FormMain.resx 2007-12-12 06:23:22 UTC (rev 1147) @@ -0,0 +1,132 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> + <metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>119, 17</value> + </metadata> + <metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>209, 17</value> + </metadata> + <metadata name="saveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>333, 17</value> + </metadata> +</root> \ No newline at end of file Added: trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IR File Tool.csproj =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IR File Tool.csproj (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IR File Tool.csproj 2007-12-12 06:23:22 UTC (rev 1147) @@ -0,0 +1,92 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}</ProjectGuid> + <OutputType>WinExe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>IRFileTool</RootNamespace> + <AssemblyName>IR File Tool</AssemblyName> + <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent> + <StartupObject>IrFileTool.Program</StartupObject> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <UseVSHostingProcess>false</UseVSHostingProcess> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>none</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants> + </DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> + <DebugSymbols>true</DebugSymbols> + <OutputPath>bin\x86\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <DebugType>full</DebugType> + <PlatformTarget>x86</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> + <OutputPath>bin\x86\Release\</OutputPath> + <DefineConstants> + </DefineConstants> + <Optimize>true</Optimize> + <DebugType>pdbonly</DebugType> + <PlatformTarget>x86</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + <UseVSHostingProcess>false</UseVSHostingProcess> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Deployment" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="FormMain.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="FormMain.Designer.cs"> + <DependentUpon>FormMain.cs</DependentUpon> + </Compile> + <Compile Include="IrCode.cs" /> + <Compile Include="IrDecoder.cs" /> + <Compile Include="MceDetectionData.cs" /> + <Compile Include="Program.cs" /> + <Compile Include="Pronto.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="RemoteDetectionData.cs" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="FormMain.resx"> + <SubType>Designer</SubType> + <DependentUpon>FormMain.cs</DependentUpon> + </EmbeddedResource> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project> \ No newline at end of file Added: trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrCode.cs =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrCode.cs (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrCode.cs 2007-12-12 06:23:22 UTC (rev 1147) @@ -0,0 +1,287 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +// Remember: Pulse is Positive, Space is Negative. + +namespace IrFileTool +{ + + /// <summary> + /// Encapsulates an MCE compatible IR Code. + /// </summary> + class IrCode + { + + #region Constants + + /// <summary> + /// The carrier frequency for this code is Unknown. + /// </summary> + public const int CarrierFrequencyUnknown = -1; + /// <summary> + /// This code does not use a carrier wave. + /// </summary> + public const int CarrierFrequencyDCMode = 0; + /// <summary> + /// Default carrier frequency, 36kHz (the carrier frequency for RC5, RC6 and RC-MM). + /// </summary> + public const int CarrierFrequencyDefault = 36000; + + /// <summary> + /// How long the longest IR Code space should be (microseconds). + /// </summary> + const int LongestSpace = -100000; + + #endregion Constants + + #region Member Variables + + int _carrier; + int[] _timingData; + + #endregion Member Variables + + #region Properties + + /// <summary> + /// Gets or Sets the IR carrier frequency. + /// </summary> + public int Carrier + { + get { return _carrier; } + set { _carrier = value; } + } + + /// <summary> + /// Gets or Sets the IR timing data. + /// </summary> + public int[] TimingData + { + get { return _timingData; } + set { _timingData = value; } + } + + #endregion Properties + + #region Constructors + + public IrCode() : this(CarrierFrequencyUnknown, new int[] { }) { } + public IrCode(int carrier) : this(carrier, new int[] { }) { } + public IrCode(int[] timingData) : this(CarrierFrequencyUnknown, timingData) { } + public IrCode(int carrier, int[] timingData) + { + _carrier = carrier; + _timingData = timingData; + } + + #endregion Constructors + + #region Methods + + /// <summary> + /// Locates the gap between button presses and reduces the data down to just the first press. + /// </summary> + /// <returns>true if successful, otherwise false.</returns> + public bool FinalizeData() + { + if (_timingData.Length == 0) + return false; + + List<int> newData = new List<int>(); + + foreach (int time in _timingData) + { + if (time <= LongestSpace) + { + newData.Add(LongestSpace); + break; + } + else + { + newData.Add(time); + } + } + + _timingData = newData.ToArray(); + return true; + } + + /// <summary> + /// Add timing data to this IR Code. + /// </summary> + /// <param name="timingData">Addition timing data.</param> + public void AddTimingData(int[] timingData) + { + List<int> newTimingData = new List<int>(); + + int index = 0; + + if (_timingData.Length > 1) + { + for (index = 0; index < _timingData.Length - 1; index++) + newTimingData.Add(_timingData[index]); + } + else if (_timingData.Length == 0) + { + _timingData = new int[timingData.Length]; + timingData.CopyTo(_timingData, 0); + return; + } + + if (timingData.Length == 0 || index >= _timingData.Length) + return; + + if (Math.Sign(timingData[0]) == Math.Sign(_timingData[index])) + { + newTimingData.Add(_timingData[index] + timingData[0]); + + for (index = 1; index < timingData.Length; index++) + newTimingData.Add(timingData[index]); + } + else + { + newTimingData.Add(_timingData[index]); + newTimingData.AddRange(timingData); + } + + _timingData = newTimingData.ToArray(); + } + + /// <summary> + /// Creates a byte array representation of this IR Code. + /// </summary> + /// <param name="asPronto">Set this parameter true to convert the IR Code into Pronto format.</param> + /// <returns>Byte array representation.</returns> + public byte[] ToByteArray(bool asPronto) + { + StringBuilder output = new StringBuilder(); + + if (asPronto) + { + ushort[] prontoData = Pronto.ConvertIrCodeToProntoRaw(this); + + for (int index = 0; index < prontoData.Length; index++) + { + output.Append(prontoData[index].ToString("X4")); + if (index != prontoData.Length - 1) + output.Append(' '); + } + } + else // Native format (only benefit is a slightly more accurate Carrier Frequency) + { + output.Append("MCE,"); + output.AppendFormat("{0},", _carrier); + + for (int index = 0; index < _timingData.Length; index++) + { + output.Append(_timingData[index]); + if (index != _timingData.Length - 1) + output.Append(','); + } + } + + return Encoding.ASCII.GetBytes(output.ToString()); + } + + #endregion Methods + + #region Static Methods + + /// <summary> + /// Creates an IrCode object from old IR file bytes. + /// </summary> + /// <param name="data">IR file bytes.</param> + /// <returns>New IrCode object.</returns> + static IrCode FromOldData(byte[] data) + { + List<int> timingData = new List<int>(); + + int len = 0; + + for (int index = 0; index < data.Length; index++) + { + byte curByte = data[index]; + + if ((curByte & 0x80) != 0) + len += (int)(curByte & 0x7F); + else + len -= (int)curByte; + + if ((curByte & 0x7F) != 0x7F) + { + timingData.Add(len * 50); + len = 0; + } + } + + if (len != 0) + timingData.Add(len * 50); + + return new IrCode(timingData.ToArray()); + } + + /// <summary> + /// Create an IrCode object from Native file bytes. + /// </summary> + /// <param name="data">IR file bytes.</param> + /// <returns>New IrCode object.</returns> + static IrCode FromNativeData(string data) + { + if (String.IsNullOrEmpty(data)) + throw new ArgumentNullException("data"); + + string[] elements = data.Split(new char[] { ',' }); + + if (elements.Length < 3) + throw new ApplicationException("Invalid native IR file data"); + + IrCode newCode = new IrCode(); + newCode.Carrier = int.Parse(elements[1]); + + int[] timingData = new int[elements.Length - 2]; + for (int index = 2; index < elements.Length; index++) + timingData[index - 2] = int.Parse(elements[index]); + + newCode.TimingData = timingData; + + return newCode; + } + + /// <summary> + /// Create a new IrCode object from byte array data. + /// </summary> + /// <param name="data">Byte array to create from.</param> + /// <returns>New IrCode object.</returns> + public static IrCode FromByteArray(byte[] data) + { + if (data[4] == ' ') + { + string code = Encoding.ASCII.GetString(data); + + string[] stringData = code.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); + + ushort[] prontoData = new ushort[stringData.Length]; + for (int i = 0; i < stringData.Length; i++) + prontoData[i] = ushort.Parse(stringData[i], System.Globalization.NumberStyles.HexNumber); + + return Pronto.ConvertProntoDataToIrCode(prontoData); + } + else if (data[0] == 'M' && data[1] == 'C' && data[2] == 'E') + { + string code = Encoding.ASCII.GetString(data); + + return FromNativeData(code); + } + else + { + return FromOldData(data); + } + } + + #endregion Static Methods + + } + +} Added: trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrDecoder.cs =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrDecoder.cs (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrDecoder.cs 2007-12-12 06:23:22 UTC (rev 1147) @@ -0,0 +1,2074 @@ +using System; +using System.Collections.Generic; +#if TRACE +using System.Diagnostics; +#endif +using System.Text; + +namespace IrFileTool +{ + + #region Enumerations + + /// <summary> + /// Protocol of IR Code. + /// </summary> + enum IrProtocol + { + /// <summary> + /// No protocol. + /// </summary> + None, + + /// <summary> + /// Daewoo protocol. 38kHz carrier. + /// </summary> + Daewoo, + /// <summary> + /// ITT protocol (unsupported). + /// </summary> + ITT, + /// <summary> + /// JVC protocol. 38kHz carrier. + /// </summary> + JVC, + /// <summary> + /// Matsushita protocol. 56.8kHz carrier. + /// </summary> + Matsushita, + /// <summary> + /// Mitsubishi protocol. 40kHz carrier. + /// </summary> + Mitsubishi, + /// <summary> + /// NEC protocol. 38kHz carrier. + /// </summary> + NEC, + /// <summary> + /// Nokia NRC17 protocol. 38kHz carrier. + /// </summary> + NRC17, + /// <summary> + /// Panasonic protocol. 38kHz carrier. + /// </summary> + Panasonic, + /// <summary> + /// Philips RC5 protocol. 36kHz carrier. + /// </summary> + RC5, + /// <summary> + /// Philips RC5X protocol. 36kHz carrier. + /// </summary> + RC5X, + /// <summary> + /// Philips RC6 protocol (Mode 0). 36kHz carrier. + /// </summary> + RC6, + /// <summary> + /// Philips RC6 protocol (Mode 6A). 36kHz carrier. + /// </summary> + RC6A, + /// <summary> + /// Microsoft's protocol variation of Philips RC6. 36kHz carrier. + /// </summary> + RC6_MCE, + /// <summary> + /// Foxtel's protocol variation of Philips RC6. 36kHz carrier. + /// </summary> + RC6_Foxtel, + /// <summary> + /// RCA protocol. 56kHz carrier. + /// </summary> + RCA, + /// <summary> + /// Philips RC-MM protocol. This protocol cannot be reliably (if at all) decoded by the MCE device. 36kHz carrier. + /// </summary> + RCMM, + /// <summary> + /// RECS-80 protocol. 38kHz carrier. + /// </summary> + RECS80, + /// <summary> + /// Sharp protocol (unsupported). 38kHz carrier + /// </summary> + Sharp, + /// <summary> + /// Sony SIRC protocol. 40kHz carrier. + /// </summary> + SIRC, + /// <summary> + /// Toshiba protocol. 38kHz carrier. + /// </summary> + Toshiba, + /// <summary> + /// X-Sat protocol (unsupported). 38kHz carrier. + /// </summary> + XSAT, + + /// <summary> + /// Unknown protocol. + /// </summary> + Unknown, + } + + #endregion Enumerations + + #region Delegates + + delegate void RemoteCallback(IrProtocol codeType, uint keyCode, bool firstPress); + delegate void KeyboardCallback(uint keyCode, uint modifiers); + delegate void MouseCallback(int deltaX, int deltaY, bool rightButton, bool leftButton); + + #endregion Delegates + + /// <summary> + /// Used for decoding received IR Codes. + /// </summary> + static class IrDecoder + { + + #region Constants + + const ushort ToggleBitMce = 0x8000; + const ushort ToggleMaskMce = 0x7FFF; + const ushort CustomerMce = 0x800F; + + const ushort ToggleBitRC5 = 0x0800; + const ushort ToggleMaskRC5 = 0xF7FF; + + const uint ToggleBitRC5X = 0x00020000; + const ushort ToggleMaskRC5X = 0xFFFF; + + const uint RC6HeaderMask = 0xFFFFFFF0; + + const uint PrefixRC6 = 0x000FC950; + const uint PrefixRC6A = 0x000FCA90; + const uint PrefixRC6Foxtel = 0x000FCA93; + + const uint MceMouse = 1; + const uint MceKeyboard = 4; + + #endregion Constants + + #region Detection Data + + static RemoteDetectionData Daewoo_Data = new RemoteDetectionData(); + static RemoteDetectionData JVC_Data = new RemoteDetectionData(); + static RemoteDetectionData Matsushita_Data = new RemoteDetectionData(); + static RemoteDetectionData Mitsubishi_Data = new RemoteDetectionData(); + static RemoteDetectionData NEC_Data = new RemoteDetectionData(); + static RemoteDetectionData NRC17_Data = new RemoteDetectionData(); + static RemoteDetectionData Panasonic_Data = new RemoteDetectionData(); + static RemoteDetectionData RC5_Data = new RemoteDetectionData(); + static RemoteDetectionData RC6_Data = new RemoteDetectionData(); + static RemoteDetectionData RCA_Data = new RemoteDetectionData(); + static RemoteDetectionData RECS80_Data = new RemoteDetectionData(); + static RemoteDetectionData SIRC_Data = new RemoteDetectionData(); + static RemoteDetectionData Toshiba_Data = new RemoteDetectionData(); + + static MceDetectionData MCE_Data = new MceDetectionData(); + + #endregion Detection Data + + #region Methods + + /// <summary> + /// Decode timing data to discover IR Protocol and packet payload. + /// </summary> + /// <param name="timingData">Input timing data.</param> + /// <param name="remoteCallback">Method to call when Remote button decoded.</param> + /// <param name="keyboardCallback">Method to call when Keyboard event decoded.</param> + /// <param name="mouseCallback">Method to call when Mouse event decoded.</param> + public static void DecodeIR(int[] timingData, RemoteCallback remoteCallback, KeyboardCallback keyboardCallback, MouseCallback mouseCallback) + { + if (timingData == null) + return; + + try + { + DetectDaewoo(timingData, remoteCallback); + //DetectITT(timingData, remoteCallback); + DetectJVC(timingData, remoteCallback); + DetectMatsushita(timingData, remoteCallback); + DetectMitsubishi(timingData, remoteCallback); + DetectNEC(timingData, remoteCallback); + DetectNRC17(timingData, remoteCallback); + DetectPanasonic(timingData, remoteCallback); + DetectRC5(timingData, remoteCallback); + DetectRC6(timingData, remoteCallback); + DetectRCA(timingData, remoteCallback); + //DetectRCMM(timingData, remoteCallback); + DetectRECS80(timingData, remoteCallback); + //DetectSharp(timingData, remoteCallback); + DetectSIRC(timingData, remoteCallback); + DetectToshiba(timingData, remoteCallback); + //DetectXSAT(timingData, remoteCallback); + + DetectMCE(timingData, keyboardCallback, mouseCallback); + //DetectIMon(timingData, keyboardCallback, mouseCallback); + } +#if TRACE + catch (Exception ex) + { + Trace.WriteLine(ex.ToString()); +#else + catch + { +#endif + Daewoo_Data = new RemoteDetectionData(); + JVC_Data = new RemoteDetectionData(); + Matsushita_Data = new RemoteDetectionData(); + Mitsubishi_Data = new RemoteDetectionData(); + NEC_Data = new RemoteDetectionData(); + NRC17_Data = new RemoteDetectionData(); + Panasonic_Data = new RemoteDetectionData(); + RC5_Data = new RemoteDetectionData(); + RC6_Data = new RemoteDetectionData(); + RCA_Data = new RemoteDetectionData(); + RECS80_Data = new RemoteDetectionData(); + SIRC_Data = new RemoteDetectionData(); + Toshiba_Data = new RemoteDetectionData(); + + MCE_Data = new MceDetectionData(); + } + } + + static void DetectDaewoo(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + //Trace.WriteLine("Daewoo - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), Daewoo_Data.State), timingData[i]); + + switch (Daewoo_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + if (pulse && IsBetween(duration, 7800, 8200)) + { + Daewoo_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + if (!pulse && IsBetween(duration, 3800 , 4200)) + { + Daewoo_Data.State = RemoteDetectionState.Data; + Daewoo_Data.HalfBit = 0; + Daewoo_Data.Bit = 0; + Daewoo_Data.Code = 0; + ignored = false; + } + else if (!pulse && IsBetween(duration, 10000 , 40000)) // For Repeats + { + Daewoo_Data.State = RemoteDetectionState.Data; + Daewoo_Data.HalfBit = 0; + Daewoo_Data.Bit = 0; + Daewoo_Data.Code = 0; + ignored = false; + } + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + if (pulse && IsBetween(duration, 350, 750)) + { + Daewoo_Data.HalfBit = 1; + ignored = false; + } + else if (!pulse && IsBetween(duration, 250, 650) && Daewoo_Data.HalfBit == 1) + { + Daewoo_Data.Code <<= 1; + Daewoo_Data.Bit++; + Daewoo_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && IsBetween(duration, 1250, 1650) && Daewoo_Data.HalfBit == 1) + { + Daewoo_Data.Code <<= 1; + Daewoo_Data.Code |= 1; + Daewoo_Data.Bit++; + Daewoo_Data.HalfBit = 0; + ignored = false; + } + else + { + //Trace.WriteLine("Daewoo Error"); + } + + if (Daewoo_Data.Bit == 16) + { + remoteCallback(IrProtocol.Daewoo, Daewoo_Data.Code, false); + Daewoo_Data.State = RemoteDetectionState.Leading; + } + break; + #endregion Data + + #region Leading + case RemoteDetectionState.Leading: + if (pulse && IsBetween(duration, 350, 750)) + { + Daewoo_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + break; + #endregion Leading + + } + + if (ignored && (Daewoo_Data.State != RemoteDetectionState.HeaderPulse)) + Daewoo_Data.State = RemoteDetectionState.HeaderPulse; + } + } + static void DetectJVC(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + //Trace.WriteLine("JVC - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), JVC_Data.State), timingData[i]); + + switch (JVC_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + if (pulse && IsBetween(duration, 8300, 8500)) + { + JVC_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + if (!pulse && IsBetween(duration, 4100, 4300)) + { + JVC_Data.Toggle = 0; + + JVC_Data.State = RemoteDetectionState.Data; + JVC_Data.HalfBit = 0; + JVC_Data.Bit = 0; + JVC_Data.Code = 0; + ignored = false; + } + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + if (pulse && IsBetween(duration, 450, 650)) + { + JVC_Data.HalfBit = 1; + ignored = false; + } + else if (!pulse && IsBetween(duration, 450, 650) && JVC_Data.HalfBit == 1) + { + JVC_Data.Code <<= 1; + JVC_Data.Bit++; + JVC_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && IsBetween(duration, 1450, 1700) && JVC_Data.HalfBit == 1) + { + JVC_Data.Code <<= 1; + JVC_Data.Code |= 1; + JVC_Data.Bit++; + JVC_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 10000) + { + if (JVC_Data.Bit == 16) + { + bool first = false; + if (JVC_Data.Code != JVC_Data.Toggle) + first = true; + + remoteCallback(IrProtocol.JVC, JVC_Data.Code, first); + ignored = false; + + JVC_Data.Toggle = (int)JVC_Data.Code; + + if (duration > 25000) + JVC_Data.State = RemoteDetectionState.HeaderPulse; + else + JVC_Data.State = RemoteDetectionState.Data; + + JVC_Data.HalfBit = 0; + JVC_Data.Bit = 0; + JVC_Data.Code = 0; + } + else if (JVC_Data.Bit == 32) + { + remoteCallback(IrProtocol.Unknown, JVC_Data.Code, false); + } + else + { + //Trace.WriteLine("JVC Error"); + } + + } + else + { + //Trace.WriteLine("JVC Error"); + } + + break; + #endregion Data + + } + + if (ignored && (JVC_Data.State != RemoteDetectionState.HeaderPulse)) + JVC_Data.State = RemoteDetectionState.HeaderPulse; + } + } + static void DetectMatsushita(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + //Trace.WriteLine("Matsushita - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), Matsushita_Data.State), timingData[i]); + + switch (Matsushita_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + if (pulse && IsBetween(duration, 3300, 3700)) + { + Matsushita_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + //else + //Trace.WriteLine("HeaderPulse fall through"); + + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + if (!pulse && IsBetween(duration, 3300, 3700)) + { + Matsushita_Data.State = RemoteDetectionState.Data; + Matsushita_Data.HalfBit = 0; + Matsushita_Data.Bit = 0; + Matsushita_Data.Code = 0; + ignored = false; + } + //else + //Trace.WriteLine("HeaderSpace fell through"); + + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + if (pulse && IsBetween(duration, 650, 1050)) + { + Matsushita_Data.HalfBit = 1; + ignored = false; + } + else if (!pulse && IsBetween(duration, 650, 1050) && Matsushita_Data.HalfBit == 1) + { + Matsushita_Data.Code <<= 1; + Matsushita_Data.Bit++; + Matsushita_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && IsBetween(duration, 2450, 2850) && Matsushita_Data.HalfBit == 1) + { + Matsushita_Data.Code <<= 1; + Matsushita_Data.Code |= 1; + Matsushita_Data.Bit++; + Matsushita_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 20000 && Matsushita_Data.HalfBit == 1) + { + if (Matsushita_Data.Bit != 22) + break; + + uint code = Matsushita_Data.Code >> 12; + remoteCallback(IrProtocol.Matsushita, code, false); + Matsushita_Data.State = RemoteDetectionState.HeaderPulse; + Matsushita_Data.HalfBit = 0; + ignored = false; + } + else + { + //Trace.WriteLine("Matsushita Error"); + } + + break; + #endregion Data + + } + + if (ignored && (Matsushita_Data.State != RemoteDetectionState.HeaderPulse)) + { + //Trace.WriteLine("ignored"); + Matsushita_Data.State = RemoteDetectionState.HeaderPulse; + } + } + } + static void DetectMitsubishi(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + //Trace.WriteLine("Mitsubishi - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), Mitsubishi_Data.State), timingData[i]); + + switch (Mitsubishi_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + if (pulse && IsBetween(duration, 7800, 8200)) + { + Mitsubishi_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + if (!pulse && IsBetween(duration, 3800, 4200)) + { + Mitsubishi_Data.State = RemoteDetectionState.Data; + Mitsubishi_Data.HalfBit = 0; + Mitsubishi_Data.Bit = 0; + Mitsubishi_Data.Code = 0; + ignored = false; + } + + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + if (pulse && IsBetween(duration, 350, 650)) + { + Mitsubishi_Data.HalfBit = 1; + ignored = false; + } + else if (!pulse && IsBetween(duration, 350, 650) && Mitsubishi_Data.HalfBit == 1) + { + Mitsubishi_Data.Code <<= 1; + Mitsubishi_Data.Bit++; + Mitsubishi_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && IsBetween(duration, 1300, 1700) && Mitsubishi_Data.HalfBit == 1) + { + Mitsubishi_Data.Code <<= 1; + Mitsubishi_Data.Code |= 1; + Mitsubishi_Data.Bit++; + Mitsubishi_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && IsBetween(duration, 3800, 4200) && Mitsubishi_Data.HalfBit == 1 && Mitsubishi_Data.Bit == 8) + { + Mitsubishi_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 20000 && Mitsubishi_Data.HalfBit == 1 && Mitsubishi_Data.Bit == 16) + { + remoteCallback(IrProtocol.Mitsubishi, Mitsubishi_Data.Code, false); + Mitsubishi_Data.State = RemoteDetectionState.HeaderPulse; + Mitsubishi_Data.HalfBit = 0; + ignored = false; + } + + break; + #endregion Data + + } + + if (ignored && (Mitsubishi_Data.State != RemoteDetectionState.HeaderPulse)) + { + //Trace.WriteLine("ignored"); + Mitsubishi_Data.State = RemoteDetectionState.HeaderPulse; + } + } + } + static void DetectNEC(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + //Trace.WriteLine(String.Format("NEC - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), NEC_Data.State), timingData[i])); + + switch (NEC_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + if (pulse && IsBetween(duration, 8800, 9200)) + { + NEC_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + + break; + #endregion HeaderPulse + + #region HeaderS... [truncated message content] |
From: <an...@us...> - 2007-12-12 07:00:28
|
Revision: 1148 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1148&view=rev Author: and-81 Date: 2007-12-11 23:00:19 -0800 (Tue, 11 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/Util Apps/TestClient/TestClient.csproj trunk/plugins/IR Server Suite/Util Apps/TestServer/TestServer.csproj Property Changed: ---------------- trunk/plugins/IR Server Suite/Util Apps/IR File Tool/ trunk/plugins/IR Server Suite/Util Apps/MacroConverter/ trunk/plugins/IR Server Suite/Util Apps/SageSetup/ trunk/plugins/IR Server Suite/Util Apps/TestClient/ trunk/plugins/IR Server Suite/Util Apps/TestServer/ Modified: trunk/plugins/IR Server Suite/IR Server Suite.sln =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite.sln 2007-12-12 06:23:22 UTC (rev 1147) +++ trunk/plugins/IR Server Suite/IR Server Suite.sln 2007-12-12 07:00:19 UTC (rev 1148) @@ -175,18 +175,6 @@ Release.AspNetCompiler.Debug = "False" EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sage Setup", "Applications\SageSetup\Sage Setup.csproj", "{905131F8-F8AC-4A65-A722-37783902D7B8}" - ProjectSection(WebsiteProperties) = preProject - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.Debug = "False" - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IR File Tool", "Applications\IR File Tool\IR File Tool.csproj", "{B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}" - ProjectSection(WebsiteProperties) = preProject - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.Debug = "False" - EndProjectSection -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HCW Transceiver", "IR Server Plugins\HCW Transceiver\HCW Transceiver.csproj", "{EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}" ProjectSection(WebsiteProperties) = preProject Debug.AspNetCompiler.Debug = "True" @@ -270,174 +258,377 @@ Debug.AspNetCompiler.Debug = "True" Release.AspNetCompiler.Debug = "False" EndProjectSection - ProjectSection(SolutionItems) = preProject - Util Apps\MacroConverter\MacroConverter.csproj = Util Apps\MacroConverter\MacroConverter.csproj - Util Apps\TestClient\TestClient.csproj = Util Apps\TestClient\TestClient.csproj - Util Apps\TestServer\TestServer.csproj = Util Apps\TestServer\TestServer.csproj +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IR File Tool", "Util Apps\IR File Tool\IR File Tool.csproj", "{B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}" + ProjectSection(WebsiteProperties) = preProject + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.Debug = "False" EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MacroConverter", "Util Apps\MacroConverter\MacroConverter.csproj", "{6BF20ECD-A459-42B6-AFFE-6CA8CD308AC6}" + ProjectSection(WebsiteProperties) = preProject + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.Debug = "False" + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sage Setup", "Util Apps\SageSetup\Sage Setup.csproj", "{905131F8-F8AC-4A65-A722-37783902D7B8}" + ProjectSection(WebsiteProperties) = preProject + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.Debug = "False" + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestClient", "Util Apps\TestClient\TestClient.csproj", "{DDB52A4D-A670-411A-8273-8B1707C67028}" + ProjectSection(WebsiteProperties) = preProject + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.Debug = "False" + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestServer", "Util Apps\TestServer\TestServer.csproj", "{327F54E5-D1DC-4297-BF2F-4283EB30FFB1}" + ProjectSection(WebsiteProperties) = preProject + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.Debug = "False" + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Debug|x86.ActiveCfg = Debug|x86 + {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Debug|x86.Build.0 = Debug|x86 {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Release|Any CPU.ActiveCfg = Release|Any CPU {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Release|Any CPU.Build.0 = Release|Any CPU + {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Release|x86.ActiveCfg = Release|x86 + {D2A1F8D6-A9D3-4BFA-913B-8806642BD0DA}.Release|x86.Build.0 = Release|x86 {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Debug|x86.ActiveCfg = Debug|x86 + {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Debug|x86.Build.0 = Debug|x86 {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Release|Any CPU.ActiveCfg = Release|Any CPU {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Release|Any CPU.Build.0 = Release|Any CPU + {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Release|x86.ActiveCfg = Release|x86 + {0C894165-4BE8-4CF7-8F92-2B6DF68EB43A}.Release|x86.Build.0 = Release|x86 {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Debug|x86.ActiveCfg = Debug|x86 + {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Debug|x86.Build.0 = Debug|x86 {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Release|Any CPU.ActiveCfg = Release|Any CPU {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Release|Any CPU.Build.0 = Release|Any CPU + {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Release|x86.ActiveCfg = Release|x86 + {4CD051F4-F2B5-47B3-8647-F47C2E4DC131}.Release|x86.Build.0 = Release|x86 {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Debug|x86.ActiveCfg = Debug|x86 + {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Debug|x86.Build.0 = Debug|x86 {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Release|Any CPU.ActiveCfg = Release|Any CPU {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Release|Any CPU.Build.0 = Release|Any CPU + {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Release|x86.ActiveCfg = Release|x86 + {A8B8B9C6-9E88-486B-AE9C-F2D945ED05A6}.Release|x86.Build.0 = Release|x86 {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Debug|x86.ActiveCfg = Debug|x86 + {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Debug|x86.Build.0 = Debug|x86 {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Release|Any CPU.ActiveCfg = Release|Any CPU {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Release|Any CPU.Build.0 = Release|Any CPU + {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Release|x86.ActiveCfg = Release|x86 + {46C08F6B-F3C8-461B-9B6F-3BFD4AAAFD63}.Release|x86.Build.0 = Release|x86 {D871AB9A-71B3-4D63-8320-084BAD75064E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D871AB9A-71B3-4D63-8320-084BAD75064E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D871AB9A-71B3-4D63-8320-084BAD75064E}.Debug|x86.ActiveCfg = Debug|x86 + {D871AB9A-71B3-4D63-8320-084BAD75064E}.Debug|x86.Build.0 = Debug|x86 {D871AB9A-71B3-4D63-8320-084BAD75064E}.Release|Any CPU.ActiveCfg = Release|Any CPU {D871AB9A-71B3-4D63-8320-084BAD75064E}.Release|Any CPU.Build.0 = Release|Any CPU + {D871AB9A-71B3-4D63-8320-084BAD75064E}.Release|x86.ActiveCfg = Release|x86 + {D871AB9A-71B3-4D63-8320-084BAD75064E}.Release|x86.Build.0 = Release|x86 {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Debug|x86.ActiveCfg = Debug|x86 + {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Debug|x86.Build.0 = Debug|x86 {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Release|Any CPU.ActiveCfg = Release|Any CPU {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Release|Any CPU.Build.0 = Release|Any CPU + {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Release|x86.ActiveCfg = Release|x86 + {E8BEBBCC-1EE0-488D-8806-98ADCB7F0479}.Release|x86.Build.0 = Release|x86 {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Debug|x86.ActiveCfg = Debug|x86 + {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Debug|x86.Build.0 = Debug|x86 {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Release|Any CPU.ActiveCfg = Release|Any CPU {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Release|Any CPU.Build.0 = Release|Any CPU + {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Release|x86.ActiveCfg = Release|x86 + {7946D42A-4BCB-4D79-80EB-BA9B17CE2E90}.Release|x86.Build.0 = Release|x86 {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Debug|x86.ActiveCfg = Debug|x86 + {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Debug|x86.Build.0 = Debug|x86 {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Release|Any CPU.ActiveCfg = Release|Any CPU {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Release|Any CPU.Build.0 = Release|Any CPU + {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Release|x86.ActiveCfg = Release|x86 + {CD395FC2-70E2-42C4-8A20-5469A0C5EB50}.Release|x86.Build.0 = Release|x86 {7C686499-7517-4338-8837-7E8617549D9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7C686499-7517-4338-8837-7E8617549D9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C686499-7517-4338-8837-7E8617549D9A}.Debug|x86.ActiveCfg = Debug|x86 + {7C686499-7517-4338-8837-7E8617549D9A}.Debug|x86.Build.0 = Debug|x86 {7C686499-7517-4338-8837-7E8617549D9A}.Release|Any CPU.ActiveCfg = Release|Any CPU {7C686499-7517-4338-8837-7E8617549D9A}.Release|Any CPU.Build.0 = Release|Any CPU + {7C686499-7517-4338-8837-7E8617549D9A}.Release|x86.ActiveCfg = Release|x86 + {7C686499-7517-4338-8837-7E8617549D9A}.Release|x86.Build.0 = Release|x86 {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Debug|x86.ActiveCfg = Debug|x86 + {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Debug|x86.Build.0 = Debug|x86 {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Release|Any CPU.ActiveCfg = Release|Any CPU {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Release|Any CPU.Build.0 = Release|Any CPU + {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Release|x86.ActiveCfg = Release|x86 + {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9}.Release|x86.Build.0 = Release|x86 {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Debug|x86.ActiveCfg = Debug|x86 + {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Debug|x86.Build.0 = Debug|x86 {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Release|Any CPU.ActiveCfg = Release|Any CPU {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Release|Any CPU.Build.0 = Release|Any CPU + {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Release|x86.ActiveCfg = Release|x86 + {99B5CA78-3E0B-477F-A7D3-EE1B65E85DE4}.Release|x86.Build.0 = Release|x86 {4CBA81F9-F0C2-4242-8D72-204597285042}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4CBA81F9-F0C2-4242-8D72-204597285042}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CBA81F9-F0C2-4242-8D72-204597285042}.Debug|x86.ActiveCfg = Debug|x86 + {4CBA81F9-F0C2-4242-8D72-204597285042}.Debug|x86.Build.0 = Debug|x86 {4CBA81F9-F0C2-4242-8D72-204597285042}.Release|Any CPU.ActiveCfg = Release|Any CPU {4CBA81F9-F0C2-4242-8D72-204597285042}.Release|Any CPU.Build.0 = Release|Any CPU + {4CBA81F9-F0C2-4242-8D72-204597285042}.Release|x86.ActiveCfg = Release|x86 + {4CBA81F9-F0C2-4242-8D72-204597285042}.Release|x86.Build.0 = Release|x86 {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Debug|x86.ActiveCfg = Debug|x86 + {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Debug|x86.Build.0 = Debug|x86 {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Release|Any CPU.ActiveCfg = Release|Any CPU {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Release|Any CPU.Build.0 = Release|Any CPU + {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Release|x86.ActiveCfg = Release|x86 + {2B9C6BE9-98D0-4D69-B041-57EE5D2DFB97}.Release|x86.Build.0 = Release|x86 {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Debug|x86.ActiveCfg = Debug|x86 + {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Debug|x86.Build.0 = Debug|x86 {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Release|Any CPU.ActiveCfg = Release|Any CPU {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Release|Any CPU.Build.0 = Release|Any CPU + {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Release|x86.ActiveCfg = Release|x86 + {907DCA39-A5E0-4EFA-B1F6-5FBE2C1BCD25}.Release|x86.Build.0 = Release|x86 {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Debug|x86.ActiveCfg = Debug|x86 + {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Debug|x86.Build.0 = Debug|x86 {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Release|Any CPU.ActiveCfg = Release|Any CPU {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Release|Any CPU.Build.0 = Release|Any CPU + {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Release|x86.ActiveCfg = Release|x86 + {883913F6-F4A7-4DE2-846A-C2102FAF499E}.Release|x86.Build.0 = Release|x86 {253FFB14-AB8E-49AB-A005-A42428C3F452}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {253FFB14-AB8E-49AB-A005-A42428C3F452}.Debug|Any CPU.Build.0 = Debug|Any CPU + {253FFB14-AB8E-49AB-A005-A42428C3F452}.Debug|x86.ActiveCfg = Debug|x86 + {253FFB14-AB8E-49AB-A005-A42428C3F452}.Debug|x86.Build.0 = Debug|x86 {253FFB14-AB8E-49AB-A005-A42428C3F452}.Release|Any CPU.ActiveCfg = Release|Any CPU {253FFB14-AB8E-49AB-A005-A42428C3F452}.Release|Any CPU.Build.0 = Release|Any CPU + {253FFB14-AB8E-49AB-A005-A42428C3F452}.Release|x86.ActiveCfg = Release|x86 + {253FFB14-AB8E-49AB-A005-A42428C3F452}.Release|x86.Build.0 = Release|x86 {9FDD649E-0502-4FED-9AC1-AA0346394375}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9FDD649E-0502-4FED-9AC1-AA0346394375}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9FDD649E-0502-4FED-9AC1-AA0346394375}.Debug|x86.ActiveCfg = Debug|x86 + {9FDD649E-0502-4FED-9AC1-AA0346394375}.Debug|x86.Build.0 = Debug|x86 {9FDD649E-0502-4FED-9AC1-AA0346394375}.Release|Any CPU.ActiveCfg = Release|Any CPU {9FDD649E-0502-4FED-9AC1-AA0346394375}.Release|Any CPU.Build.0 = Release|Any CPU + {9FDD649E-0502-4FED-9AC1-AA0346394375}.Release|x86.ActiveCfg = Release|x86 + {9FDD649E-0502-4FED-9AC1-AA0346394375}.Release|x86.Build.0 = Release|x86 {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Debug|x86.ActiveCfg = Debug|x86 + {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Debug|x86.Build.0 = Debug|x86 {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Release|Any CPU.ActiveCfg = Release|Any CPU {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Release|Any CPU.Build.0 = Release|Any CPU + {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Release|x86.ActiveCfg = Release|x86 + {CA15769C-232E-4CA7-94FD-206A06CA3ABB}.Release|x86.Build.0 = Release|x86 {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Debug|x86.ActiveCfg = Debug|x86 + {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Debug|x86.Build.0 = Debug|x86 {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Release|Any CPU.ActiveCfg = Release|Any CPU {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Release|Any CPU.Build.0 = Release|Any CPU + {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Release|x86.ActiveCfg = Release|x86 + {08F57DD7-2C6E-484E-9CC5-835F70C5BC64}.Release|x86.Build.0 = Release|x86 {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Debug|x86.ActiveCfg = Debug|x86 + {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Debug|x86.Build.0 = Debug|x86 {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Release|Any CPU.ActiveCfg = Release|Any CPU {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Release|Any CPU.Build.0 = Release|Any CPU + {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Release|x86.ActiveCfg = Release|x86 + {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}.Release|x86.Build.0 = Release|x86 {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Debug|x86.ActiveCfg = Debug|x86 + {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Debug|x86.Build.0 = Debug|x86 {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Release|Any CPU.ActiveCfg = Release|Any CPU {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Release|Any CPU.Build.0 = Release|Any CPU + {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Release|x86.ActiveCfg = Release|x86 + {0F6576B4-C88E-4E79-B7E9-9480498C5A32}.Release|x86.Build.0 = Release|x86 {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Debug|x86.ActiveCfg = Debug|x86 + {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Debug|x86.Build.0 = Debug|x86 {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Release|Any CPU.ActiveCfg = Release|Any CPU {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Release|Any CPU.Build.0 = Release|Any CPU + {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Release|x86.ActiveCfg = Release|x86 + {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB}.Release|x86.Build.0 = Release|x86 {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Debug|Any CPU.Build.0 = Debug|Any CPU + {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Debug|x86.ActiveCfg = Debug|x86 + {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Debug|x86.Build.0 = Debug|x86 {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Release|Any CPU.ActiveCfg = Release|Any CPU {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Release|Any CPU.Build.0 = Release|Any CPU + {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Release|x86.ActiveCfg = Release|x86 + {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932}.Release|x86.Build.0 = Release|x86 {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Debug|x86.ActiveCfg = Debug|x86 + {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Debug|x86.Build.0 = Debug|x86 {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Release|Any CPU.ActiveCfg = Release|Any CPU {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Release|Any CPU.Build.0 = Release|Any CPU - {905131F8-F8AC-4A65-A722-37783902D7B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {905131F8-F8AC-4A65-A722-37783902D7B8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {905131F8-F8AC-4A65-A722-37783902D7B8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {905131F8-F8AC-4A65-A722-37783902D7B8}.Release|Any CPU.Build.0 = Release|Any CPU - {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Release|Any CPU.Build.0 = Release|Any CPU + {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Release|x86.ActiveCfg = Release|x86 + {BCAFDF45-70DD-46FD-8B98-880DDA585AD2}.Release|x86.Build.0 = Release|x86 {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Debug|x86.ActiveCfg = Debug|x86 + {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Debug|x86.Build.0 = Debug|x86 {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Release|Any CPU.ActiveCfg = Release|Any CPU {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Release|Any CPU.Build.0 = Release|Any CPU + {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Release|x86.ActiveCfg = Release|x86 + {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}.Release|x86.Build.0 = Release|x86 {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Debug|x86.ActiveCfg = Debug|x86 + {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Debug|x86.Build.0 = Debug|x86 {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Release|Any CPU.ActiveCfg = Release|Any CPU {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Release|Any CPU.Build.0 = Release|Any CPU + {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Release|x86.ActiveCfg = Release|x86 + {E6A68244-8C31-44A9-9F85-B4A102B5F209}.Release|x86.Build.0 = Release|x86 {0C291BE9-5D15-4097-9119-4FFE19C23113}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0C291BE9-5D15-4097-9119-4FFE19C23113}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C291BE9-5D15-4097-9119-4FFE19C23113}.Debug|x86.ActiveCfg = Debug|x86 + {0C291BE9-5D15-4097-9119-4FFE19C23113}.Debug|x86.Build.0 = Debug|x86 {0C291BE9-5D15-4097-9119-4FFE19C23113}.Release|Any CPU.ActiveCfg = Release|Any CPU {0C291BE9-5D15-4097-9119-4FFE19C23113}.Release|Any CPU.Build.0 = Release|Any CPU + {0C291BE9-5D15-4097-9119-4FFE19C23113}.Release|x86.ActiveCfg = Release|x86 + {0C291BE9-5D15-4097-9119-4FFE19C23113}.Release|x86.Build.0 = Release|x86 {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Debug|x86.ActiveCfg = Debug|x86 + {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Debug|x86.Build.0 = Debug|x86 {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Release|Any CPU.ActiveCfg = Release|Any CPU {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Release|Any CPU.Build.0 = Release|Any CPU + {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Release|x86.ActiveCfg = Release|x86 + {B45E87BC-AC5A-4923-A911-79C95DCC5602}.Release|x86.Build.0 = Release|x86 {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Debug|x86.ActiveCfg = Debug|x86 + {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Debug|x86.Build.0 = Debug|x86 {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Release|Any CPU.ActiveCfg = Release|Any CPU {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Release|Any CPU.Build.0 = Release|Any CPU + {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Release|x86.ActiveCfg = Release|x86 + {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E}.Release|x86.Build.0 = Release|x86 {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Debug|x86.ActiveCfg = Debug|x86 + {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Debug|x86.Build.0 = Debug|x86 {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Release|Any CPU.ActiveCfg = Release|Any CPU {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Release|Any CPU.Build.0 = Release|Any CPU + {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Release|x86.ActiveCfg = Release|x86 + {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA}.Release|x86.Build.0 = Release|x86 {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Debug|x86.ActiveCfg = Debug|x86 + {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Debug|x86.Build.0 = Debug|x86 {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Release|Any CPU.ActiveCfg = Release|Any CPU {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Release|Any CPU.Build.0 = Release|Any CPU + {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Release|x86.ActiveCfg = Release|x86 + {DC79E2EC-7D1B-4359-A285-38AC8154166B}.Release|x86.Build.0 = Release|x86 {A4023992-CCD6-461E-8E14-219A496734C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A4023992-CCD6-461E-8E14-219A496734C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4023992-CCD6-461E-8E14-219A496734C5}.Debug|x86.ActiveCfg = Debug|x86 + {A4023992-CCD6-461E-8E14-219A496734C5}.Debug|x86.Build.0 = Debug|x86 {A4023992-CCD6-461E-8E14-219A496734C5}.Release|Any CPU.ActiveCfg = Release|Any CPU {A4023992-CCD6-461E-8E14-219A496734C5}.Release|Any CPU.Build.0 = Release|Any CPU + {A4023992-CCD6-461E-8E14-219A496734C5}.Release|x86.ActiveCfg = Release|x86 + {A4023992-CCD6-461E-8E14-219A496734C5}.Release|x86.Build.0 = Release|x86 {5A9954F8-344C-489C-B8DA-8E8927271A02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5A9954F8-344C-489C-B8DA-8E8927271A02}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A9954F8-344C-489C-B8DA-8E8927271A02}.Debug|x86.ActiveCfg = Debug|x86 + {5A9954F8-344C-489C-B8DA-8E8927271A02}.Debug|x86.Build.0 = Debug|x86 {5A9954F8-344C-489C-B8DA-8E8927271A02}.Release|Any CPU.ActiveCfg = Release|Any CPU {5A9954F8-344C-489C-B8DA-8E8927271A02}.Release|Any CPU.Build.0 = Release|Any CPU + {5A9954F8-344C-489C-B8DA-8E8927271A02}.Release|x86.ActiveCfg = Release|x86 + {5A9954F8-344C-489C-B8DA-8E8927271A02}.Release|x86.Build.0 = Release|x86 {CCDBA239-8E8E-4F5F-A098-7132EED5F160}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CCDBA239-8E8E-4F5F-A098-7132EED5F160}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CCDBA239-8E8E-4F5F-A098-7132EED5F160}.Debug|x86.ActiveCfg = Debug|Any CPU {CCDBA239-8E8E-4F5F-A098-7132EED5F160}.Release|Any CPU.ActiveCfg = Release|Any CPU {CCDBA239-8E8E-4F5F-A098-7132EED5F160}.Release|Any CPU.Build.0 = Release|Any CPU + {CCDBA239-8E8E-4F5F-A098-7132EED5F160}.Release|x86.ActiveCfg = Release|Any CPU {A50080F4-53D1-41CC-9C5F-500AFDDE9E8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A50080F4-53D1-41CC-9C5F-500AFDDE9E8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A50080F4-53D1-41CC-9C5F-500AFDDE9E8B}.Debug|x86.ActiveCfg = Debug|x86 + {A50080F4-53D1-41CC-9C5F-500AFDDE9E8B}.Debug|x86.Build.0 = Debug|x86 {A50080F4-53D1-41CC-9C5F-500AFDDE9E8B}.Release|Any CPU.ActiveCfg = Release|Any CPU {A50080F4-53D1-41CC-9C5F-500AFDDE9E8B}.Release|Any CPU.Build.0 = Release|Any CPU + {A50080F4-53D1-41CC-9C5F-500AFDDE9E8B}.Release|x86.ActiveCfg = Release|x86 + {A50080F4-53D1-41CC-9C5F-500AFDDE9E8B}.Release|x86.Build.0 = Release|x86 {37A555DF-7012-4B99-8A47-1C922A361E52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {37A555DF-7012-4B99-8A47-1C922A361E52}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37A555DF-7012-4B99-8A47-1C922A361E52}.Debug|x86.ActiveCfg = Debug|x86 + {37A555DF-7012-4B99-8A47-1C922A361E52}.Debug|x86.Build.0 = Debug|x86 {37A555DF-7012-4B99-8A47-1C922A361E52}.Release|Any CPU.ActiveCfg = Release|Any CPU {37A555DF-7012-4B99-8A47-1C922A361E52}.Release|Any CPU.Build.0 = Release|Any CPU + {37A555DF-7012-4B99-8A47-1C922A361E52}.Release|x86.ActiveCfg = Release|x86 + {37A555DF-7012-4B99-8A47-1C922A361E52}.Release|x86.Build.0 = Release|x86 + {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Debug|x86.ActiveCfg = Debug|x86 + {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Debug|x86.Build.0 = Debug|x86 + {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Release|Any CPU.Build.0 = Release|Any CPU + {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Release|x86.ActiveCfg = Release|x86 + {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D}.Release|x86.Build.0 = Release|x86 + {6BF20ECD-A459-42B6-AFFE-6CA8CD308AC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6BF20ECD-A459-42B6-AFFE-6CA8CD308AC6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6BF20ECD-A459-42B6-AFFE-6CA8CD308AC6}.Debug|x86.ActiveCfg = Debug|Any CPU + {6BF20ECD-A459-42B6-AFFE-6CA8CD308AC6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6BF20ECD-A459-42B6-AFFE-6CA8CD308AC6}.Release|Any CPU.Build.0 = Release|Any CPU + {6BF20ECD-A459-42B6-AFFE-6CA8CD308AC6}.Release|x86.ActiveCfg = Release|Any CPU + {905131F8-F8AC-4A65-A722-37783902D7B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {905131F8-F8AC-4A65-A722-37783902D7B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {905131F8-F8AC-4A65-A722-37783902D7B8}.Debug|x86.ActiveCfg = Debug|x86 + {905131F8-F8AC-4A65-A722-37783902D7B8}.Debug|x86.Build.0 = Debug|x86 + {905131F8-F8AC-4A65-A722-37783902D7B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {905131F8-F8AC-4A65-A722-37783902D7B8}.Release|Any CPU.Build.0 = Release|Any CPU + {905131F8-F8AC-4A65-A722-37783902D7B8}.Release|x86.ActiveCfg = Release|x86 + {905131F8-F8AC-4A65-A722-37783902D7B8}.Release|x86.Build.0 = Release|x86 + {DDB52A4D-A670-411A-8273-8B1707C67028}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDB52A4D-A670-411A-8273-8B1707C67028}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDB52A4D-A670-411A-8273-8B1707C67028}.Debug|x86.ActiveCfg = Debug|x86 + {DDB52A4D-A670-411A-8273-8B1707C67028}.Debug|x86.Build.0 = Debug|x86 + {DDB52A4D-A670-411A-8273-8B1707C67028}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDB52A4D-A670-411A-8273-8B1707C67028}.Release|Any CPU.Build.0 = Release|Any CPU + {DDB52A4D-A670-411A-8273-8B1707C67028}.Release|x86.ActiveCfg = Release|x86 + {DDB52A4D-A670-411A-8273-8B1707C67028}.Release|x86.Build.0 = Release|x86 + {327F54E5-D1DC-4297-BF2F-4283EB30FFB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {327F54E5-D1DC-4297-BF2F-4283EB30FFB1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {327F54E5-D1DC-4297-BF2F-4283EB30FFB1}.Debug|x86.ActiveCfg = Debug|x86 + {327F54E5-D1DC-4297-BF2F-4283EB30FFB1}.Debug|x86.Build.0 = Debug|x86 + {327F54E5-D1DC-4297-BF2F-4283EB30FFB1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {327F54E5-D1DC-4297-BF2F-4283EB30FFB1}.Release|Any CPU.Build.0 = Release|Any CPU + {327F54E5-D1DC-4297-BF2F-4283EB30FFB1}.Release|x86.ActiveCfg = Release|x86 + {327F54E5-D1DC-4297-BF2F-4283EB30FFB1}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -451,8 +642,6 @@ {D871AB9A-71B3-4D63-8320-084BAD75064E} = {0C209E91-5AD5-4662-AD0E-976A940D4806} {C6B0CF12-01D3-439A-9FB4-DEFD5B32F6FB} = {0C209E91-5AD5-4662-AD0E-976A940D4806} {54E0E8FA-09C3-4755-B9CE-E7E5DDA3E932} = {0C209E91-5AD5-4662-AD0E-976A940D4806} - {905131F8-F8AC-4A65-A722-37783902D7B8} = {0C209E91-5AD5-4662-AD0E-976A940D4806} - {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D} = {0C209E91-5AD5-4662-AD0E-976A940D4806} {CCDBA239-8E8E-4F5F-A098-7132EED5F160} = {0C209E91-5AD5-4662-AD0E-976A940D4806} {7C686499-7517-4338-8837-7E8617549D9A} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} {BABC30EB-7D0F-4398-9FCB-E517EA8D2AA9} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} @@ -481,5 +670,10 @@ {BCAFDF45-70DD-46FD-8B98-880DDA585AD2} = {E757F80C-23C5-4AD6-B178-16799E337E03} {8ADDE1CB-2D23-4AB1-88B1-A241C60C16BA} = {DEE5AAD1-0110-4681-8FF9-662CEA72FD94} {DC79E2EC-7D1B-4359-A285-38AC8154166B} = {DEE5AAD1-0110-4681-8FF9-662CEA72FD94} + {B5E711A2-E6D0-4BEA-B66B-7A8B0BCA6A4D} = {D4CDABD0-B82E-4DEE-A2A8-A2A52774FC2F} + {6BF20ECD-A459-42B6-AFFE-6CA8CD308AC6} = {D4CDABD0-B82E-4DEE-A2A8-A2A52774FC2F} + {905131F8-F8AC-4A65-A722-37783902D7B8} = {D4CDABD0-B82E-4DEE-A2A8-A2A52774FC2F} + {DDB52A4D-A670-411A-8273-8B1707C67028} = {D4CDABD0-B82E-4DEE-A2A8-A2A52774FC2F} + {327F54E5-D1DC-4297-BF2F-4283EB30FFB1} = {D4CDABD0-B82E-4DEE-A2A8-A2A52774FC2F} EndGlobalSection EndGlobal Property changes on: trunk/plugins/IR Server Suite/Util Apps/IR File Tool ___________________________________________________________________ Name: svn:ignore + bin obj Property changes on: trunk/plugins/IR Server Suite/Util Apps/MacroConverter ___________________________________________________________________ Name: svn:ignore + bin obj Property changes on: trunk/plugins/IR Server Suite/Util Apps/SageSetup ___________________________________________________________________ Name: svn:ignore + bin obj Property changes on: trunk/plugins/IR Server Suite/Util Apps/TestClient ___________________________________________________________________ Name: svn:ignore + bin obj Modified: trunk/plugins/IR Server Suite/Util Apps/TestClient/TestClient.csproj =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/TestClient/TestClient.csproj 2007-12-12 06:23:22 UTC (rev 1147) +++ trunk/plugins/IR Server Suite/Util Apps/TestClient/TestClient.csproj 2007-12-12 07:00:19 UTC (rev 1148) @@ -56,7 +56,7 @@ <Compile Include="Properties\AssemblyInfo.cs" /> </ItemGroup> <ItemGroup> - <ProjectReference Include="..\Common\IrssComms\IrssComms.csproj"> + <ProjectReference Include="..\..\Common\IrssComms\IrssComms.csproj"> <Project>{BCAFDF45-70DD-46FD-8B98-880DDA585AD2}</Project> <Name>IrssComms</Name> </ProjectReference> Property changes on: trunk/plugins/IR Server Suite/Util Apps/TestServer ___________________________________________________________________ Name: svn:ignore + bin obj Modified: trunk/plugins/IR Server Suite/Util Apps/TestServer/TestServer.csproj =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/TestServer/TestServer.csproj 2007-12-12 06:23:22 UTC (rev 1147) +++ trunk/plugins/IR Server Suite/Util Apps/TestServer/TestServer.csproj 2007-12-12 07:00:19 UTC (rev 1148) @@ -54,7 +54,7 @@ <Compile Include="Properties\AssemblyInfo.cs" /> </ItemGroup> <ItemGroup> - <ProjectReference Include="..\Common\IrssComms\IrssComms.csproj"> + <ProjectReference Include="..\..\Common\IrssComms\IrssComms.csproj"> <Project>{BCAFDF45-70DD-46FD-8B98-880DDA585AD2}</Project> <Name>IrssComms</Name> </ProjectReference> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2007-12-13 05:23:19
|
Revision: 1150 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1150&view=rev Author: and-81 Date: 2007-12-12 21:23:17 -0800 (Wed, 12 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IrDecoder.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrDecoder.cs Modified: trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IrDecoder.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IrDecoder.cs 2007-12-12 13:40:28 UTC (rev 1149) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IrDecoder.cs 2007-12-13 05:23:17 UTC (rev 1150) @@ -1158,7 +1158,7 @@ { RC6_Data.State = RemoteDetectionState.HeaderSpace; RC6_Data.Header = 0x000FC000; - RC6_Data.Bit = 14; + RC6_Data.Bit = 12; RC6_Data.HalfBit = 0; RC6_Data.Code = 0; RC6_Data.LongPulse = false; @@ -1174,7 +1174,6 @@ if (!pulse && IsBetween(duration, 750, 1000)) { RC6_Data.State = RemoteDetectionState.PreData; - RC6_Data.Bit -= 2; ignored = false; } break; @@ -1233,7 +1232,6 @@ else { RC6_Data.HalfBit = 1; - //RC6_Data.LongPulse = true; RC6_Data.LongSpace = true; RC6_Data.Bit = 0; RC6_Data.Toggle |= 1; @@ -1247,10 +1245,10 @@ { RC6_Data.Bit = 16; } - else if (RC6_Data.Header == PrefixRC6Foxtel) - { - RC6_Data.Bit = 20; - } + //else if (RC6_Data.Header == PrefixRC6Foxtel) + //{ + //RC6_Data.Bit = 20; + //} else if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) { RC6_Data.Bit = 32; @@ -1378,9 +1376,10 @@ else RC6_Data.Toggle = 4; - if (RC6_Data.Header == PrefixRC6Foxtel) - protocolVariation = IrProtocol.RC6_Foxtel; - else if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) + //if (RC6_Data.Header == PrefixRC6Foxtel) + //protocolVariation = IrProtocol.RC6_Foxtel; + //else + if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) protocolVariation = IrProtocol.RC6A; } Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs 2007-12-12 13:40:28 UTC (rev 1149) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs 2007-12-13 05:23:17 UTC (rev 1150) @@ -871,51 +871,67 @@ /// <returns>Timing data.</returns> static int[] GetTimingDataFromPacket(byte[] packet) { - List<int> timingData = new List<int>(); - - int len = 0; - - for (int index = 0; index < packet.Length; ) + // TODO: Remove this try/catch block once the IndexOutOfRangeException is corrected... +#if DEBUG + try +#endif { - byte curByte = packet[index]; + List<int> timingData = new List<int>(); - if (curByte == 0x9F) - break; + int len = 0; - if (curByte < 0x81 || curByte > 0x8F) - return null; - - int bytes = curByte & 0x7F; - int j; - - for (j = index + 1; j < index + bytes + 1; j++) + for (int index = 0; index < packet.Length; ) { - curByte = packet[j]; + byte curByte = packet[index]; - if ((curByte & 0x80) != 0) - len += (int)(curByte & 0x7F); - else - len -= (int)curByte; + if (curByte == 0x9F) + break; - if ((curByte & 0x7F) != 0x7F) + if (curByte < 0x81 || curByte > 0x8F) + return null; + + int bytes = curByte & 0x7F; + int j; + + for (j = index + 1; j < index + bytes + 1; j++) { - timingData.Add(len * 50); - len = 0; + curByte = packet[j]; + + if ((curByte & 0x80) != 0) + len += (int)(curByte & 0x7F); + else + len -= (int)curByte; + + if ((curByte & 0x7F) != 0x7F) + { + timingData.Add(len * 50); + len = 0; + } } + + index = j; } - index = j; - } + if (len != 0) + timingData.Add(len * 50); - if (len != 0) - timingData.Add(len * 50); +#if DEBUG + DebugWriteLine("Received:"); + DebugDump(timingData.ToArray()); +#endif + return timingData.ToArray(); + } #if DEBUG - DebugWriteLine("Received:"); - DebugDump(timingData.ToArray()); + catch (IndexOutOfRangeException ex) + { + DebugWriteLine(ex.ToString()); + DebugWriteLine("Method Input:"); + DebugDump(packet); + + throw; + } #endif - - return timingData.ToArray(); } /// <summary> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs 2007-12-12 13:40:28 UTC (rev 1149) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs 2007-12-13 05:23:17 UTC (rev 1150) @@ -1158,7 +1158,7 @@ { RC6_Data.State = RemoteDetectionState.HeaderSpace; RC6_Data.Header = 0x000FC000; - RC6_Data.Bit = 14; + RC6_Data.Bit = 12; RC6_Data.HalfBit = 0; RC6_Data.Code = 0; RC6_Data.LongPulse = false; @@ -1174,7 +1174,6 @@ if (!pulse && IsBetween(duration, 750, 1000)) { RC6_Data.State = RemoteDetectionState.PreData; - RC6_Data.Bit -= 2; ignored = false; } break; @@ -1233,7 +1232,6 @@ else { RC6_Data.HalfBit = 1; - //RC6_Data.LongPulse = true; RC6_Data.LongSpace = true; RC6_Data.Bit = 0; RC6_Data.Toggle |= 1; @@ -1247,10 +1245,10 @@ { RC6_Data.Bit = 16; } - else if (RC6_Data.Header == PrefixRC6Foxtel) - { - RC6_Data.Bit = 20; - } + //else if (RC6_Data.Header == PrefixRC6Foxtel) + //{ + //RC6_Data.Bit = 20; + //} else if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) { RC6_Data.Bit = 32; @@ -1378,9 +1376,10 @@ else RC6_Data.Toggle = 4; - if (RC6_Data.Header == PrefixRC6Foxtel) - protocolVariation = IrProtocol.RC6_Foxtel; - else if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) + //if (RC6_Data.Header == PrefixRC6Foxtel) + //protocolVariation = IrProtocol.RC6_Foxtel; + //else + if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) protocolVariation = IrProtocol.RC6A; } Modified: trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrDecoder.cs =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrDecoder.cs 2007-12-12 13:40:28 UTC (rev 1149) +++ trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrDecoder.cs 2007-12-13 05:23:17 UTC (rev 1150) @@ -1147,7 +1147,7 @@ bool pulse = (timingData[i] > 0); bool ignored = true; - //Trace.WriteLine(String.Format("RC6 - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), RC6_Data.State), timingData[i])); + Trace.WriteLine(String.Format("RC6 - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), RC6_Data.State), timingData[i])); switch (RC6_Data.State) { @@ -1158,7 +1158,7 @@ { RC6_Data.State = RemoteDetectionState.HeaderSpace; RC6_Data.Header = 0x000FC000; - RC6_Data.Bit = 14; + RC6_Data.Bit = 12; RC6_Data.HalfBit = 0; RC6_Data.Code = 0; RC6_Data.LongPulse = false; @@ -1174,7 +1174,6 @@ if (!pulse && IsBetween(duration, 750, 1000)) { RC6_Data.State = RemoteDetectionState.PreData; - RC6_Data.Bit -= 2; ignored = false; } break; @@ -1233,7 +1232,6 @@ else { RC6_Data.HalfBit = 1; - //RC6_Data.LongPulse = true; RC6_Data.LongSpace = true; RC6_Data.Bit = 0; RC6_Data.Toggle |= 1; @@ -1247,10 +1245,10 @@ { RC6_Data.Bit = 16; } - else if (RC6_Data.Header == PrefixRC6Foxtel) - { - RC6_Data.Bit = 20; - } + //else if (RC6_Data.Header == PrefixRC6Foxtel) + //{ + //RC6_Data.Bit = 20; + //} else if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) { RC6_Data.Bit = 32; @@ -1378,9 +1376,10 @@ else RC6_Data.Toggle = 4; - if (RC6_Data.Header == PrefixRC6Foxtel) - protocolVariation = IrProtocol.RC6_Foxtel; - else if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) + //if (RC6_Data.Header == PrefixRC6Foxtel) + //protocolVariation = IrProtocol.RC6_Foxtel; + //else + if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) protocolVariation = IrProtocol.RC6A; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2007-12-13 14:45:43
|
Revision: 1154 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1154&view=rev Author: and-81 Date: 2007-12-13 06:45:39 -0800 (Thu, 13 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Audio.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Mouse.cs trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Program.cs trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrDecoder.cs Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-12-13 14:07:17 UTC (rev 1153) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-12-13 14:45:39 UTC (rev 1154) @@ -1162,7 +1162,7 @@ } else { - throw new ArgumentException(String.Format("Cannot process unrecognized command \"{0}\"", command), "command"); + throw new ArgumentException(String.Format("Cannot process unrecognized command \"{0}\"", command), "commandObj"); } } catch (Exception ex) @@ -1170,7 +1170,7 @@ if (Thread.CurrentThread.Name.Equals(ProcessCommandThreadName, StringComparison.OrdinalIgnoreCase)) IrssLog.Error(ex.ToString()); else - throw ex; + throw; } } Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs 2007-12-13 14:07:17 UTC (rev 1153) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs 2007-12-13 14:45:39 UTC (rev 1154) @@ -72,7 +72,7 @@ } } - void LoadSkinXml(string xmlFile) + static void LoadSkinXml(string xmlFile) { XmlDocument doc = new XmlDocument(); doc.Load(xmlFile); Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Audio.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Audio.cs 2007-12-13 14:07:17 UTC (rev 1153) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Audio.cs 2007-12-13 14:45:39 UTC (rev 1154) @@ -28,13 +28,13 @@ [DllImport("winmm.dll")] static extern uint waveOutGetVolume( - IntPtr hwo, - uint dwVolume); + IntPtr DeviceID, + out uint Volume); [DllImport("winmm.dll")] static extern int waveOutSetVolume( IntPtr DeviceID, - IntPtr Volume); + uint Volume); [DllImport("winmm.dll")] static extern Int32 mixerClose( @@ -132,7 +132,19 @@ { return Beep((uint)frequency, (uint)duration); } + /* + public static bool SetMainVolume(ushort volume) + { + return SetMainVolume(volume, volume); + } + public static bool SetMainVolume(ushort left, ushort right) + { + uint volume = (uint)((right << 16) & left); + + waveOutSetVolume(IntPtr.Zero, volume); + } + */ #endregion Implementation } Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.cs 2007-12-13 14:07:17 UTC (rev 1153) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.cs 2007-12-13 14:45:39 UTC (rev 1154) @@ -61,7 +61,7 @@ TextUpdate(); _timer = new Timer(); - _timer.Interval = 750; + _timer.Interval = 1000; _timer.Tick += new EventHandler(Flash); _timer.Enabled = true; _timer.Start(); Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Mouse.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Mouse.cs 2007-12-13 14:07:17 UTC (rev 1153) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Mouse.cs 2007-12-13 14:45:39 UTC (rev 1154) @@ -108,15 +108,10 @@ /// <param name="absolute">If true, dx and dy are taken as absolute position. If false, dx and dy are taken as relative to the current position.</param> public static void Move(int dx, int dy, bool absolute) { - //if (absolute) - //Cursor.Position = new Point(dx, dy); - //else - //Cursor.Position = new Point(Curson.Position.X + dx, Cursor.Position.Y + dy); - if (absolute) { - int x = dx * 65536 / Screen.PrimaryScreen.Bounds.Width; - int y = dy * 65536 / Screen.PrimaryScreen.Bounds.Height; + int x = (int)(dx * (65536.0 / Screen.PrimaryScreen.Bounds.Width)); + int y = (int)(dy * (65536.0 / Screen.PrimaryScreen.Bounds.Height)); mouse_event((int)(MouseEvents.Move | MouseEvents.Absolute), x, y, 0, IntPtr.Zero); } Modified: trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Program.cs 2007-12-13 14:07:17 UTC (rev 1153) +++ trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Program.cs 2007-12-13 14:45:39 UTC (rev 1154) @@ -21,20 +21,20 @@ /// <summary> /// Describes the operation mode of the Input Service. /// </summary> - public enum InputServiceMode + enum InputServiceMode { /// <summary> /// Acts as a standard Server (Default). /// </summary> - ServerMode = 0, + ServerMode = 0, /// <summary> /// Relays button presses to another Input Service. /// </summary> - RelayMode = 1, + RelayMode = 1, /// <summary> /// Acts as a repeater for another Input Service's blasting. /// </summary> - RepeaterMode = 2, + RepeaterMode = 2, } #endregion Enumerations Modified: trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrDecoder.cs =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrDecoder.cs 2007-12-13 14:07:17 UTC (rev 1153) +++ trunk/plugins/IR Server Suite/Util Apps/IR File Tool/IrDecoder.cs 2007-12-13 14:45:39 UTC (rev 1154) @@ -1292,6 +1292,8 @@ if (pulse) break; + Trace.WriteLine("LongPulse at Bit " + RC6_Data.Bit); + if (IsBetween(duration, 750, 1000)) { RC6_Data.Bit--; @@ -1313,6 +1315,8 @@ if (!pulse) break; + Trace.WriteLine("LongSpace at Bit " + RC6_Data.Bit); + if (RC6_Data.Bit == 32) RC6_Data.Bit = 24; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2007-12-14 03:55:13
|
Revision: 1156 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1156&view=rev Author: and-81 Date: 2007-12-13 19:55:11 -0800 (Thu, 13 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs trunk/plugins/IR Server Suite/Applications/Web Remote/Setup.cs trunk/plugins/IR Server Suite/Applications/Web Remote/Web Remote.csproj trunk/plugins/IR Server Suite/Applications/Web Remote/WebServer.cs trunk/plugins/IR Server Suite/Common/IrssComms/ClientManager.cs trunk/plugins/IR Server Suite/Common/IrssComms/GenericPCQueue.cs trunk/plugins/IR Server Suite/Common/IrssComms/IrssMessage.cs trunk/plugins/IR Server Suite/Common/IrssComms/Server.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MouseCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DeviceIoOverlapped.cs trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/ReceiverWindow.cs trunk/plugins/IR Server Suite/Input Service/Input Service/InputService.cs trunk/plugins/IR Server Suite/Input Service/Input Service/InputServiceInstaller.cs trunk/plugins/IR Server Suite/Input Service/Input Service/Program.cs trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Config.cs trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Input Service Configuration.exe.manifest trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Properties/AssemblyInfo.cs Modified: trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -25,12 +25,12 @@ static bool _registered; - static string _serverHost = null; + static string _serverHost; static string _blastPort = "Default"; - static bool _treatAsChannelNumber = false; - static int _padChannelNumber = 0; + static bool _treatAsChannelNumber; + static int _padChannelNumber; #endregion Variables @@ -73,7 +73,7 @@ continue; case "-PAD": - int.TryParse(args[++index], out _padChannelNumber); + _padChannelNumber = int.Parse(args[++index]); continue; default: @@ -141,7 +141,7 @@ } } } - else if (command.StartsWith("~")) + else if (command.StartsWith("~", StringComparison.OrdinalIgnoreCase)) { Thread.Sleep(command.Length * 500); } @@ -347,15 +347,13 @@ static void Info(string format, params object[] args) { - string message = String.Format(format, args); - Console.WriteLine(message); - IrssLog.Info(message); + Console.WriteLine(format, args); + IrssLog.Info(format, args); } static void Warn(string format, params object[] args) { - string message = String.Format(format, args); - Console.WriteLine(message); - IrssLog.Warn(message); + Console.WriteLine(format, args); + IrssLog.Warn(format, args); } static void Error(Exception ex) { Modified: trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -26,12 +26,12 @@ static bool _registered; - static string _serverHost = null; + static string _serverHost; static string _blastPort = "Default"; - static bool _treatAsChannelNumber = false; - static int _padChannelNumber = 0; + static bool _treatAsChannelNumber; + static int _padChannelNumber; #endregion Variables @@ -72,7 +72,7 @@ continue; case "-PAD": - int.TryParse(args[++index], out _padChannelNumber); + _padChannelNumber = int.Parse(args[++index]); continue; default: @@ -140,7 +140,7 @@ } } } - else if (command.StartsWith("~")) + else if (command.StartsWith("~", StringComparison.OrdinalIgnoreCase)) { Thread.Sleep(command.Length * 500); } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -158,7 +158,7 @@ string prefix = _command; string suffix = String.Empty; - int find = _command.IndexOf(": "); + int find = _command.IndexOf(": ", StringComparison.OrdinalIgnoreCase); if (find != -1) { Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -100,7 +100,7 @@ ToolStripMenuItem _editProgramToolStripMenuItem; ToolStripMenuItem _removeProgramToolStripMenuItem; - int _selectedProgram = 0; + int _selectedProgram; #endregion Variables Modified: trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -17,6 +17,9 @@ namespace TrayLauncher { + /// <summary> + /// Tray launcher main class. + /// </summary> class Tray { Modified: trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -25,7 +25,7 @@ /// <summary> /// Web Remote. /// </summary> - public static class Program + static class Program { #region Constants @@ -187,7 +187,7 @@ /// </summary> /// <param name="sender">Sender.</param> /// <param name="e">Event args.</param> - public static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) + static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) { IrssLog.Error(e.Exception.ToString()); } Modified: trunk/plugins/IR Server Suite/Applications/Web Remote/Setup.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Web Remote/Setup.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Applications/Web Remote/Setup.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -15,7 +15,7 @@ /// <summary> /// Setup Form. /// </summary> - public partial class Setup : Form + partial class Setup : Form { #region Properties @@ -54,6 +54,9 @@ #region Constructor + /// <summary> + /// Initializes a new instance of the <see cref="Setup"/> class. + /// </summary> public Setup() { InitializeComponent(); Modified: trunk/plugins/IR Server Suite/Applications/Web Remote/Web Remote.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Web Remote/Web Remote.csproj 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Applications/Web Remote/Web Remote.csproj 2007-12-14 03:55:11 UTC (rev 1156) @@ -22,6 +22,8 @@ <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <UseVSHostingProcess>false</UseVSHostingProcess> + <DocumentationFile> + </DocumentationFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>pdbonly</DebugType> Modified: trunk/plugins/IR Server Suite/Applications/Web Remote/WebServer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Web Remote/WebServer.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Applications/Web Remote/WebServer.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -18,7 +18,7 @@ /// <summary> /// Provides a Web front-end to the Virtual Remote. /// </summary> - public class WebServer + class WebServer { #region Constants @@ -102,7 +102,8 @@ while (true) { - Socket socket = AcceptConnection(); + AcceptConnection(); + string command = HttpUtility.UrlDecode(GetCommand()); if (command.StartsWith("GET", StringComparison.OrdinalIgnoreCase)) @@ -130,7 +131,7 @@ { string url = GetUrl(argument); - if (url.StartsWith("/")) + if (url.StartsWith("/", StringComparison.OrdinalIgnoreCase)) url = url.Substring(1); if (url.Length == 0) @@ -174,33 +175,14 @@ } } - string GetUrl(string argument) + void AcceptConnection() { - StringBuilder outputString = new StringBuilder(); - - for (int index = 0; index < argument.Length; index++) - { - char curChar = argument[index]; - - if (Char.IsWhiteSpace(curChar)) - break; - - outputString.Append(curChar); - } - - return outputString.ToString(); - } - - Socket AcceptConnection() - { _serverSocket.Listen(1); + Socket socket = _serverSocket.Accept(); _networkStream = new NetworkStream(socket, FileAccess.ReadWrite, true); _networkReader = new StreamReader(_networkStream); - IPEndPoint ep = (IPEndPoint)socket.RemoteEndPoint; - - return socket; } string GetCommand() @@ -220,13 +202,7 @@ return command; } - - string GetCommandElement(string command) - { - string[] commandElements = command.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); - return commandElements[1]; - } - + void SendFile(string path) { byte[] buffer = new byte[2048]; @@ -267,6 +243,7 @@ SendString("Content-Type: {0}\r\n\r\n", contentType); } + /* void SendRedirect(string newLocation) { SendString("HTTP/1.1 301 Moved Permanently\r\n"); @@ -274,7 +251,31 @@ SendString("Server:{0}\r\n", ServerName); SendString("Location: {0}\r\n\r\n", newLocation); } + */ + static string GetUrl(string argument) + { + StringBuilder outputString = new StringBuilder(); + + for (int index = 0; index < argument.Length; index++) + { + char curChar = argument[index]; + + if (Char.IsWhiteSpace(curChar)) + break; + + outputString.Append(curChar); + } + + return outputString.ToString(); + } + + static string GetCommandElement(string command) + { + string[] commandElements = command.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); + return commandElements[1]; + } + #endregion Implementation } Modified: trunk/plugins/IR Server Suite/Common/IrssComms/ClientManager.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/ClientManager.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Common/IrssComms/ClientManager.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -1,11 +1,9 @@ using System; -using System.Collections.Generic; #if TRACE using System.Diagnostics; #endif using System.Net; using System.Net.Sockets; -using System.Text; using System.Threading; namespace IrssComms @@ -19,7 +17,7 @@ #region Variables - bool _processReceiveThread = false; + bool _processReceiveThread; Thread _receiveThread; ServerMessageSink _messageSink; Modified: trunk/plugins/IR Server Suite/Common/IrssComms/GenericPCQueue.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/GenericPCQueue.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Common/IrssComms/GenericPCQueue.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -1,5 +1,4 @@ using System; -using System.Collections; using System.Collections.Generic; #if TRACE using System.Diagnostics; Modified: trunk/plugins/IR Server Suite/Common/IrssComms/IrssMessage.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/IrssMessage.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Common/IrssComms/IrssMessage.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Text; namespace IrssComms @@ -212,7 +211,6 @@ { _type = MessageType.Unknown; _flags = MessageFlags.None; - _data = null; } /// <summary> @@ -221,7 +219,6 @@ /// <param name="type">The message type.</param> /// <param name="flags">The message flags.</param> public IrssMessage(MessageType type, MessageFlags flags) - : this() { _type = type; _flags = flags; Modified: trunk/plugins/IR Server Suite/Common/IrssComms/Server.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/Server.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Common/IrssComms/Server.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -5,7 +5,6 @@ #endif using System.Net; using System.Net.Sockets; -using System.Text; using System.Threading; namespace IrssComms @@ -48,7 +47,7 @@ Socket _serverSocket; - bool _processConnectionThread = false; + bool _processConnectionThread; Thread _connectionThread; List<ClientManager> _clientManagers; Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -600,15 +600,15 @@ break; default: - if (command.StartsWith(MouseMoveDown)) + if (command.StartsWith(MouseMoveDown, StringComparison.OrdinalIgnoreCase)) Mouse.Move(0, int.Parse(command.Substring(MouseMoveDown.Length)), false); - else if (command.StartsWith(MouseMoveLeft)) + else if (command.StartsWith(MouseMoveLeft, StringComparison.OrdinalIgnoreCase)) Mouse.Move(-int.Parse(command.Substring(MouseMoveLeft.Length)), 0, false); - else if (command.StartsWith(MouseMoveRight)) + else if (command.StartsWith(MouseMoveRight, StringComparison.OrdinalIgnoreCase)) Mouse.Move(int.Parse(command.Substring(MouseMoveRight.Length)), 0, false); - else if (command.StartsWith(MouseMoveUp)) + else if (command.StartsWith(MouseMoveUp, StringComparison.OrdinalIgnoreCase)) Mouse.Move(0, -int.Parse(command.Substring(MouseMoveUp.Length)), false); - else if (command.StartsWith(MouseMoveToPos)) + else if (command.StartsWith(MouseMoveToPos, StringComparison.OrdinalIgnoreCase)) { string subString = command.Substring(MouseMoveToPos.Length); Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MouseCommand.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MouseCommand.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MouseCommand.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -91,13 +91,17 @@ case Common.MouseScrollUp: checkBoxMouseScrollUp.Checked = true; break; default: - if (command.StartsWith(Common.MouseMoveDown)) checkBoxMouseMoveDown.Checked = true; - else if (command.StartsWith(Common.MouseMoveLeft)) checkBoxMouseMoveLeft.Checked = true; - else if (command.StartsWith(Common.MouseMoveRight)) checkBoxMouseMoveRight.Checked = true; - else if (command.StartsWith(Common.MouseMoveUp)) checkBoxMouseMoveUp.Checked = true; - else if (command.StartsWith(Common.MouseMoveToPos)) + if (command.StartsWith(Common.MouseMoveDown, StringComparison.OrdinalIgnoreCase)) + checkBoxMouseMoveDown.Checked = true; + else if (command.StartsWith(Common.MouseMoveLeft, StringComparison.OrdinalIgnoreCase)) + checkBoxMouseMoveLeft.Checked = true; + else if (command.StartsWith(Common.MouseMoveRight, StringComparison.OrdinalIgnoreCase)) + checkBoxMouseMoveRight.Checked = true; + else if (command.StartsWith(Common.MouseMoveUp, StringComparison.OrdinalIgnoreCase)) + checkBoxMouseMoveUp.Checked = true; + else if (command.StartsWith(Common.MouseMoveToPos, StringComparison.OrdinalIgnoreCase)) { - checkBoxMouseMoveToPos.Checked = true; + checkBoxMouseMoveToPos.Checked = true; string subString = command.Substring(Common.MouseMoveToPos.Length); Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -3,6 +3,7 @@ using System.ComponentModel; using System.Data; using System.Drawing; +using System.Globalization; using System.Text; using System.Windows.Forms; @@ -202,9 +203,9 @@ void PutChar(string chr) { if (_shift) - chr = chr.ToUpper(); + chr = chr.ToUpper(CultureInfo.CurrentCulture); else - chr = chr.ToLower(); + chr = chr.ToLower(CultureInfo.CurrentCulture); int curPos = textBoxKeys.SelectionStart; Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -3,6 +3,7 @@ using System.ComponentModel; using System.Data; using System.Drawing; +using System.Globalization; using System.Text; using System.Windows.Forms; @@ -289,74 +290,74 @@ if (_capsLock || _shift) { - TextAdd(origin.Text.ToUpperInvariant()); + TextAdd(origin.Text.ToUpper(CultureInfo.CurrentCulture)); if (_shift) ToggleShift(); } else { - TextAdd(origin.Text.ToLowerInvariant()); + TextAdd(origin.Text.ToLower(CultureInfo.CurrentCulture)); } } void ButtonsCaseUpper() { - buttonA.Text = buttonA.Text.ToUpper(); - buttonB.Text = buttonB.Text.ToUpper(); - buttonC.Text = buttonC.Text.ToUpper(); - buttonD.Text = buttonD.Text.ToUpper(); - buttonE.Text = buttonE.Text.ToUpper(); - buttonF.Text = buttonF.Text.ToUpper(); - buttonG.Text = buttonG.Text.ToUpper(); - buttonH.Text = buttonH.Text.ToUpper(); - buttonI.Text = buttonI.Text.ToUpper(); - buttonJ.Text = buttonJ.Text.ToUpper(); - buttonK.Text = buttonK.Text.ToUpper(); - buttonL.Text = buttonL.Text.ToUpper(); - buttonM.Text = buttonM.Text.ToUpper(); - buttonN.Text = buttonN.Text.ToUpper(); - buttonO.Text = buttonO.Text.ToUpper(); - buttonP.Text = buttonP.Text.ToUpper(); - buttonQ.Text = buttonQ.Text.ToUpper(); - buttonR.Text = buttonR.Text.ToUpper(); - buttonS.Text = buttonS.Text.ToUpper(); - buttonT.Text = buttonT.Text.ToUpper(); - buttonU.Text = buttonU.Text.ToUpper(); - buttonV.Text = buttonV.Text.ToUpper(); - buttonW.Text = buttonW.Text.ToUpper(); - buttonX.Text = buttonX.Text.ToUpper(); - buttonY.Text = buttonY.Text.ToUpper(); - buttonZ.Text = buttonZ.Text.ToUpper(); + buttonA.Text = buttonA.Text.ToUpper(CultureInfo.CurrentCulture); + buttonB.Text = buttonB.Text.ToUpper(CultureInfo.CurrentCulture); + buttonC.Text = buttonC.Text.ToUpper(CultureInfo.CurrentCulture); + buttonD.Text = buttonD.Text.ToUpper(CultureInfo.CurrentCulture); + buttonE.Text = buttonE.Text.ToUpper(CultureInfo.CurrentCulture); + buttonF.Text = buttonF.Text.ToUpper(CultureInfo.CurrentCulture); + buttonG.Text = buttonG.Text.ToUpper(CultureInfo.CurrentCulture); + buttonH.Text = buttonH.Text.ToUpper(CultureInfo.CurrentCulture); + buttonI.Text = buttonI.Text.ToUpper(CultureInfo.CurrentCulture); + buttonJ.Text = buttonJ.Text.ToUpper(CultureInfo.CurrentCulture); + buttonK.Text = buttonK.Text.ToUpper(CultureInfo.CurrentCulture); + buttonL.Text = buttonL.Text.ToUpper(CultureInfo.CurrentCulture); + buttonM.Text = buttonM.Text.ToUpper(CultureInfo.CurrentCulture); + buttonN.Text = buttonN.Text.ToUpper(CultureInfo.CurrentCulture); + buttonO.Text = buttonO.Text.ToUpper(CultureInfo.CurrentCulture); + buttonP.Text = buttonP.Text.ToUpper(CultureInfo.CurrentCulture); + buttonQ.Text = buttonQ.Text.ToUpper(CultureInfo.CurrentCulture); + buttonR.Text = buttonR.Text.ToUpper(CultureInfo.CurrentCulture); + buttonS.Text = buttonS.Text.ToUpper(CultureInfo.CurrentCulture); + buttonT.Text = buttonT.Text.ToUpper(CultureInfo.CurrentCulture); + buttonU.Text = buttonU.Text.ToUpper(CultureInfo.CurrentCulture); + buttonV.Text = buttonV.Text.ToUpper(CultureInfo.CurrentCulture); + buttonW.Text = buttonW.Text.ToUpper(CultureInfo.CurrentCulture); + buttonX.Text = buttonX.Text.ToUpper(CultureInfo.CurrentCulture); + buttonY.Text = buttonY.Text.ToUpper(CultureInfo.CurrentCulture); + buttonZ.Text = buttonZ.Text.ToUpper(CultureInfo.CurrentCulture); } void ButtonsCaseLower() { - buttonA.Text = buttonA.Text.ToLower(); - buttonB.Text = buttonB.Text.ToLower(); - buttonC.Text = buttonC.Text.ToLower(); - buttonD.Text = buttonD.Text.ToLower(); - buttonE.Text = buttonE.Text.ToLower(); - buttonF.Text = buttonF.Text.ToLower(); - buttonG.Text = buttonG.Text.ToLower(); - buttonH.Text = buttonH.Text.ToLower(); - buttonI.Text = buttonI.Text.ToLower(); - buttonJ.Text = buttonJ.Text.ToLower(); - buttonK.Text = buttonK.Text.ToLower(); - buttonL.Text = buttonL.Text.ToLower(); - buttonM.Text = buttonM.Text.ToLower(); - buttonN.Text = buttonN.Text.ToLower(); - buttonO.Text = buttonO.Text.ToLower(); - buttonP.Text = buttonP.Text.ToLower(); - buttonQ.Text = buttonQ.Text.ToLower(); - buttonR.Text = buttonR.Text.ToLower(); - buttonS.Text = buttonS.Text.ToLower(); - buttonT.Text = buttonT.Text.ToLower(); - buttonU.Text = buttonU.Text.ToLower(); - buttonV.Text = buttonV.Text.ToLower(); - buttonW.Text = buttonW.Text.ToLower(); - buttonX.Text = buttonX.Text.ToLower(); - buttonY.Text = buttonY.Text.ToLower(); - buttonZ.Text = buttonZ.Text.ToLower(); + buttonA.Text = buttonA.Text.ToLower(CultureInfo.CurrentCulture); + buttonB.Text = buttonB.Text.ToLower(CultureInfo.CurrentCulture); + buttonC.Text = buttonC.Text.ToLower(CultureInfo.CurrentCulture); + buttonD.Text = buttonD.Text.ToLower(CultureInfo.CurrentCulture); + buttonE.Text = buttonE.Text.ToLower(CultureInfo.CurrentCulture); + buttonF.Text = buttonF.Text.ToLower(CultureInfo.CurrentCulture); + buttonG.Text = buttonG.Text.ToLower(CultureInfo.CurrentCulture); + buttonH.Text = buttonH.Text.ToLower(CultureInfo.CurrentCulture); + buttonI.Text = buttonI.Text.ToLower(CultureInfo.CurrentCulture); + buttonJ.Text = buttonJ.Text.ToLower(CultureInfo.CurrentCulture); + buttonK.Text = buttonK.Text.ToLower(CultureInfo.CurrentCulture); + buttonL.Text = buttonL.Text.ToLower(CultureInfo.CurrentCulture); + buttonM.Text = buttonM.Text.ToLower(CultureInfo.CurrentCulture); + buttonN.Text = buttonN.Text.ToLower(CultureInfo.CurrentCulture); + buttonO.Text = buttonO.Text.ToLower(CultureInfo.CurrentCulture); + buttonP.Text = buttonP.Text.ToLower(CultureInfo.CurrentCulture); + buttonQ.Text = buttonQ.Text.ToLower(CultureInfo.CurrentCulture); + buttonR.Text = buttonR.Text.ToLower(CultureInfo.CurrentCulture); + buttonS.Text = buttonS.Text.ToLower(CultureInfo.CurrentCulture); + buttonT.Text = buttonT.Text.ToLower(CultureInfo.CurrentCulture); + buttonU.Text = buttonU.Text.ToLower(CultureInfo.CurrentCulture); + buttonV.Text = buttonV.Text.ToLower(CultureInfo.CurrentCulture); + buttonW.Text = buttonW.Text.ToLower(CultureInfo.CurrentCulture); + buttonX.Text = buttonX.Text.ToLower(CultureInfo.CurrentCulture); + buttonY.Text = buttonY.Text.ToLower(CultureInfo.CurrentCulture); + buttonZ.Text = buttonZ.Text.ToLower(CultureInfo.CurrentCulture); } void ToggleShift() Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -36,7 +36,7 @@ string _pluginFile; - RemoteHandler _remoteButtonHandler = null; + RemoteHandler _remoteButtonHandler; GirderPluginWrapper _pluginWrapper; @@ -86,7 +86,7 @@ _pluginWrapper = new GirderPluginWrapper(_pluginFile); - _pluginWrapper.EventCallback += new GirderPluginWrapper.PluginEventCallback(PluginCallback); + _pluginWrapper.EventCallback += new PluginEventCallback(PluginCallback); bool open = _pluginWrapper.GirOpen(); if (open) Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -9,7 +9,20 @@ namespace GirderPlugin { + #region Delegates + /// <summary> + /// Callback for when the plugin sends an event. + /// </summary> + /// <param name="eventstring">Plugin event string.</param> + /// <param name="payload">Additional data.</param> + /// <param name="len">Length of additional data.</param> + /// <param name="device">Device ID, to uniquely identify this plugin.</param> + public delegate void PluginEventCallback(string eventstring, IntPtr payload, int len, int device); + + #endregion Delegates + + /// <summary> /// Wrapper class to work with Girder 3.x plugins. /// </summary> public class GirderPluginWrapper : IDisposable @@ -41,11 +54,11 @@ #region Interop - [DllImport("kernel32")] + [DllImport("kernel32", CharSet = CharSet.Auto)] extern static IntPtr LoadLibrary( string dllFileName); - [DllImport("kernel32")] + [DllImport("kernel32", CharSet = CharSet.Auto)] static extern IntPtr GetProcAddress( IntPtr module, string functionName); @@ -336,15 +349,6 @@ #endregion Variables - /// <summary> - /// Callback for when the plugin sends an event. - /// </summary> - /// <param name="eventstring">Plugin event string.</param> - /// <param name="payload">Additional data.</param> - /// <param name="len">Length of additional data.</param> - /// <param name="device">Device ID, to uniquely identify this plugin.</param> - public delegate void PluginEventCallback(string eventstring, IntPtr payload, int len, int device); - #region Girder Plugin Properties /// <summary> @@ -841,7 +845,7 @@ #region Implementation - bool WriteString(IntPtr stringPtr, int maxSize, string value) + static bool WriteString(IntPtr stringPtr, int maxSize, string value) { try { Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Properties/AssemblyInfo.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Properties/AssemblyInfo.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -1,4 +1,5 @@ -using System.Reflection; +using System; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Security.Permissions; @@ -20,6 +21,8 @@ // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] +[assembly: CLSCompliant(true)] + // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("bc4c093c-29d8-491a-866b-fa370bc4e0d3")] Modified: trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -203,7 +203,6 @@ static RemoteHandler _remoteButtonHandler; static Socket _socket; - static IAsyncResult _asynResult; static AsyncCallback _pfnCallBack; static string _irTransRemoteModel; static string _irTransServerAddress; @@ -445,7 +444,7 @@ CSocketPacket socketPkt = new CSocketPacket(); socketPkt.ThisSocket = _socket; - _asynResult = _socket.BeginReceive(socketPkt.ReceiveBuffer, 0, socketPkt.ReceiveBuffer.Length, SocketFlags.None, _pfnCallBack, socketPkt); + _socket.BeginReceive(socketPkt.ReceiveBuffer, 0, socketPkt.ReceiveBuffer.Length, SocketFlags.None, _pfnCallBack, socketPkt); } #if TRACE catch (SocketException ex) @@ -534,42 +533,6 @@ #endif } - /// <summary> - /// Converts structs to byte arrays. - /// </summary> - /// <param name="structure">The structure.</param> - /// <param name="size">The size.</param> - /// <returns>Converted structure.</returns> - static byte[] StructToByteArray(object structure, int size) - { - if (structure == null || size <= 0) - return null; - - try - { - byte[] byteArray = new byte[size]; - - IntPtr pointer = Marshal.AllocHGlobal(size); - Marshal.StructureToPtr(structure, pointer, false); - Marshal.Copy(pointer, byteArray, 0, size); - Marshal.FreeHGlobal(pointer); - - return byteArray; - } -#if TRACE - catch (Exception ex) - { - Trace.WriteLine(ex.ToString()); - } -#else - catch - { - } -#endif - - return null; - } - #endregion Implementation } Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DeviceIoOverlapped.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DeviceIoOverlapped.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DeviceIoOverlapped.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -13,13 +13,13 @@ #region Variables - IntPtr _ptrOverlapped = IntPtr.Zero; + IntPtr _ptrOverlapped = IntPtr.Zero; - int _fieldOffsetInternalLow = 0; - int _fieldOffsetInternalHigh = 0; - int _fieldOffsetOffsetLow = 0; - int _fieldOffsetOffsetHigh = 0; - int _fieldOffsetEventHandle = 0; + int _fieldOffsetInternalLow; + int _fieldOffsetInternalHigh; + int _fieldOffsetOffsetLow; + int _fieldOffsetOffsetHigh; + int _fieldOffsetEventHandle; #endregion Variables Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -25,6 +25,8 @@ Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\IR Server Suite\\IR Server\\Wii Remote Receiver.xml"; + readonly int ScreenWidth = Screen.PrimaryScreen.WorkingArea.Width; + readonly int ScreenHeight = Screen.PrimaryScreen.WorkingArea.Height; #endregion Constants @@ -46,9 +48,6 @@ WiimoteState _previousState; - int _screenWidth = Screen.PrimaryScreen.WorkingArea.Width; - int _screenHeight = Screen.PrimaryScreen.WorkingArea.Height; - #endregion Variables #region Implementation @@ -330,8 +329,8 @@ if (ws.IRState.Found1 && ws.IRState.Found2) { - int x = (int)(_screenWidth - (ws.IRState.X1 + ws.IRState.X2) / 2 * _screenWidth); - int y = (int)((ws.IRState.Y1 + ws.IRState.Y2) / 2 * _screenHeight); + int x = (int)(ScreenWidth - (ws.IRState.X1 + ws.IRState.X2) / 2 * ScreenWidth); + int y = (int)((ws.IRState.Y1 + ws.IRState.Y2) / 2 * ScreenHeight); if (_handleMouseLocally) { @@ -339,8 +338,8 @@ } else { - int prevX = (int)(_screenWidth - (_previousState.IRState.X1 + _previousState.IRState.X2) / 2 * _screenWidth); - int prevY = (int)((_previousState.IRState.Y1 + _previousState.IRState.Y2) / 2 * _screenHeight); + int prevX = (int)(ScreenWidth - (_previousState.IRState.X1 + _previousState.IRState.X2) / 2 * ScreenWidth); + int prevY = (int)((_previousState.IRState.Y1 + _previousState.IRState.Y2) / 2 * ScreenHeight); int deltaX = x - prevX; int deltaY = y - prevY; Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/ReceiverWindow.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/ReceiverWindow.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/ReceiverWindow.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -22,7 +22,7 @@ #region Variables - ProcessMessage _processMessage = null; + ProcessMessage _processMessage; #endregion Variables @@ -52,7 +52,7 @@ createParams.ExStyle = 0x80; createParams.Style = unchecked((int)0x80000000); - CreateHandle(createParams); + base.CreateHandle(createParams); } #endregion Constructor Modified: trunk/plugins/IR Server Suite/Input Service/Input Service/InputService.cs =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service/InputService.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Input Service/Input Service/InputService.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -30,7 +30,7 @@ /// <summary> /// Describes the operation mode of the Input Service. /// </summary> - public enum InputServiceMode + enum InputServiceMode { /// <summary> /// Acts as a standard Server (Default). @@ -49,9 +49,9 @@ #endregion Enumerations /// <summary> - /// MediaPortal Input Service. + /// Input Service. /// </summary> - public class InputService : ServiceBase + class InputService : ServiceBase { #region Constants Modified: trunk/plugins/IR Server Suite/Input Service/Input Service/InputServiceInstaller.cs =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service/InputServiceInstaller.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Input Service/Input Service/InputServiceInstaller.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -15,7 +15,7 @@ /// Installer for the Input Service. /// </summary> [RunInstaller(true)] - public class InputServiceInstaller : Installer + class InputServiceInstaller : Installer { /// <summary> Modified: trunk/plugins/IR Server Suite/Input Service/Input Service/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service/Program.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Input Service/Input Service/Program.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -23,29 +23,33 @@ #region Constants - public const string ServiceName = "MPInputService"; - public const string ServiceDisplayName = "MediaPortal Input Service"; + public const string ServiceName = "InputService"; + public const string ServiceDisplayName = "Input Service"; public const string ServiceDescription = "Provides access to input devices"; #endregion Constants + /// <summary> + /// The main entry point for the service. + /// </summary> + /// <param name="args">Command line parameters.</param> static void Main(string[] args) { - if (args.Length >= 1) + if (args.Length == 1) { TransactedInstaller transactedInstaller = new TransactedInstaller(); InputServiceInstaller inputServiceInstaller = new InputServiceInstaller(); transactedInstaller.Installers.Add(inputServiceInstaller); - String path = String.Format("/assemblypath={0}", Assembly.GetExecutingAssembly().Location); - String[] cmdline = { path }; + string path = "/assemblypath=" + Assembly.GetExecutingAssembly().Location; + string[] cmdline = { path }; InstallContext installContext = new InstallContext(String.Empty, cmdline); transactedInstaller.Context = installContext; - if (args[0].Equals("/install", System.StringComparison.OrdinalIgnoreCase)) + if (args[0].Equals("/install", StringComparison.OrdinalIgnoreCase)) transactedInstaller.Install(new Hashtable()); - else if (args[0].Equals("/uninstall", System.StringComparison.OrdinalIgnoreCase)) + else if (args[0].Equals("/uninstall", StringComparison.OrdinalIgnoreCase)) transactedInstaller.Uninstall(null); return; Modified: trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Config.cs =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Config.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Config.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -167,7 +167,7 @@ nameCell.AddController(nameCellController); nameCell.AddController(new SourceGrid.Cells.Controllers.ToolTipText()); - nameCell.ToolTipText = string.Format("{0}\nVersion: {1}\nAuthor: {2}\n{3}", transceiver.Name, transceiver.Version, transceiver.Author, transceiver.Description); + nameCell.ToolTipText = String.Format("{0}\nVersion: {1}\nAuthor: {2}\n{3}", transceiver.Name, transceiver.Version, transceiver.Author, transceiver.Description); gridPlugins[row, 0] = nameCell; Modified: trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Input Service Configuration.exe.manifest =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Input Service Configuration.exe.manifest 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Input Service Configuration.exe.manifest 2007-12-14 03:55:11 UTC (rev 1156) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" > <assemblyIdentity version="1.0.3.5" processorArchitecture="X86" name="Input Service Configuration" type="win32" /> - <description>Configure the local MediaPortal Input Service</description> + <description>Configure the local Input Service</description> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> Modified: trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Properties/AssemblyInfo.cs 2007-12-13 16:37:04 UTC (rev 1155) +++ trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Properties/AssemblyInfo.cs 2007-12-14 03:55:11 UTC (rev 1156) @@ -6,7 +6,7 @@ // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Input Service Configuration")] -[assembly: AssemblyDescription("Configure the Input Service")] +[assembly: AssemblyDescription("Configure the local Input Service")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("and-81")] [assembly: AssemblyProduct("Input Service Configuration")] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2007-12-14 04:16:37
|
Revision: 1157 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1157&view=rev Author: and-81 Date: 2007-12-13 20:16:35 -0800 (Thu, 13 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi Modified: trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi 2007-12-14 03:55:11 UTC (rev 1156) +++ trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi 2007-12-14 04:16:35 UTC (rev 1157) @@ -69,7 +69,7 @@ ; Kill running Programs DetailPrint "Terminating processes ..." - ExecWait '"taskkill" /F /IM IRServer.exe' + ExecWait '"taskkill" /F /IM "Input Service.exe"' ExecWait '"taskkill" /F /IM Translator.exe' ExecWait '"taskkill" /F /IM TrayLauncher.exe' ExecWait '"taskkill" /F /IM WebRemote.exe' @@ -117,24 +117,35 @@ ;-------------------------------- -Section "IR Server" +Section "Input Service" - DetailPrint "Installing IR Server ..." + DetailPrint "Installing Input Service ..." ; Use the all users context SetShellVarContext all - ; Installing IR Server - CreateDirectory "$INSTDIR\IR Server" - SetOutPath "$INSTDIR\IR Server" + ; Uninstall current Input Service ... + Exec '"$INSTDIR\Input Service\Input Service.exe" /uninstall' + Sleep 100 + + ; Installing Input Service + CreateDirectory "$INSTDIR\Input Service" + SetOutPath "$INSTDIR\Input Service" SetOverwrite ifnewer - File "Applications\IR Server\bin\Debug\*.*" + File "Input Service\Input Service\bin\Debug\*.*" + ; Installing Input Service Configuration + CreateDirectory "$INSTDIR\Input Service Configuration" + SetOutPath "$INSTDIR\Input Service Configuration" + SetOverwrite ifnewer + File "Input Service\Input Service Configuration\bin\Debug\*.*" + ; Install IR Server Plugins ... DetailPrint "Installing IR Server Plugins ..." CreateDirectory "$INSTDIR\IR Server Plugins" SetOutPath "$INSTDIR\IR Server Plugins" SetOverwrite ifnewer + File "IR Server Plugins\Custom HID Receiver\bin\Debug\*.*" File "IR Server Plugins\FusionRemote Receiver\bin\Debug\*.*" File "IR Server Plugins\Girder Plugin\bin\Debug\*.*" @@ -143,6 +154,7 @@ File "IR Server Plugins\IRMan Receiver\bin\Debug\*.*" File "IR Server Plugins\IRTrans Transceiver\bin\Debug\*.*" File "IR Server Plugins\Microsoft MCE Transceiver\bin\Debug\*.*" + File "IR Server Plugins\RedEye Blaster\bin\Debug\*.*" File "IR Server Plugins\Serial IR Blaster\bin\Debug\*.*" File "IR Server Plugins\USB-UIRT Transceiver\bin\Debug\*.*" File "IR Server Plugins\Wii Remote Receiver\bin\Debug\*.*" @@ -153,13 +165,13 @@ File "IR Server Plugins\XBCDRC Receiver\bin\Debug\*.*" ; Create App Data Folder for IR Server configuration files. - CreateDirectory "$APPDATA\IR Server Suite\IR Server" + CreateDirectory "$APPDATA\IR Server Suite\Input Service" ; Create start menu shortcut - CreateShortCut "$SMPROGRAMS\IR Server Suite\IR Server.lnk" "$INSTDIR\IR Server\IRServer.exe" "" "$INSTDIR\IR Server\IRServer.exe" 0 + CreateShortCut "$SMPROGRAMS\IR Server Suite\Input Service Configuration.lnk" "$INSTDIR\Input Service Configuration\Input Service Configuration.exe" "" "$INSTDIR\Input Service Configuration\Input Service Configuration.exe" 0 - ; Launch IR Server - Exec '"$INSTDIR\IR Server\IRServer.exe"' + ; Launch Input Service + Exec '"$INSTDIR\Input Service\Input Service.exe" /install' SectionEnd @@ -410,11 +422,16 @@ ; Use the all users context SetShellVarContext all + ; Uninstall current Input Service ... + Exec '"$INSTDIR\Input Service\Input Service.exe" /uninstall' + Sleep 100 + ; Kill running Programs DetailPrint "Terminating processes ..." - ExecWait '"taskkill" /F /IM IRServer.exe' + ExecWait '"taskkill" /F /IM "Input Service.exe"' ExecWait '"taskkill" /F /IM Translator.exe' ExecWait '"taskkill" /F /IM TrayLauncher.exe' + ExecWait '"taskkill" /F /IM WebRemote.exe' ExecWait '"taskkill" /F /IM VirtualRemote.exe' ExecWait '"taskkill" /F /IM VirtualRemoteSkinEditor.exe' ExecWait '"taskkill" /F /IM DebugClient.exe' @@ -460,7 +477,6 @@ ; Remove auto-runs DetailPrint "Removing application auto-runs ..." - DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "IR Server" DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Tray Launcher" DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Translator" Modified: trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi 2007-12-14 03:55:11 UTC (rev 1156) +++ trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi 2007-12-14 04:16:35 UTC (rev 1157) @@ -69,7 +69,7 @@ ; Kill running Programs DetailPrint "Terminating processes ..." - ExecWait '"taskkill" /F /IM IRServer.exe' + ExecWait '"taskkill" /F /IM "Input Service.exe"' ExecWait '"taskkill" /F /IM Translator.exe' ExecWait '"taskkill" /F /IM TrayLauncher.exe' ExecWait '"taskkill" /F /IM WebRemote.exe' @@ -117,24 +117,35 @@ ;-------------------------------- -Section "IR Server" +Section "Input Service" - DetailPrint "Installing IR Server ..." + DetailPrint "Installing Input Service ..." ; Use the all users context SetShellVarContext all - ; Installing IR Server - CreateDirectory "$INSTDIR\IR Server" - SetOutPath "$INSTDIR\IR Server" + ; Uninstall current Input Service ... + Exec '"$INSTDIR\Input Service\Input Service.exe" /uninstall' + Sleep 100 + + ; Installing Input Service + CreateDirectory "$INSTDIR\Input Service" + SetOutPath "$INSTDIR\Input Service" SetOverwrite ifnewer - File "Applications\IR Server\bin\Release\*.*" + File "Input Service\Input Service\bin\Release\*.*" + ; Installing Input Service Configuration + CreateDirectory "$INSTDIR\Input Service Configuration" + SetOutPath "$INSTDIR\Input Service Configuration" + SetOverwrite ifnewer + File "Input Service\Input Service Configuration\bin\Release\*.*" + ; Install IR Server Plugins ... DetailPrint "Installing IR Server Plugins ..." CreateDirectory "$INSTDIR\IR Server Plugins" SetOutPath "$INSTDIR\IR Server Plugins" SetOverwrite ifnewer + File "IR Server Plugins\Custom HID Receiver\bin\Release\*.*" File "IR Server Plugins\FusionRemote Receiver\bin\Release\*.*" File "IR Server Plugins\Girder Plugin\bin\Release\*.*" @@ -143,23 +154,24 @@ File "IR Server Plugins\IRMan Receiver\bin\Release\*.*" File "IR Server Plugins\IRTrans Transceiver\bin\Release\*.*" File "IR Server Plugins\Microsoft MCE Transceiver\bin\Release\*.*" + File "IR Server Plugins\RedEye Blaster\bin\Release\*.*" File "IR Server Plugins\Serial IR Blaster\bin\Release\*.*" File "IR Server Plugins\USB-UIRT Transceiver\bin\Release\*.*" - File "IR Server Plugins\Wii Remote Receiver\bin\Debug\*.*" - File "IR Server Plugins\WiimoteLib\bin\Debug\*.*" + File "IR Server Plugins\Wii Remote Receiver\bin\Release\*.*" + File "IR Server Plugins\WiimoteLib\bin\Release\*.*" File "IR Server Plugins\Windows Message Receiver\bin\Release\*.*" File "IR Server Plugins\WinLirc Transceiver\bin\Release\*.*" File "IR Server Plugins\X10 Transceiver\bin\Release\*.*" File "IR Server Plugins\XBCDRC Receiver\bin\Release\*.*" ; Create App Data Folder for IR Server configuration files. - CreateDirectory "$APPDATA\IR Server Suite\IR Server" + CreateDirectory "$APPDATA\IR Server Suite\Input Service" ; Create start menu shortcut - CreateShortCut "$SMPROGRAMS\IR Server Suite\IR Server.lnk" "$INSTDIR\IR Server\IRServer.exe" "" "$INSTDIR\IR Server\IRServer.exe" 0 + CreateShortCut "$SMPROGRAMS\IR Server Suite\Input Service Configuration.lnk" "$INSTDIR\Input Service Configuration\Input Service Configuration.exe" "" "$INSTDIR\Input Service Configuration\Input Service Configuration.exe" 0 - ; Launch IR Server - Exec '"$INSTDIR\IR Server\IRServer.exe"' + ; Launch Input Service + Exec '"$INSTDIR\Input Service\Input Service.exe" /install' SectionEnd @@ -410,11 +422,16 @@ ; Use the all users context SetShellVarContext all + ; Uninstall current Input Service ... + Exec '"$INSTDIR\Input Service\Input Service.exe" /uninstall' + Sleep 100 + ; Kill running Programs DetailPrint "Terminating processes ..." - ExecWait '"taskkill" /F /IM IRServer.exe' + ExecWait '"taskkill" /F /IM "Input Service.exe"' ExecWait '"taskkill" /F /IM Translator.exe' ExecWait '"taskkill" /F /IM TrayLauncher.exe' + ExecWait '"taskkill" /F /IM WebRemote.exe' ExecWait '"taskkill" /F /IM VirtualRemote.exe' ExecWait '"taskkill" /F /IM VirtualRemoteSkinEditor.exe' ExecWait '"taskkill" /F /IM DebugClient.exe' @@ -460,7 +477,6 @@ ; Remove auto-runs DetailPrint "Removing application auto-runs ..." - DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "IR Server" DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Tray Launcher" DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Translator" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2007-12-14 15:40:26
|
Revision: 1160 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1160&view=rev Author: and-81 Date: 2007-12-14 07:40:14 -0800 (Fri, 14 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Driver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Microsoft MCE Transceiver.csproj Removed Paths: ------------- trunk/plugins/IR Server Suite/Common/IrssUtils/Win32ErrorCodes.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Win32ErrorCodes.cs Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-12-14 09:19:35 UTC (rev 1159) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-12-14 15:40:14 UTC (rev 1160) @@ -468,7 +468,7 @@ break; case WMTargetApplication: - foreach (System.Diagnostics.Process proc in System.Diagnostics.Process.GetProcesses()) + foreach (Process proc in Process.GetProcesses()) { try { Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj 2007-12-14 09:19:35 UTC (rev 1159) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj 2007-12-14 15:40:14 UTC (rev 1160) @@ -191,7 +191,6 @@ <Compile Include="SystemRegistry.cs" /> <Compile Include="IRServerInfo.cs" /> <Compile Include="Win32.cs" /> - <Compile Include="Win32ErrorCodes.cs" /> <Compile Include="XML.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> </ItemGroup> Deleted: trunk/plugins/IR Server Suite/Common/IrssUtils/Win32ErrorCodes.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Win32ErrorCodes.cs 2007-12-14 09:19:35 UTC (rev 1159) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Win32ErrorCodes.cs 2007-12-14 15:40:14 UTC (rev 1160) @@ -1,7408 +0,0 @@ -using System; - -namespace IrssUtils -{ - - /// <summary> - /// Win32 Error Codes. - /// </summary> - public static class Win32ErrorCodes - { - - /// <summary> - /// The operation completed successfully. - /// </summary> - public const int ERROR_SUCCESS = 0; - /// <summary> - /// Incorrect function. - /// </summary> - public const int ERROR_INVALID_FUNCTION = 1; - /// <summary> - /// The system cannot find the file specified. - /// </summary> - public const int ERROR_FILE_NOT_FOUND = 2; - /// <summary> - /// The system cannot find the path specified. - /// </summary> - public const int ERROR_PATH_NOT_FOUND = 3; - /// <summary> - /// The system cannot open the file. - /// </summary> - public const int ERROR_TOO_MANY_OPEN_FILES = 4; - /// <summary> - /// Access is denied. - /// </summary> - public const int ERROR_ACCESS_DENIED = 5; - /// <summary> - /// The handle is invalid. - /// </summary> - public const int ERROR_INVALID_HANDLE = 6; - /// <summary> - /// The storage control blocks were destroyed. - /// </summary> - public const int ERROR_ARENA_TRASHED = 7; - /// <summary> - /// Not enough storage is available to process this command. - /// </summary> - public const int ERROR_NOT_ENOUGH_MEMORY = 8; - /// <summary> - /// The storage control block address is invalid. - /// </summary> - public const int ERROR_INVALID_BLOCK = 9; - /// <summary> - /// The environment is incorrect. - /// </summary> - public const int ERROR_BAD_ENVIRONMENT = 10; - /// <summary> - /// An attempt was made to load a program with an incorrect format. - /// </summary> - public const int ERROR_BAD_FORMAT = 11; - /// <summary> - /// The access code is invalid. - /// </summary> - public const int ERROR_INVALID_ACCESS = 12; - /// <summary> - /// The data is invalid. - /// </summary> - public const int ERROR_INVALID_DATA = 13; - /// <summary> - /// Not enough storage is available to complete this operation. - /// </summary> - public const int ERROR_OUTOFMEMORY = 14; - /// <summary> - /// The system cannot find the drive specified. - /// </summary> - public const int ERROR_INVALID_DRIVE = 15; - /// <summary> - /// The directory cannot be removed. - /// </summary> - public const int ERROR_CURRENT_DIRECTORY = 16; - /// <summary> - /// The system cannot move the file to a different disk drive. - /// </summary> - public const int ERROR_NOT_SAME_DEVICE = 17; - /// <summary> - /// There are no more files. - /// </summary> - public const int ERROR_NO_MORE_FILES = 18; - /// <summary> - /// The media is write protected. - /// </summary> - public const int ERROR_WRITE_PROTECT = 19; - /// <summary> - /// The system cannot find the device specified. - /// </summary> - public const int ERROR_BAD_UNIT = 20; - /// <summary> - /// The device is not ready. - /// </summary> - public const int ERROR_NOT_READY = 21; - /// <summary> - /// The device does not recognize the command. - /// </summary> - public const int ERROR_BAD_COMMAND = 22; - /// <summary> - /// Data error (cyclic redundancy check). - /// </summary> - public const int ERROR_CRC = 23; - /// <summary> - /// The program issued a command but the command length is incorrect. - /// </summary> - public const int ERROR_BAD_LENGTH = 24; - /// <summary> - /// The drive cannot locate a specific area or track on the disk. - /// </summary> - public const int ERROR_SEEK = 25; - /// <summary> - /// The specified disk or diskette cannot be accessed. - /// </summary> - public const int ERROR_NOT_DOS_DISK = 26; - /// <summary> - /// The drive cannot find the sector requested. - /// </summary> - public const int ERROR_SECTOR_NOT_FOUND = 27; - /// <summary> - /// The printer is out of paper. - /// </summary> - public const int ERROR_OUT_OF_PAPER = 28; - /// <summary> - /// The system cannot write to the specified device. - /// </summary> - public const int ERROR_WRITE_FAULT = 29; - /// <summary> - /// The system cannot read from the specified device. - /// </summary> - public const int ERROR_READ_FAULT = 30; - /// <summary> - /// A device attached to the system is not functioning. - /// </summary> - public const int ERROR_GEN_FAILURE = 31; - /// <summary> - /// The process cannot access the file because it is being used by another process. - /// </summary> - public const int ERROR_SHARING_VIOLATION = 32; - /// <summary> - /// The process cannot access the file because another process has locked a portion of the file. - /// </summary> - public const int ERROR_LOCK_VIOLATION = 33; - /// <summary> - /// The wrong diskette is in the drive. - /// Insert %2 (Volume Serial Number: %3) into drive %1. - /// </summary> - public const int ERROR_WRONG_DISK = 34; - /// <summary> - /// Too many files opened for sharing. - /// </summary> - public const int ERROR_SHARING_BUFFER_EXCEEDED = 36; - /// <summary> - /// Reached the end of the file. - /// </summary> - public const int ERROR_HANDLE_EOF = 38; - /// <summary> - /// The disk is full. - /// </summary> - public const int ERROR_HANDLE_DISK_FULL = 39; - /// <summary> - /// The request is not supported. - /// </summary> - public const int ERROR_NOT_SUPPORTED = 50; - /// <summary> - /// Windows cannot find the network path. Verify that the network path is correct and the destination computer is not busy or turned off. If Windows still cannot find the network path, contact your network administrator. - /// </summary> - public const int ERROR_REM_NOT_LIST = 51; - /// <summary> - /// You were not connected because a duplicate name exists on the network. Go to System in Control Panel to change the computer name and try again. - /// </summary> - public const int ERROR_DUP_NAME = 52; - /// <summary> - /// The network path was not found. - /// </summary> - public const int ERROR_BAD_NETPATH = 53; - /// <summary> - /// The network is busy. - /// </summary> - public const int ERROR_NETWORK_BUSY = 54; - /// <summary> - /// The specified network resource or device is no longer available. - /// </summary> - public const int ERROR_DEV_NOT_EXIST = 55; - /// <summary> - /// The network BIOS command limit has been reached. - /// </summary> - public const int ERROR_TOO_MANY_CMDS = 56; - /// <summary> - /// A network adapter hardware error occurred. - /// </summary> - public const int ERROR_ADAP_HDW_ERR = 57; - /// <summary> - /// The specified server cannot perform the requested operation. - /// </summary> - public const int ERROR_BAD_NET_RESP = 58; - /// <summary> - /// An unexpected network error occurred. - /// </summary> - public const int ERROR_UNEXP_NET_ERR = 59; - /// <summary> - /// The remote adapter is not compatible. - /// </summary> - public const int ERROR_BAD_REM_ADAP = 60; - /// <summary> - /// The printer queue is full. - /// </summary> - public const int ERROR_PRINTQ_FULL = 61; - /// <summary> - /// Space to store the file waiting to be printed is not available on the server. - /// </summary> - public const int ERROR_NO_SPOOL_SPACE = 62; - /// <summary> - /// Your file waiting to be printed was deleted. - /// </summary> - public const int ERROR_PRINT_CANCELLED = 63; - /// <summary> - /// The specified network name is no longer available. - /// </summary> - public const int ERROR_NETNAME_DELETED = 64; - /// <summary> - /// Network access is denied. - /// </summary> - public const int ERROR_NETWORK_ACCESS_DENIED = 65; - /// <summary> - /// The network resource type is not correct. - /// </summary> - public const int ERROR_BAD_DEV_TYPE = 66; - /// <summary> - /// The network name cannot be found. - /// </summary> - public const int ERROR_BAD_NET_NAME = 67; - /// <summary> - /// The name limit for the local computer network adapter card was exceeded. - /// </summary> - public const int ERROR_TOO_MANY_NAMES = 68; - /// <summary> - /// The network BIOS session limit was exceeded. - /// </summary> - public const int ERROR_TOO_MANY_SESS = 69; - /// <summary> - /// The remote server has been paused or is in the process of being started. - /// </summary> - public const int ERROR_SHARING_PAUSED = 70; - /// <summary> - /// No more connections can be made to this remote computer at this time because there are already as many connections as the computer can accept. - /// </summary> - public const int ERROR_REQ_NOT_ACCEP = 71; - /// <summary> - /// The specified printer or disk device has been paused. - /// </summary> - public const int ERROR_REDIR_PAUSED = 72; - /// <summary> - /// The file exists. - /// </summary> - public const int ERROR_FILE_EXISTS = 80; - /// <summary> - /// The directory or file cannot be created. - /// </summary> - public const int ERROR_CANNOT_MAKE = 82; - /// <summary> - /// Fail on INT 24. - /// </summary> - public const int ERROR_FAIL_I24 = 83; - /// <summary> - /// Storage to process this request is not available. - /// </summary> - public const int ERROR_OUT_OF_STRUCTURES = 84; - /// <summary> - /// The local device name is already in use. - /// </summary> - public const int ERROR_ALREADY_ASSIGNED = 85; - /// <summary> - /// The specified network password is not correct. - /// </summary> - public const int ERROR_INVALID_PASSWORD = 86; - /// <summary> - /// The parameter is incorrect. - /// </summary> - public const int ERROR_INVALID_PARAMETER = 87; - /// <summary> - /// A write fault occurred on the network. - /// </summary> - public const int ERROR_NET_WRITE_FAULT = 88; - /// <summary> - /// The system cannot start another process at this time. - /// </summary> - public const int ERROR_NO_PROC_SLOTS = 89; - /// <summary> - /// Cannot create another system semaphore. - /// </summary> - public const int ERROR_TOO_MANY_SEMAPHORES = 100; - /// <summary> - /// The exclusive semaphore is owned by another process. - /// </summary> - public const int ERROR_EXCL_SEM_ALREADY_OWNED = 101; - /// <summary> - /// The semaphore is set and cannot be closed. - /// </summary> - public const int ERROR_SEM_IS_SET = 102; - /// <summary> - /// The semaphore cannot be set again. - /// </summary> - public const int ERROR_TOO_MANY_SEM_REQUESTS = 103; - /// <summary> - /// Cannot request exclusive semaphores at interrupt time. - /// </summary> - public const int ERROR_INVALID_AT_INTERRUPT_TIME = 104; - /// <summary> - /// The previous ownership of this semaphore has ended. - /// </summary> - public const int ERROR_SEM_OWNER_DIED = 105; - /// <summary> - /// Insert the diskette for drive %1. - /// </summary> - public const int ERROR_SEM_USER_LIMIT = 106; - /// <summary> - /// The program stopped because an alternate diskette was not inserted. - /// </summary> - public const int ERROR_DISK_CHANGE = 107; - /// <summary> - /// The disk is in use or locked by another process. - /// </summary> - public const int ERROR_DRIVE_LOCKED = 108; - /// <summary> - /// The pipe has been ended. - /// </summary> - public const int ERROR_BROKEN_PIPE = 109; - /// <summary> - /// The system cannot open the device or file specified. - /// </summary> - public const int ERROR_OPEN_FAILED = 110; - /// <summary> - /// The file name is too long. - /// </summary> - public const int ERROR_BUFFER_OVERFLOW = 111; - /// <summary> - /// There is not enough space on the disk. - /// </summary> - public const int ERROR_DISK_FULL = 112; - /// <summary> - /// No more internal file identifiers available. - /// </summary> - public const int ERROR_NO_MORE_SEARCH_HANDLES = 113; - /// <summary> - /// The target internal file identifier is incorrect. - /// </summary> - public const int ERROR_INVALID_TARGET_HANDLE = 114; - /// <summary> - /// The IOCTL call made by the application program is not correct. - /// </summary> - public const int ERROR_INVALID_CATEGORY = 117; - /// <summary> - /// The verify-on-write switch parameter value is not correct. - /// </summary> - public const int ERROR_INVALID_VERIFY_SWITCH = 118; - /// <summary> - /// The system does not support the command requested. - /// </summary> - public const int ERROR_BAD_DRIVER_LEVEL = 119; - /// <summary> - /// This function is not supported on this system. - /// </summary> - public const int ERROR_CALL_NOT_IMPLEMENTED = 120; - /// <summary> - /// The semaphore timeout period has expired. - /// </summary> - public const int ERROR_SEM_TIMEOUT = 121; - /// <summary> - /// The data area passed to a system call is too small. - /// </summary> - public const int ERROR_INSUFFICIENT_BUFFER = 122; - /// <summary> - /// The filename, directory name, or volume label syntax is incorrect. - /// </summary> - public const int ERROR_INVALID_NAME = 123; - /// <summary> - /// The system call level is not correct. - /// </summary> - public const int ERROR_INVALID_LEVEL = 124; - /// <summary> - /// The disk has no volume label. - /// </summary> - public const int ERROR_NO_VOLUME_LABEL = 125; - /// <summary> - /// The specified module could not be found. - /// </summary> - public const int ERROR_MOD_NOT_FOUND = 126; - /// <summary> - /// The specified procedure could not be found. - /// </summary> - public const int ERROR_PROC_NOT_FOUND = 127; - /// <summary> - /// There are no child processes to wait for. - /// </summary> - public const int ERROR_WAIT_NO_CHILDREN = 128; - /// <summary> - /// The %1 application cannot be run in Win32 mode. - /// </summary> - public const int ERROR_CHILD_NOT_COMPLETE = 129; - /// <summary> - /// Attempt to use a file handle to an open disk partition for an operation other than raw disk I/O. - /// </summary> - public const int ERROR_DIRECT_ACCESS_HANDLE = 130; - /// <summary> - /// An attempt was made to move the file pointer before the beginning of the file. - /// </summary> - public const int ERROR_NEGATIVE_SEEK = 131; - /// <summary> - /// The file pointer cannot be set on the specified device or file. - /// </summary> - public const int ERROR_SEEK_ON_DEVICE = 132; - /// <summary> - /// A JOIN or SUBST command cannot be used for a drive that contains previously joined drives. - /// </summary> - public const int ERROR_IS_JOIN_TARGET = 133; - /// <summary> - /// An attempt was made to use a JOIN or SUBST command on a drive that has already been joined. - /// </summary> - public const int ERROR_IS_JOINED = 134; - /// <summary> - /// An attempt was made to use a JOIN or SUBST command on a drive that has already been substituted. - /// </summary> - public const int ERROR_IS_SUBSTED = 135; - /// <summary> - /// The system tried to delete the JOIN of a drive that is not joined. - /// </summary> - public const int ERROR_NOT_JOINED = 136; - /// <summary> - /// The system tried to delete the substitution of a drive that is not substituted. - /// </summary> - public const int ERROR_NOT_SUBSTED = 137; - /// <summary> - /// The system tried to join a drive to a directory on a joined drive. - /// </summary> - public const int ERROR_JOIN_TO_JOIN = 138; - /// <summary> - /// The system tried to substitute a drive to a directory on a substituted drive. - /// </summary> - public const int ERROR_SUBST_TO_SUBST = 139; - /// <summary> - /// The system tried to join a drive to a directory on a substituted drive. - /// </summary> - public const int ERROR_JOIN_TO_SUBST = 140; - /// <summary> - /// The system tried to SUBST a drive to a directory on a joined drive. - /// </summary> - public const int ERROR_SUBST_TO_JOIN = 141; - /// <summary> - /// The system cannot perform a JOIN or SUBST at this time. - /// </summary> - public const int ERROR_BUSY_DRIVE = 142; - /// <summary> - /// The system cannot join or substitute a drive to or for a directory on the same drive. - /// </summary> - public const int ERROR_SAME_DRIVE = 143; - /// <summary> - /// The directory is not a subdirectory of the root directory. - /// </summary> - public const int ERROR_DIR_NOT_ROOT = 144; - /// <summary> - /// The directory is not empty. - /// </summary> - public const int ERROR_DIR_NOT_EMPTY = 145; - /// <summary> - /// The path specified is being used in a substitute. - /// </summary> - public const int ERROR_IS_SUBST_PATH = 146; - /// <summary> - /// Not enough resources are available to process this command. - /// </summary> - public const int ERROR_IS_JOIN_PATH = 147; - /// <summary> - /// The path specified cannot be used at this time. - /// </summary> - public const int ERROR_PATH_BUSY = 148; - /// <summary> - /// An attempt was made to join or substitute a drive for which a directory on the drive is the target of a previous substitute. - /// </summary> - public const int ERROR_IS_SUBST_TARGET = 149; - /// <summary> - /// System trace information was not specified in your CONFIG.SYS file, or tracing is disallowed. - /// </summary> - public const int ERROR_SYSTEM_TRACE = 150; - /// <summary> - /// The number of specified semaphore events for DosMuxSemWait is not correct. - /// </summary> - public const int ERROR_INVALID_EVENT_COUNT = 151; - /// <summary> - /// DosMuxSemWait did not execute; too many semaphores are already set. - /// </summary> - public const int ERROR_TOO_MANY_MUXWAITERS = 152; - /// <summary> - /// The DosMuxSemWait list is not correct. - /// </summary> - public const int ERROR_INVALID_LIST_FORMAT = 153; - /// <summary> - /// The volume label you entered exceeds the label character limit of the target file system. - /// </summary> - public const int ERROR_LABEL_TOO_Int32 = 154; - /// <summary> - /// Cannot create another thread. - /// </summary> - public const int ERROR_TOO_MANY_TCBS = 155; - /// <summary> - /// The recipient process has refused the signal. - /// </summary> - public const int ERROR_SIGNAL_REFUSED = 156; - /// <summary> - /// The segment is already discarded and cannot be locked. - /// </summary> - public const int ERROR_DISCARDED = 157; - /// <summary> - /// The segment is already unlocked. - /// </summary> - public const int ERROR_NOT_LOCKED = 158; - /// <summary> - /// The address for the thread ID is not correct. - /// </summary> - public const int ERROR_BAD_THREADID_ADDR = 159; - /// <summary> - /// One or more arguments are not correct. - /// </summary> - public const int ERROR_BAD_ARGUMENTS = 160; - /// <summary> - /// The specified path is invalid. - /// </summary> - public const int ERROR_BAD_PATHNAME = 161; - /// <summary> - /// A signal is already pending. - /// </summary> - public const int ERROR_SIGNAL_PENDING = 162; - /// <summary> - /// No more threads can be created in the system. - /// </summary> - public const int ERROR_MAX_THRDS_REACHED = 164; - /// <summary> - /// Unable to lock a region of a file. - /// </summary> - public const int ERROR_LOCK_FAILED = 167; - /// <summary> - /// The requested resource is in use. - /// </summary> - public const int ERROR_BUSY = 170; - /// <summary> - /// A lock request was not outstanding for the supplied cancel region. - /// </summary> - public const int ERROR_CANCEL_VIOLATION = 173; - /// <summary> - /// The file system does not support atomic changes to the lock type. - /// </summary> - public const int ERROR_ATOMIC_LOCKS_NOT_SUPPORTED = 174; - /// <summary> - /// The system detected a segment number that was not correct. - /// </summary> - public const int ERROR_INVALID_SEGMENT_NUMBER = 180; - /// <summary> - /// The operating system cannot run %1. - /// </summary> - public const int ERROR_INVALID_ORDINAL = 182; - /// <summary> - /// Cannot create a file when that file already exists. - /// </summary> - public const int ERROR_ALREADY_EXISTS = 183; - /// <summary> - /// The flag passed is not correct. - /// </summary> - public const int ERROR_INVALID_FLAG_NUMBER = 186; - /// <summary> - /// The specified system semaphore name was not found. - /// </summary> - public const int ERROR_SEM_NOT_FOUND = 187; - /// <summary> - /// The operating system cannot run %1. - /// </summary> - public const int ERROR_INVALID_STARTING_CODESEG = 188; - /// <summary> - /// The operating system cannot run %1. - /// </summary> - public const int ERROR_INVALID_STACKSEG = 189; - /// <summary> - /// The operating system cannot run %1. - /// </summary> - public const int ERROR_INVALID_MODULETYPE = 190; - /// <summary> - /// Cannot run %1 in Win32 mode. - /// </summary> - public const int ERROR_INVALID_EXE_SIGNATURE = 191; - /// <summary> - /// The operating system cannot run %1. - /// </summary> - public const int ERROR_EXE_MARKED_INVALID = 192; - /// <summary> - /// %1 is not a valid Win32 application. - /// </summary> - public const int ERROR_BAD_EXE_FORMAT = 193; - /// <summary> - /// The operating system cannot run %1. - /// </summary> - public const int ERROR_ITERATED_DATA_EXCEEDS_64k = 194; - /// <summary> - /// The operating system cannot run %1. - /// </summary> - public const int ERROR_INVALID_MINALLOCSIZE = 195; - /// <summary> - /// The operating system cannot run this application program. - /// </summary> - public const int ERROR_DYNLINK_FROM_INVALID_RING = 196; - /// <summary> - /// The operating system is not presently configured to run this application. - /// </summary> - public const int ERROR_IOPL_NOT_ENABLED = 197; - /// <summary> - /// The operating system cannot run %1. - /// </summary> - public const int ERROR_INVALID_SEGDPL = 198; - /// <summary> - /// The operating system cannot run this application program. - /// </summary> - public const int ERROR_AUTODATASEG_EXCEEDS_64k = 199; - /// <summary> - /// The code segment cannot be greater than or equal to 64K. - /// </summary> - public const int ERROR_RING2SEG_MUST_BE_MOVABLE = 200; - /// <summary> - /// The operating system cannot run %1. - /// </summary> - public const int ERROR_RELOC_CHAIN_XEEDS_SEGLIM = 201; - /// <summary> - /// The operating system cannot run %1. - /// </summary> - public const int ERROR_INFLOOP_IN_RELOC_CHAIN = 202; - /// <summary> - /// The system could not find the environment option that was entered. - /// </summary> - public const int ERROR_ENVVAR_NOT_FOUND = 203; - /// <summary> - /// No process in the command subtree has a signal handler. - /// </summary> - public const int ERROR_NO_SIGNAL_SENT = 205; - /// <summary> - /// The filename or extension is too long. - /// </summary> - public const int ERROR_FILENAME_EXCED_RANGE = 206; - /// <summary> - /// The ring 2 stack is in use. - /// </summary> - public const int ERROR_RING2_STACK_IN_USE = 207; - /// <summary> - /// The global filename characters, * or ?, are entered incorrectly or too many global filename characters are specified. - /// </summary> - public const int ERROR_META_EXPANSION_TOO_Int32 = 208; - /// <summary> - /// The signal being posted is not correct. - /// </summary> - public const int ERROR_INVALID_SIGNAL_NUMBER = 209; - /// <summary> - /// The signal handler cannot be set. - /// </summary> - public const int ERROR_THREAD_1_INACTIVE = 210; - /// <summary> - /// The segment is locked and cannot be reallocated. - /// </summary> - public const int ERROR_LOCKED = 212; - /// <summary> - /// Too many dynamic-link modules are attached to this program or dynamic-link module. - /// </summary> - public const int ERROR_TOO_MANY_MODULES = 214; - /// <summary> - /// Cannot nest calls to LoadModule. - /// </summary> - public const int ERROR_NESTING_NOT_ALLOWED = 215; - /// <summary> - /// The image file %1 is valid, but is for a machine type other than the current machine. - /// </summary> - public const int ERROR_EXE_MACHINE_TYPE_MISMATCH = 216; - /// <summary> - /// No information avialable. - /// </summary> - public const int ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY = 217; - /// <summary> - /// No information avialable. - /// </summary> - public const int ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY = 218; - /// <summary> - /// The pipe state is invalid. - /// </summary> - public const int ERROR_BAD_PIPE = 230; - /// <summary> - /// All pipe instances are busy. - /// </summary> - public const int ERROR_PIPE_BUSY = 231; - /// <summary> - /// The pipe is being closed. - /// </summary> - public const int ERROR_NO_DATA = 232; - /// <summary> - /// No process is on the other end of the pipe. - /// </summary> - public const int ERROR_PIPE_NOT_CONNECTED = 233; - /// <summary> - /// More data is available. - /// </summary> - public const int ERROR_MORE_DATA = 234; - /// <summary> - /// The session was canceled. - /// </summary> - public const int ERROR_VC_DISCONNECTED = 240; - /// <summary> - /// The specified extended attribute name was invalid. - /// </summary> - public const int ERROR_INVALID_EA_NAME = 254; - /// <summary> - /// The extended attributes are inconsistent. - /// </summary> - public const int ERROR_EA_LIST_INCONSISTENT = 255; - /// <summary> - /// The wait operation timed out. - /// </summary> - public const int WAIT_TIMEOUT = 258; - /// <summary> - /// No more data is available. - /// </summary> - public const int ERROR_NO_MORE_ITEMS = 259; - /// <summary> - /// The copy functions cannot be used. - /// </summary> - public const int ERROR_CANNOT_COPY = 266; - /// <summary> - /// The directory name is invalid. - /// </summary> - public const int ERROR_DIRECTORY = 267; - /// <summary> - /// The extended attributes did not fit in the buffer. - /// </summary> - public const int ERROR_EAS_DIDNT_FIT = 275; - /// <summary> - /// The extended attribute file on the mounted file system is corrupt. - /// </summary> - public const int ERROR_EA_FILE_CORRUPT = 276; - /// <summary> - /// The extended attribute table file is full. - /// </summary> - public const int ERROR_EA_TABLE_FULL = 277; - /// <summary> - /// The specified extended attribute handle is invalid. - /// </summary> - public const int ERROR_INVALID_EA_HANDLE = 278; - /// <summary> - /// The mounted file system does not support extended attributes. - /// </summary> - public const int ERROR_EAS_NOT_SUPPORTED = 282; - /// <summary> - /// Attempt to release mutex not owned by caller. - /// </summary> - public const int ERROR_NOT_OWNER = 288; - /// <summary> - /// Too many posts were made to a semaphore. - /// </summary> - public const int ERROR_TOO_MANY_POSTS = 298; - /// <summary> - /// Only part of a ReadProcessMemory or WriteProcessMemory request was completed. - /// </summary> - public const int ERROR_PARTIAL_COPY = 299; - /// <summary> - /// The oplock request is denied. - /// </summary> - public const int ERROR_OPLOCK_NOT_GRANTED = 300; - /// <summary> - /// An invalid oplock acknowledgment was received by the system. - /// </summary> - public const int ERROR_INVALID_OPLOCK_PROTOCOL = 301; - /// <summary> - /// The volume is too fragmented to complete this operation. - /// </summary> - public const int ERROR_DISK_TOO_FRAGMENTED = 302; - /// <summary> - /// The file cannot be opened because it is in the process of being deleted. - /// </summary> - public const int ERROR_DELETE_PENDING = 303; - /// <summary> - /// The system cannot find message text for message number 0x%1 in the message file for %2. - /// </summary> - public const int ERROR_MR_MID_NOT_FOUND = 317; - /// <summary> - /// No information avialable. - /// </summary> - public const int ERROR_SCOPE_NOT_FOUND = 318; - /// <summary> - /// Attempt to access invalid address. - /// </summary> - public const int ERROR_INVALID_ADDRESS = 487; - /// <summary> - /// Arithmetic result exceeded 32 bits. - /// </summary> - public const int ERROR_ARITHMETIC_OVERFLOW = 534; - /// <summary> - /// There is a process on other end of the pipe. - /// </summary> - public const int ERROR_PIPE_CONNECTED = 535; - /// <summary> - /// Waiting for a process to open the other end of the pipe. - /// </summary> - public const int ERROR_PIPE_LISTENING = 536; - /// <summary> - /// Access to the extended attribute was denied. - /// </summary> - public const int ERROR_EA_ACCESS_DENIED = 994; - /// <summary> - /// The I/O operation has been aborted because of either a thread exit or an application request. - /// </summary> - public const int ERROR_OPERATION_ABORTED = 995; - /// <summary> - /// Overlapped I/O event is not in a signaled state. - /// </summary> - public const int ERROR_IO_INCOMPLETE = 996; - /// <summary> - /// Overlapped I/O operation is in progress. - /// </summary> - public const int ERROR_IO_PENDING = 997; - /// <summary> - /// Invalid access to memory location. - /// </summary> - public const int ERROR_NOACCESS = 998; - /// <summary> - /// Error performing inpage operation. - /// </summary> - public const int ERROR_SWAPERROR = 999; - /// <summary> - /// Recursion too deep; the stack overflowed. - /// </summary> - public const int ERROR_STACK_OVERFLOW = 1001; - /// <summary> - /// The window cannot act on the sent message. - /// </summary> - public const int ERROR_INVALID_MESSAGE = 1002; - /// <summary> - /// Cannot complete this function. - /// </summary> - public const int ERROR_CAN_NOT_COMPLETE = 1003; - /// <summary> - /// Invalid flags. - /// </summary> - public const int ERROR_INVALID_FLAGS = 1004; - /// <summary> - /// The volume does not contain a recognized file system. - /// Please make sure that all required file system drivers are loaded and that the volume is not corrupted. - /// </summary> - public const int ERROR_UNRECOGNIZED_VOLUME = 1005; - /// <summary> - /// The volume for a file has been externally altered so that the opened file is no longer valid. - /// </summary> - public const int ERROR_FILE_INVALID = 1006; - /// <summary> - /// The requested operation cannot be performed in full-screen mode. - /// </summary> - public const int ERROR_FULLSCREEN_MODE = 1007; - /// <summary> - /// An attempt was made to reference a token that does not exist. - /// </summary> - public const int ERROR_NO_TOKEN = 1008; - /// <summary> - /// The configuration registry database is corrupt. - /// </summary> - public const int ERROR_BADDB = 1009; - /// <summary> - /// The configuration registry key is invalid. - /// </summary> - public const int ERROR_BADKEY = 1010; - /// <summary> - /// The configuration registry key could not be opened. - /// </summary> - public const int ERROR_CANTOPEN = 1011; - /// <summary> - /// The configuration registry key could not be read. - /// </summary> - public const int ERROR_CANTREAD = 1012; - /// <summary> - /// The configuration registry key could not be written. - /// </summary> - public const int ERROR_CANTWRITE = 1013; - /// <summary> - /// One of the files in the registry database had to be recovered by use of a log or alternate copy. The recovery was successful. - /// </summary> - public const int ERROR_REGISTRY_RECOVERED = 1014; - /// <summary> - /// The registry is corrupted. The structure of one of the files containing registry data is corrupted, or the system's memory image of the file is corrupted, or the file could not be recovered because the alternate copy or log was absent or corrupted. - /// </summary> - public const int ERROR_REGISTRY_CORRUPT = 1015; - /// <summary> - /// An I/O operation initiated by the registry failed unrecoverably. The registry could not read in, or write out, or flush, one of the files that contain the system's image of the registry. - /// </summary> - public const int ERROR_REGISTRY_IO_FAILED = 1016; - /// <summary> - /// The system has attempted to load or restore a file into the registry, but the specified file is not in a registry file format. - /// </summary> - public const int ERROR_NOT_REGISTRY_FILE = 1017; - /// <summary> - /// Illegal operation attempted on a registry key that has been marked for deletion. - /// </summary> - public const int ERROR_KEY_DELETED = 1018; - /// <summary> - /// System could not allocate the required space in a registry log. - /// </summary> - public const int ERROR_NO_LOG_SPACE = 1019; - /// <summary> - /// Cannot create a symbolic link in a registry key that already has subkeys or values. - /// </summary> - public const int ERROR_KEY_HAS_CHILDREN = 1020; - /// <summary> - /// Cannot create a stable subkey under a volatile parent key. - /// </summary> - public const int ERROR_CHILD_MUST_BE_VOLATILE = 1021; - /// <summary> - /// A notify change request is being completed and the information is not being returned in the caller's buffer. The caller now needs to enumerate the files to find the changes. - /// </summary> - public const int ERROR_NOTIFY_ENUM_DIR = 1022; - /// <summary> - /// A stop control has been sent to a service that other running services are dependent on. - /// </summary> - public const int ERROR_DEPENDENT_SERVICES_RUNNING = 1051; - /// <summary> - /// The requested control is not valid for this service. - /// </summary> - public const int ERROR_INVALID_SERVICE_CONTROL = 1052; - /// <summary> - /// The service did not respond to the start or control request in a timely fashion. - /// </summary> - public const int ERROR_SERVICE_REQUEST_TIMEOUT = 1053; - /// <summary> - /// A thread could not be created for the service. - /// </summary> - public const int ERROR_SERVICE_NO_THREAD = 1054; - /// <summary> - /// The service database is locked. - /// </summary> - public const int ERROR_SERVICE_DATABASE_LOCKED = 1055; - /// <summary> - /// An instance of the service is already running. - /// </summary> - public const int ERROR_SERVICE_ALREADY_RUNNING = 1056; - /// <summary> - /// The account name is invalid or does not exist, or the password is invalid for the account name specified. - /// </summary> - public const int ERROR_INVALID_SERVICE_ACCOUNT = 1057; - /// <summary> - /// The service cannot be started, either because it is disabled or because it has no enabled devices associated with it. - /// </summary> - public const int ERROR_SERVICE_DISABLED = 1058; - /// <summary> - /// Circular service dependency was specified. - /// </summary> - public const int ERROR_CIRCULAR_DEPENDENCY = 1059; - /// <summary> - /// The specified service does not exist as an installed service. - /// </summary> - public const int ERROR_SERVICE_DOES_NOT_EXIST = 1060; - /// <summary> - /// The service cannot accept control messages at this time. - /// </summary> - public const int ERROR_SERVICE_CANNOT_ACCEPT_CTRL = 1061; - /// <summary> - /// The service has not been started. - /// </summary> - public const int ERROR_SERVICE_NOT_ACTIVE = 1062; - /// <summary> - /// The service process could not connect to the service controller. - /// </summary> - public const int ERROR_FAILED_SERVICE_CONTROLLER_CONNECT = 1063; - /// <summary> - /// An exception occurred in the service when handling the control request. - /// </summary> - public const int ERROR_EXCEPTION_IN_SERVICE = 1064; - /// <summary> - /// The database specified does not exist. - /// </summary> - public const int ERROR_DATABASE_DOES_NOT_EXIST = 1065; - /// <summary> - /// The service has returned a service-specific error code. - /// </summary> - public const int ERROR_SERVICE_SPECIFIC_ERROR = 1066; - /// <summary> - /// The process terminated unexpectedly. - /// </summary> - public const int ERROR_PROCESS_ABORTED = 1067; - /// <summary> - /// The dependency service or group failed to start. - /// </summary> - public const int ERROR_SERVICE_DEPENDENCY_FAIL = 1068; - /// <summary> - /// The service did not start due to a logon failure. - /// </summary> - public const int ERROR_SERVICE_LOGON_FAILED = 1069; - /// <summary> - /// After starting, the service hung in a start-pending state. - /// </summary> - public const int ERROR_SERVICE_START_HANG = 1070; - /// <summary> - /// The specified service database lock is invalid. - /// </summary> - public const int ERROR_INVALID_SERVICE_LOCK = 1071; - /// <summary> - /// The specified service has been marked for deletion. - /// </summary> - public const int ERROR_SERVICE_MARKED_FOR_DELETE = 1072; - /// <summary> - /// The specified service already exists. - /// </summary> - public const int ERROR_SERVICE_EXISTS = 1073; - /// <summary> - /// The system is currently running with the last-known-good configuration. - /// </summary> - public const int ERROR_ALREADY_RUNNING_LKG = 1074; - /// <summary> - /// The dependency service does not exist or has been marked for deletion. - /// </summary> - public const int ERROR_SERVICE_DEPENDENCY_DELETED = 1075; - /// <summary> - /// The current boot has already been accepted for use as the last-known-good control set. - /// </summary> - public const int ERROR_BOOT_ALREADY_ACCEPTED = 1076; - /// <summary> - /// No attempts to start the service have been made since the last boot. - /// </summary> - public const int ERROR_SERVICE_NEVER_STARTED = 1077; - /// <summary> - /// The name is already in use as either a service name or a service display name. - /// </summary> - public const int ERROR_DUPLICATE_SERVICE_NAME = 1078; - /// <summary> - /// The account specified for this service is different from the account specified for other services running in the same process. - /// </summary> - public const int ERROR_DIFFERENT_SERVICE_ACCOUNT = 1079; - /// <summary> - /// Failure actions can only be set for Win32 services, not for drivers. - /// </summary> - public const int ERROR_CANNOT_DETECT_DRIVER_FAILURE = 1080; - /// <summary> - /// This service runs in the same process as the service control manager. - /// Therefore, the service control manager cannot take action if this service's process terminates unexpectedly. - /// </summary> - public const int ERROR_CANNOT_DETECT_PROCESS_ABORT = 1081; - /// <summary> - /// No recovery program has been configured for this service. - /// </summary> - public const int ERROR_NO_RECOVERY_PROGRAM = 1082; - /// <summary> - /// The executable program that this service is configured to run in does not implement the service. - /// </summary> - public const int ERROR_SERVICE_NOT_IN_EXE = 1083; - /// <summary> - /// This service cannot be started in Safe Mode - /// </summary> - public const int ERROR_NOT_SAFEBOOT_SERVICE = 1084; - /// <summary> - /// The physical end of the tape has been reached. - /// </summary> - public const int ERROR_END_OF_MEDIA = 1100; - /// <summary> - /// A tape access reached a filemark. - /// </summary> - public const int ERROR_FILEMARK_DETECTED = 1101; - /// <summary> - /// The beginning of the tape or a partition was encountered. - /// </summary> - public const int ERROR_BEGINNING_OF_MEDIA = 1102; - /// <summary> - /// A tape access reached the end of a set of files. - /// </summary> - public const int ERROR_SETMARK_DETECTED = 1103; - /// <summary> - /// No more data is on the tape. - /// </summary> - public const int ERROR_NO_DATA_DETECTED = 1104; - /// <summary> - /// Tape could not be partitioned. - /// </summary> - public const int ERROR_PARTITION_FAILURE = 1105; - /// <summary> - /// When accessing a new tape of a multivolume partition, the current block size is incorrect. - /// </summary> - public const int ERROR_INVALID_BLOCK_LENGTH = 1106; - /// <summary> - /// Tape partition information could not be found when loading a tape. - /// </summary> - public const int ERROR_DEVICE_NOT_PARTITIONED = 1107; - /// <summary> - /// Unable to lock the media eject mechanism. - /// </summary> - public const int ERROR_UNABLE_TO_LOCK_MEDIA = 1108; - /// <summary> - /// Unable to unload the media. - /// </summary> - public const int ERROR_UNABLE_TO_UNLOAD_MEDIA = 1109; - /// <summary> - /// The media in the drive may have changed. - /// </summary> - public const int ERROR_MEDIA_CHANGED = 1110; - /// <summary> - /// The I/O bus was reset. - /// </summary> - public const int ERROR_BUS_RESET = 1111; - /// <summary> - /// No media in drive. - /// </summary> - public const int ERROR_NO_MEDIA_IN_DRIVE = 1112; - /// <summary> - /// No mapping for the Unicode character exists in the target multi-byte code page. - /// </summary> - public const int ERROR_NO_UNICODE_TRANSLATION = 1113; - /// <summary> - /// A dynamic link library (DLL) initialization routine failed. - /// </summary> - public const int ERROR_DLL_INIT_FAILED = 1114; - /// <summary> - /// A system shutdown is in progress. - /// </summary> - public const int ERROR_SHUTDOWN_IN_PROGRESS = 1115; - /// <summary> - /// Unable to abort the system shutdown because no shutdown was in progress. - /// </summary> - public const int ERROR_NO_SHUTDOWN_IN_PROGRESS = 1116; - /// <summary> - /// The request could not be performed because of an I/O device error. - /// </summary> - public const int ERROR_IO_DEVICE = 1117; - /// <summary> - /// No serial device was successfully initialized. The serial driver will unload. - /// </summary> - public const int ERROR_SERIAL_NO_DEVICE = 1118; - /// <summary> - /// Unable to open a device that was sharing an interrupt request (IRQ) with other devices. At least one other device that uses that IRQ was already opened. - /// </summary> - public const int ERROR_IRQ_BUSY = 1119; - /// <summary> - /// A serial I/O operation was completed by another write to the serial port. - /// (The IOCTL_SERIAL_XOFF_COUNTER reached zero.) - /// </summary> - public const int ERROR_MORE_WRITES = 1120; - /// <summary> - /// A serial I/O operation completed because the timeout period expired. - /// (The IOCTL_SERIAL_XOFF_COUNTER did not reach zero.) - /// </summary> - public const int ERROR_COUNTER_TIMEOUT = 1121; - /// <summary> - /// No ID address mark was found on the floppy disk. - /// </summary> - public const int ERROR_FLOPPY_ID_MARK_NOT_FOUND = 1122; - /// <summary> - /// Mismatch between the floppy disk sector ID field and the floppy disk controller track address. - /// </summary> - public const int ERROR_FLOPPY_WRONG_CYLINDER = 1123; - /// <summary> - /// The floppy disk controller reported an error that is not recognized by the floppy disk driver. - /// </summary> - public const int ERROR_FLOPPY_UNKNOWN_ERROR = 1124; - /// <summary> - /// The floppy disk controller returned inconsistent results in its registers. - /// </summary> - public const int ERROR_FLOPPY_BAD_REGISTERS = 1125; - /// <summary> - /// While accessing the hard disk, a recalibrate operation failed, even after retries. - /// </summary> - public const int ERROR_DISK_RECALIBRATE_FAILED = 1126; - /// <summary> - /// While accessing the hard disk, a disk operation failed even after retries. - /// </summary> - public const int ERROR_DISK_OPERATION_FAILED = 1127; - /// <summary> - /// While accessing the hard disk, a disk controller reset was needed, but even that failed. - /// </summary> - public const int ERROR_DISK_RESET_FAILED = 1128; - /// <summary> - /// Physical end of tape encountered. - /// </summary> - public const int ERROR_EOM_OVERFLOW = 1129; - /// <summary> - /// Not enough server storage is available to process this command. - /// </summary> - public const int ERROR_NOT_ENOUGH_SERVER_MEMORY = 1130; - /// <summary> - /// A potential deadlock condition has been detected. - /// </summary> - public const int ERROR_POSSIBLE_DEADLOCK = 1131; - /// <summary> - /// The base address or the file offset specified does not have the proper alignment. - /// </summary> - public const int ERROR_MAPPED_ALIGNMENT = 1132; - /// <summary> - /// An attempt to change the system power state was vetoed by another application or driver. - /// </summary> - public const int ERROR_SET_POWER_STATE_VETOED = 1140; - /// <summary> - /// The system BIOS failed an attempt to change the system power state. - /// </summary> - public const int ERROR_SET_POWER_STATE_FAILED = 1141; - /// <summary> - /// An attempt was made to create more links on a file than the file system supports. - /// </summary> - public const int ERROR_TOO_MANY_LINKS = 1142; - /// <summary> - /// The specified program requires a newer version of Windows. - /// </summary> - public const int ERROR_OLD_WIN_VERSION = 1150; - /// <summary> - /// The specified program is not a Windows or MS-DOS program. - /// </summary> - public const int ERROR_APP_WRONG_OS = 1151; - /// <summary> - /// Cannot start more than one instance of the specified program. - /// </summary> - public const int ERROR_SINGLE_INSTANCE_APP = 1152; - /// <summary> - /// The specified program was written for an earlier version of Windows. - /// </summary> - public const int ERROR_RMODE_APP = 1153; - /// <summary> - /// One of the library files needed to run this application is damaged. - /// </summary> - public const int ERROR_INVALID_DLL = 1154; - /// <summary> - /// No application is associated with the specified file for this operation. - /// </summary> - public const int ERROR_NO_ASSOCIATION = 1155; - /// <summary> - /// An error occurred in sending the command to the application. - /// </summary> - public const int ERROR_DDE_FAIL = 1156; - /// <summary> - /// One of the library files needed to run this application cannot be found. - /// </summary> - public const int ERROR_DLL_NOT_FOUND = 1157; - /// <summary> - /// The current process has used all of its system allowance of handles for Window Manager objects. - /// </summary> - public const int ERROR_NO_MORE_USER_HANDLES = 1158; - /// <summary> - /// The message can be used only with synchronous operations. - /// </summary> - public const int ERROR_MESSAGE_SYNC_ONLY = 1159; - /// <summary> - /// The indicated source element has no media. - /// </summary> - public const int ERROR_SOURCE_ELEMENT_EMPTY = 1160; - /// <summary> - /// The indicated destination element already contains media. - /// </summary> - public const int ERROR_DESTINATION_ELEMENT_FULL = 1161; - /// <summary> - /// The indicated element does not exist. - /// </summary> - public const int ERROR_ILLEGAL_ELEMENT_ADDRESS = 1162; - /// <summary> - /// The indicated element is part of a magazine that is not present. - /// </summary> - public const int ERROR_MAGAZINE_NOT_PRESENT = 1163; - /// <summary> - /// The indicated device requires reinitialization due to hardware errors. - /// </summary> - public const int ERROR_DEVICE_REINITIALIZATION_NEEDED = 1164; - /// <summary> - /// The device has indicated that cleaning is required before further operations are attempted. - /// </summary> - public const int ERROR_DEVICE_REQUIRES_CLEANING = 1165; - /// <summary> - /// The device has indicated that its door is open. - /// </summary> - public const int ERROR_DEVICE_DOOR_OPEN = 1166; - /// <summary> - /// The device is not connected. - /// </summary> - public const int ERROR_DEVICE_NOT_CONNECTED = 1167; - /// <summary> - /// Element not found. - /// </summary> - public const int ERROR_NOT_FOUND = 1168; - /// <summary> - /// There was no match for the specified key in the index. - /// </summary> - public const int ERROR_NO_MATCH = 1169; - /// <summary> - /// The property set specified does not exist on the object. - /// </summary> - public const int ERROR_SET_NOT_FOUND = 1170; - /// <summary> - /// The point passed to GetMouseMovePoints is not in the buffer. - /// </summary> - public const int ERROR_POINT_NOT_FOUND = 1171; - /// <summary> - /// The tracking (workstation) service is not running. - /// </summary> - public const int ERROR_NO_TRACKING_SERVICE = 1172; - /// <summary> - /// The Volume ID could not be found. - /// </summary> - public const int ERROR_NO_VOLUME_ID = 1173; - /// <summary> - /// Unable to remove the file to be replaced. - /// </summary> - public const int ERROR_UNABLE_TO_REMOVE_REPLACED = 1175; - /// <summary> - /// Unable to move the replacement file to the file to be replaced. The file to be replaced has retained its original name. - /// </summary> - public const int ERROR_UNABLE_TO_MOVE_REPLACEMENT = 1176; - /// <summary> - /// Unable to move the replacement file to the file to be replaced. The file to be replaced has been renamed using the backup name. - /// </summary> - public const int ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 = 1177; - /// <summary> - /// The volume change journal is being deleted. - /// </summary> - public const int ERROR_JOURNAL_DELETE_IN_PROGRESS = 1178; - /// <summary> - /// The volume change journal is not active. - /// </summary> - public const int ERROR_JOURNAL_NOT_ACTIVE = 1179; - /// <summary> - /// A file was found, but it may not be the correct file. - /// </summary> - public const int ERROR_POTENTIAL_FILE_FOUND = 1180; - /// <summary> - /// The journal entry has been deleted from the journal. - /// </summary> - public const int ERROR_JOURNAL_ENTRY_DELETED = 1181; - /// <summary> - /// The specified device name is invalid. - /// </summary> - public const int ERROR_BAD_DEVICE = 1200; - /// <summary> - /// The device is not currently connected but it is a remembered connection. - /// </summary> - public const int ERROR_CONNECTION_UNAVAIL = 1201; - /// <summary> - /// The local device name has a remembered connection to another network resource. - /// </summary> - public const int ERROR_DEVICE_ALREADY_REMEMBERED = 1202; - /// <summary> - /// No network provider accepted the given network path. - /// </summary> - public const int ERROR_NO_NET_OR_BAD_PATH = 1203; - /// <summary> - /// The specified network provider name is invalid. - /// </summary> - public const int ERROR_BAD_PROVIDER = 1204; - /// <summary> - /// Unable to open the network connection profile. - /// </summary> - public const int ERROR_CANNOT_OPEN_PROFILE = 1205; - /// <summary> - /// The network connection profile is corrupted. - /// </summary> - public const int ERROR_BAD_PROFILE = 1206; - /// <summary> - /// Cannot enumerate a noncontainer. - /// </summary> - public const int ERROR_NOT_CONTAINER = 1207; - /// <summary> - /// An extended error has occurred. - /// </summary> - public const int ERROR_EXTENDED_ERROR = 1208; - /// <summary> - /// The format of the specified group name is invalid. - /// </summary> - public const int ERROR_INVALID_GROUPNAME = 1209; - /// <summary> - /// The format of the specified computer name is invalid. - /// </summary> - public const int ERROR_INVALID_COMPUTERNAME = 1210; - /// <summary> - /// The format of the specified event name is invalid. - /// </summary> - public const int ERROR_INVALID_EVENTNAME = 1211; - /// <summary> - /// The format of the specified domain name is invalid. - /// </summary> - public const int ERROR_INVALID_DOMAINNAME = 1212; - /// <summary> - /// The format of the specified service name is invalid. - /// </summary> - public const int ERROR_INVALID_SERVICENAME = 1213; - /// <summary> - /// The format of the specified network name is invalid. - /// </summary> - public const int ERROR_INVALID_NETNAME = 1214; - /// <summary> - /// The format of the specified share name is invalid. - /// </summary> - public const int ERROR_INVALID_SHARENAME = 1215; - /// <summary> - /// The format of the specified password is invalid. - /// </summary> - public const int ERROR_INVALID_PASSUInt16NAME = 1216; - /// <summary> - /// The format of the specified message name is invalid. - /// </summary> - public const int ERROR_INVALID_MESSAGENAME = 1217; - /// <summary> - /// The format of the specified message destination is invalid. - /// </summary> - public const int ERROR_INVALID_MESSAGEDEST = 1218; - /// <summary> - /// Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed. Disconnect all previous connections to the server or shared resource and try again.. - /// </summary> - public const int ERROR_SESSION_CREDENTIAL_CONFLICT = 1219; - /// <summary> - /// An attempt was made to establish a session to a network server, but there are already too many sessions established to that server. - /// </summary> - public const int ERROR_REMOTE_SESSION_LIMIT_EXCEEDED = 1220; - /// <summary> - /// The workgroup or domain name is already in use by another computer on the network. - /// </summary> - public const int ERROR_DUP_DOMAINNAME = 1221; - /// <summary> - /// The network is not present or not started. - /// </summary> - public const int ERROR_NO_NETWORK = 1222; - /// <summary> - /// The operation was canceled by the user. - /// </summary> - public const int ERROR_CANCELLED = 1223; - /// <summary> - /// The requested operation cannot be performed on a file with a user-mapped section open. - /// </summary> - public const int ERROR_USER_MAPPED_FILE = 1224; - /// <summary> - /// The remote system refused the network connection. - /// </summary> - public const int ERROR_CONNECTION_REFUSED = 1225; - /// <summary> - /// The network connection was gracefully closed. - /// </summary> - public const int ERROR_GRACEFUL_DISCONNECT = 1226; - /// <summary> - /// The network transport endpoint already has an address associated with it. - /// </summary> - public const int ERROR_ADDRESS_ALREADY_ASSOCIATED = 1227; - /// <summary> - /// An address has not yet been associated with the network endpoint. - /// </summary> - public const int ERROR_ADDRESS_NOT_ASSOCIATED = 1228; - /// <summary> - /// An operation was attempted on a nonexistent network connection. - /// </summary> - public const int ERROR_CONNECTION_INVALID = 1229; - /// <summary> - /// An invalid operation was attempted on an active network connection. - /// </summary> - public const int ERROR_CONNECTION_ACTIVE = 1230; - /// <summary> - /// The network location cannot be reached. For information about network troubleshooting, see Windows Help. - /// </summary> - public const int ERROR_NETWORK_UNREACHABLE = 1231; - /// <summary> - /// The network location cannot be reached. For information about network troubleshooting, see Windows Help. - /// </summary> - public const int ERROR_HOST_UNREACHABLE = 1232; - /// <summary> - /// The network location cannot be reached. For information about network troubleshooting, see Windows Help. - /// </summary> - public const int ERROR_PROTOCOL_UNREACHABLE = 1233; - /// <summary> - /// No service is operating at the destination network endpoint on the remote system. - /// </summary> - public const int ERROR_PORT_UNREACHABLE = 1234; - /// <summary> - /// The request was aborted. - /// </summary> - public const int ERROR_REQUEST_ABORTED = 1235; - /// <summary> - /// The network connection was aborted by the local system. - /// </summary> - public const int ERROR_CONNECTION_ABORTED = 1236; - /// <summary> - /// The operation could not be completed. A retry should be performed. - /// </summary> - public co... [truncated message content] |
From: <an...@us...> - 2007-12-31 16:54:26
|
Revision: 1199 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1199&view=rev Author: and-81 Date: 2007-12-31 08:54:13 -0800 (Mon, 31 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/HcwTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/Configure.Designer.cs trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Advanced.Designer.cs trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Advanced.resx trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Config.Designer.cs trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Config.resx trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Program.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MP Blast Zone Plugin.csproj trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MP Control Plugin.csproj Modified: trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs 2007-12-30 10:21:21 UTC (rev 1198) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs 2007-12-31 16:54:13 UTC (rev 1199) @@ -24,16 +24,17 @@ try { if (Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length != 1) + { + MessageBox.Show("IR Server is already running!", "Cannot start", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; + } } -#if TRACE catch (Exception ex) { +#if TRACE Trace.WriteLine(ex.ToString()); -#else - catch - { #endif + MessageBox.Show(ex.ToString(), "Error detecting duplicate processes", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.cs 2007-12-30 10:21:21 UTC (rev 1198) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.cs 2007-12-31 16:54:13 UTC (rev 1199) @@ -35,6 +35,9 @@ private void buttonConfigureGirderPlugin_Click(object sender, EventArgs e) { + if (String.IsNullOrEmpty(textBoxPluginFile.Text)) + return; + GirderPluginWrapper pluginWrapper = new GirderPluginWrapper(textBoxPluginFile.Text); pluginWrapper.GirOpen(); Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs 2007-12-30 10:21:21 UTC (rev 1198) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs 2007-12-31 16:54:13 UTC (rev 1199) @@ -441,6 +441,9 @@ /// <param name="fileName">Name of the plugin dll file.</param> public GirderPluginWrapper(string fileName) { + if (String.IsNullOrEmpty(fileName)) + throw new ArgumentException("Empty or null file name", "fileName"); + if (!LoadGirderPlugin(fileName)) throw new ApplicationException(String.Format("Failed to load girder plugin ({0})", fileName)); Modified: trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/HcwTransceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/HcwTransceiver.cs 2007-12-30 10:21:21 UTC (rev 1198) +++ trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/HcwTransceiver.cs 2007-12-31 16:54:13 UTC (rev 1199) @@ -20,22 +20,6 @@ public class HcwTransceiver : IRServerPluginBase, IRemoteReceiver // IConfigure, ITransmitIR, ILearnIR, { - #region Interop - - - const int WM_ACTIVATE = 0x0006; - const int WM_POWERBROADCAST = 0x0218; - const int WA_INACTIVE = 0; - const int WA_ACTIVE = 1; - const int WA_CLICKACTIVE = 2; - - const int PBT_APMRESUMEAUTOMATIC = 0x0012; - const int PBT_APMRESUMECRITICAL = 0x0006; - - - - #endregion - #region Delegates //Sets up callback so that other forms can catch a key press @@ -66,8 +50,6 @@ //ulong _learnCarrierFreq; - - string _lastCode = String.Empty; DateTime _lastCodeTime = DateTime.Now; @@ -104,8 +86,6 @@ { LoadSettings(); - - return true; } /// <summary> @@ -129,8 +109,8 @@ { } + - /// <summary> /// Configure the IR Server plugin. /// </summary> @@ -154,8 +134,8 @@ SaveSettings(); } } + - /// <summary> /// Callback for remote button presses. /// </summary> @@ -172,6 +152,8 @@ /// <value>The available ports.</value> public string[] AvailablePorts { get { return Ports; } } + + void LoadSettings() { try Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs 2007-12-30 10:21:21 UTC (rev 1198) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs 2007-12-31 16:54:13 UTC (rev 1199) @@ -161,6 +161,8 @@ bool _deviceAvailable; + int _decodeCarry; + #endregion Variables #region Constructor @@ -263,8 +265,6 @@ StopReadThread(); CloseDevice(); - - //Stop(); // Unlike the default driver, the replacement driver requires this. } /// <summary> @@ -290,8 +290,6 @@ //WriteSync(StartPacket); //Thread.Sleep(PacketTimeout); - - //Start(); // Unlike the default driver, the replacement driver requires this. } /// <summary> @@ -499,7 +497,7 @@ byte[] timeoutPacket = new byte[SetTimeoutPacket.Length]; SetTimeoutPacket.CopyTo(timeoutPacket, 0); - int timeoutSamples = 20 * timeout; + int timeoutSamples = 20 * timeout; // 20 * timeout in milliseconds = timeout as multiple of 50 microseconds timeoutPacket[2] = (byte)(timeoutSamples >> 8); timeoutPacket[3] = (byte)(timeoutSamples & 0xFF); @@ -671,7 +669,7 @@ DeviceIoOverlapped overlapped = new DeviceIoOverlapped(); overlapped.ClearAndSetEvent(safeWaitHandle.DangerousGetHandle()); - + deviceBufferPtr = Marshal.AllocHGlobal(DeviceBufferSize); while (_readThreadMode != ReadThreadMode.Stop) @@ -695,7 +693,7 @@ else if (handle == 0) break; else if (handle == 1) - throw new ApplicationException("Stop Read Thread"); + throw new ThreadInterruptedException("Read thread stopping by request"); else throw new ApplicationException("Invalid wait handle return"); } @@ -713,26 +711,21 @@ packetBytes = new byte[bytesRead]; Marshal.Copy(deviceBufferPtr, packetBytes, 0, bytesRead); - int[] timingData; + int[] timingData = null; + if (_decodeCarry != 0 || packetBytes[0] >= 0x81 && packetBytes[0] <= 0x8F) + timingData = GetTimingDataFromPacket(packetBytes); + switch (_readThreadMode) { case ReadThreadMode.Receiving: { - if (packetBytes[0] >= 0x81 && packetBytes[0] <= 0x8F) - { - timingData = GetTimingDataFromPacket(packetBytes); - if (timingData == null) - break; - - IrDecoder.DecodeIR(timingData, _remoteCallback, _keyboardCallback, _mouseCallback); - } + IrDecoder.DecodeIR(timingData, _remoteCallback, _keyboardCallback, _mouseCallback); break; } case ReadThreadMode.Learning: { - timingData = GetTimingDataFromPacket(packetBytes); if (timingData == null) { if (_learningCode.TimingData.Length > 0) @@ -745,11 +738,11 @@ _learningCode.AddTimingData(timingData); - // 9F 01 02 9F 15 00 BE 80 + // Example: 9F 01 02 9F 15 00 BE 80 int indexOf9F = Array.IndexOf(packetBytes, (byte)0x9F); while (indexOf9F != -1) { - if (packetBytes.Length > indexOf9F + 3 && packetBytes[indexOf9F + 1] == 0x15) + if (packetBytes.Length > indexOf9F + 3 && packetBytes[indexOf9F + 1] == 0x15) // 9F 15 XX XX { byte b1 = packetBytes[indexOf9F + 2]; byte b2 = packetBytes[indexOf9F + 3]; @@ -892,7 +885,7 @@ /// </summary> /// <param name="packet">The raw device packet.</param> /// <returns>Timing data.</returns> - static int[] GetTimingDataFromPacket(byte[] packet) + int[] GetTimingDataFromPacket(byte[] packet) { List<int> timingData = new List<int>(); @@ -902,15 +895,29 @@ { byte curByte = packet[index]; - if (curByte == 0x9F) - break; - if (curByte < 0x81 || curByte > 0x8F) - return null; - - int bytes = curByte & 0x7F; + if (_decodeCarry == 0) + { + if (curByte == 0x9F) + break; + + if (curByte < 0x81 || curByte > 0x8F) + return null; + } + + int bytes = _decodeCarry; + if (_decodeCarry == 0) + bytes = curByte & 0x7F; + else + _decodeCarry = 0; + + if (index + bytes + 1 > packet.Length) + { + _decodeCarry = (index + bytes + 1) - packet.Length; + bytes -= _decodeCarry; + } + int j; - for (j = index + 1; j < index + bytes + 1; j++) { curByte = packet[j]; Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs 2007-12-30 10:21:21 UTC (rev 1198) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs 2007-12-31 16:54:13 UTC (rev 1199) @@ -843,6 +843,8 @@ throw new Win32Exception(lastError); } + Thread.Sleep(PacketTimeout); // Hopefully improves compatibility with Zalman remote which times out retrieving device capabilities. (2008-01-01) + _deviceAvailable = true; } Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs 2007-12-30 10:21:21 UTC (rev 1198) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs 2007-12-31 16:54:13 UTC (rev 1199) @@ -160,6 +160,8 @@ bool _deviceAvailable; + int _decodeCarry; + #endregion Variables #region Constructor @@ -287,8 +289,6 @@ //WriteSync(StartPacket); //Thread.Sleep(PacketTimeout); - - //Start(); } /// <summary> @@ -496,7 +496,7 @@ byte[] timeoutPacket = new byte[SetTimeoutPacket.Length]; SetTimeoutPacket.CopyTo(timeoutPacket, 0); - int timeoutSamples = 20 * timeout; + int timeoutSamples = 20 * timeout; // 20 * timeout in milliseconds = timeout as multiple of 50 microseconds timeoutPacket[2] = (byte)(timeoutSamples >> 8); timeoutPacket[3] = (byte)(timeoutSamples & 0xFF); @@ -648,7 +648,7 @@ DeviceIoOverlapped overlapped = new DeviceIoOverlapped(); overlapped.ClearAndSetEvent(safeWaitHandle.DangerousGetHandle()); - + deviceBufferPtr = Marshal.AllocHGlobal(DeviceBufferSize); while (_readThreadMode != ReadThreadMode.Stop) @@ -672,7 +672,7 @@ else if (handle == 0) break; else if (handle == 1) - throw new ApplicationException("Stop Read Thread"); + throw new ThreadInterruptedException("Read thread stopping by request"); else throw new ApplicationException("Invalid wait handle return"); } @@ -690,26 +690,21 @@ packetBytes = new byte[bytesRead]; Marshal.Copy(deviceBufferPtr, packetBytes, 0, bytesRead); - int[] timingData; + int[] timingData = null; + if (_decodeCarry != 0 || packetBytes[0] >= 0x81 && packetBytes[0] <= 0x8F) + timingData = GetTimingDataFromPacket(packetBytes); + switch (_readThreadMode) { case ReadThreadMode.Receiving: { - if (packetBytes[0] >= 0x81 && packetBytes[0] <= 0x8F) - { - timingData = GetTimingDataFromPacket(packetBytes); - if (timingData == null) - break; - - IrDecoder.DecodeIR(timingData, _remoteCallback, _keyboardCallback, _mouseCallback); - } + IrDecoder.DecodeIR(timingData, _remoteCallback, _keyboardCallback, _mouseCallback); break; } case ReadThreadMode.Learning: { - timingData = GetTimingDataFromPacket(packetBytes); if (timingData == null) { if (_learningCode.TimingData.Length > 0) @@ -722,11 +717,11 @@ _learningCode.AddTimingData(timingData); - // 9F 01 02 9F 15 00 BE 80 + // Example: 9F 01 02 9F 15 00 BE 80 int indexOf9F = Array.IndexOf(packetBytes, (byte)0x9F); while (indexOf9F != -1) { - if (packetBytes.Length > indexOf9F + 3 && packetBytes[indexOf9F + 1] == 0x15) + if (packetBytes.Length > indexOf9F + 3 && packetBytes[indexOf9F + 1] == 0x15) // 9F 15 XX XX { byte b1 = packetBytes[indexOf9F + 2]; byte b2 = packetBytes[indexOf9F + 3]; @@ -869,13 +864,23 @@ /// </summary> /// <param name="packet">The raw device packet.</param> /// <returns>Timing data.</returns> - static int[] GetTimingDataFromPacket(byte[] packet) + int[] GetTimingDataFromPacket(byte[] packet) { +#if DEBUG + DebugWriteLine("GetTimingDataFromPacket()"); + // TODO: Remove this try/catch block once the IndexOutOfRangeException is corrected... -#if DEBUG try #endif { +#if DEBUG + if (_decodeCarry != 0) + { + DebugWriteLine("Decode Carry EXISTS: {0}", _decodeCarry); + DebugDump(packet); + } +#endif + List<int> timingData = new List<int>(); int len = 0; @@ -884,15 +889,33 @@ { byte curByte = packet[index]; - if (curByte == 0x9F) - break; + if (_decodeCarry == 0) + { + if (curByte == 0x9F) + break; - if (curByte < 0x81 || curByte > 0x8F) - return null; + if (curByte < 0x81 || curByte > 0x8F) + return null; + } - int bytes = curByte & 0x7F; + int bytes = _decodeCarry; + if (_decodeCarry == 0) + bytes = curByte & 0x7F; + else + _decodeCarry = 0; + + if (index + bytes + 1 > packet.Length) + { + _decodeCarry = (index + bytes + 1) - packet.Length; + bytes -= _decodeCarry; + +#if DEBUG + DebugWriteLine("Decode Carry SET: {0}", _decodeCarry); + DebugDump(packet); +#endif + } + int j; - for (j = index + 1; j < index + bytes + 1; j++) { curByte = packet[j]; @@ -923,13 +946,13 @@ return timingData.ToArray(); } #if DEBUG - catch (IndexOutOfRangeException ex) + catch (Exception ex) { DebugWriteLine(ex.ToString()); DebugWriteLine("Method Input:"); DebugDump(packet); - throw; + return null; } #endif } Modified: trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/Configure.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/Configure.Designer.cs 2007-12-30 10:21:21 UTC (rev 1198) +++ trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/Configure.Designer.cs 2007-12-31 16:54:13 UTC (rev 1199) @@ -38,12 +38,12 @@ this.textBoxServerPath = new System.Windows.Forms.TextBox(); this.buttonLocate = new System.Windows.Forms.Button(); this.numericUpDownButtonReleaseTime = new System.Windows.Forms.NumericUpDown(); + this.buttonCreateIRFiles = new System.Windows.Forms.Button(); this.labelServerAddress = new System.Windows.Forms.Label(); this.labelServerPort = new System.Windows.Forms.Label(); this.groupBoxServerDetails = new System.Windows.Forms.GroupBox(); this.labelButtonReleaseTime = new System.Windows.Forms.Label(); this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); - this.buttonCreateIRFiles = new System.Windows.Forms.Button(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownServerPort)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownButtonReleaseTime)).BeginInit(); this.groupBoxServerDetails.SuspendLayout(); @@ -139,6 +139,17 @@ this.numericUpDownButtonReleaseTime.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; this.toolTips.SetToolTip(this.numericUpDownButtonReleaseTime, "Button release time"); // + // buttonCreateIRFiles + // + this.buttonCreateIRFiles.Location = new System.Drawing.Point(8, 208); + this.buttonCreateIRFiles.Name = "buttonCreateIRFiles"; + this.buttonCreateIRFiles.Size = new System.Drawing.Size(104, 24); + this.buttonCreateIRFiles.TabIndex = 3; + this.buttonCreateIRFiles.Text = "Create IR files"; + this.toolTips.SetToolTip(this.buttonCreateIRFiles, "Click here to make IR Command files for use with this plugin"); + this.buttonCreateIRFiles.UseVisualStyleBackColor = true; + this.buttonCreateIRFiles.Click += new System.EventHandler(this.buttonCreateIRFiles_Click); + // // labelServerAddress // this.labelServerAddress.Location = new System.Drawing.Point(8, 24); @@ -188,24 +199,13 @@ this.openFileDialog.Filter = "All Files|*.*"; this.openFileDialog.Title = "Locate WinLirc server application"; // - // buttonCreateIRFiles - // - this.buttonCreateIRFiles.Location = new System.Drawing.Point(8, 208); - this.buttonCreateIRFiles.Name = "buttonCreateIRFiles"; - this.buttonCreateIRFiles.Size = new System.Drawing.Size(104, 24); - this.buttonCreateIRFiles.TabIndex = 3; - this.buttonCreateIRFiles.Text = "Create IR files"; - this.toolTips.SetToolTip(this.buttonCreateIRFiles, "Click here to make IR Command files for use with this plugin"); - this.buttonCreateIRFiles.UseVisualStyleBackColor = true; - this.buttonCreateIRFiles.Click += new System.EventHandler(this.buttonCreateIRFiles_Click); - // // Configure // this.AcceptButton = this.buttonOK; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.buttonCancel; - this.ClientSize = new System.Drawing.Size(248, 272); + this.ClientSize = new System.Drawing.Size(248, 273); this.Controls.Add(this.buttonCreateIRFiles); this.Controls.Add(this.numericUpDownButtonReleaseTime); this.Controls.Add(this.labelButtonReleaseTime); @@ -214,7 +214,7 @@ this.Controls.Add(this.buttonOK); this.MaximizeBox = false; this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(256, 275); + this.MinimumSize = new System.Drawing.Size(256, 300); this.Name = "Configure"; this.ShowIcon = false; this.ShowInTaskbar = false; Modified: trunk/plugins/IR Server Suite/IR Server Suite.sln =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite.sln 2007-12-30 10:21:21 UTC (rev 1198) +++ trunk/plugins/IR Server Suite/IR Server Suite.sln 2007-12-31 16:54:13 UTC (rev 1199) @@ -299,6 +299,12 @@ IR Server Suite - Release.nsi = IR Server Suite - Release.nsi EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PVR150 Tuner", "Util Apps\PVR150 Tuner\PVR150 Tuner.csproj", "{EDE4F0AC-CA13-4E4F-8466-EF0519B7B0EF}" + ProjectSection(WebsiteProperties) = preProject + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.Debug = "False" + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -639,6 +645,12 @@ {327F54E5-D1DC-4297-BF2F-4283EB30FFB1}.Release|Any CPU.Build.0 = Release|Any CPU {327F54E5-D1DC-4297-BF2F-4283EB30FFB1}.Release|x86.ActiveCfg = Release|x86 {327F54E5-D1DC-4297-BF2F-4283EB30FFB1}.Release|x86.Build.0 = Release|x86 + {EDE4F0AC-CA13-4E4F-8466-EF0519B7B0EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EDE4F0AC-CA13-4E4F-8466-EF0519B7B0EF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EDE4F0AC-CA13-4E4F-8466-EF0519B7B0EF}.Debug|x86.ActiveCfg = Debug|Any CPU + {EDE4F0AC-CA13-4E4F-8466-EF0519B7B0EF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EDE4F0AC-CA13-4E4F-8466-EF0519B7B0EF}.Release|Any CPU.Build.0 = Release|Any CPU + {EDE4F0AC-CA13-4E4F-8466-EF0519B7B0EF}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -685,5 +697,6 @@ {905131F8-F8AC-4A65-A722-37783902D7B8} = {D4CDABD0-B82E-4DEE-A2A8-A2A52774FC2F} {DDB52A4D-A670-411A-8273-8B1707C67028} = {D4CDABD0-B82E-4DEE-A2A8-A2A52774FC2F} {327F54E5-D1DC-4297-BF2F-4283EB30FFB1} = {D4CDABD0-B82E-4DEE-A2A8-A2A52774FC2F} + {EDE4F0AC-CA13-4E4F-8466-EF0519B7B0EF} = {D4CDABD0-B82E-4DEE-A2A8-A2A52774FC2F} EndGlobalSection EndGlobal Modified: trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Advanced.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Advanced.Designer.cs 2007-12-30 10:21:21 UTC (rev 1198) +++ trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Advanced.Designer.cs 2007-12-31 16:54:13 UTC (rev 1199) @@ -44,7 +44,8 @@ // // groupBoxMode // - this.groupBoxMode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + this.groupBoxMode.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBoxMode.Controls.Add(this.labelComputer); this.groupBoxMode.Controls.Add(this.radioButtonRepeater); @@ -125,7 +126,7 @@ // this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.buttonCancel.Location = new System.Drawing.Point(328, 144); + this.buttonCancel.Location = new System.Drawing.Point(328, 136); this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(64, 24); this.buttonCancel.TabIndex = 2; @@ -136,7 +137,7 @@ // buttonOK // this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.buttonOK.Location = new System.Drawing.Point(256, 144); + this.buttonOK.Location = new System.Drawing.Point(256, 136); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(64, 24); this.buttonOK.TabIndex = 1; @@ -150,12 +151,11 @@ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.buttonCancel; - this.ClientSize = new System.Drawing.Size(402, 177); + this.ClientSize = new System.Drawing.Size(400, 169); this.Controls.Add(this.buttonCancel); this.Controls.Add(this.buttonOK); this.Controls.Add(this.groupBoxMode); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MinimumSize = new System.Drawing.Size(418, 213); this.Name = "Advanced"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Input Service Configuration - Advanced"; Modified: trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Advanced.resx =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Advanced.resx 2007-12-30 10:21:21 UTC (rev 1198) +++ trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Advanced.resx 2007-12-31 16:54:13 UTC (rev 1199) @@ -120,161 +120,55 @@ <metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>17, 17</value> </metadata> + <metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> - AAABAAQAICAAAAEACACoCAAARgAAABAQAAABAAgAaAUAAO4IAAAgIAAAAQAgAKgQAABWDgAAEBAAAAEA - IABoBAAA/h4AACgAAAAgAAAAQAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgYGBAIWF - hQCIiIgAjo6OAJGRkQCVlZUAmpqaAJucnACdnZ0AoaKiAKWmpgCnqKgAqKmpAKusrACsra0AsbGxALW1 - tQC4ubkAu7y8ALy9vQDDw8MAxcXFAMnJyQDNzs4A0dLSANPU1ADV1dUA2NnZAN3d3QDg4OAA5OXlAOjp - 6QDu7u4A8fHxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAABAAIAICAAAAEACACoCAAAJgAAABAQEAABAAQAKAEAAM4IAAAoAAAAIAAAAEAAAAABAAgAAAAAAIAE + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAMDAwADA3MAA8MqmANTw + /wCx4v8AjtT/AGvG/wBIuP8AJar/AACq/wAAktwAAHq5AABilgAASnMAADJQANTj/wCxx/8Ajqv/AGuP + /wBIc/8AJVf/AABV/wAASdwAAD25AAAxlgAAJXMAABlQANTU/wCxsf8Ajo7/AGtr/wBISP8AJSX/AAAA + /gAAANwAAAC5AAAAlgAAAHMAAABQAOPU/wDHsf8Aq47/AI9r/wBzSP8AVyX/AFUA/wBJANwAPQC5ADEA + lgAlAHMAGQBQAPDU/wDisf8A1I7/AMZr/wC4SP8AqiX/AKoA/wCSANwAegC5AGIAlgBKAHMAMgBQAP/U + /wD/sf8A/47/AP9r/wD/SP8A/yX/AP4A/gDcANwAuQC5AJYAlgBzAHMAUABQAP/U8AD/seIA/47UAP9r + xgD/SLgA/yWqAP8AqgDcAJIAuQB6AJYAYgBzAEoAUAAyAP/U4wD/sccA/46rAP9rjwD/SHMA/yVXAP8A + VQDcAEkAuQA9AJYAMQBzACUAUAAZAP/U1AD/sbEA/46OAP9rawD/SEgA/yUlAP4AAADcAAAAuQAAAJYA + AABzAAAAUAAAAP/j1AD/x7EA/6uOAP+PawD/c0gA/1clAP9VAADcSQAAuT0AAJYxAABzJQAAUBkAAP/w + 1AD/4rEA/9SOAP/GawD/uEgA/6olAP+qAADckgAAuXoAAJZiAABzSgAAUDIAAP//1AD//7EA//+OAP// + awD//0gA//8lAP7+AADc3AAAubkAAJaWAABzcwAAUFAAAPD/1ADi/7EA1P+OAMb/awC4/0gAqv8lAKr/ + AACS3AAAerkAAGKWAABKcwAAMlAAAOP/1ADH/7EAq/+OAI//awBz/0gAV/8lAFX/AABJ3AAAPbkAADGW + AAAlcwAAGVAAANT/1ACx/7EAjv+OAGv/awBI/0gAJf8lAAD+AAAA3AAAALkAAACWAAAAcwAAAFAAANT/ + 4wCx/8cAjv+rAGv/jwBI/3MAJf9XAAD/VQAA3EkAALk9AACWMQAAcyUAAFAZANT/8ACx/+IAjv/UAGv/ + xgBI/7gAJf+qAAD/qgAA3JIAALl6AACWYgAAc0oAAFAyANT//wCx//8Ajv//AGv//wBI//8AJf//AAD+ + /gAA3NwAALm5AACWlgAAc3MAAFBQAPLy8gDm5uYA2traAM7OzgDCwsIAtra2AKqqqgCenp4AkpKSAIaG + hgB6enoAbm5uAGJiYgBWVlYASkpKAD4+PgAyMjIAJiYmABoaGgAODg4A8Pv/AKSgoACAgIAAAAD/AAD/ + AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + /PwAAPz8/PwA/AAA/AAAAPwAAAD8/Pz8APwAAPwAAAAAAPwA/AAAAAD8AAD8AAD8APwAAPwAAAAA/AAA + /AAAAAAA/AD8AAAAAPwAAPwAAPwA/AAA/AAAAAD8AAD8AAAAAAD8APwAAAAA/AAA/AD8AAAA/AD8AAAA + APwAAPwAAAAAAPwA/AAAAAD8AAD8APwAAAD8APwAAAAA/AAA/AAAAPz8AAD8/PwAAPz8/AAA/AAAAPwA + /Pz8AAD8/PwAAAD8AAAAAPwAAAAA/AAA/AD8AAAA/AD8AAAAAPwAAPwAAPwAAAAA/AAAAAD8AAD8APwA + AAD8APwAAAAA/AAA/AAA/AAAAAD8AAAAAPwAAPwA/AAAAPwA/AAAAAD8AAD8AAD8AAAAAPwAAAAA/AAA + /AD8AAAA/AD8AAAAAPwAAPwAAAD8/AAA/Pz8/AD8/PwAAPwAAAD8APz8/PwA/Pz8AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAABcQAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASGRgEAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAMDAEABgIbGwUBAAAIAQAAAAAAAAAAAAAAAAAAAAAAAB4WDwQSGBgbGBEC - BxgVAAAAAAAAAAAAAAAAAAAAAAAAHhcVFRUWGBgYHhwYGxgAAAAAAAAAAAAAAAAAAAAAAAAAERMTExUW - GBYcGxgUBgAAAAAAAAAAAAAAAAAAAAAAAAATERETFxseGx4YFRIBAAAAAAAAAAAAAAAAAAAAAAADBA8P - EBUAAAAAHhsTEgIAAAAAAAAAAAAAAAAAAAAADwEBAQMPBQAAAAAbHhMRDwcFAAAACAgIAwEAAAAAAAAO - CAgDAQIBAAAAAAAbGxMQEBUAABAODA4KCAEAAAAAEA4MDAoGAQEAAAAADBMSGxQXHgAAFQ4ODg4KCAAA - AAAVDg4ODgoFAQEBAwQQCwsVBwAAAAAQDg4ODg4MAAAAABAODg4ODgoBCAcJCwkJCwgAAAAAABAODg4O - Dg4AAAAAEA4ODg4ODgQFBgYHBwcJBgEAAAAAEA4ODg4ODgAAAAAQDg4ODg4OBAUFBQUKDgkHBwAAAAAQ - Dg4ODg4OAAAAABAODg4ODg4FDwUFCgwAEBASAAAAABAODg4ODg4AAAAAEA4ODg4ODgASBwUCAAADAQAA - AAAAEA4ODg4ODgAAAAAQDg4ODg4OAAAVCgUKCggGAQAAAAAQDg4ODg4OAAAAABAODg4ODg4AABcUDg4O - DgwIAwAAABAODg4ODg4AAAAAEA4ODg4ODgAAABAODg4ODg4IAwAAEA4ODg4ODgAAAAAQDg4ODg4OAAAX - Dg4QICISDgwKAAAQDg4ODg4OAAAAABAODg4ODg4AABsODhv//x4ODg4AABAODg4ODg4AAAAAEA4ODg4O - DgAAHA4OFf//Gw4OEAAAEg4ODg4OEgAAAAASDg4ODg4SAAAgEA4OEhUODg4SAAAcEA4ODhASAAAAABwO - Dg4OEBIAAAAbEA4ODg4OFQAAAAAcFBIVHAAAAAAAABwSEBUbAAAAAAAcEhAOEBcAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAHh4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - ///////////4////8P///iBn//4AB//+AAf//wAH//8AB//8Dwf/+A8BwfgPgYDwDwGA8AAHgPAAD4Dw - AAeA8AAHgPAAR4DwEM+A8BgHgPAYA4DwHAGA8BgBgPAYAYDwGAGA8BgBgPAcA8H4Pgf///+P//////// - ////////KAAAABAAAAAgAAAAAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDhIQAhoaGAIuL - iwCWl5cAmZqaAJ2dnQChoqIAo6SkAKWmpgCnqKgAqampAKusrACtrq4AsbKyALa3twC3uLgAuLm5ALu8 - vADCw8MAxcXFAMnKygDLzMwAz8/PANbX1wDZ2dkA4eHhAOXl5QDv7+8AAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAABIHAAAAAAAAAAAAAAAABwQSEgMHBAAAAAAAAAAAABMTFBUZFQAAAAAAAAAA - AAAOExUAGBMDAAAAAwAAAA4DAQMAABQUCwUACwoDAAAOCwcBAAALEw4AFAsLCwAACwsLBAQGBgUAABQL - CwsAAAsLCwUEBAcJCwAUCwsLAAALCwsEDgMDAwAAFAsLCwAACwsLBAAOCwsFABQLCwsAAAsLCwQACxkb - CwQYCwsLAAAOCwsHAAsVGAsLABIOFAAAGQ4SAAAZDQsUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA//8AAP/PAAD/AQAA/wMAAP8RAADcMAAAjDEAAAwDAAAMAQAADAMAAAwhAAAMIAAADCAAAIxh - AAD//wAA//8AACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAJAAAAEwAAAA4AAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAABsbGwIODg4FBgYGCxoZGVAWFRVyBQQEUgAAABUCAgIGBgYGAwMDAwEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAQEBAknJycNS0tLElZWVh9oZ2c/zsfI/rivsf9aWFixOTk5PkBAQB4nJycSEBAQCQIC - AgcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAADAwMUExISUisrK1FnZ2c7dXV1SH98fIjezNH/3cfP/4F5edZPT09taWlpRWdn - Zy4rKys3AwMDQgAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMzExA2NgYI2ppKT3SEZFri4uLnRYVFSef3Fw3OTP1v/gyNH/mYuM80hE - Q640NDR3Pj09bomFhdFQTk63AAAARwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACuqagl6eHi/djBxv+8qq3/lIWF88e0uP/cxs3/4MfP/+HI - 0P/dxs7/wbG1/4N3eOmhk5Xy2sfO/8e9wP4+PDt5AwMDBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUzc2U3snM/9i9wf/Zv8P/2r/E/9vB - xv/cwsj/3cPJ/+DJz//q2+D/5NPY/9/Hz//jy9P/0cfJ7iopKScAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEtHRxrFtLP51bq7/9W6 - vP/Wu73/173A/9vDxv/dxMj/28HF/+bU2P/jzdL/3cPJ/8+8v/9APDuMBwcHDwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkCAgIUW1dWetS/ - vv/QtLP/0bW1/9e9vv/azMz80snIwt3U1L/h1tb67N7g/+HMzv/ZvsL/yra5/0I+PacAAAAsAAAADAAA - AAUAAAAAAAAAAAAAAAAAAAAFAAAADAAAAAoAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAfHR0GDQ0NRyUj - I4OIe3nex62q/8qtqv/Nsa//z8G/+EVCQk4AAAAAAAAAANnS0TPh2Njx5NPU/9S5uv/Qt7n/em9v3woK - Cm4AAABWAAAAOAAAAAABAQECAAAAGQQEBEMLCwtdAAAAUgAAADYAAAAPAAAAAAAAAAAAAAAAAAAAAIN/ - fkK0raz+hnh1/4h5dv+KdXL/oYmF/8Stqv9ya2q5BwcHFAAAAAAAAAAAAAAAAL61tIvs4eH/176+/9C0 - tP/Aq6v/ppeX/piSkfEtLCx7AAAAAAsLCx5jY2Okl5iY7piZmfp8fX3jMTIymQAAAEcAAAAMAAAAAAAA - AAAAAAAAS0lJVa2rqv+enJz/mJiY/4yJiP96bmr/lYWB/0xHRrEAAAApAAAAAgAAAAAZGBcCbGZlfOPT - 0f/k1NP/1Lu5/86ysP/Ps7L/08TD/0dFRHgjIyMGkJGRsqytrf+nqKj/qKmp/6Ojo/+YmJj+OTk5mgAA - ACoAAAABAAAAACkpKQeWlpa6q6ys/6eoqP+nqKj/oaKi/5eXl/9/dHL/amRi5AMCAl4AAAAtAAAAGgIC - AiyflZPR1L25/9G4tP/i0tD/z7u5/9jLyfXg2djKgX19L3R1dTvCwsL+qqqq/6mqqv+pqqr/qaqq/6Wm - pv+QkZHsAQEBPwAAAAMAAAAAg4ODRMDBwf6pqqr/qaqq/6mqqv+pqqr/pKSk/5iVlP+Qgn7/Z2Bf1iUj - I5EoJiaKeXFwzcm1r//DpJ3/xKWe/9bCvv91bGqrSkdGDAAAAAAAAAAAsrOzebO0tP+pqqr/qaqq/6mq - qv+pqqr/qaqq/6eoqP4UFBRQAAAABAAAAADKysp3s7Oz/6mqqv+pqqr/qaqq/6mqqv+oqan/p6en/5B5 - cP+1nJL/rZuU/7KfmP/Ap57/vZ6U/7+flf/AoZj/r5uW+x4cHGMDAwIMAAAAAAAAAACztLR9sbKy/6mq - qv+pqqr/qaqq/6mqqv+pqqr/qamp/xYWFlEAAAAEAAAAANXW1nyxsrL/qaqq/6mqqv+pqqr/qaqq/6mq - qv+pqan/no2G/7OThP+3loj/uJeJ/7mYi/+6mY3/u5qO/7yckf+plY7+LSsqlQAAADAAAAACAAAAALOz - s32xsbH/qaqq/6mqqv+pqqr/qaqq/6mqqv+pqan/FhYWUQAAAAQAAAAA1dbWfLGxsf+pqqr/qaqq/6mq - qv+pqqr/qaqq/6ipqf+aiID/sZCA/7ORgf+zkoL/tpWG/8Cjl//ErKL/vZ+T/7aZjf+jmpfyFRQUQgEB - AQIAAAAAs7OzfbGxsf+pqqr/qaqq/6mqqv+pqqr/qaqq/6mpqf8WFhZRAAAABAAAAADV1tZ8sbGx/6mq - qv+pqqr/qaqq/6mqqv+pqqr/qKio/nx3dsK8qqL0s5KB/7KRgP+1oJf4joSBtFZRT3S0qaXowrKq/6+p - p9ApKCcUAAAAAAAAAACzs7N9sbGx/6mqqv+pqqr/qaqq/6mqqv+pqqr/qamp/xYWFlEAAAAEAAAAANXW - 1nyxsbH/qaqq/6mqqv+pqqr/qaqq/6mqqv+oqKj9Dw8PRoyEgZG4mon/r5GA/2BXVb0KCgpZKCgofzU1 - NZRcW1rADAsLWgEBASUAAAAFAAAAALOzs32xsbH/qaqq/6mqqv+pqqr/qaqq/6mqqv+pqan/FhYWUQAA - AAQAAAAA1dbWfLGxsf+pqqr/qaqq/6mqqv+pqqr/qaqq/6ioqP0PDw9GgX18Y9PCt/+zopj/jo2N6KGh - ofifoKD/m5yc/5WVlfxmZmbPDw8PcAAAAC0AAAADs7OzfbGxsf+pqqr/qaqq/6mqqv+pqqr/qaqq/6mp - qf8WFhZRAAAABAAAAADV1tZ8sbGx/6mqqv+pqqr/qaqq/6mqqv+pqqr/qKio/Q8PD0ZSUE8bnJiXiL69 - vfWqq6v/qKmp/6mqqv+pqqr/p6io/56env+DhITrDg4OaQAAABezs7N9sbGx/6mqqv+pqqr/qaqq/6mq - qv+pqqr/qamp/xYWFlEAAAAEAAAAANXW1nyxsbH/qaqq/6mqqv+pqqr/qaqq/6mqqv+oqKj9Dw8PRiEg - IAN1dnZutre3/6mqqv+pqqr/qKmp/6ipqf+pqqr/qamp/5+fn/9kZWXEAAAAM7Ozs32xsbH/qaqq/6mq - qv+pqqr/qaqq/6mqqv+pqan/FhYWUQAAAAQAAAAA1dbWfLGxsf+pqqr/qaqq/6mqqv+pqqr/qaqq/6io - qP0PDw9GMzQ0BLm6usesra3/qaqq/7Gysv/q6ur/8PDw/7y9vf+pqqr/p6io/56envgHBwdHtLS0fLGx - sf+pqqr/qaqq/6mqqv+pqqr/qaqq/6mpqf8WFhZRAAAABAAAAADW1tZ8sbKy/6mqqv+pqqr/qaqq/6mq - qv+pqqr/qKmp/Q8PD0VHR0cE0NHR6KusrP+pqqr/09PT////////////5ufn/6mqqv+pqqr/qaqq/xwd - HVTMzc18srOz/6mqqv+pqqr/qaqq/6mqqv+pqqr/q6ur/xcXF0sAAAACAAAAANrb23uysrL/qaqq/6mq - qv+pqqr/qaqq/6mqqv+rrKz9Dw8PP1VVVQLV1tbcrK2t/6mqqv/DxMT//v7+///////W19f/qaqq/6mq - qv+ys7P+GBgYO+Pk5F69vr7/qaqq/6mqqv+pqqr/qaqq/6qqqv+3uLj6ERERKQAAAAAAAAAA4uLiY7u7 - u/+pqqr/qaqq/6mqqv+pqqr/qqqq/7W1tfQLCwshAAAAAODh4Zi0tbX/qaqq/6ipqf+8vb3/wsPD/6mq - qv+pqqr/q6ys/6ysrNkREREQ5OTkDNrb2+ewsbH/qaqq/6mqqv+qq6v/s7Oz/5qbm68lJSUHAAAAAAAA - AADk5OQW19fX8a+vr/+pqqr/qaqq/6qrq/+0tLT/k5SUpSQlJQYAAAAA5OTkIdXV1fGvsLD/qaqq/6mq - qv+pqqr/qaqq/6usrP/BwsL+ZmZmWioqKgEAAAAA5ebmPNvb2+q/wMD/t7i4/8PDw//Q0NDHfn5+FwAA - AAAAAAAAAAAAAAAAAADm5uZM2NjY8ry9vf+2trb/wsPD/8vMzMR5enoUAAAAAAAAAAAAAAAA5OXlQtjZ - 2ey6urr/sLCw/6+vr/+ztLT/ysvL+rCxsXJra2sBAAAAAAAAAAAAAAAA5+fnEOfo6F7n5+d14eLiStLS - 0gMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADm5+cZ5+joaubm5n7h4eFMzs7OAwAAAAAAAAAAAAAAAAAA - AAAAAAAA5eXlFebm5nnd3t6z29zct9/g4IzY2dkpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA///4f///wA///wAD//4AA//8AAH//AAB//4AA//+AAP/+AAA4fAGAIDwBwCAcAIAACAAAAAg - AAMAIAADACAAAQAgAAEAIAADACAAAQAgAAAAIAAAACAAAAAgAAAAIAAAACAAAABgCAAAYAgAgPAcAcH4 - Pgf///////////////8oAAAAEAAAACAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKAQgICBkGBgY5AAAABwICAgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEFGhoaLl9fXy2lnp+xnJKU4UxMTEMyMjIgAQEBGAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAi4eHbaKVl+h4b3DByLS59s64v/xwaGnDkYeJzFVR - Up0AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAImFhSvUvb/9173A/9vBxf/dxMn/5tTY/9vE - yv9RTU1sAAAAAAAAAAAAAAABAAAABQAAAAAAAAAAAAAAAAsKChVDPj18zbOx/9G5uP2dlZWD29LSe+TV - 1vvSubv/MS4tiAAAACgFBQUIPz8/fEhISKMMDAxJAAAAAwAAAACMiIelkYmI/4x9ev+GeXbaAwICEAAA - AAC+tLPB2MDA/8Gqqf54cnG4ent7fKmqqv+nqKj/gYKC4QAAABs1NTUSq6ur7aipqf+hoqL/hHx5+CMh - IX0pJiZnwKum89O8uP+ajoyrsKqpPrKzs72pqqr/qaqq/6ipqf4KCgoqlJWVPK2urv+pqqr/qamp/5+W - kv+zmIz/uZ2T/7yckf+1m5P+ExISTQAAAACysrK+qaqq/6mqqv+pqan/CwsLKp6enj6trq7/qaqq/6mq - qv+alJLvtZeJ/LSWiP2aiYLJuqWc+WRgXoYAAAAAsrKyvqmqqv+pqqr/qamp/wsLCyqenp4+ra6u/6mq - qv+pqqr/W1xcoqaXj7yUhn7oXV1dtHBwcNQgICBvAAAADbKysr6pqqr/qaqq/6mpqf8LCwsqnp6ePq2u - rv+pqqr/qaqq/1tcXKJhX19FsrKy/Kipqf+oqan/mpub+hwcHF6ys7O9qaqq/6mqqv+pqan/CwsLKp6f - nz6trq7/qaqq/6mqqv9bXFyigYGBbqqrq//b29v/5OTk/6ipqf9bW1ukyMjItqmqqv+pqqr/ra6u/QoK - Ch6kpaU3sLCw/6mqqv+pqqr/Xl9flJiZmV2sra3/ysrK/9DR0f+pqqr/YmJiiN3e3ky9vr75s7S0/6en - p6MUFRUBi4uLBdHR0cyxsrL/u7u78FdXVzCNjo4I0NHRx6+wsP+trq7/urq62kNDQxcAAAAAs7OzG7q6 - ujAAAAAAAAAAAAAAAACYmJgGvL29OqanpxQAAAAAAAAAAJiYmAXIyclLxMXFUJmamgoAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+D - nEH+AZxB/gCcQf4BnEGcAJxBBBCcQQAAnEEAAZxBAAGcQQAAnEEAAJxBAACcQQAAnEEAAJxBnGGcQf// - nEE= + APn5+fn5+fn5AAAA+fn5AAAAAAD5+fkAAAAAAAAAAAAAAPn5+fn5+QAAAAAA+fkAAAAAAPn5AAAAAAAA + AAAAAAAAAAD5+QAAAAAAAAD5+QAAAAAA+fkAAAAAAAAAAAAAAAAAAPn5AAAAAAAAAPn5+fn5+fn5AAAA + AAAAAAAAAAAAAAAA+fkAAAAAAAAA+fn5+fn5+fkAAAAAAAAAAAAAAAAAAAD5+QAAAAAAAAD5+QAAAAAA + +fkAAAAAAAAAAAAAAAAAAPn5AAAAAAAAAPn5AAAAAAD5+QAAAAAAAAAAAAAAAAAA+fkAAAAAAAAA+fkA + AAAAAPn5AAAAAAAAAAAAAAAA+fn5+fn5AAAAAAD5+fn5+fn5+fkAAAAAAAAAAAAAAPn5+fn5+fn5AAAA + +fn5+fn5+fn5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAP/////MLdwt9e2t7fXtre317XXt9e117cxj + dGO97XXtve117b3tde297XXtzCN0I//////////////////////gHHx/8D58//z+fP/8/gH//P4B//z+ + fP/8/nz//P58//A+AP/gHAH///////////8AAAAf/////ygAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD/ + /wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAKq77t2ZzAAAAAAAAAAAAAAAAAAAAAAAAAzMDAwAwAAAAA + wMDAwMAAAMzAzADAwAAAwADAwMDAAADMwMwAwMAAAAAAAAAAAAAAmZCQCQAAAAAJAJCQAAAAAAkAmQAA + AAAACQCQkAAAAACZkJmQAAAAAAAAAAAAAAD//wAAgAcAAP//AAD//wAAxW8AAPVXAADE1wAA3VcAAMTX + AAD//wAAxb8AAO1/AADs/wAA7X8AAMR/AAD//wAA </value> </data> </root> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Config.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Config.Designer.cs 2007-12-30 10:21:21 UTC (rev 1198) +++ trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Config.Designer.cs 2007-12-31 16:54:13 UTC (rev 1199) @@ -44,7 +44,7 @@ // buttonOK // this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.buttonOK.Location = new System.Drawing.Point(352, 272); + this.buttonOK.Location = new System.Drawing.Point(360, 272); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(64, 24); this.buttonOK.TabIndex = 4; @@ -56,7 +56,7 @@ // this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.buttonCancel.Location = new System.Drawing.Point(424, 272); + this.buttonCancel.Location = new System.Drawing.Point(432, 272); this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(64, 24); this.buttonCancel.TabIndex = 5; @@ -79,9 +79,9 @@ // buttonDetect // this.buttonDetect.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.buttonDetect.Location = new System.Drawing.Point(216, 272); + this.buttonDetect.Location = new System.Drawing.Point(208, 272); this.buttonDetect.Name = "buttonDetect"; - this.buttonDetect.Size = new System.Drawing.Size(80, 24); + this.buttonDetect.Size = new System.Drawing.Size(88, 24); this.buttonDetect.TabIndex = 3; this.buttonDetect.Text = "Auto-Detect"; this.toolTips.SetToolTip(this.buttonDetect, "Click here to automatically detect attached devices"); @@ -90,12 +90,13 @@ // // groupBoxTransceiver // - this.groupBoxTransceiver.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + this.groupBoxTransceiver.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBoxTransceiver.Controls.Add(this.gridPlugins); this.groupBoxTransceiver.Location = new System.Drawing.Point(8, 8); this.groupBoxTransceiver.Name = "groupBoxTransceiver"; - this.groupBoxTransceiver.Size = new System.Drawing.Size(480, 256); + this.groupBoxTransceiver.Size = new System.Drawing.Size(488, 256); this.groupBoxTransceiver.TabIndex = 0; this.groupBoxTransceiver.TabStop = false; this.groupBoxTransceiver.Text = "Device plugins"; @@ -107,11 +108,11 @@ | System.Windows.Forms.AnchorStyles.Right))); this.gridPlugins.BackColor = System.Drawing.SystemColors.Window; this.gridPlugins.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.gridPlugins.Location = new System.Drawing.Point(16, 24); + this.gridPlugins.Location = new System.Drawing.Point(8, 16); this.gridPlugins.Name = "gridPlugins"; this.gridPlugins.OptimizeMode = SourceGrid.CellOptimizeMode.ForRows; this.gridPlugins.SelectionMode = SourceGrid.GridSelectionMode.Row; - this.gridPlugins.Size = new System.Drawing.Size(448, 216); + this.gridPlugins.Size = new System.Drawing.Size(472, 232); this.gridPlugins.TabIndex = 0; this.gridPlugins.TabStop = true; this.gridPlugins.ToolTipText = ""; @@ -131,7 +132,7 @@ // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(496, 306); + this.ClientSize = new System.Drawing.Size(504, 305); this.Controls.Add(this.buttonDetect); this.Controls.Add(this.buttonAdvanced); this.Controls.Add(this.buttonHelp); @@ -139,7 +140,7 @@ this.Controls.Add(this.buttonCancel); this.Controls.Add(this.buttonOK); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MinimumSize = new System.Drawing.Size(512, 342); + this.MinimumSize = new System.Drawing.Size(512, 332); this.Name = "Config"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Input Service Configuration"; Modified: trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Config.resx =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Config.resx 2007-12-30 10:21:21 UTC (rev 1198) +++ trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Config.resx 2007-12-31 16:54:13 UTC (rev 1199) @@ -123,158 +123,49 @@ <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> - AAABAAQAICAAAAEACACoCAAARgAAABAQAAABAAgAaAUAAO4IAAAgIAAAAQAgAKgQAABWDgAAEBAAAAEA - IABoBAAA/h4AACgAAAAgAAAAQAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgYGBAIWF - hQCIiIgAjo6OAJGRkQCVlZUAmpqaAJucnACdnZ0AoaKiAKWmpgCnqKgAqKmpAKusrACsra0AsbGxALW1 - tQC4ubkAu7y8ALy9vQDDw8MAxcXFAMnJyQDNzs4A0dLSANPU1ADV1dUA2NnZAN3d3QDg4OAA5OXlAOjp - 6QDu7u4A8fHxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAABAAIAICAAAAEACACoCAAAJgAAABAQEAABAAQAKAEAAM4IAAAoAAAAIAAAAEAAAAABAAgAAAAAAIAE + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAMDAwADA3MAA8MqmANTw + /wCx4v8AjtT/AGvG/wBIuP8AJar/AACq/wAAktwAAHq5AABilgAASnMAADJQANTj/wCxx/8Ajqv/AGuP + /wBIc/8AJVf/AABV/wAASdwAAD25AAAxlgAAJXMAABlQANTU/wCxsf8Ajo7/AGtr/wBISP8AJSX/AAAA + /gAAANwAAAC5AAAAlgAAAHMAAABQAOPU/wDHsf8Aq47/AI9r/wBzSP8AVyX/AFUA/wBJANwAPQC5ADEA + lgAlAHMAGQBQAPDU/wDisf8A1I7/AMZr/wC4SP8AqiX/AKoA/wCSANwAegC5AGIAlgBKAHMAMgBQAP/U + /wD/sf8A/47/AP9r/wD/SP8A/yX/AP4A/gDcANwAuQC5AJYAlgBzAHMAUABQAP/U8AD/seIA/47UAP9r + xgD/SLgA/yWqAP8AqgDcAJIAuQB6AJYAYgBzAEoAUAAyAP/U4wD/sccA/46rAP9rjwD/SHMA/yVXAP8A + VQDcAEkAuQA9AJYAMQBzACUAUAAZAP/U1AD/sbEA/46OAP9rawD/SEgA/yUlAP4AAADcAAAAuQAAAJYA + AABzAAAAUAAAAP/j1AD/x7EA/6uOAP+PawD/c0gA/1clAP9VAADcSQAAuT0AAJYxAABzJQAAUBkAAP/w + 1AD/4rEA/9SOAP/GawD/uEgA/6olAP+qAADckgAAuXoAAJZiAABzSgAAUDIAAP//1AD//7EA//+OAP// + awD//0gA//8lAP7+AADc3AAAubkAAJaWAABzcwAAUFAAAPD/1ADi/7EA1P+OAMb/awC4/0gAqv8lAKr/ + AACS3AAAerkAAGKWAABKcwAAMlAAAOP/1ADH/7EAq/+OAI//awBz/0gAV/8lAFX/AABJ3AAAPbkAADGW + AAAlcwAAGVAAANT/1ACx/7EAjv+OAGv/awBI/0gAJf8lAAD+AAAA3AAAALkAAACWAAAAcwAAAFAAANT/ + 4wCx/8cAjv+rAGv/jwBI/3MAJf9XAAD/VQAA3EkAALk9AACWMQAAcyUAAFAZANT/8ACx/+IAjv/UAGv/ + xgBI/7gAJf+qAAD/qgAA3JIAALl6AACWYgAAc0oAAFAyANT//wCx//8Ajv//AGv//wBI//8AJf//AAD+ + /gAA3NwAALm5AACWlgAAc3MAAFBQAPLy8gDm5uYA2traAM7OzgDCwsIAtra2AKqqqgCenp4AkpKSAIaG + hgB6enoAbm5uAGJiYgBWVlYASkpKAD4+PgAyMjIAJiYmABoaGgAODg4A8Pv/AKSgoACAgIAAAAD/AAD/ + AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + /PwAAPz8/PwA/AAA/AAAAPwAAAD8/Pz8APwAAPwAAAAAAPwA/AAAAAD8AAD8AAD8APwAAPwAAAAA/AAA + /AAAAAAA/AD8AAAAAPwAAPwAAPwA/AAA/AAAAAD8AAD8AAAAAAD8APwAAAAA/AAA/AD8AAAA/AD8AAAA + APwAAPwAAAAAAPwA/AAAAAD8AAD8APwAAAD8APwAAAAA/AAA/AAAAPz8AAD8/PwAAPz8/AAA/AAAAPwA + /Pz8AAD8/PwAAAD8AAAAAPwAAAAA/AAA/AD8AAAA/AD8AAAAAPwAAPwAAPwAAAAA/AAAAAD8AAD8APwA + AAD8APwAAAAA/AAA/AAA/AAAAAD8AAAAAPwAAPwA/AAAAPwA/AAAAAD8AAD8AAD8AAAAAPwAAAAA/AAA + /AD8AAAA/AD8AAAAAPwAAPwAAAD8/AAA/Pz8/AD8/PwAAPwAAAD8APz8/PwA/Pz8AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAACQYGAgMAAAAAAAAJBgYCAAAAAAAAAAAAAAAAAAAAAA8PDAwMBgMAAAAADw8MDAkG - AwAAAAAAAAAAAAAAAAAAFg8PDw8MBgAAAAAWDw8PDwwGAAAAAAAAAAAAAAAAAAARDw8PDw8MAAAAABEP - Dw8PDwwAAAAAAAAAAAAAAAAAABEPDw8PDw8AAAAAEQ8PDw8PDwAAAAAAAAAAAAAAAAAAEQ8PDw8PDwAA - AAARDw8PDw8PAAAAAAAAAAAAAAAAAAARDw8PDw8PAAAAABEPDw8PDw8AAAAAAAAAAAAAAAAAABEPDw8P - Dw8AAAAAEQ8PDw8PDwAAAAAAAAAAAAAAAAAAEQ8PDw8PDwAAAAARDw8PDw8PAAAAAAkJCQkGAgAAAAAR - Dw8PDw8PAAAAABEPDw8PDw8AAAAPDwwPDwwJAwAAABEPDw8PDw8AAAAAEQ8PDw8PDwAAABIPDw8PDw8J - AgAAEQ8PDw8PDwAAAAARDw8PDw8PAAAWDw8PHh8RDwwJAAARDw8PDw8PAAAAABEPDw8PDw8AABoPDxr/ - /x8PDw8AABEPDw8PDw8AAAAAEQ8PDw8PDwAAHg8PF///Hg8PEQAAEg8PDw8PEQAAAAASDw8PDw8RAAAg - EQ8PFhcPDw8SAAAeDw8PDxESAAAAABoPDw8PERIAAAAaDw8PDw8PEgAAAAAaEhESGgAAAAAAABoRERIa - AAAAAAAaEQ8PERYaAAAAAAAAIAAAAAAAAAAAACIgAAAAAAAAAAAgHx4gAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - ////////////////////////////////////////wfh//4DwH/+A8B//gPAf/4DwH/+A8B//gPAf/4Dw - H/+A8B4HgPAcA4DwHAGA8BgBgPAYAYDwGAGA8BgBgPAcA8H4PgP3/P8P//////////////////////// - ////////KAAAABAAAAAgAAAAAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDhIQAhoaGAIuL - iwCWl5cAmZqaAJ2dnQChoqIAo6SkAKWmpgCnqKgAqampAKusrACtrq4AsbKyALa3twC3uLgAuLm5ALu8 - vADCw8MAxcXFAMnKygDLzMwAz8/PANbX1wDZ2dkA4eHhAOXl5QDv7+8AAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUEAwAA - CAUCAAAAAAAAABMLCwgAAA4LCgQAAAAAAAATCwsLAAALCwsEAAAAAAAAEwsLCwAACwsLBAAAAAAAABML - CwsAAAsLCwQACAgFAgATCwsLAAALCwsEAAsQEggEFQsLCwAACwsLBQALGxwLBRsLCw4AABILCwAADg4O - CwAAGxkAAAAAGBsAAAAVFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA//8AAP//AAD//wAA//8AAIx/AAAMPwAADD8AAAw/AAAMIQAADCAAAAwgAAAMYQAAnnMAAP// - AAD//wAA//8AACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABwAA - AAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAGAAAABQAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAEwAA - ADYAAABMAAAASAAAACwAAAAKAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAATAAAANgAAAEkAAABDAAAAJwAA - AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcH - BxZMTEyLh4iI3ZGRkfBqa2vSISEhhwAAAEAAAAAJAAAAAAAAAAAAAAAABgcHGEtLS4yCg4PZioqK6WJi - YskZGRl+AAAAOgAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAgICAFfH19nK6vr/+mp6f/pqen/6Chof+UlZX7KysrjQAAACYAAAAAAAAAACUlJQWCg4Olra6u/6Wm - pv+lpqb/n5+f/5GRkfchISGBAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAGVlZTDExMT9qqqq/6mqqv+pqqr/qaqq/6SkpP+JiormAAAAPQAAAAMAAAAAdXV1OcPD - w/6qqqr/qaqq/6mqqv+pqqr/oqOj/3+AgNsAAAA3AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAsLGxdrS1tf+pqqr/qaqq/6mqqv+pqqr/qamp/6anp/4SEhJOAAAABAAA - AADExcV0tLS0/6mqqv+pqqr/qaqq/6mqqv+oqan/paam+woKCkIAAAADAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACztLR9sbKy/6mqqv+pqqr/qaqq/6mqqv+pqqr/qKmp/xYW - FlEAAAAEAAAAANXW1nyxsrL/qaqq/6mqqv+pqqr/qaqq/6mqqv+oqan9Dw8PRgAAAAMAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALOzs32xsbH/qaqq/6mqqv+pqqr/qaqq/6mq - qv+pqan/FhYWUQAAAAQAAAAA1dbWfLGxsf+pqqr/qaqq/6mqqv+pqqr/qaqq/6ioqP0PDw9GAAAAAwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... [truncated message content] |
From: <an...@us...> - 2008-01-07 00:18:45
|
Revision: 1215 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1215&view=rev Author: and-81 Date: 2008-01-06 16:18:43 -0800 (Sun, 06 Jan 2008) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Common/IrssUtils/IrssLog.cs trunk/plugins/IR Server Suite/Common/MPUtils/MPCommon.cs trunk/plugins/IR Server Suite/IR Server Plugins/Ads Tech PTV-335 Receiver/AdsTechPTV335Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/IrssLog.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/IrssLog.cs 2008-01-06 15:20:57 UTC (rev 1214) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/IrssLog.cs 2008-01-07 00:18:43 UTC (rev 1215) @@ -13,6 +13,15 @@ public static class IrssLog { + #region Constants + + /// <summary> + /// File extension for log file backups. + /// </summary> + public const string ExtensionBackupFile = ".bak"; + + #endregion Constants + #region Enumerations /// <summary> @@ -81,7 +90,7 @@ { try { - string backup = Path.ChangeExtension(fileName, ".bak"); + string backup = Path.ChangeExtension(fileName, ExtensionBackupFile); if (File.Exists(backup)) File.Delete(backup); @@ -105,8 +114,11 @@ _streamWriter = new StreamWriter(fileName, false); _streamWriter.AutoFlush = true; - string message = DateTime.Now.ToString() + ":\tLog Opened"; + string message = String.Format("{0:yyyy-MM-dd HH:mm:ss.ffffff} - Log Opened", DateTime.Now); _streamWriter.WriteLine(message); +#if TRACE + Trace.WriteLine(message); +#endif } #if TRACE catch (Exception ex) @@ -133,7 +145,7 @@ { if (File.Exists(fileName) && File.GetCreationTime(fileName).Ticks < DateTime.Now.Subtract(TimeSpan.FromDays(7)).Ticks) { - string backup = Path.ChangeExtension(fileName, ".bak"); + string backup = Path.ChangeExtension(fileName, ExtensionBackupFile); if (File.Exists(backup)) File.Delete(backup); @@ -157,8 +169,11 @@ _streamWriter = new StreamWriter(fileName, true); _streamWriter.AutoFlush = true; - string message = DateTime.Now.ToString() + ":\tLog Opened"; + string message = String.Format("{0:yyyy-MM-dd HH:mm:ss.ffffff} - Log Opened", DateTime.Now); _streamWriter.WriteLine(message); +#if TRACE + Trace.WriteLine(message); +#endif } #if TRACE catch (Exception ex) @@ -183,9 +198,12 @@ try { - string message = DateTime.Now.ToString() + ":\tLog Closed"; + string message = String.Format("{0:yyyy-MM-dd HH:mm:ss.ffffff} - Log Closed", DateTime.Now); _streamWriter.WriteLine(message); _streamWriter.WriteLine(); +#if TRACE + Trace.WriteLine(message); +#endif } #if TRACE catch (Exception ex) Modified: trunk/plugins/IR Server Suite/Common/MPUtils/MPCommon.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/MPUtils/MPCommon.cs 2008-01-06 15:20:57 UTC (rev 1214) +++ trunk/plugins/IR Server Suite/Common/MPUtils/MPCommon.cs 2008-01-07 00:18:43 UTC (rev 1215) @@ -55,7 +55,7 @@ dlgNotify.SetHeading(heading); dlgNotify.SetText(text); dlgNotify.TimeOut = timeout; - dlgNotify.DoModal(GUIWindowManager.ActiveWindow); + dlgNotify.DoModal(GUIWindowManager.ActiveWindow); // TODO: Put this on a separate thread to allow caller to continue? } /// <summary> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Ads Tech PTV-335 Receiver/AdsTechPTV335Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Ads Tech PTV-335 Receiver/AdsTechPTV335Receiver.cs 2008-01-06 15:20:57 UTC (rev 1214) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Ads Tech PTV-335 Receiver/AdsTechPTV335Receiver.cs 2008-01-07 00:18:43 UTC (rev 1215) @@ -18,7 +18,7 @@ // int __cdecl ADS335RCP_GetKey(unsigned char &) [DllImport("ADS_335_RCPLIB.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "?ADS335RCP_GetKey@@YAHAAE@Z")] - static extern int GetKey(ref byte key); + static extern int GetKey(out byte key); //int __cdecl ADS335RCP_Init(void) [DllImport("ADS_335_RCPLIB.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "?ADS335RCP_Init@@YAHXZ")] @@ -32,7 +32,7 @@ #region Consatnts - const int PacketTimeout = 100; + const int PacketTimeout = 200; #endregion Constants @@ -168,12 +168,12 @@ void ReadThread() { - byte key = 0; + byte key; int retVal; while (_processReadThread) { - retVal = GetKey(ref key); + retVal = GetKey(out key); if (retVal == 0) Thread.Sleep(PacketTimeout); Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.cs 2008-01-06 15:20:57 UTC (rev 1214) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.cs 2008-01-07 00:18:43 UTC (rev 1215) @@ -38,24 +38,31 @@ if (String.IsNullOrEmpty(textBoxPluginFile.Text)) return; - GirderPluginWrapper pluginWrapper = new GirderPluginWrapper(textBoxPluginFile.Text); + try + { + GirderPluginWrapper pluginWrapper = new GirderPluginWrapper(textBoxPluginFile.Text); - pluginWrapper.GirOpen(); + pluginWrapper.GirOpen(); - if (!pluginWrapper.CanConfigure) - { - MessageBox.Show(this, "No configuration available", "Girder Plugin Configuration", MessageBoxButtons.OK, MessageBoxIcon.Information); + if (!pluginWrapper.CanConfigure) + { + MessageBox.Show(this, "No configuration available", "Girder Plugin Configuration", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + pluginWrapper.GirCommandGui(); + + MessageBox.Show(this, "Press OK after the Girder plugin configuration is complete", "Girder Plugin Configuration", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + + pluginWrapper.GirClose(); + + pluginWrapper.Dispose(); } - else + catch (Exception ex) { - pluginWrapper.GirCommandGui(); - - MessageBox.Show(this, "Press OK after the Girder plugin configuration is complete", "Girder Plugin Configuration", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } - - pluginWrapper.GirClose(); - - pluginWrapper.Dispose(); } private void buttonFind_Click(object sender, EventArgs e) @@ -64,18 +71,25 @@ if (openFileDialog.ShowDialog(this) == DialogResult.OK) { - GirderPluginWrapper pluginWrapper = new GirderPluginWrapper(openFileDialog.FileName); + try + { + GirderPluginWrapper pluginWrapper = new GirderPluginWrapper(openFileDialog.FileName); - pluginWrapper.GirOpen(); + pluginWrapper.GirOpen(); - string message = String.Format("{0}\n{1}\n\nUse this plugin?", pluginWrapper.GirName, pluginWrapper.GirDescription); + string message = String.Format("{0}\n{1}\n\nUse this plugin?", pluginWrapper.GirName, pluginWrapper.GirDescription); - if (MessageBox.Show(this, message, openFileDialog.FileName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - textBoxPluginFile.Text = openFileDialog.FileName; + if (MessageBox.Show(this, message, openFileDialog.FileName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) + textBoxPluginFile.Text = openFileDialog.FileName; - pluginWrapper.GirClose(); + pluginWrapper.GirClose(); - pluginWrapper.Dispose(); + pluginWrapper.Dispose(); + } + catch (Exception ex) + { + MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } } } Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs 2008-01-06 15:20:57 UTC (rev 1214) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs 2008-01-07 00:18:43 UTC (rev 1215) @@ -875,7 +875,7 @@ { _pluginDll = LoadLibrary(girderPluginFile); if (_pluginDll == IntPtr.Zero) - throw new ApplicationException(String.Format("Failed to load girder plugin ({0})", girderPluginFile)); + throw new ApplicationException(String.Format("Failed to load girder plugin dll ({0})", girderPluginFile)); try { Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs 2008-01-06 15:20:57 UTC (rev 1214) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs 2008-01-07 00:18:43 UTC (rev 1215) @@ -85,6 +85,8 @@ #region Constants + const int TimingResolution = 50; // In microseconds. + const double ClockFrequency = 2412460.0; // Vendor ID's for SMK and Topseed devices. @@ -197,21 +199,16 @@ // Initialize device ... WriteSync(StartPacket); - Thread.Sleep(PacketTimeout); - SetTimeout(PacketTimeout); - SetInputPort(InputPort.Receive); - - - // Testing some commands (what do these get back?) that MCE sends, but I don't know what they mean + // Testing some commands that MCE sends, but I don't know what they mean (what do these get back?) WriteSync(new byte[] { 0xFF, 0x0B }); - Thread.Sleep(PacketTimeout); WriteSync(new byte[] { 0x9F, 0x05 }); - Thread.Sleep(PacketTimeout); WriteSync(new byte[] { 0x9F, 0x0D }); - Thread.Sleep(PacketTimeout); + Thread.Sleep(4 * PacketTimeout); + + SetTimeout(PacketTimeout); + SetInputPort(InputPort.Receive); - _notifyWindow.Create(); _notifyWindow.RegisterDeviceArrival(); _notifyWindow.RegisterDeviceRemoval(_eHomeHandle.DangerousGetHandle()); @@ -270,7 +267,6 @@ #endif WriteSync(StopPacket); - Thread.Sleep(PacketTimeout); StopReadThread(); CloseDevice(); @@ -374,30 +370,18 @@ DebugDump(code.TimingData); #endif - byte[] portPacket; - switch (_deviceType) - { - case DeviceType.Microsoft: portPacket = MicrosoftPorts[port]; break; - case DeviceType.SmkTopseed: portPacket = SmkTopseedPorts[port]; break; - default: - throw new ApplicationException("Invalid device type"); - } - // Reset device (hopefully this will stop the blaster from stalling) //WriteSync(ResetPacket); //Thread.Sleep(PacketTimeout); - // Set port - WriteSync(portPacket); + SetOutputPort(port); + SetCarrierFrequency(code.Carrier); - // Set carrier frequency - WriteSync(CarrierPacket(code)); - // Send packet WriteSync(DataPacket(code)); // Force a delay between blasts (hopefully solves back-to-back blast errors) ... - Thread.Sleep(PacketTimeout); + //Thread.Sleep(PacketTimeout); } #endregion Driver overrides @@ -405,35 +389,6 @@ #region Implementation /// <summary> - /// Create a device data packet to set the Carrier frequency. - /// </summary> - /// <param name="code">IrCode to get carrier frequency from.</param> - /// <returns>Raw device data.</returns> - static byte[] CarrierPacket(IrCode code) - { - byte[] carrierPacket = new byte[SetCarrierFreqPacket.Length]; - SetCarrierFreqPacket.CopyTo(carrierPacket, 0); - - if (code.Carrier == IrCode.CarrierFrequencyDCMode) - return carrierPacket; - - int carrier = code.Carrier; - - if (code.Carrier == IrCode.CarrierFrequencyUnknown) - { - carrier = IrCode.CarrierFrequencyDefault; -#if DEBUG - DebugWriteLine("CarrierPacket(): No carrier frequency specificied, using default ({0})", carrier); -#endif - } - - carrierPacket[2] = 0x80; - carrierPacket[3] = (byte)Math.Round(ClockFrequency / carrier); - - return carrierPacket; - } - - /// <summary> /// Converts an IrCode into raw data for the device. /// </summary> /// <param name="code">IrCode to convert.</param> @@ -453,12 +408,12 @@ for (int index = 0; index < code.TimingData.Length; index++) { double time = (double)code.TimingData[index]; - - byte duration = (byte)Math.Abs(Math.Round(time / 50)); + + byte duration = (byte)Math.Abs(Math.Round(time / TimingResolution)); bool pulse = (time > 0); #if DEBUG - DebugWrite("{0}{1}, ", pulse ? '+' : '-', duration * 50); + DebugWrite("{0}{1}, ", pulse ? '+' : '-', duration * TimingResolution); #endif while (duration > 0x7F) @@ -506,7 +461,7 @@ byte[] timeoutPacket = new byte[SetTimeoutPacket.Length]; SetTimeoutPacket.CopyTo(timeoutPacket, 0); - int timeoutSamples = 20 * timeout; // 20 * timeout in milliseconds = timeout as multiple of 50 microseconds + int timeoutSamples = 1000 * timeout / TimingResolution; // Timeout as a multiple of the timing resolution timeoutPacket[2] = (byte)(timeoutSamples >> 8); timeoutPacket[3] = (byte)(timeoutSamples & 0xFF); @@ -515,7 +470,7 @@ } /// <summary> - /// Set the IR receiver input port. + /// Sets the IR receiver input port. /// </summary> /// <param name="port">The input port.</param> void SetInputPort(InputPort port) @@ -529,6 +484,56 @@ } /// <summary> + /// Sets the IR blaster port. + /// </summary> + /// <param name="port">The output port.</param> + void SetOutputPort(int port) + { + byte[] portPacket; + switch (_deviceType) + { + case DeviceType.Microsoft: portPacket = MicrosoftPorts[port]; break; + case DeviceType.SmkTopseed: portPacket = SmkTopseedPorts[port]; break; + default: + throw new ApplicationException("Invalid device type"); + } + + WriteSync(portPacket); + } + + /// <summary> + /// Sets the IR output carrier frequency. + /// </summary> + /// <param name="carrier">The IR carrier frequency.</param> + void SetCarrierFrequency(int carrier) + { + if (carrier == IrCode.CarrierFrequencyUnknown) + { + carrier = IrCode.CarrierFrequencyDefault; +#if DEBUG + DebugWriteLine("SetCarrierFrequency(): No carrier frequency specificied, using default ({0})", carrier); +#endif + } +#if DEBUG + else + { + DebugWriteLine("SetCarrierFrequency({0})", carrier); + } +#endif + + byte[] carrierPacket = new byte[SetCarrierFreqPacket.Length]; + SetCarrierFreqPacket.CopyTo(carrierPacket, 0); + + if (carrier != IrCode.CarrierFrequencyDCMode) + { + carrierPacket[2] = 0x80; + carrierPacket[3] = (byte)Math.Round(ClockFrequency / carrier); + } + + WriteSync(carrierPacket); + } + + /// <summary> /// Start the device read thread. /// </summary> void StartReadThread() @@ -675,7 +680,7 @@ while (true) { - int handle = WaitHandle.WaitAny(waitHandles, PacketTimeout + 50, false); + int handle = WaitHandle.WaitAny(waitHandles, 2 * PacketTimeout, false); if (handle == ErrorWaitTimeout) continue; @@ -703,12 +708,89 @@ int[] timingData = null; if (_decodeCarry != 0 || packetBytes[0] >= 0x81 && packetBytes[0] <= 0x8F) + { timingData = GetTimingDataFromPacket(packetBytes); + } #if DEBUG else { DebugWriteLine("Received data:"); DebugDump(packetBytes); + + int indexOf9F = Array.IndexOf(packetBytes, (byte)0x9F); + while (indexOf9F != -1) + { + + if (packetBytes.Length > indexOf9F + 3 && packetBytes[indexOf9F + 1] == 0x04) // 9F 04 XX XX - IR Sample Period + { + byte b1 = packetBytes[indexOf9F + 2]; + byte b2 = packetBytes[indexOf9F + 3]; + + int irPeriod = ((b1 * 256) + b2); + DebugWriteLine("IR Sample Period: {0}", irPeriod); + } + + if (packetBytes.Length > indexOf9F + 3 && packetBytes[indexOf9F + 1] == 0x0C) // 9F 0C XX XX - Timeout + { + byte b1 = packetBytes[indexOf9F + 2]; + byte b2 = packetBytes[indexOf9F + 3]; + + int timeout = ((b1 * 256) + b2); + DebugWriteLine("IR Timeout Period: {0}", TimingResolution * timeout / 1000); + } + + if (packetBytes.Length > indexOf9F + 2 && packetBytes[indexOf9F + 1] == 0x14) // 9F 14 XX - Port + { + byte b1 = packetBytes[indexOf9F + 2]; + + DebugWriteLine("IR Input Port: {0}", b1); + } + + + if (packetBytes.Length > indexOf9F + 1) + { + indexOf9F = Array.IndexOf(packetBytes, (byte)0x9F, indexOf9F + 1); + } + else + { + break; + } + } + + double firmware = 0.0; + + int indexOfFF = Array.IndexOf(packetBytes, (byte)0xFF); + while (indexOfFF != -1) + { + + if (packetBytes.Length > indexOfFF + 2 && packetBytes[indexOfFF + 1] == 0x0B) // 9F 0B XX - Firmware x.x00 + { + byte b1 = packetBytes[indexOfFF + 2]; + + firmware += (b1 >> 4) + (0.1 * (b1 & 0x0F)); + DebugWriteLine("Firmware: {0}", firmware); + } + + if (packetBytes.Length > indexOfFF + 2 && packetBytes[indexOfFF + 1] == 0x1B) // 9F 1B XX - Firmware 0.0xx + { + byte b1 = packetBytes[indexOfFF + 2]; + + firmware += (0.01 * (b1 >> 4)) + (0.001 * (b1 & 0x0F)); + DebugWriteLine("Firmware: {0}", firmware); + } + + + if (packetBytes.Length > indexOfFF + 1) + { + indexOfFF = Array.IndexOf(packetBytes, (byte)0xFF, indexOfFF + 1); + } + else + { + break; + } + } + + } #endif @@ -861,6 +943,8 @@ if (!getOverlapped && lastError != ErrorSuccess) throw new Win32Exception(lastError); + + Thread.Sleep(PacketTimeout); } catch { @@ -944,7 +1028,7 @@ if ((curByte & 0x7F) != 0x7F) { - timingData.Add(len * 50); + timingData.Add(len * TimingResolution); len = 0; } } @@ -953,7 +1037,7 @@ } if (len != 0) - timingData.Add(len * 50); + timingData.Add(len * TimingResolution); #if DEBUG DebugWriteLine("Received:"); Modified: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs =================================================================== --- trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs 2008-01-06 15:20:57 UTC (rev 1214) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs 2008-01-07 00:18:43 UTC (rev 1215) @@ -865,7 +865,7 @@ string setName = MultiMaps[_multiMappingSet]; if (LogVerbose) - Log.Debug("MPControlPlugin: Multi-Mapping has changed to \"{0}\"", setName); + Log.Info("MPControlPlugin: Multi-Mapping has cycled to \"{0}\"", setName); MPCommon.ShowNotifyDialog("Multi-Mapping", setName, 2); } @@ -885,7 +885,7 @@ for (int index = 0; index < MultiMaps.Length; index++) { - if (MultiMaps[index].Equals(multiMapping, StringComparison.OrdinalIgnoreCase)) + if (MultiMaps[index].Equals(multiMapping, StringComparison.CurrentCultureIgnoreCase)) { _multiMappingSet = index; @@ -896,10 +896,11 @@ Log.Info("MPControlPlugin: Multi-Mapping has changed to \"{0}\"", setName); MPCommon.ShowNotifyDialog("Multi-Mapping", setName, 2); - return; } } + + Log.Warn("MPControlPlugin: Could not find Multi-Mapping \"{0}\"", multiMapping); } /// <summary> @@ -1302,6 +1303,14 @@ string ejectCommand = command.Substring(Common.CmdPrefixEject.Length); Common.ProcessEjectCommand(ejectCommand); } + else if (command.StartsWith(Common.CmdPrefixMultiMap, StringComparison.OrdinalIgnoreCase)) + { + string multiMapping = command.Substring(Common.CmdPrefixMultiMap.Length); + if (_inConfiguration) + MessageBox.Show(multiMapping, "Change multi-mapping", MessageBoxButtons.OK, MessageBoxIcon.Information); + else + ChangeMultiMapping(multiMapping); + } else if (command.StartsWith(Common.CmdPrefixPopup, StringComparison.OrdinalIgnoreCase)) { string[] commands = Common.SplitPopupCommand(command.Substring(Common.CmdPrefixPopup.Length)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2008-01-08 13:40:38
|
Revision: 1225 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1225&view=rev Author: and-81 Date: 2008-01-08 05:40:21 -0800 (Tue, 08 Jan 2008) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Documentation/introduction.html trunk/plugins/IR Server Suite/Documentation/new.html trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Program.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MPBlastZonePlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/SetupForm.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapping/MPControlPlugin.xml trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs Added Paths: ----------- trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/AppData/Remote Presets/Direct Input.xml Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2008-01-07 17:05:15 UTC (rev 1224) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2008-01-08 13:40:21 UTC (rev 1225) @@ -1038,6 +1038,11 @@ string[] commands = Common.SplitBlastCommand(command.Substring(Common.CmdPrefixBlast.Length)); BlastIR(Common.FolderIRCommands + commands[0] + Common.FileExtensionIR, commands[1]); } + else if (command.StartsWith(Common.CmdPrefixPause, StringComparison.OrdinalIgnoreCase)) + { + int pauseTime = int.Parse(command.Substring(Common.CmdPrefixPause.Length)); + Thread.Sleep(pauseTime); + } else if (command.StartsWith(Common.CmdPrefixRun, StringComparison.OrdinalIgnoreCase)) { string[] commands = Common.SplitRunCommand(command.Substring(Common.CmdPrefixRun.Length)); @@ -1183,7 +1188,7 @@ } catch (Exception ex) { - if (Thread.CurrentThread.Name.Equals(ProcessCommandThreadName, StringComparison.OrdinalIgnoreCase)) + if (!String.IsNullOrEmpty(Thread.CurrentThread.Name) && Thread.CurrentThread.Name.Equals(ProcessCommandThreadName, StringComparison.OrdinalIgnoreCase)) IrssLog.Error(ex); else throw; Modified: trunk/plugins/IR Server Suite/Documentation/introduction.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/introduction.html 2008-01-07 17:05:15 UTC (rev 1224) +++ trunk/plugins/IR Server Suite/Documentation/introduction.html 2008-01-08 13:40:21 UTC (rev 1225) @@ -3,9 +3,13 @@ <BODY> <H2>Introduction<BR><HR COLOR="RED"></H2> -<P>This package was designed as a highly flexible IR remote control suite of plugins and applications specifically for (but not limited to) controlling a MediaPortal Client and Server setup.</P> -<P>The original reason for developing this system was to extend the capabilities of the MCE Replacement Plugin for MediaPortal. The project was started only a few short weeks after the MCE Replacement Plugin was started when limitations of that implementation became obvious.</P> +<P><I>Congratulations!<BR> +You are the privileged owner of IR Server Suite, a PC remote control suite of applications and plugins designed for MediaPortal.<BR> +If used and maintained in accordance with normal operating practices, IR Server Suite will provide many months of trouble-free operation.</I></P> + +<P>The original reason for developing this system was to extend the capabilities of the MCE Replacement Plugin for MediaPortal. The project was started only a few short weeks after the MCE Replacement Plugin was started when limitations of that implementation became obvious. However, IR Server Suite is now a fully-featured PC remote control suite.</P> + <P><B>How does this work?</B><BR> <BR> You install Input Service on a computer that has an IR Device attached to it. Input Service then provides access to that IR Device for all the plugins and applications in the suite, no matter where those applications and plugins are running on your network.<BR> @@ -23,8 +27,17 @@ <A HREF="Input Service\index.html">Input Service</A><BR> Input Service is the centre-piece of the system. As the name suggests, it is a windows service that provides access to the IR device. Other applications and plugins communicate with the Input Service to receive button press notification and to blast (transmit) or learn IR commands.<BR> <BR> +<A HREF="Translator\index.html">Translator</A><BR> +This is a program in the same style as HIP and to a lesser extent Girder. It is designed to control your whole PC by Remote Control.<BR> +<BR> +<A HREF="Tray Launcher\index.html">Tray Launcher</A><BR> +This application loads into the system tray and waits for a user defined button to be pressed and then launches an application of your choosing. It's function is duplicated by Translator, but in some cases people just want a simple application to do this.<BR> +<BR> +<A HREF="Virtual Remote\index.html">Virtual Remote</A><BR> +Virtual Remote is a software remote control, styled as an Infrared remote control. It lets you simulate remote control commands either locally or over a network. It also includes Web Remote that hosts the Virtual Remote as a web page.<BR> +<BR> <A HREF="Plugins\MP Control Plugin\index.html">MP Control Plugin</A><BR> -This MediaPortal plugin is the equivalent of the MCE Replacement Plugin, it connects to the Input Service to control MediaPortal.<BR> +This MediaPortal plugin is the equivalent of the MediaPortal MCE Replacement Plugin, it is used to control MediaPortal.<BR> <BR> <A HREF="Plugins\MP Blast Zone Plugin\index.html">MP Blast Zone Plugin</A><BR> This MediaPortal plugin lets you control your IR devices from within the MediaPortal GUI. By organising a menu structure inside the plugin you can blast IR commands, execute macros, launch applications, send windows messages, and jump to other screens within MediaPortal.<BR> @@ -35,15 +48,6 @@ <A HREF="Plugins\TV3 Blaster Plugin\index.html">TV3 Blaster Plugin</A><BR> This MediaPortal TV Server plugin is for tuning external channels (on Set Top Boxes) for the TV Engine 3 (the MediaPortal TV Server).<BR> <BR> -<A HREF="Tray Launcher\index.html">Tray Launcher</A><BR> -This application loads into the system tray and waits for a user defined button to be pressed and then launches an application of your choosing.<BR> -<BR> -<A HREF="Translator\index.html">Translator</A><BR> -This is a program in the same style as HIP and to a lesser extent Girder. It is designed to control your whole PC via Infrared Remote.<BR> -<BR> -<A HREF="Virtual Remote\index.html">Virtual Remote</A><BR> -Virtual Remote is a software remote control, styled as an Infrared remote control. It lets you simulate remote control commands either locally or over a network.<BR> -<BR> </P> Modified: trunk/plugins/IR Server Suite/Documentation/new.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/new.html 2008-01-07 17:05:15 UTC (rev 1224) +++ trunk/plugins/IR Server Suite/Documentation/new.html 2008-01-08 13:40:21 UTC (rev 1225) @@ -4,6 +4,16 @@ <H2>What's new?<BR><HR COLOR="RED"></H2> +<P>Version 1.0.4.2 +<UL> +<LI>MP Control plugin: Fixed Macro command for Multi-Mapping.</LI> +<LI>MCE Transceiver: Fixed blasting bug that has existed since October.</LI> +<LI>AdsTech 335 Receiver: Fixed a bug that caused Input Service to crash roughly every 5 minutes.</LI> +<LI>Installer: New IR Server Suite installer. It looks more professional and you can now change the MediaPortal plugin install paths.</LI> +<LI>General: Fixed the "pause" macro command.</LI> +</UL></P> +<BR> + <P>Version 1.0.4.1 <UL> <LI>Minor bug fixes.</LI> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs 2008-01-07 17:05:15 UTC (rev 1224) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs 2008-01-08 13:40:21 UTC (rev 1225) @@ -731,53 +731,12 @@ DebugWriteLine("Received data:"); DebugDump(packetBytes); - int indexOf9F = Array.IndexOf(packetBytes, (byte)0x9F); - while (indexOf9F != -1) - { - - if (packetBytes.Length > indexOf9F + 3 && packetBytes[indexOf9F + 1] == 0x04) // 9F 04 XX XX - IR Sample Period - { - byte b1 = packetBytes[indexOf9F + 2]; - byte b2 = packetBytes[indexOf9F + 3]; - - int irPeriod = ((b1 * 256) + b2); - DebugWriteLine("IR Sample Period: {0}", irPeriod); - } - - if (packetBytes.Length > indexOf9F + 3 && packetBytes[indexOf9F + 1] == 0x0C) // 9F 0C XX XX - Timeout - { - byte b1 = packetBytes[indexOf9F + 2]; - byte b2 = packetBytes[indexOf9F + 3]; - - int timeout = ((b1 * 256) + b2); - DebugWriteLine("IR Timeout Period: {0}", TimingResolution * timeout / 1000); - } - - if (packetBytes.Length > indexOf9F + 2 && packetBytes[indexOf9F + 1] == 0x14) // 9F 14 XX - Port - { - byte b1 = packetBytes[indexOf9F + 2]; - - DebugWriteLine("IR Input Port: {0}", b1); - } - - - if (packetBytes.Length > indexOf9F + 1) - { - indexOf9F = Array.IndexOf(packetBytes, (byte)0x9F, indexOf9F + 1); - } - else - { - break; - } - } - double firmware = 0.0; int indexOfFF = Array.IndexOf(packetBytes, (byte)0xFF); while (indexOfFF != -1) { - - if (packetBytes.Length > indexOfFF + 2 && packetBytes[indexOfFF + 1] == 0x0B) // 9F 0B XX - Firmware x.x00 + if (packetBytes.Length > indexOfFF + 2 && packetBytes[indexOfFF + 1] == 0x0B) // FF 0B XY - Firmware X.Y00 { byte b1 = packetBytes[indexOfFF + 2]; @@ -785,7 +744,7 @@ DebugWriteLine("Firmware: {0}", firmware); } - if (packetBytes.Length > indexOfFF + 2 && packetBytes[indexOfFF + 1] == 0x1B) // 9F 1B XX - Firmware 0.0xx + if (packetBytes.Length > indexOfFF + 2 && packetBytes[indexOfFF + 1] == 0x1B) // FF 1B XY - Firmware 0.0XY { byte b1 = packetBytes[indexOfFF + 2]; @@ -793,18 +752,11 @@ DebugWriteLine("Firmware: {0}", firmware); } - if (packetBytes.Length > indexOfFF + 1) - { indexOfFF = Array.IndexOf(packetBytes, (byte)0xFF, indexOfFF + 1); - } else - { break; - } } - - } #endif Modified: trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi 2008-01-07 17:05:15 UTC (rev 1224) +++ trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi 2008-01-08 13:40:21 UTC (rev 1225) @@ -1,80 +1,218 @@ -; IR Server Suite.nsi +;====================================== +; IR Server Suite - Debug.nsi ; -; (C) Copyright Aaron Dinnage, 2007 -; -; Install script for IR Server Suite -; -;-------------------------------- +; (C) Copyright Aaron Dinnage, 2008 +;====================================== -; The name of the installer -Name "IR Server Suite" +!include "x64.nsh" +!include "MUI.nsh" -; The file to write -OutFile "IR Server Suite.exe" +!define PRODUCT_NAME "IR Server Suite" +!define PRODUCT_VERSION "1.0.4.1" +!define PRODUCT_PUBLISHER "and-81" +!define PRODUCT_WEB_SITE "http://forum.team-mediaportal.com/showthread.php?t=33512" -; The default installation directory -InstallDir "$PROGRAMFILES\IR Server Suite" - -; Registry key to check for directory (so if you install again, it will overwrite the old one automatically) -InstallDirRegKey HKLM "Software\IR Server Suite" "Install_Dir" - -; Show the installation/uninstallation steps to the user +Name "${PRODUCT_NAME}" +OutFile "${PRODUCT_NAME} - ${PRODUCT_VERSION}.exe" +InstallDir "" ShowInstDetails show ShowUninstDetails show - -; Set the compression method +BrandingText " " SetCompressor /SOLID /FINAL lzma +CRCCheck On -!include "x64.nsh" +; Variables +var DIR_INSTALL +var DIR_MEDIAPORTAL +var DIR_TVSERVER -;-------------------------------- +!define MUI_ABORTWARNING +!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" +!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" -; Pages +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_LICENSE "Documentation\LICENSE.GPL" +!insertmacro MUI_PAGE_COMPONENTS -Page components -Page directory -Page instfiles +; Main app install path +!define MUI_PAGE_CUSTOMFUNCTION_SHOW DirectoryShowApp +!define MUI_PAGE_CUSTOMFUNCTION_LEAVE DirectoryLeaveApp +!insertmacro MUI_PAGE_DIRECTORY -UninstPage uninstConfirm -UninstPage instfiles +; MediaPortal install path +!define MUI_PAGE_CUSTOMFUNCTION_PRE DirectoryPreMP +!define MUI_PAGE_CUSTOMFUNCTION_SHOW DirectoryShowMP +!define MUI_PAGE_CUSTOMFUNCTION_LEAVE DirectoryLeaveMP +!insertmacro MUI_PAGE_DIRECTORY -;-------------------------------- +; TV Server install path +!define MUI_PAGE_CUSTOMFUNCTION_PRE DirectoryPreTV +!define MUI_PAGE_CUSTOMFUNCTION_SHOW DirectoryShowTV +!define MUI_PAGE_CUSTOMFUNCTION_LEAVE DirectoryLeaveTV +!insertmacro MUI_PAGE_DIRECTORY -Function .onInit +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_PAGE_FINISH +!insertmacro MUI_UNPAGE_INSTFILES + +!insertmacro MUI_LANGUAGE "English" + +;====================================== +;====================================== + +!macro initRegKeys ${If} ${RunningX64} - ${DisableX64FSRedirection} - StrCpy '$INSTDIR' '$PROGRAMFILES\IR Server Suite' - ${EnableX64FSRedirection} + SetRegView 64 - SetRegView 64 + ${DisableX64FSRedirection} + ReadRegStr $DIR_INSTALL HKLM "Software\${PRODUCT_NAME}" "Install_Dir" + ${If} $DIR_INSTALL == "" + StrCpy '$DIR_INSTALL' '$PROGRAMFILES\${PRODUCT_NAME}' + ${Endif} + + ReadRegStr $DIR_MEDIAPORTAL HKLM "Software\${PRODUCT_NAME}" "MediaPortal_Dir" + ${If} $DIR_MEDIAPORTAL == "" + StrCpy '$DIR_MEDIAPORTAL' '$PROGRAMFILES\Team MediaPortal\MediaPortal' + ${Endif} + + ReadRegStr $DIR_TVSERVER HKLM "Software\${PRODUCT_NAME}" "TVServer_Dir" + ${If} $DIR_TVSERVER == "" + StrCpy '$DIR_TVSERVER' '$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server' + ${Endif} + + ${EnableX64FSRedirection} + ${Else} - SetRegView 32 + SetRegView 32 + ReadRegStr $DIR_INSTALL HKLM "Software\${PRODUCT_NAME}" "Install_Dir" + ${If} $DIR_INSTALL == "" + StrCpy '$DIR_INSTALL' '$PROGRAMFILES\${PRODUCT_NAME}' + ${Endif} + + ReadRegStr $DIR_MEDIAPORTAL HKLM "Software\${PRODUCT_NAME}" "MediaPortal_Dir" + ${If} $DIR_MEDIAPORTAL == "" + StrCpy '$DIR_MEDIAPORTAL' '$PROGRAMFILES\Team MediaPortal\MediaPortal' + ${Endif} + + ReadRegStr $DIR_TVSERVER HKLM "Software\${PRODUCT_NAME}" "TVServer_Dir" + ${If} $DIR_TVSERVER == "" + StrCpy '$DIR_TVSERVER' '$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server' + ${Endif} + ${Endif} +!macroend + +;====================================== +;====================================== +Function .onInit + +!insertmacro initRegKeys + FunctionEnd +;====================================== + Function .onInstSuccess - IfFileExists "$INSTDIR\Input Service\Input Service.exe" StartInputService SkipStartInputService + IfFileExists "$DIR_INSTALL\Input Service\Input Service.exe" StartInputService SkipStartInputService StartInputService: - Exec '"$INSTDIR\Input Service\Input Service.exe" /start' + Exec '"$DIR_INSTALL\Input Service\Input Service.exe" /start' SkipStartInputService: FunctionEnd -;-------------------------------- +;====================================== -Section "-Core" +Function DirectoryPreMP + SectionGetFlags 3 $R0 + IntOp $R0 $R0 & ${SF_SELECTED} + IntCmp $R0 ${SF_SELECTED} EndDirectoryPreMP - DetailPrint "Installing Core files ..." + SectionGetFlags 4 $R0 + IntOp $R0 $R0 & ${SF_SELECTED} + IntCmp $R0 ${SF_SELECTED} EndDirectoryPreMP + SectionGetFlags 5 $R0 + IntOp $R0 $R0 & ${SF_SELECTED} + IntCmp $R0 ${SF_SELECTED} EndDirectoryPreMP + + Abort + +EndDirectoryPreMP: +FunctionEnd + +;====================================== + +Function DirectoryPreTV + SectionGetFlags 6 $R0 + IntOp $R0 $R0 & ${SF_SELECTED} + IntCmp $R0 ${SF_SELECTED} EndDirectoryPreTV + + Abort + +EndDirectoryPreTV: +FunctionEnd + +;====================================== + +Function DirectoryShowApp + !insertmacro MUI_HEADER_TEXT "Choose ${PRODUCT_NAME} Location" "Choose the folder in which to install ${PRODUCT_NAME}." + !insertmacro MUI_INNERDIALOG_TEXT 1041 "${PRODUCT_NAME} Folder" + !insertmacro MUI_INNERDIALOG_TEXT 1019 "$DIR_INSTALL" + !insertmacro MUI_INNERDIALOG_TEXT 1006 "Setup will install ${PRODUCT_NAME} in the following folder.$\r$\n$\r$\nTo install in a different folder, click Browse and select another folder. Click Next to continue." +FunctionEnd + +;====================================== + +Function DirectoryShowMP + !insertmacro MUI_HEADER_TEXT "Choose MediaPortal Location" "Choose the folder in which to install MediaPortal plugins." + !insertmacro MUI_INNERDIALOG_TEXT 1041 "MediaPortal Folder" + !insertmacro MUI_INNERDIALOG_TEXT 1019 "$DIR_MEDIAPORTAL" + !insertmacro MUI_INNERDIALOG_TEXT 1006 "Setup will install MediaPortal plugins in the following folder.$\r$\n$\r$\nTo install in a different folder, click Browse and select another folder. Click Install to start the installation." +FunctionEnd + +;====================================== + +Function DirectoryShowTV + !insertmacro MUI_HEADER_TEXT "Choose TV Server Location" "Choose the folder in which to install TV Server plugins." + !insertmacro MUI_INNERDIALOG_TEXT 1041 "TV Server Folder" + !insertmacro MUI_INNERDIALOG_TEXT 1019 "$DIR_TVSERVER" + !insertmacro MUI_INNERDIALOG_TEXT 1006 "Setup will install TV Server plugins in the following folder.$\r$\n$\r$\nTo install in a different folder, click Browse and select another folder. Click Install to start the installation." +FunctionEnd + +;====================================== + +Function DirectoryLeaveApp + StrCpy $DIR_INSTALL $INSTDIR +FunctionEnd + +;====================================== + +Function DirectoryLeaveMP + StrCpy $DIR_MEDIAPORTAL $INSTDIR +FunctionEnd + +;====================================== + +Function DirectoryLeaveTV + StrCpy $DIR_TVSERVER $INSTDIR +FunctionEnd + +;====================================== +;====================================== + +Section "-Prepare" + + DetailPrint "Preparing to install ..." + ; Use the all users context SetShellVarContext all @@ -87,54 +225,43 @@ ExecWait '"taskkill" /F /IM VirtualRemoteSkinEditor.exe' ExecWait '"taskkill" /F /IM DebugClient.exe' - IfFileExists "$INSTDIR\Input Service\Input Service.exe" StopInputService SkipStopInputService + IfFileExists "$DIR_INSTALL\Input Service\Input Service.exe" StopInputService SkipStopInputService StopInputService: - ExecWait '"$INSTDIR\Input Service\Input Service.exe" /stop' + ExecWait '"$DIR_INSTALL\Input Service\Input Service.exe" /stop' SkipStopInputService: Sleep 100 - CreateDirectory "$APPDATA\IR Server Suite" - CreateDirectory "$APPDATA\IR Server Suite\Logs" - CreateDirectory "$APPDATA\IR Server Suite\IR Commands" +SectionEnd +;====================================== + +Section "-Core" + + DetailPrint "Setting up paths and installing core files ..." + + ; Use the all users context + SetShellVarContext all + + CreateDirectory "$APPDATA\${PRODUCT_NAME}" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\Logs" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\IR Commands" + ; Copy known set top boxes - CreateDirectory "$APPDATA\IR Server Suite\Set Top Boxes" - SetOutPath "$APPDATA\IR Server Suite\Set Top Boxes" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\Set Top Boxes" + SetOutPath "$APPDATA\${PRODUCT_NAME}\Set Top Boxes" SetOverwrite ifnewer File /r /x .svn "Set Top Boxes\*.*" - ; Set output path to install dir - SetOutPath "$INSTDIR" + ; Create a start menu shortcut folder + CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}" - ; Write documentation - SetOverwrite ifnewer - File "Documentation\IR Server Suite.chm" - - ; Write the uninstaller - WriteUninstaller "Uninstall IR Server Suite.exe" - - ; Create a shortcut to the uninstaller & documentation - CreateDirectory "$SMPROGRAMS\IR Server Suite" - CreateShortCut "$SMPROGRAMS\IR Server Suite\Log Files.lnk" "$APPDATA\IR Server Suite\Logs" "" "" 0 - CreateShortCut "$SMPROGRAMS\IR Server Suite\Uninstall.lnk" "$INSTDIR\Uninstall IR Server Suite.exe" "" "$INSTDIR\Uninstall IR Server Suite.exe" 0 - CreateShortCut "$SMPROGRAMS\IR Server Suite\Documentation.lnk" "$INSTDIR\IR Server Suite.chm" "" "" 0 - - ; Write the installation path into the registry - WriteRegStr HKLM "Software\IR Server Suite" "Install_Dir" "$INSTDIR" - - ; Write the uninstall keys for Windows - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "DisplayName" "IR Server Suite" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "UninstallString" '"$INSTDIR\Uninstall IR Server Suite.exe"' - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "NoModify" 1 - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "NoRepair" 1 - SectionEnd -;-------------------------------- +;====================================== -Section "Input Service" +Section "Input Service" SectionInputService DetailPrint "Installing Input Service ..." @@ -142,25 +269,25 @@ SetShellVarContext all ; Uninstall current Input Service ... - ExecWait '"$INSTDIR\Input Service\Input Service.exe" /uninstall' + ExecWait '"$DIR_INSTALL\Input Service\Input Service.exe" /uninstall' Sleep 100 ; Installing Input Service - CreateDirectory "$INSTDIR\Input Service" - SetOutPath "$INSTDIR\Input Service" + CreateDirectory "$DIR_INSTALL\Input Service" + SetOutPath "$DIR_INSTALL\Input Service" SetOverwrite ifnewer File "Input Service\Input Service\bin\Debug\*.*" ; Installing Input Service Configuration - CreateDirectory "$INSTDIR\Input Service Configuration" - SetOutPath "$INSTDIR\Input Service Configuration" + CreateDirectory "$DIR_INSTALL\Input Service Configuration" + SetOutPath "$DIR_INSTALL\Input Service Configuration" SetOverwrite ifnewer File "Input Service\Input Service Configuration\bin\Debug\*.*" ; Install IR Server Plugins ... DetailPrint "Installing IR Server Plugins ..." - CreateDirectory "$INSTDIR\IR Server Plugins" - SetOutPath "$INSTDIR\IR Server Plugins" + CreateDirectory "$DIR_INSTALL\IR Server Plugins" + SetOutPath "$DIR_INSTALL\IR Server Plugins" SetOverwrite ifnewer File "IR Server Plugins\Ads Tech PTV-335 Receiver\bin\Debug\*.*" @@ -184,20 +311,20 @@ File "IR Server Plugins\XBCDRC Receiver\bin\Debug\*.*" ; Create App Data Folder for IR Server configuration files. - CreateDirectory "$APPDATA\IR Server Suite\Input Service" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\Input Service" ; Create start menu shortcut - CreateShortCut "$SMPROGRAMS\IR Server Suite\Input Service Configuration.lnk" "$INSTDIR\Input Service Configuration\Input Service Configuration.exe" "" "$INSTDIR\Input Service Configuration\Input Service Configuration.exe" 0 + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Input Service Configuration.lnk" "$DIR_INSTALL\Input Service Configuration\Input Service Configuration.exe" "" "$DIR_INSTALL\Input Service Configuration\Input Service Configuration.exe" 0 ; Launch Input Service DetailPrint "Starting Input Service ..." - ExecWait '"$INSTDIR\Input Service\Input Service.exe" /install' + ExecWait '"$DIR_INSTALL\Input Service\Input Service.exe" /install' SectionEnd -;-------------------------------- +;====================================== -Section "MP Control Plugin" +Section "MP Control Plugin" SectionMPControlPlugin DetailPrint "Installing MP Control Plugin ..." @@ -205,7 +332,7 @@ SetShellVarContext all ; Write plugin dll - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process" + SetOutPath "$DIR_MEDIAPORTAL\Plugins\Process" SetOverwrite ifnewer File "MediaPortal Plugins\MP Control Plugin\bin\Debug\MPUtils.dll" File "MediaPortal Plugins\MP Control Plugin\bin\Debug\IrssComms.dll" @@ -213,24 +340,24 @@ File "MediaPortal Plugins\MP Control Plugin\bin\Debug\MPControlPlugin.dll" ; Write input mapping - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\InputDeviceMappings\defaults" + SetOutPath "$DIR_MEDIAPORTAL\InputDeviceMappings\defaults" SetOverwrite ifnewer File "MediaPortal Plugins\MP Control Plugin\InputMapping\MPControlPlugin.xml" ; Write app data - CreateDirectory "$APPDATA\IR Server Suite\MP Control Plugin" - SetOutPath "$APPDATA\IR Server Suite\MP Control Plugin" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\MP Control Plugin" + SetOutPath "$APPDATA\${PRODUCT_NAME}\MP Control Plugin" SetOverwrite ifnewer File /r /x .svn "MediaPortal Plugins\MP Control Plugin\AppData\*.*" ; Create Macro folder - CreateDirectory "$APPDATA\IR Server Suite\MP Control Plugin\Macro" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\MP Control Plugin\Macro" SectionEnd -;-------------------------------- +;====================================== -Section "MP Blast Zone Plugin" +Section "MP Blast Zone Plugin" SectionMPBlastZonePlugin DetailPrint "Installing MP Blast Zone Plugin ..." @@ -238,7 +365,7 @@ SetShellVarContext all ; Write plugin dll - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows" + SetOutPath "$DIR_MEDIAPORTAL\Plugins\Windows" SetOverwrite ifnewer File "MediaPortal Plugins\MP Blast Zone Plugin\bin\Debug\MPUtils.dll" File "MediaPortal Plugins\MP Blast Zone Plugin\bin\Debug\IrssComms.dll" @@ -246,28 +373,28 @@ File "MediaPortal Plugins\MP Blast Zone Plugin\bin\Debug\MPBlastZonePlugin.dll" ; Write app data - CreateDirectory "$APPDATA\IR Server Suite\MP Blast Zone Plugin" - SetOutPath "$APPDATA\IR Server Suite\MP Blast Zone Plugin" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\MP Blast Zone Plugin" + SetOutPath "$APPDATA\${PRODUCT_NAME}\MP Blast Zone Plugin" SetOverwrite off File "MediaPortal Plugins\MP Blast Zone Plugin\AppData\Menu.xml" ; Write skin files - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Skin\BlueTwo" + SetOutPath "$DIR_MEDIAPORTAL\Skin\BlueTwo" SetOverwrite on File /r /x .svn "MediaPortal Plugins\MP Blast Zone Plugin\Skin\*.*" - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Skin\BlueTwo wide" + SetOutPath "$DIR_MEDIAPORTAL\Skin\BlueTwo wide" SetOverwrite on File /r /x .svn "MediaPortal Plugins\MP Blast Zone Plugin\Skin\*.*" ; Create Macro folder - CreateDirectory "$APPDATA\IR Server Suite\MP Blast Zone Plugin\Macro" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\MP Blast Zone Plugin\Macro" SectionEnd -;-------------------------------- +;====================================== -Section /o "TV2 Blaster Plugin" +Section /o "TV2 Blaster Plugin" SectionTV2BlasterPlugin DetailPrint "Installing TV2 Blaster Plugin ..." @@ -275,7 +402,7 @@ SetShellVarContext all ; Write plugin dll - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process" + SetOutPath "$DIR_MEDIAPORTAL\Plugins\Process" SetOverwrite ifnewer File "MediaPortal Plugins\TV2 Blaster Plugin\bin\Debug\MPUtils.dll" File "MediaPortal Plugins\TV2 Blaster Plugin\bin\Debug\IrssComms.dll" @@ -283,14 +410,14 @@ File "MediaPortal Plugins\TV2 Blaster Plugin\bin\Debug\TV2BlasterPlugin.dll" ; Create folders - CreateDirectory "$APPDATA\IR Server Suite\TV2 Blaster Plugin" - CreateDirectory "$APPDATA\IR Server Suite\TV2 Blaster Plugin\Macro" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\TV2 Blaster Plugin" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\TV2 Blaster Plugin\Macro" SectionEnd -;-------------------------------- +;====================================== -Section /o "TV3 Blaster Plugin" +Section /o "TV3 Blaster Plugin" SectionTV3BlasterPlugin DetailPrint "Installing TV3 Blaster Plugin ..." @@ -298,7 +425,7 @@ SetShellVarContext all ; Write plugin dll - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins" + SetOutPath "$DIR_TVSERVER\Plugins" SetOverwrite ifnewer File "MediaPortal Plugins\TV3 Blaster Plugin\bin\Debug\MPUtils.dll" File "MediaPortal Plugins\TV3 Blaster Plugin\bin\Debug\IrssComms.dll" @@ -306,137 +433,236 @@ File "MediaPortal Plugins\TV3 Blaster Plugin\bin\Debug\TV3BlasterPlugin.dll" ; Create folders - CreateDirectory "$APPDATA\IR Server Suite\TV3 Blaster Plugin" - CreateDirectory "$APPDATA\IR Server Suite\TV3 Blaster Plugin\Macro" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\TV3 Blaster Plugin" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\TV3 Blaster Plugin\Macro" SectionEnd -;-------------------------------- +;====================================== -Section "Translator" +Section "Translator" SectionTranslator DetailPrint "Installing Translator ..." + ; Use the all users context + SetShellVarContext all + ; Installing Translator - CreateDirectory "$INSTDIR\Translator" - SetOutPath "$INSTDIR\Translator" + CreateDirectory "$DIR_INSTALL\Translator" + SetOutPath "$DIR_INSTALL\Translator" SetOverwrite ifnewer File "Applications\Translator\bin\Debug\*.*" ; Create folders - CreateDirectory "$APPDATA\IR Server Suite\Translator" - CreateDirectory "$APPDATA\IR Server Suite\Translator\Macro" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\Translator" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\Translator\Macro" ; Create start menu shortcut - CreateShortCut "$SMPROGRAMS\IR Server Suite\Translator.lnk" "$INSTDIR\Translator\Translator.exe" "" "$INSTDIR\Translator\Translator.exe" 0 + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Translator.lnk" "$DIR_INSTALL\Translator\Translator.exe" "" "$DIR_INSTALL\Translator\Translator.exe" 0 SectionEnd -;-------------------------------- +;====================================== -Section /o "Tray Launcher" +Section /o "Tray Launcher" SectionTrayLauncher DetailPrint "Installing Tray Launcher ..." + ; Use the all users context + SetShellVarContext all + ; Installing Translator - CreateDirectory "$INSTDIR\Tray Launcher" - SetOutPath "$INSTDIR\Tray Launcher" + CreateDirectory "$DIR_INSTALL\Tray Launcher" + SetOutPath "$DIR_INSTALL\Tray Launcher" SetOverwrite ifnewer File "Applications\Tray Launcher\bin\Debug\*.*" ; Create folders - CreateDirectory "$APPDATA\IR Server Suite\Tray Launcher" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\Tray Launcher" ; Create start menu shortcut - CreateShortCut "$SMPROGRAMS\IR Server Suite\Tray Launcher.lnk" "$INSTDIR\Tray Launcher\TrayLauncher.exe" "" "$INSTDIR\Tray Launcher\TrayLauncher.exe" 0 + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Tray Launcher.lnk" "$DIR_INSTALL\Tray Launcher\TrayLauncher.exe" "" "$DIR_INSTALL\Tray Launcher\TrayLauncher.exe" 0 SectionEnd -;-------------------------------- +;====================================== -Section "Virtual Remote and Web Remote" +Section "Virtual Remote and Web Remote" SectionVirtualRemote DetailPrint "Installing Virtual Remote and Web Remote..." + ; Use the all users context + SetShellVarContext all + ; Installing Virtual Remote and Web Remote - CreateDirectory "$INSTDIR\Virtual Remote" - SetOutPath "$INSTDIR\Virtual Remote" + CreateDirectory "$DIR_INSTALL\Virtual Remote" + SetOutPath "$DIR_INSTALL\Virtual Remote" SetOverwrite ifnewer File "Applications\Virtual Remote\bin\Debug\*.*" File "Applications\Web Remote\bin\Debug\WebRemote.exe" - CreateDirectory "$INSTDIR\Virtual Remote\Skins" - SetOutPath "$INSTDIR\Virtual Remote\Skins" + CreateDirectory "$DIR_INSTALL\Virtual Remote\Skins" + SetOutPath "$DIR_INSTALL\Virtual Remote\Skins" SetOverwrite ifnewer File "Applications\Virtual Remote\Skins\*.*" ; Create folders - CreateDirectory "$APPDATA\IR Server Suite\Virtual Remote" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\Virtual Remote" ; Create start menu shortcut - CreateShortCut "$SMPROGRAMS\IR Server Suite\Virtual Remote.lnk" "$INSTDIR\Virtual Remote\VirtualRemote.exe" "" "$INSTDIR\Virtual Remote\VirtualRemote.exe" 0 - CreateShortCut "$SMPROGRAMS\IR Server Suite\Web Remote.lnk" "$INSTDIR\Virtual Remote\WebRemote.exe" "" "$INSTDIR\Virtual Remote\WebRemote.exe" 0 + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Virtual Remote.lnk" "$DIR_INSTALL\Virtual Remote\VirtualRemote.exe" "" "$DIR_INSTALL\Virtual Remote\VirtualRemote.exe" 0 + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Web Remote.lnk" "$DIR_INSTALL\Virtual Remote\WebRemote.exe" "" "$DIR_INSTALL\Virtual Remote\WebRemote.exe" 0 SectionEnd -;-------------------------------- +;====================================== -Section /o "Virtual Remote Skin Editor" +Section /o "Virtual Remote Skin Editor" SectionVirtualRemoteSkinEditor DetailPrint "Installing Virtual Remote Skin Editor ..." + ; Use the all users context + SetShellVarContext all + ; Installing Virtual Remote - CreateDirectory "$INSTDIR\Virtual Remote Skin Editor" - SetOutPath "$INSTDIR\Virtual Remote Skin Editor" + CreateDirectory "$DIR_INSTALL\Virtual Remote Skin Editor" + SetOutPath "$DIR_INSTALL\Virtual Remote Skin Editor" SetOverwrite ifnewer File "Applications\Virtual Remote Skin Editor\bin\Debug\*.*" ; Create folders - CreateDirectory "$APPDATA\IR Server Suite\Virtual Remote Skin Editor" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\Virtual Remote Skin Editor" ; Create start menu shortcut - CreateShortCut "$SMPROGRAMS\IR Server Suite\Virtual Remote Skin Editor.lnk" "$INSTDIR\Virtual Remote Skin Editor\VirtualRemoteSkinEditor.exe" "" "$INSTDIR\Virtual Remote Skin Editor\VirtualRemoteSkinEditor.exe" 0 + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Virtual Remote Skin Editor.lnk" "$DIR_INSTALL\Virtual Remote Skin Editor\VirtualRemoteSkinEditor.exe" "" "$DIR_INSTALL\Virtual Remote Skin Editor\VirtualRemoteSkinEditor.exe" 0 SectionEnd -;-------------------------------- +;====================================== -Section "IR Blast (Command line tool)" +Section "IR Blast (Command line tool)" SectionIRBlast DetailPrint "Installing IR Blast ..." + ; Use the all users context + SetShellVarContext all + ; Installing IR Server - CreateDirectory "$INSTDIR\IR Blast" - SetOutPath "$INSTDIR\IR Blast" + CreateDirectory "$DIR_INSTALL\IR Blast" + SetOutPath "$DIR_INSTALL\IR Blast" SetOverwrite ifnewer + File "Applications\IR Blast (No Window)\bin\Debug\*.*" File "Applications\IR Blast\bin\Debug\IRBlast.exe" - File "Applications\IR Blast (No Window)\bin\Debug\*.*" SectionEnd -;-------------------------------- +;====================================== -Section /o "Debug Client" +Section /o "Debug Client" SectionDebugClient DetailPrint "Installing Debug Client ..." + ; Use the all users context + SetShellVarContext all + ; Installing Debug Client - CreateDirectory "$INSTDIR\Debug Client" - SetOutPath "$INSTDIR\Debug Client" + CreateDirectory "$DIR_INSTALL\Debug Client" + SetOutPath "$DIR_INSTALL\Debug Client" SetOverwrite ifnewer File "Applications\Debug Client\bin\Debug\*.*" ; Create folders - CreateDirectory "$APPDATA\IR Server Suite\Debug Client" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\Debug Client" ; Create start menu shortcut - CreateShortCut "$SMPROGRAMS\IR Server Suite\Debug Client.lnk" "$INSTDIR\Debug Client\DebugClient.exe" "" "$INSTDIR\Debug Client\DebugClient.exe" 0 + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Debug Client.lnk" "$DIR_INSTALL\Debug Client\DebugClient.exe" "" "$DIR_INSTALL\Debug Client\DebugClient.exe" 0 SectionEnd -;-------------------------------- -;-------------------------------- +;====================================== +Section "-Complete" + + DetailPrint "Completing install ..." + + ; Use the all users context + SetShellVarContext all + + ; Write documentation + SetOutPath "$DIR_INSTALL" + SetOverwrite ifnewer + File "Documentation\${PRODUCT_NAME}.chm" + + ; Create website link file + WriteIniStr "$DIR_INSTALL\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" + + ; Write the uninstaller + WriteUninstaller "$DIR_INSTALL\Uninstall ${PRODUCT_NAME}.exe" + + ; Create start menu shortcuts + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Documentation.lnk" "$DIR_INSTALL\${PRODUCT_NAME}.chm" + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Website.lnk" "$DIR_INSTALL\${PRODUCT_NAME}.url" + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Log Files.lnk" "$APPDATA\${PRODUCT_NAME}\Logs" + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk" "$DIR_INSTALL\Uninstall ${PRODUCT_NAME}.exe" "" "$DIR_INSTALL\Uninstall ${PRODUCT_NAME}.exe" + + ; Write the installation paths into the registry + WriteRegStr HKLM "Software\${PRODUCT_NAME}" "Install_Dir" "$DIR_INSTALL" + WriteRegStr HKLM "Software\${PRODUCT_NAME}" "MediaPortal_Dir" "$DIR_MEDIAPORTAL" + WriteRegStr HKLM "Software\${PRODUCT_NAME}" "TVServer_Dir" "$DIR_TVSERVER" + + ; Write the uninstall keys for Windows + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayName" "${PRODUCT_NAME}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "UninstallString" "$DIR_INSTALL\Uninstall ${PRODUCT_NAME}.exe" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayIcon" "$DIR_INSTALL\Uninstall ${PRODUCT_NAME}.exe" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayVersion" "${PRODUCT_VERSION}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "Publisher" "${PRODUCT_PUBLISHER}" + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "NoModify" 1 + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "NoRepair" 1 + + SetAutoClose false + +SectionEnd + +;====================================== +;====================================== + +; Section descriptions +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SectionInputService} "A windows service that provides access to your IR devices." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionMPControlPlugin} "Connects to the Input Service to control MediaPortal." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionMPBlastZonePlugin} "Lets you control your IR devices from within the MediaPortal GUI." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionTV2BlasterPlugin} "For tuning external channels (on Set Top Boxes) with the default MediaPortal TV engine." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionTV3BlasterPlugin} "For tuning external channels (on Set Top Boxes) with the MediaPortal TV server." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionTranslator} "Control your whole PC via Infrared Remote." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionTrayLauncher} "Simple tray application to launch an application of your choosing when a particular button is pressed." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionVirtualRemote} "Simulated remote control, works as an application or as a web hosted remote control (with included Web Remote)." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionVirtualRemoteSkinEditor} "Create or Modify skins for the Virtual Remote." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionIRBlast} "Command line tools for blasting IR codes." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionDebugClient} "Very simple testing tool for troubleshooting problems." +!insertmacro MUI_FUNCTION_DESCRIPTION_END + +;====================================== +;====================================== + +Function un.onUninstSuccess + HideWindow + MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." +FunctionEnd + +;====================================== + +Function un.onInit + + !insertmacro initRegKeys + + MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2 + Abort +FunctionEnd + +;====================================== +;====================================== + Section "Uninstall" ; Use the all users context @@ -453,52 +679,55 @@ Sleep 100 ; Uninstall current Input Service ... - ExecWait '"$INSTDIR\Input Service\Input Service.exe" /uninstall' + ExecWait '"$DIR_INSTALL\Input Service\Input Service.exe" /uninstall' Sleep 100 ; Remove files and uninstaller DetailPrint "Attempting to remove MediaPortal Blast Zone Plugin ..." - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\MPUtils.dll" - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\IrssComms.dll" - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\IrssUtils.dll" - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Windows\MPBlastZonePlugin.dll" + Delete /REBOOTOK "$DIR_MEDIAPORTAL\Plugins\Windows\MPUtils.dll" + Delete /REBOOTOK "$DIR_MEDIAPORTAL\Plugins\Windows\IrssComms.dll" + Delete /REBOOTOK "$DIR_MEDIAPORTAL\Plugins\Windows\IrssUtils.dll" + Delete /REBOOTOK "$DIR_MEDIAPORTAL\Plugins\Windows\MPBlastZonePlugin.dll" DetailPrint "Attempting to remove MediaPortal Process Plugin Common Files ..." - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\MPUtils.dll" - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\IrssComms.dll" - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\IrssUtils.dll" + Delete /REBOOTOK "$DIR_MEDIAPORTAL\Plugins\Process\MPUtils.dll" + Delete /REBOOTOK "$DIR_MEDIAPORTAL\Plugins\Process\IrssComms.dll" + Delete /REBOOTOK "$DIR_MEDIAPORTAL\Plugins\Process\IrssUtils.dll" DetailPrint "Attempting to remove MediaPortal Control Plugin ..." - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\MPControlPlugin.dll" + Delete /REBOOTOK "$DIR_MEDIAPORTAL\Plugins\Process\MPControlPlugin.dll" DetailPrint "Attempting to remove MediaPortal TV2 Plugin ..." - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process\TV2BlasterPlugin.dll" + Delete /REBOOTOK "$DIR_MEDIAPORTAL\Plugins\Process\TV2BlasterPlugin.dll" DetailPrint "Attempting to remove MediaPortal TV3 Plugin ..." - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins\MPUtils.dll" - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins\IrssComms.dll" - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins\IrssUtils.dll" - Delete /REBOOTOK "$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server\Plugins\TV3BlasterPlugin.dll" + Delete /REBOOTOK "$DIR_TVSERVER\Plugins\MPUtils.dll" + Delete /REBOOTOK "$DIR_TVSERVER\Plugins\IrssComms.dll" + Delete /REBOOTOK "$DIR_TVSERVER\Plugins\IrssUtils.dll" + Delete /REBOOTOK "$DIR_TVSERVER\Plugins\TV3BlasterPlugin.dll" DetailPrint "Removing Set Top Box presets ..." - RMDir /R "$APPDATA\IR Server Suite\Set Top Boxes" + RMDir /R "$APPDATA\${PRODUCT_NAME}\Set Top Boxes" DetailPrint "Removing program files ..." - RMDir /R /REBOOTOK "$INSTDIR" - + RMDir /R /REBOOTOK "$DIR_INSTALL" + DetailPrint "Removing start menu shortcuts ..." - RMDir /R "$SMPROGRAMS\IR Server Suite" + RMDir /R "$SMPROGRAMS\${PRODUCT_NAME}" ; Remove registry keys DetailPrint "Removing registry keys ..." - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" - DeleteRegKey HKLM "SOFTWARE\IR Server Suite" + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" + DeleteRegKey HKLM "Software\${PRODUCT_NAME}" ; Remove auto-runs DetailPrint "Removing application auto-runs ..." DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Tray Launcher" DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Translator" + SetAutoClose false + SectionEnd -;-------------------------------- +;====================================== +;====================================== \ No newline at end of file Modified: trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi 2008-01-07 17:05:15 UTC (rev 1224) +++ trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi 2008-01-08 13:40:21 UTC (rev 1225) @@ -1,80 +1,218 @@ -; IR Server Suite.nsi +;====================================== +; IR Server Suite - Release.nsi ; -; (C) Copyright Aaron Dinnage, 2007 -; -; Install script for IR Server Suite -; -;-------------------------------- +; (C) Copyright Aaron Dinnage, 2008 +;====================================== -; The name of the installer -Name "IR Server Suite" +!include "x64.nsh" +!include "MUI.nsh" -; The file to write -OutFile "IR Server Suite.exe" +!define PRODUCT_NAME "IR Server Suite" +!define PRODUCT_VERSION "1.0.4.1" +!define PRODUCT_PUBLISHER "and-81" +!define PRODUCT_WEB_SITE "http://forum.team-mediaportal.com/showthread.php?t=33512" -; The default installation directory -InstallDir "$PROGRAMFILES\IR Server Suite" - -; Registry key to check for directory (so if you install again, it will overwrite the old one automatically) -InstallDirRegKey HKLM "Software\IR Server Suite" "Install_Dir" - -; Show the installation/uninstallation steps to the user +Name "${PRODUCT_NAME}" +OutFile "${PRODUCT_NAME} - ${PRODUCT_VERSION}.exe" +InstallDir "" ShowInstDetails show ShowUninstDetails show - -; Set the compression method +BrandingText " " SetCompressor /SOLID /FINAL lzma +CRCCheck On -!include "x64.nsh" +; Variables +var DIR_INSTALL +var DIR_MEDIAPORTAL +var DIR_TVSERVER -;-------------------------------- +!define MUI_ABORTWARNING +!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" +!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" -; Pages +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_LICENSE "Documentation\LICENSE.GPL" +!insertmacro MUI_PAGE_COMPONENTS -Page components -Page directory -Page instfiles +; Main app install path +!define MUI_PAGE_CUSTOMFUNCTION_SHOW DirectoryShowApp +!define MUI_PAGE_CUSTOMFUNCTION_LEAVE DirectoryLeaveApp +!insertmacro MUI_PAGE_DIRECTORY -UninstPage uninstConfirm -UninstPage instfiles +; MediaPortal install path +!define MUI_PAGE_CUSTOMFUNCTION_PRE DirectoryPreMP +!define MUI_PAGE_CUSTOMFUNCTION_SHOW DirectoryShowMP +!define MUI_PAGE_CUSTOMFUNCTION_LEAVE DirectoryLeaveMP +!insertmacro MUI_PAGE_DIRECTORY -;-------------------------------- +; TV Server install path +!define MUI_PAGE_CUSTOMFUNCTION_PRE DirectoryPreTV +!define MUI_PAGE_CUSTOMFUNCTION_SHOW DirectoryShowTV +!define MUI_PAGE_CUSTOMFUNCTION_LEAVE DirectoryLeaveTV +!insertmacro MUI_PAGE_DIRECTORY -Function .onInit +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_PAGE_FINISH +!insertmacro MUI_UNPAGE_INSTFILES + +!insertmacro MUI_LANGUAGE "English" + +;====================================== +;====================================== + +!macro initRegKeys ${If} ${RunningX64} - ${DisableX64FSRedirection} - StrCpy '$INSTDIR' '$PROGRAMFILES\IR Server Suite' - ${EnableX64FSRedirection} + SetRegView 64 - SetRegView 64 + ${DisableX64FSRedirection} + ReadRegStr $DIR_INSTALL HKLM "Software\${PRODUCT_NAME}" "Install_Dir" + ${If} $DIR_INSTALL == "" + StrCpy '$DIR_INSTALL' '$PROGRAMFILES\${PRODUCT_NAME}' + ${Endif} + + ReadRegStr $DIR_MEDIAPORTAL HKLM "Software\${PRODUCT_NAME}" "MediaPortal_Dir" + ${If} $DIR_MEDIAPORTAL == "" + StrCpy '$DIR_MEDIAPORTAL' '$PROGRAMFILES\Team MediaPortal\MediaPortal' + ${Endif} + + ReadRegStr $DIR_TVSERVER HKLM "Software\${PRODUCT_NAME}" "TVServer_Dir" + ${If} $DIR_TVSERVER == "" + StrCpy '$DIR_TVSERVER' '$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server' + ${Endif} + + ${EnableX64FSRedirection} + ${Else} - SetRegView 32 + SetRegView 32 + ReadRegStr $DIR_INSTALL HKLM "Software\${PRODUCT_NAME}" "Install_Dir" + ${If} $DIR_INSTALL == "" + StrCpy '$DIR_INSTALL' '$PROGRAMFILES\${PRODUCT_NAME}' + ${Endif} + + ReadRegStr $DIR_MEDIAPORTAL HKLM "Software\${PRODUCT_NAME}" "MediaPortal_Dir" + ${If} $DIR_MEDIAPORTAL == "" + StrCpy '$DIR_MEDIAPORTAL' '$PROGRAMFILES\Team MediaPortal\MediaPortal' + ${Endif} + + ReadRegStr $DIR_TVSERVER HKLM "Software\${PRODUCT_NAME}" "TVServer_Dir" + ${If} $DIR_TVSERVER == "" + StrCpy '$DIR_TVSERVER' '$PROGRAMFILES\Team MediaPortal\MediaPortal TV Server' + ${Endif} + ${Endif} +!macroend + +;====================================== +;====================================== +Function .onInit + +!insertmacro initRegKeys + FunctionEnd +;====================================== + Function .onInstSuccess - IfFileExists "$INSTDIR\Input Service\Input Service.exe" StartInputService SkipStartInputService + IfFileExists "$DIR_INSTALL\Input Service\Input Service.exe" StartInputService SkipStartInputService StartInputService: - Exec '"$INSTDIR\Input Service\Input Service.exe" /start' + Exec '"$DIR_INSTALL\Input Service\Input Service.exe" /start' SkipStartInputService: FunctionEnd -;-------------------------------- +;====================================== -Section "-Core" +Function DirectoryPreMP + SectionGetFlags 3 $R0 + IntOp $R0 $R0 & ${SF_SELECTED} + IntCmp $R0 ${SF_SELECTED} EndDirectoryPreMP - DetailPrint "Installing Core files ..." + SectionGetFlags 4 $R0 + IntOp $R0 $R0 & ${SF_SELECTED} + IntCmp $R0 ${SF_SELECTED} EndDirectoryPreMP + SectionGetFlags 5 $R0 + IntOp $R0 $R0 & ${SF_SELECTED} + IntCmp $R0 ${SF_SELECTED} EndDirectoryPreMP + + Abort + +EndDirectoryPreMP: +FunctionEnd + +;====================================== + +Function DirectoryPreTV + SectionGetFlags 6 $R0 + IntOp $R0 $R0 & ${SF_SELECTED} + IntCmp $R0 ${SF_SELECTED} EndDirectoryPreTV + + Abort + +EndDirectoryPreTV: +FunctionEnd + +;====================================== + +Function DirectoryShowApp + !insertmacro MUI_HEADER_TEXT "Choose ${PRODUCT_NAME} Location" "Choose the folder in which to install ${PRODUCT_NAME}." + !insertmacro MUI_INNERDIALOG_TEXT 1041 "${PRODUCT_NAME} Folder" + !insertmacro MUI_INNERDIALOG_TEXT 1019 "$DIR_INSTALL" + !insertmacro MUI_INNERDIALOG_TEXT 1006 "Setup will install ${PRODUCT_NAME} in the following folder.$\r$\n$\r$\nTo install in a different folder, click Browse and select another folder. Click Next to continue." +FunctionEnd + +;====================================== + +Function DirectoryShowMP + !insertmacro MUI_HEADER_TEXT "Choose MediaPortal Location" "Choose the folder in which to install MediaPortal plugins." + !insertmacro MUI_INNERDIALOG_TEXT 1041 "MediaPortal Folder" + !insertmacro MUI_INNERDIALOG_TEXT 1019 "$DIR_MEDIAPORTAL" + !insertmacro MUI_INNERDIALOG_TEXT 1006 "Setup will install MediaPortal plugins in the following folder.$\r$\n$\r$\nTo install in a different folder, click Browse and select another folder. Click Install to start the installation." +FunctionEnd + +;====================================== + +Function DirectoryShowTV + !insertmacro MUI_HEADER_TEXT "Choose TV Server Location" "Choose the folder in which to install TV Server plugins." + !insertmacro MUI_INNERDIALOG_TEXT 1041 "TV Server Folder" + !insertmacro MUI_INNERDIALOG_TEXT 1019 "$DIR_TVSERVER" + !insertmacro MUI_INNERDIALOG_TEXT 1006 "Setup will install TV Server plugins in the following folder.$\r$\n$\r$\nTo install in a different folder, click Browse and select another folder. Click Install to start the installation." +FunctionEnd + +;====================================== + +Function DirectoryLeaveApp + StrCpy $DIR_INSTALL $INSTDIR +FunctionEnd + +;====================================== + +Function DirectoryLeaveMP + StrCpy $DIR_MEDIAPORTAL $INSTDIR +FunctionEnd + +;====================================== + +Function DirectoryLeaveTV + StrCpy $DIR_TVSERVER $INSTDIR +FunctionEnd + +;====================================== +;====================================== + +Section "-Prepare" + + DetailPrint "Preparing to install ..." + ; Use the all users context SetShellVarContext all @@ -87,54 +225,43 @@ ExecWait '"taskkill" /F /IM VirtualRemoteSkinEditor.exe' ExecWait '"taskkill" /F /IM DebugClient.exe' - IfFileExists "$INSTDIR\Input Service\Input Service.exe" StopInputService SkipStopInputService + IfFileExists "$DIR_INSTALL\Input Service\Input Service.exe" StopInputService SkipStopInputService StopInputService: - ExecWait '"$INSTDIR\Input Service\Input Service.exe" /stop' + ExecWait '"$DIR_INSTALL\Input Service\Input Service.exe" /stop' SkipStopInputService: Sleep 100 - CreateDirectory "$APPDATA\IR Server Suite" - CreateDirectory "$APPDATA\IR Server Suite\Logs" - CreateDirectory "$APPDATA\IR Server Suite\IR Commands" +SectionEnd +;====================================== + +Section "-Core" + + DetailPrint "Setting up paths and installing core files ..." + + ; Use the all users context + SetShellVarContext all + + CreateDirectory "$APPDATA\${PRODUCT_NAME}" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\Logs" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\IR Commands" + ; Copy known set top boxes - CreateDirectory "$APPDATA\IR Server Suite\Set Top Boxes" - SetOutPath "$APPDATA\IR Server Suite\Set Top Boxes" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\Set Top Boxes" + SetOutPath "$APPDATA\${PRODUCT_NAME}\Set Top Boxes" SetOverwrite ifnewer File /r /x .svn "Set Top Boxes\*.*" - ; Set output path to install dir - SetOutPath "$INSTDIR" + ; Create a start menu shortcut folder + CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}" - ; Write documentation - SetOverwrite ifnewer - File "Documentation\IR Server Suite.chm" - - ; Write the uninstaller - WriteUninstaller "Uninstall IR Server Suite.exe" - - ; Create a shortcut to the uninstaller & documentation - CreateDirectory "$SMPROGRAMS\IR Server Suite" - CreateShortCut "$SMPROGRAMS\IR Server Suite\Log Files.lnk" "$APPDATA\IR Server Suite\Logs" "" "" 0 - CreateShortCut "$SMPROGRAMS\IR Server Suite\Uninstall.lnk" "$INSTDIR\Uninstall IR Server Suite.exe" "" "$INSTDIR\Uninstall IR Server Suite.exe" 0 - CreateShortCut "$SMPROGRAMS\IR Server Suite\Documentation.lnk" "$INSTDIR\IR Server Suite.chm" "" "" 0 - - ; Write the installation path into the registry - WriteRegStr HKLM "Software\IR Server Suite" "Install_Dir" "$INSTDIR" - - ; Write the uninstall keys for Windows - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "DisplayName" "IR Server Suite" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "UninstallString" '"$INSTDIR\Uninstall IR Server Suite.exe"' - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "NoModify" 1 - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IR Server Suite" "NoRepair" 1 - SectionEnd -;-------------------------------- +;====================================== -Section "Input Service" +Section "Input Service" SectionInputService DetailPrint "Installing Input Service ..." @@ -142,25 +269,25 @@ SetShellVarContext all ; Uninstall current Input Service ... - ExecWait '"$INSTDIR\Input Service\Input Service.exe" /uninstall' + ExecWait '"$DIR_INSTALL\Input Service\Input Service.exe" /uninstall' Sleep 100 ; Installing Input Service - CreateDirectory "$INSTDIR\Input Service" - SetOutPath "$INSTDIR\Input Service" + CreateDirectory "$DIR_INSTALL\Input Service" + SetOutPath "$DIR_INSTALL\Input Service" SetOverwrite ifnewer File "Input Service\Input Service\bin\Release\*.*" ; Installing Input Service Configuration - CreateDirectory "$INSTDIR\Input Service Configuration" - SetOutPath "$INSTDIR\Input Service Configuration" + CreateDirectory "$DIR_INSTALL\Input Service Configuration" + SetOutPath "$DIR_INSTALL\Input Service Configuration" SetOverwrite ifnewer File "Input Service\Input Service Configuration\bin\Release\*.*" ; Install IR Server Plugins ... DetailPrint "Installing IR Server Plugins ..." - CreateDirectory "$INSTDIR\IR Server Plugins" - SetOutPath "$INSTDIR\IR Server Plugins" + CreateDirectory "$DIR_INSTALL\IR Server Plugins" + SetOutPath "$DIR_INSTALL\IR Server Plugins" SetOverwrite ifnewer File "IR Server Plugins\Ads Tech PTV-335 Receiver\bin\Release\*.*" @@ -184,20 +311,20 @@ File "IR Server Plugins\XBCDRC Receiver\bin\Release\*.*" ; Create App Data Folder for IR Server configuration files. - CreateDirectory "$APPDATA\IR Server Suite\Input Service" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\Input Service" ; Create start menu shortcut - CreateShortCut "$SMPROGRAMS\IR Server Suite\Input Service Configuration.lnk" "$INSTDIR\Input Service Configuration\Input Service Configuration.exe" "" "$INSTDIR\Input Service Configuration\Input Service Configuration.exe" 0 + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Input Service Configuration.lnk" "$DIR_INSTALL\Input Service Configuration\Input Service Configuration.exe" "" "$DIR_INSTALL\Input Service Configuration\Input Service Configuration.exe" 0 ; Launch Input Service DetailPrint "Starting Input Service ..." - ExecWait '"$INSTDIR\Input Service\Input Service.exe" /install' + ExecWait '"$DIR_INSTALL\Input Service\Input Service.exe" /install' SectionEnd -;-------------------------------- +;====================================== -Section "MP Control Plugin" +Section "MP Control Plugin" SectionMPControlPlugin DetailPrint "Installing MP Control Plugin ..." @@ -205,7 +332,7 @@ SetShellVarContext all ; Write plugin dll - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Plugins\Process" + SetOutPath "$DIR_MEDIAPORTAL\Plugins\Process" SetOverwrite ifnewer File "MediaPortal Plugins\MP Control Plugin\bin\Release\MPUtils.dll" File "MediaPortal Plugins\MP Control Plugin\bin\Release\IrssComms.dll" @@ -213,24 +340,24 @@ File "MediaPortal Plugins\MP Control Plugin\bin\Release\MPControlPlugin.dll" ; Write input mapping - SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\InputDeviceMappings\defaults" + SetOutPath "$DIR_MEDIAPORTAL\InputDeviceMappings\defaults" SetOverwrite ifnewer File "MediaPortal Plugins\MP Control Plugin\InputMapping\MPControlPlugin.xml" ; Write app data - CreateDirectory "$APPDATA\IR Server Suite\MP Control Plugin" - SetOutPath "$APPDATA\IR Server Suite\MP Control Plugin" + CreateDirectory "$APPDATA\${PRODUCT_NAME}\MP Control Plugin" + SetOutPath "$APPDATA\${PRODUCT_NAME}\MP Control Plugin" SetOverwrite ifnewer File /r /x .s... [truncated message content] |
From: <an...@us...> - 2008-01-18 15:54:04
|
Revision: 1267 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1267&view=rev Author: and-81 Date: 2008-01-18 07:52:16 -0800 (Fri, 18 Jan 2008) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.cs trunk/plugins/IR Server Suite/Applications/MacroScope/MacroScope.csproj trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BeepCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BlastCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/DisplayModeCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/EjectCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ExternalProgram.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/IfCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/KeysCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/LabelNameDialog.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/LearnIR.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MessageCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MouseCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/PauseTime.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/PopupMessage.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SerialCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SetVariableCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/TcpMessageCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VariablesFileDialog.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VariablesFileDialog.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/WindowList.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/Util Apps/MacroConverter/FormMain.cs Added Paths: ----------- trunk/plugins/IR Server Suite/Commands/ trunk/plugins/IR Server Suite/Commands/Command/ trunk/plugins/IR Server Suite/Commands/Command/Command.cs trunk/plugins/IR Server Suite/Commands/Command/Command.csproj trunk/plugins/IR Server Suite/Commands/Command/CommandExecutionException.cs trunk/plugins/IR Server Suite/Commands/Command/Properties/ trunk/plugins/IR Server Suite/Commands/Command/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Commands/GeneralCommands/ trunk/plugins/IR Server Suite/Commands/GeneralCommands/CommandKeystrokes.cs trunk/plugins/IR Server Suite/Commands/GeneralCommands/EditKeystrokes.Designer.cs trunk/plugins/IR Server Suite/Commands/GeneralCommands/EditKeystrokes.cs trunk/plugins/IR Server Suite/Commands/GeneralCommands/EditKeystrokes.resx trunk/plugins/IR Server Suite/Commands/GeneralCommands/GeneralCommands.csproj trunk/plugins/IR Server Suite/Commands/GeneralCommands/Properties/ trunk/plugins/IR Server Suite/Commands/GeneralCommands/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Commands/Macro/ trunk/plugins/IR Server Suite/Commands/Macro/CommandBlastIR.cs trunk/plugins/IR Server Suite/Commands/Macro/CommandCallMacro.cs trunk/plugins/IR Server Suite/Commands/Macro/CommandClearVariables.cs trunk/plugins/IR Server Suite/Commands/Macro/CommandGotoLabel.cs trunk/plugins/IR Server Suite/Commands/Macro/CommandIf.cs trunk/plugins/IR Server Suite/Commands/Macro/CommandLabel.cs trunk/plugins/IR Server Suite/Commands/Macro/CommandLoadVariables.cs trunk/plugins/IR Server Suite/Commands/Macro/CommandSaveVariables.cs trunk/plugins/IR Server Suite/Commands/Macro/CommandSetVariable.cs trunk/plugins/IR Server Suite/Commands/Macro/EditIf.Designer.cs trunk/plugins/IR Server Suite/Commands/Macro/EditIf.cs trunk/plugins/IR Server Suite/Commands/Macro/EditIf.resx trunk/plugins/IR Server Suite/Commands/Macro/EditLabel.Designer.cs trunk/plugins/IR Server Suite/Commands/Macro/EditLabel.cs trunk/plugins/IR Server Suite/Commands/Macro/EditLabel.resx trunk/plugins/IR Server Suite/Commands/Macro/EditMacro.Designer.cs trunk/plugins/IR Server Suite/Commands/Macro/EditMacro.cs trunk/plugins/IR Server Suite/Commands/Macro/EditMacro.resx trunk/plugins/IR Server Suite/Commands/Macro/EditSetVariable.Designer.cs trunk/plugins/IR Server Suite/Commands/Macro/EditSetVariable.cs trunk/plugins/IR Server Suite/Commands/Macro/EditSetVariable.resx trunk/plugins/IR Server Suite/Commands/Macro/EditVariablesFile.Designer.cs trunk/plugins/IR Server Suite/Commands/Macro/EditVariablesFile.cs trunk/plugins/IR Server Suite/Commands/Macro/EditVariablesFile.resx trunk/plugins/IR Server Suite/Commands/Macro/Macro.cs trunk/plugins/IR Server Suite/Commands/Macro/Macro.csproj trunk/plugins/IR Server Suite/Commands/Macro/MacroStructureException.cs trunk/plugins/IR Server Suite/Commands/Macro/Properties/ trunk/plugins/IR Server Suite/Commands/Macro/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Commands/MediaPortalCommands/ trunk/plugins/IR Server Suite/Commands/MediaPortalCommands/MediaPortalCommands.csproj trunk/plugins/IR Server Suite/Commands/MediaPortalCommands/Properties/ trunk/plugins/IR Server Suite/Commands/MediaPortalCommands/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Commands/TestApp/ trunk/plugins/IR Server Suite/Commands/TestApp/Form1.Designer.cs trunk/plugins/IR Server Suite/Commands/TestApp/Form1.cs trunk/plugins/IR Server Suite/Commands/TestApp/Program.cs trunk/plugins/IR Server Suite/Commands/TestApp/Properties/ trunk/plugins/IR Server Suite/Commands/TestApp/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Commands/TestApp/TestApp.csproj trunk/plugins/IR Server Suite/Commands/VariableList/ trunk/plugins/IR Server Suite/Commands/VariableList/Properties/ trunk/plugins/IR Server Suite/Commands/VariableList/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Commands/VariableList/VariableList.cs trunk/plugins/IR Server Suite/Commands/VariableList/VariableList.csproj Modified: trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.cs 2008-01-18 13:24:15 UTC (rev 1266) +++ trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.cs 2008-01-18 15:52:16 UTC (rev 1267) @@ -22,7 +22,7 @@ #region Variables string _macroFile; - VariableList _variables; + Commands.VariableList _variables; bool _isDebugging; int _debugLine; @@ -37,8 +37,7 @@ PopulateCommandList(); - _variables = new VariableList(); - + _variables = new Commands.VariableList(); } #endregion Constructor Modified: trunk/plugins/IR Server Suite/Applications/MacroScope/MacroScope.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/MacroScope/MacroScope.csproj 2008-01-18 13:24:15 UTC (rev 1266) +++ trunk/plugins/IR Server Suite/Applications/MacroScope/MacroScope.csproj 2008-01-18 15:52:16 UTC (rev 1267) @@ -54,6 +54,18 @@ </EmbeddedResource> </ItemGroup> <ItemGroup> + <ProjectReference Include="..\..\Commands\Command\Command.csproj"> + <Project>{21E04B17-D850-43E7-AAD3-876C0E062BDB}</Project> + <Name>Command</Name> + </ProjectReference> + <ProjectReference Include="..\..\Commands\Macro\Macro.csproj"> + <Project>{49CF376E-811C-4EB4-817F-A39C9529B608}</Project> + <Name>Macro</Name> + </ProjectReference> + <ProjectReference Include="..\..\Commands\VariableList\VariableList.csproj"> + <Project>{106A69D2-670C-4DE5-A81C-A3CD5D3F21EB}</Project> + <Name>VariableList</Name> + </ProjectReference> <ProjectReference Include="..\..\Common\IrssUtils\IrssUtils.csproj"> <Project>{CA15769C-232E-4CA7-94FD-206A06CA3ABB}</Project> <Name>IrssUtils</Name> Property changes on: trunk/plugins/IR Server Suite/Commands/Command ___________________________________________________________________ Name: svn:ignore + bin obj Added: trunk/plugins/IR Server Suite/Commands/Command/Command.cs =================================================================== --- trunk/plugins/IR Server Suite/Commands/Command/Command.cs (rev 0) +++ trunk/plugins/IR Server Suite/Commands/Command/Command.cs 2008-01-18 15:52:16 UTC (rev 1267) @@ -0,0 +1,134 @@ +using System; +using System.IO; +using System.Text; +using System.Windows.Forms; +using System.Xml; +using System.Xml.Serialization; + +namespace Commands +{ + + /// <summary> + /// Base class for all IR Server Suite commands. + /// </summary> + public abstract class Command + { + + #region Variables + + /// <summary> + /// Command parameters. + /// </summary> + protected string[] _parameters; + + #endregion Variables + + #region Properties + + /// <summary> + /// Gets the command parameters. + /// </summary> + /// <value>The command parameters.</value> + public virtual string[] Parameters { get { return _parameters; } } + + #endregion Properties + + #region Constructors + + /// <summary> + /// Initializes a new instance of the <see cref="Command"/> class. + /// </summary> + public Command() { } + + /// <summary> + /// Initializes a new instance of the <see cref="Command"/> class. + /// </summary> + /// <param name="parameters">The command parameters.</param> + public Command(string[] parameters) { _parameters = parameters; } + + #endregion Constructors + + #region Implementation + + /// <summary> + /// Gets the category of this command. + /// This method must be replaced in sub-classes. + /// </summary> + /// <returns>The category of this command.</returns> + public abstract string GetCategory(); + + /// <summary> + /// Gets the user interface text. + /// This method must be replaced in sub-classes. + /// </summary> + /// <returns>The user interface text.</returns> + public abstract string GetUserInterfaceText(); + + /// <summary> + /// Gets the user display text. + /// </summary> + /// <returns>The user display text.</returns> + public virtual string GetUserDisplayText() + { + if (Parameters == null) + return GetUserInterfaceText(); + else + return String.Format("{0} ({1})", GetUserInterfaceText(), String.Join(", ", Parameters)); + } + + /// <summary> + /// Execute this command. + /// </summary> + /// <param name="variables">The variable list of the calling code.</param> + public virtual void Execute(VariableList variables) { } + + /// <summary> + /// Edit this command. + /// </summary> + /// <param name="parent">The parent window.</param> + /// <returns><c>true</c> if the command was modified; otherwise <c>false</c>.</returns> + public virtual bool Edit(IWin32Window parent) { return true; } + + /// <summary> + /// Returns a <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>. + /// </summary> + /// <returns> + /// A <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>. + /// </returns> + public override string ToString() + { + StringBuilder xml = new StringBuilder(); + using (StringWriter stringWriter = new StringWriter(xml)) + { + XmlSerializer xmlSerializer = new XmlSerializer(typeof(string[])); + xmlSerializer.Serialize(stringWriter, _parameters); + } + + return String.Format("{0}, {1}", this.GetType().FullName, xml); + } + + /// <summary> + /// Initialises the parameters. + /// </summary> + /// <param name="parameterCount">The parameter count.</param> + protected virtual void InitParameters(int parameterCount) + { + if (parameterCount == 0) + { + _parameters = null; + } + else + { + _parameters = new string[parameterCount]; + for (int index = 0; index < _parameters.Length; index++) + { + _parameters[index] = String.Empty; + } + } + } + + #endregion Implementation + + } + +} Added: trunk/plugins/IR Server Suite/Commands/Command/Command.csproj =================================================================== --- trunk/plugins/IR Server Suite/Commands/Command/Command.csproj (rev 0) +++ trunk/plugins/IR Server Suite/Commands/Command/Command.csproj 2008-01-18 15:52:16 UTC (rev 1267) @@ -0,0 +1,59 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{21E04B17-D850-43E7-AAD3-876C0E062BDB}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>Commands</RootNamespace> + <AssemblyName>CommandBase</AssemblyName> + <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <UseVSHostingProcess>false</UseVSHostingProcess> + <DocumentationFile>bin\Debug\CommandBase.xml</DocumentationFile> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Command.cs" /> + <Compile Include="CommandExecutionException.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\VariableList\VariableList.csproj"> + <Project>{106A69D2-670C-4DE5-A81C-A3CD5D3F21EB}</Project> + <Name>VariableList</Name> + <Private>False</Private> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project> \ No newline at end of file Added: trunk/plugins/IR Server Suite/Commands/Command/CommandExecutionException.cs =================================================================== --- trunk/plugins/IR Server Suite/Commands/Command/CommandExecutionException.cs (rev 0) +++ trunk/plugins/IR Server Suite/Commands/Command/CommandExecutionException.cs 2008-01-18 15:52:16 UTC (rev 1267) @@ -0,0 +1,41 @@ +using System; +using System.Runtime.Serialization; + +namespace Commands +{ + + /// <summary> + /// The exception that is thrown when an error executing a command occurs. + /// </summary> + [Serializable] + public class CommandExecutionException : ApplicationException + { + + /// <summary> + /// Initializes a new instance of the <see cref="CommandExecutionException"/> class. + /// </summary> + public CommandExecutionException() : base() { } + + /// <summary> + /// Initializes a new instance of the <see cref="CommandExecutionException"/> class. + /// </summary> + /// <param name="message">The message.</param> + public CommandExecutionException(string message) : base(message) { } + + /// <summary> + /// Initializes a new instance of the <see cref="CommandExecutionException"/> class. + /// </summary> + /// <param name="message">The message.</param> + /// <param name="innerException">The inner exception.</param> + public CommandExecutionException(string message, Exception innerException) : base(message, innerException) { } + + /// <summary> + /// Initializes a new instance of the <see cref="CommandExecutionException"/> class. + /// </summary> + /// <param name="info">The object that holds the serialized object data.</param> + /// <param name="context">The contextual information about the source or destination.</param> + protected CommandExecutionException(SerializationInfo info, StreamingContext context) : base(info, context) { } + + } + +} Added: trunk/plugins/IR Server Suite/Commands/Command/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Commands/Command/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/IR Server Suite/Commands/Command/Properties/AssemblyInfo.cs 2008-01-18 15:52:16 UTC (rev 1267) @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Command")] +[assembly: AssemblyDescription("IR Server Suite Command base class")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Command")] +[assembly: AssemblyCopyright("Aaron Dinnage")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b7814100-5aca-4bd8-b7a8-220f6a1ba5ae")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.4.2")] +[assembly: AssemblyFileVersion("1.0.4.2")] Property changes on: trunk/plugins/IR Server Suite/Commands/GeneralCommands ___________________________________________________________________ Name: svn:ignore + bin obj Added: trunk/plugins/IR Server Suite/Commands/GeneralCommands/CommandKeystrokes.cs =================================================================== --- trunk/plugins/IR Server Suite/Commands/GeneralCommands/CommandKeystrokes.cs (rev 0) +++ trunk/plugins/IR Server Suite/Commands/GeneralCommands/CommandKeystrokes.cs 2008-01-18 15:52:16 UTC (rev 1267) @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; + +using IrssUtils; + +namespace Commands +{ + + /// <summary> + /// Keystrokes general command. + /// </summary> + public class CommandKeystrokes : Command + { + + #region Constructors + + /// <summary> + /// Initializes a new instance of the <see cref="CommandKeystrokes"/> class. + /// </summary> + public CommandKeystrokes() { InitParameters(1); } + + /// <summary> + /// Initializes a new instance of the <see cref="CommandKeystrokes"/> class. + /// </summary> + /// <param name="parameters">The parameters.</param> + public CommandKeystrokes(string[] parameters) : base(parameters) { } + + #endregion Constructors + + #region Public Methods + + /// <summary> + /// Gets the category of this command. + /// </summary> + /// <returns>The category of this command.</returns> + public override string GetCategory() { return "General Commands"; } + + /// <summary> + /// Gets the user interface text. + /// </summary> + /// <returns>User interface text.</returns> + public override string GetUserInterfaceText() { return "Keystrokes"; } + + /// <summary> + /// Gets the user display text. + /// </summary> + /// <returns>The user display text.</returns> + public override string GetUserDisplayText() + { + return String.Format("{0} ({1})", GetUserInterfaceText(), String.Join(", ", Parameters)); + } + + /// <summary> + /// Execute this command. + /// </summary> + /// <param name="variables">The variable list of the calling code.</param> + public override void Execute(VariableList variables) + { + Keyboard.ProcessCommand(_parameters[0]); + } + + /// <summary> + /// Edit this command. + /// </summary> + /// <param name="parent">The parent window.</param> + /// <returns><c>true</c> if the command was modified; otherwise <c>false</c>.</returns> + public override bool Edit(IWin32Window parent) + { + EditKeystrokes edit = new EditKeystrokes(_parameters[0]); + if (edit.ShowDialog(parent) == DialogResult.OK) + { + _parameters[0] = edit.CommandString; + return true; + } + + return false; + } + + #endregion Public Methods + + } + +} Added: trunk/plugins/IR Server Suite/Commands/GeneralCommands/EditKeystrokes.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Commands/GeneralCommands/EditKeystrokes.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/Commands/GeneralCommands/EditKeystrokes.Designer.cs 2008-01-18 15:52:16 UTC (rev 1267) @@ -0,0 +1,690 @@ +namespace Commands +{ + + partial class EditKeystrokes + { + + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.buttonOK = new System.Windows.Forms.Button(); + this.textBoxKeys = new System.Windows.Forms.TextBox(); + this.contextMenuStripKeystrokes = new System.Windows.Forms.ContextMenuStrip(this.components); + this.cutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.pasteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.selectAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.selectNoneToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.specialKeysToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.arrowsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.upToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.downToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.leftToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.rightToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.functionKeysToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f3ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f4ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f5ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f6ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f7ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f8ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f9ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f10ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f11ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f12ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f13ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f14ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f15ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.f16ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.keypadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.addToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.subtractToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.multiplyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.divideToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.modifiersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.altToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.controlToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.shiftToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.windowsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + this.backspaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.breakToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.capsLockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.delToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.endToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.enterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.escapeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.homeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.insToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.numLockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.pageDownToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.pageUpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.scrollLockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.tabToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.windowsKeyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.labelKeystrokes = new System.Windows.Forms.Label(); + this.contextMenuStripKeystrokes.SuspendLayout(); + this.SuspendLayout(); + // + // buttonCancel + // + this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(320, 136); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(64, 24); + this.buttonCancel.TabIndex = 3; + this.buttonCancel.Text = "Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; + this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + // + // buttonOK + // + this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonOK.Location = new System.Drawing.Point(248, 136); + this.buttonOK.Name = "buttonOK"; + this.buttonOK.Size = new System.Drawing.Size(64, 24); + this.buttonOK.TabIndex = 2; + this.buttonOK.Text = "OK"; + this.buttonOK.UseVisualStyleBackColor = true; + this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); + // + // textBoxKeys + // + this.textBoxKeys.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxKeys.ContextMenuStrip = this.contextMenuStripKeystrokes; + this.textBoxKeys.Location = new System.Drawing.Point(8, 24); + this.textBoxKeys.Multiline = true; + this.textBoxKeys.Name = "textBoxKeys"; + this.textBoxKeys.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.textBoxKeys.Size = new System.Drawing.Size(376, 104); + this.textBoxKeys.TabIndex = 1; + // + // contextMenuStripKeystrokes + // + this.contextMenuStripKeystrokes.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.cutToolStripMenuItem, + this.copyToolStripMenuItem, + this.pasteToolStripMenuItem, + this.toolStripSeparator1, + this.selectAllToolStripMenuItem, + this.selectNoneToolStripMenuItem, + this.toolStripSeparator2, + this.specialKeysToolStripMenuItem}); + this.contextMenuStripKeystrokes.Name = "contextMenuStripKeystrokes"; + this.contextMenuStripKeystrokes.Size = new System.Drawing.Size(145, 148); + // + // cutToolStripMenuItem + // + this.cutToolStripMenuItem.Name = "cutToolStripMenuItem"; + this.cutToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + this.cutToolStripMenuItem.Text = "Cut"; + this.cutToolStripMenuItem.Click += new System.EventHandler(this.cutToolStripMenuItem_Click); + // + // copyToolStripMenuItem + // + this.copyToolStripMenuItem.Name = "copyToolStripMenuItem"; + this.copyToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + this.copyToolStripMenuItem.Text = "Copy"; + this.copyToolStripMenuItem.Click += new System.EventHandler(this.copyToolStripMenuItem_Click); + // + // pasteToolStripMenuItem + // + this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem"; + this.pasteToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + this.pasteToolStripMenuItem.Text = "Paste"; + this.pasteToolStripMenuItem.Click += new System.EventHandler(this.pasteToolStripMenuItem_Click); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(141, 6); + // + // selectAllToolStripMenuItem + // + this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem"; + this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + this.selectAllToolStripMenuItem.Text = "Select All"; + this.selectAllToolStripMenuItem.Click += new System.EventHandler(this.selectAllToolStripMenuItem_Click); + // + // selectNoneToolStripMenuItem + // + this.selectNoneToolStripMenuItem.Name = "selectNoneToolStripMenuItem"; + this.selectNoneToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + this.selectNoneToolStripMenuItem.Text = "Select None"; + this.selectNoneToolStripMenuItem.Click += new System.EventHandler(this.selectNoneToolStripMenuItem_Click); + // + // toolStripSeparator2 + // + this.toolStripSeparator2.Name = "toolStripSeparator2"; + this.toolStripSeparator2.Size = new System.Drawing.Size(141, 6); + // + // specialKeysToolStripMenuItem + // + this.specialKeysToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.arrowsToolStripMenuItem, + this.functionKeysToolStripMenuItem, + this.keypadToolStripMenuItem, + this.modifiersToolStripMenuItem, + this.toolStripSeparator3, + this.backspaceToolStripMenuItem, + this.breakToolStripMenuItem, + this.capsLockToolStripMenuItem, + this.delToolStripMenuItem, + this.endToolStripMenuItem, + this.enterToolStripMenuItem, + this.escapeToolStripMenuItem, + this.helpToolStripMenuItem, + this.homeToolStripMenuItem, + this.insToolStripMenuItem, + this.numLockToolStripMenuItem, + this.pageDownToolStripMenuItem, + this.pageUpToolStripMenuItem, + this.scrollLockToolStripMenuItem, + this.tabToolStripMenuItem, + this.windowsKeyToolStripMenuItem}); + this.specialKeysToolStripMenuItem.Name = "specialKeysToolStripMenuItem"; + this.specialKeysToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + this.specialKeysToolStripMenuItem.Text = "Special Keys"; + // + // arrowsToolStripMenuItem + // + this.arrowsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.upToolStripMenuItem, + this.downToolStripMenuItem, + this.leftToolStripMenuItem, + this.rightToolStripMenuItem}); + this.arrowsToolStripMenuItem.Name = "arrowsToolStripMenuItem"; + this.arrowsToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.arrowsToolStripMenuItem.Text = "Arrows"; + // + // upToolStripMenuItem + // + this.upToolStripMenuItem.Name = "upToolStripMenuItem"; + this.upToolStripMenuItem.Size = new System.Drawing.Size(112, 22); + this.upToolStripMenuItem.Text = "Up"; + this.upToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // downToolStripMenuItem + // + this.downToolStripMenuItem.Name = "downToolStripMenuItem"; + this.downToolStripMenuItem.Size = new System.Drawing.Size(112, 22); + this.downToolStripMenuItem.Text = "Down"; + this.downToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // leftToolStripMenuItem + // + this.leftToolStripMenuItem.Name = "leftToolStripMenuItem"; + this.leftToolStripMenuItem.Size = new System.Drawing.Size(112, 22); + this.leftToolStripMenuItem.Text = "Left"; + this.leftToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // rightToolStripMenuItem + // + this.rightToolStripMenuItem.Name = "rightToolStripMenuItem"; + this.rightToolStripMenuItem.Size = new System.Drawing.Size(112, 22); + this.rightToolStripMenuItem.Text = "Right"; + this.rightToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // functionKeysToolStripMenuItem + // + this.functionKeysToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.f1ToolStripMenuItem, + this.f2ToolStripMenuItem, + this.f3ToolStripMenuItem, + this.f4ToolStripMenuItem, + this.f5ToolStripMenuItem, + this.f6ToolStripMenuItem, + this.f7ToolStripMenuItem, + this.f8ToolStripMenuItem, + this.f9ToolStripMenuItem, + this.f10ToolStripMenuItem, + this.f11ToolStripMenuItem, + this.f12ToolStripMenuItem, + this.f13ToolStripMenuItem, + this.f14ToolStripMenuItem, + this.f15ToolStripMenuItem, + this.f16ToolStripMenuItem}); + this.functionKeysToolStripMenuItem.Name = "functionKeysToolStripMenuItem"; + this.functionKeysToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.functionKeysToolStripMenuItem.Text = "Function Keys"; + // + // f1ToolStripMenuItem + // + this.f1ToolStripMenuItem.Name = "f1ToolStripMenuItem"; + this.f1ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f1ToolStripMenuItem.Text = "F1"; + this.f1ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // f2ToolStripMenuItem + // + this.f2ToolStripMenuItem.Name = "f2ToolStripMenuItem"; + this.f2ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f2ToolStripMenuItem.Text = "F2"; + this.f2ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // f3ToolStripMenuItem + // + this.f3ToolStripMenuItem.Name = "f3ToolStripMenuItem"; + this.f3ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f3ToolStripMenuItem.Text = "F3"; + this.f3ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // f4ToolStripMenuItem + // + this.f4ToolStripMenuItem.Name = "f4ToolStripMenuItem"; + this.f4ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f4ToolStripMenuItem.Text = "F4"; + this.f4ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // f5ToolStripMenuItem + // + this.f5ToolStripMenuItem.Name = "f5ToolStripMenuItem"; + this.f5ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f5ToolStripMenuItem.Text = "F5"; + this.f5ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // f6ToolStripMenuItem + // + this.f6ToolStripMenuItem.Name = "f6ToolStripMenuItem"; + this.f6ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f6ToolStripMenuItem.Text = "F6"; + this.f6ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // f7ToolStripMenuItem + // + this.f7ToolStripMenuItem.Name = "f7ToolStripMenuItem"; + this.f7ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f7ToolStripMenuItem.Text = "F7"; + this.f7ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // f8ToolStripMenuItem + // + this.f8ToolStripMenuItem.Name = "f8ToolStripMenuItem"; + this.f8ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f8ToolStripMenuItem.Text = "F8"; + this.f8ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // f9ToolStripMenuItem + // + this.f9ToolStripMenuItem.Name = "f9ToolStripMenuItem"; + this.f9ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f9ToolStripMenuItem.Text = "F9"; + this.f9ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // f10ToolStripMenuItem + // + this.f10ToolStripMenuItem.Name = "f10ToolStripMenuItem"; + this.f10ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f10ToolStripMenuItem.Text = "F10"; + this.f10ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // f11ToolStripMenuItem + // + this.f11ToolStripMenuItem.Name = "f11ToolStripMenuItem"; + this.f11ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f11ToolStripMenuItem.Text = "F11"; + this.f11ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // f12ToolStripMenuItem + // + this.f12ToolStripMenuItem.Name = "f12ToolStripMenuItem"; + this.f12ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f12ToolStripMenuItem.Text = "F12"; + this.f12ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // f13ToolStripMenuItem + // + this.f13ToolStripMenuItem.Name = "f13ToolStripMenuItem"; + this.f13ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f13ToolStripMenuItem.Text = "F13"; + this.f13ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // f14ToolStripMenuItem + // + this.f14ToolStripMenuItem.Name = "f14ToolStripMenuItem"; + this.f14ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f14ToolStripMenuItem.Text = "F14"; + this.f14ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // f15ToolStripMenuItem + // + this.f15ToolStripMenuItem.Name = "f15ToolStripMenuItem"; + this.f15ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f15ToolStripMenuItem.Text = "F15"; + this.f15ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // f16ToolStripMenuItem + // + this.f16ToolStripMenuItem.Name = "f16ToolStripMenuItem"; + this.f16ToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.f16ToolStripMenuItem.Text = "F16"; + this.f16ToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // keypadToolStripMenuItem + // + this.keypadToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.addToolStripMenuItem, + this.subtractToolStripMenuItem, + this.multiplyToolStripMenuItem, + this.divideToolStripMenuItem}); + this.keypadToolStripMenuItem.Name = "keypadToolStripMenuItem"; + this.keypadToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.keypadToolStripMenuItem.Text = "Keypad"; + // + // addToolStripMenuItem + // + this.addToolStripMenuItem.Name = "addToolStripMenuItem"; + this.addToolStripMenuItem.Size = new System.Drawing.Size(126, 22); + this.addToolStripMenuItem.Text = "Add"; + this.addToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // subtractToolStripMenuItem + // + this.subtractToolStripMenuItem.Name = "subtractToolStripMenuItem"; + this.subtractToolStripMenuItem.Size = new System.Drawing.Size(126, 22); + this.subtractToolStripMenuItem.Text = "Subtract"; + this.subtractToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // multiplyToolStripMenuItem + // + this.multiplyToolStripMenuItem.Name = "multiplyToolStripMenuItem"; + this.multiplyToolStripMenuItem.Size = new System.Drawing.Size(126, 22); + this.multiplyToolStripMenuItem.Text = "Multiply"; + this.multiplyToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // divideToolStripMenuItem + // + this.divideToolStripMenuItem.Name = "divideToolStripMenuItem"; + this.divideToolStripMenuItem.Size = new System.Drawing.Size(126, 22); + this.divideToolStripMenuItem.Text = "Divide"; + this.divideToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // modifiersToolStripMenuItem + // + this.modifiersToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.altToolStripMenuItem, + this.controlToolStripMenuItem, + this.shiftToolStripMenuItem, + this.windowsToolStripMenuItem}); + this.modifiersToolStripMenuItem.Name = "modifiersToolStripMenuItem"; + this.modifiersToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.modifiersToolStripMenuItem.Text = "Modifiers"; + // + // altToolStripMenuItem + // + this.altToolStripMenuItem.Name = "altToolStripMenuItem"; + this.altToolStripMenuItem.Size = new System.Drawing.Size(128, 22); + this.altToolStripMenuItem.Text = "Alt"; + this.altToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // controlToolStripMenuItem + // + this.controlToolStripMenuItem.Name = "controlToolStripMenuItem"; + this.controlToolStripMenuItem.Size = new System.Drawing.Size(128, 22); + this.controlToolStripMenuItem.Text = "Control"; + this.controlToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // shiftToolStripMenuItem + // + this.shiftToolStripMenuItem.Name = "shiftToolStripMenuItem"; + this.shiftToolStripMenuItem.Size = new System.Drawing.Size(128, 22); + this.shiftToolStripMenuItem.Text = "Shift"; + this.shiftToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // windowsToolStripMenuItem + // + this.windowsToolStripMenuItem.Name = "windowsToolStripMenuItem"; + this.windowsToolStripMenuItem.Size = new System.Drawing.Size(128, 22); + this.windowsToolStripMenuItem.Text = "Windows"; + this.windowsToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // toolStripSeparator3 + // + this.toolStripSeparator3.Name = "toolStripSeparator3"; + this.toolStripSeparator3.Size = new System.Drawing.Size(149, 6); + // + // backspaceToolStripMenuItem + // + this.backspaceToolStripMenuItem.Name = "backspaceToolStripMenuItem"; + this.backspaceToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.backspaceToolStripMenuItem.Text = "Backspace"; + this.backspaceToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // breakToolStripMenuItem + // + this.breakToolStripMenuItem.Name = "breakToolStripMenuItem"; + this.breakToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.breakToolStripMenuItem.Text = "Break"; + this.breakToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // capsLockToolStripMenuItem + // + this.capsLockToolStripMenuItem.Name = "capsLockToolStripMenuItem"; + this.capsLockToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.capsLockToolStripMenuItem.Text = "Caps Lock"; + this.capsLockToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // delToolStripMenuItem + // + this.delToolStripMenuItem.Name = "delToolStripMenuItem"; + this.delToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.delToolStripMenuItem.Text = "Delete"; + this.delToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // endToolStripMenuItem + // + this.endToolStripMenuItem.Name = "endToolStripMenuItem"; + this.endToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.endToolStripMenuItem.Text = "End"; + this.endToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // enterToolStripMenuItem + // + this.enterToolStripMenuItem.Name = "enterToolStripMenuItem"; + this.enterToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.enterToolStripMenuItem.Text = "Enter"; + this.enterToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // escapeToolStripMenuItem + // + this.escapeToolStripMenuItem.Name = "escapeToolStripMenuItem"; + this.escapeToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.escapeToolStripMenuItem.Text = "Escape"; + this.escapeToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // helpToolStripMenuItem + // + this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; + this.helpToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.helpToolStripMenuItem.Text = "Help"; + this.helpToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // homeToolStripMenuItem + // + this.homeToolStripMenuItem.Name = "homeToolStripMenuItem"; + this.homeToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.homeToolStripMenuItem.Text = "Home"; + this.homeToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // insToolStripMenuItem + // + this.insToolStripMenuItem.Name = "insToolStripMenuItem"; + this.insToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.insToolStripMenuItem.Text = "Insert"; + this.insToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // numLockToolStripMenuItem + // + this.numLockToolStripMenuItem.Name = "numLockToolStripMenuItem"; + this.numLockToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.numLockToolStripMenuItem.Text = "Num Lock"; + this.numLockToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // pageDownToolStripMenuItem + // + this.pageDownToolStripMenuItem.Name = "pageDownToolStripMenuItem"; + this.pageDownToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.pageDownToolStripMenuItem.Text = "Page Down"; + this.pageDownToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // pageUpToolStripMenuItem + // + this.pageUpToolStripMenuItem.Name = "pageUpToolStripMenuItem"; + this.pageUpToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.pageUpToolStripMenuItem.Text = "Page Up"; + this.pageUpToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // scrollLockToolStripMenuItem + // + this.scrollLockToolStripMenuItem.Name = "scrollLockToolStripMenuItem"; + this.scrollLockToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.scrollLockToolStripMenuItem.Text = "Scroll Lock"; + this.scrollLockToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // tabToolStripMenuItem + // + this.tabToolStripMenuItem.Name = "tabToolStripMenuItem"; + this.tabToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.tabToolStripMenuItem.Text = "Tab"; + this.tabToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // windowsKeyToolStripMenuItem + // + this.windowsKeyToolStripMenuItem.Name = "windowsKeyToolStripMenuItem"; + this.windowsKeyToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.windowsKeyToolStripMenuItem.Text = "Windows Key"; + this.windowsKeyToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // + // labelKeystrokes + // + this.labelKeystrokes.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.labelKeystrokes.Location = new System.Drawing.Point(8, 8); + this.labelKeystrokes.Name = "labelKeystrokes"; + this.labelKeystrokes.Size = new System.Drawing.Size(376, 16); + this.labelKeystrokes.TabIndex = 0; + this.labelKeystrokes.Text = "Keystrokes:"; + // + // Edit + // + this.AcceptButton = this.buttonOK; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.buttonCancel; + this.ClientSize = new System.Drawing.Size(392, 169); + this.Controls.Add(this.labelKeystrokes); + this.Controls.Add(this.buttonOK); + this.Controls.Add(this.buttonCancel); + this.Controls.Add(this.textBoxKeys); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(400, 196); + this.Name = "Edit"; + this.ShowIcon = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Keystrokes Command"; + this.contextMenuStripKeystrokes.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.Button buttonOK; + private System.Windows.Forms.TextBox textBoxKeys; + private System.Windows.Forms.Label labelKeystrokes; + private System.Windows.Forms.ContextMenuStrip contextMenuStripKeystrokes; + private System.Windows.Forms.ToolStripMenuItem cutToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem copyToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem pasteToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripMenuItem selectAllToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem selectNoneToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; + private System.Windows.Forms.ToolStripMenuItem specialKeysToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem arrowsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem upToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem downToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem leftToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem rightToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem functionKeysToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f1ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f2ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f3ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f4ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f5ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f6ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f7ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f8ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f9ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f10ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f11ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f12ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f13ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f14ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f15ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem f16ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem keypadToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem addToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem subtractToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem multiplyToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem divideToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem modifiersToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem altToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem controlToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem shiftToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem windowsToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; + private System.Windows.Forms.ToolStripMenuItem backspaceToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem breakToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem capsLockToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem delToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem endToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem enterToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem escapeToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem homeToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem insToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem numLockToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem pageDownToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem pageUpToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem scrollLockToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem tabToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem windowsKeyToolStripMenuItem; + } + +} Added: trunk/plugins/IR Server Suite/Commands/GeneralCommands/EditKeystrokes.cs =================================================================== --- trunk/plugins/IR Server Suite/Commands/GeneralCommands/EditKeystrokes.cs (rev 0) +++ trunk/plugins/IR Server Suite/Commands/GeneralCommands/EditKeystrokes.cs 2008-01-18 15:52:16 UTC (rev 1267) @@ -0,0 +1,160 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +using IrssUtils; + +namespace Commands +{ + + /// <summary> + /// Edit Command form. + /// </summary> + partial class EditKeystrokes : Form + { + + #region Properties + + /// <summary> + /// Gets the command string. + /// </summary> + /// <value>The command string.</value> + public string CommandString + { + get + { + return te... [truncated message content] |