From: <an...@us...> - 2007-11-30 04:07:03
|
Revision: 1106 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1106&view=rev Author: and-81 Date: 2007-11-29 20:06:38 -0800 (Thu, 29 Nov 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.Designer.cs trunk/plugins/IR Server Suite/Applications/IR Server/Config.cs trunk/plugins/IR Server Suite/Applications/IR Server/IR Server.csproj trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj 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/Girder Plugin/Girder Plugin.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/IConfigure.cs trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/IR Server Plugin Interface.csproj 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/IgorPlug Receiver.csproj 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/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/WinLirc Transceiver/WinLirc Transceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Windows Message Receiver.cs trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Config.cs trunk/plugins/MCEReplacement/Forms/SetupForm.cs Added Paths: ----------- trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.Designer.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.resx trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Icon.ico 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-11-29 01:08:38 UTC (rev 1105) +++ trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.Designer.cs 2007-11-30 04:06:38 UTC (rev 1106) @@ -40,10 +40,10 @@ this.textBoxPronto = new System.Windows.Forms.TextBox(); this.labelCarrier = new System.Windows.Forms.Label(); this.toolTips = new System.Windows.Forms.ToolTip(this.components); - this.textBoxCarrier = new System.Windows.Forms.TextBox(); 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(); @@ -135,14 +135,6 @@ this.labelCarrier.Text = "Carrier:"; this.labelCarrier.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // - // 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; - // // buttonSetCarrier // this.buttonSetCarrier.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); @@ -176,8 +168,17 @@ 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 + // + 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"; Modified: trunk/plugins/IR Server Suite/Applications/IR Server/Config.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/Config.cs 2007-11-29 01:08:38 UTC (rev 1105) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Config.cs 2007-11-30 04:06:38 UTC (rev 1106) @@ -266,7 +266,7 @@ foreach (IRServerPluginBase transceiver in _transceivers) if (transceiver.Name.Equals(plugin, StringComparison.OrdinalIgnoreCase)) - (transceiver as IConfigure).Configure(); + (transceiver as IConfigure).Configure(this); } /* private void ReceiveChanged(object sender, EventArgs e) 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-29 01:08:38 UTC (rev 1105) +++ trunk/plugins/IR Server Suite/Applications/IR Server/IR Server.csproj 2007-11-30 04:06:38 UTC (rev 1106) @@ -38,7 +38,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/Translator/Translator.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj 2007-11-29 01:08:38 UTC (rev 1105) +++ trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj 2007-11-30 04:06:38 UTC (rev 1106) @@ -162,6 +162,7 @@ <None Include="Icon16Connecting.ico" /> </ItemGroup> <ItemGroup> + <Content Include="Default Settings\Default.xml" /> <Content Include="Graphics\ClickLeft.png" /> <Content Include="Graphics\ClickMiddle.png" /> <Content Include="Graphics\ClickRight.png" /> @@ -178,9 +179,6 @@ <Content Include="Graphics\ScrollUp.png" /> <Content Include="Graphics\WinLogo.png" /> </ItemGroup> - <ItemGroup> - <Folder Include="Default Settings\" /> - </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. Modified: trunk/plugins/IR Server Suite/Documentation/new.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/new.html 2007-11-29 01:08:38 UTC (rev 1105) +++ trunk/plugins/IR Server Suite/Documentation/new.html 2007-11-30 04:06:38 UTC (rev 1106) @@ -21,7 +21,8 @@ <LI>Looks like 64-bit support wasn't working, so I've had another try.</LI> <LI>Added a Translator OSD that can task swap, run macros and some other useful things.</LI> <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.</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> </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-11-29 01:08:38 UTC (rev 1105) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.cs 2007-11-30 04:06:38 UTC (rev 1106) @@ -67,7 +67,6 @@ LoadSettings(); _receiverWindow = new ReceiverWindow("Custom HID Receiver"); - _receiverWindow.ProcMsg += new ProcessMessage(ProcMessage); } #endregion Constructor @@ -111,6 +110,8 @@ /// <returns>true if successful, otherwise false.</returns> public override bool Start() { + _receiverWindow.ProcMsg += new ProcessMessage(ProcMessage); + _device.dwFlags = RawInput.RawInputDeviceFlags.InputSink; _device.hwndTarget = _receiverWindow.Handle; @@ -137,15 +138,18 @@ { _device.dwFlags |= RawInput.RawInputDeviceFlags.Remove; RegisterForRawInput(_device); + + _receiverWindow.ProcMsg -= new ProcessMessage(ProcMessage); } /// <summary> /// Configure the IR Server plugin. /// </summary> - public void Configure() + public void Configure(IWin32Window owner) { DeviceSelect deviceSelect = new DeviceSelect(); - if (deviceSelect.ShowDialog() == DialogResult.OK) + + if (deviceSelect.ShowDialog(owner) == DialogResult.OK) { _device = deviceSelect.SelectedDevice; SaveSettings(); Added: trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.Designer.cs 2007-11-30 04:06:38 UTC (rev 1106) @@ -0,0 +1,117 @@ +namespace GirderPlugin +{ + partial class Config + { + /// <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(Config)); + this.buttonConfigureGirderPlugin = new System.Windows.Forms.Button(); + this.textBoxPluginFile = new System.Windows.Forms.TextBox(); + this.buttonFind = new System.Windows.Forms.Button(); + this.buttonOK = new System.Windows.Forms.Button(); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.SuspendLayout(); + // + // buttonConfigureGirderPlugin + // + this.buttonConfigureGirderPlugin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonConfigureGirderPlugin.Location = new System.Drawing.Point(8, 40); + this.buttonConfigureGirderPlugin.Name = "buttonConfigureGirderPlugin"; + this.buttonConfigureGirderPlugin.Size = new System.Drawing.Size(72, 24); + this.buttonConfigureGirderPlugin.TabIndex = 2; + this.buttonConfigureGirderPlugin.Text = "Configure"; + this.buttonConfigureGirderPlugin.UseVisualStyleBackColor = true; + this.buttonConfigureGirderPlugin.Click += new System.EventHandler(this.buttonConfigureGirderPlugin_Click); + // + // textBoxPluginFile + // + this.textBoxPluginFile.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxPluginFile.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.textBoxPluginFile.Location = new System.Drawing.Point(8, 8); + this.textBoxPluginFile.Name = "textBoxPluginFile"; + this.textBoxPluginFile.ReadOnly = true; + this.textBoxPluginFile.Size = new System.Drawing.Size(312, 20); + this.textBoxPluginFile.TabIndex = 0; + // + // buttonFind + // + this.buttonFind.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonFind.Location = new System.Drawing.Point(328, 8); + this.buttonFind.Name = "buttonFind"; + this.buttonFind.Size = new System.Drawing.Size(24, 20); + this.buttonFind.TabIndex = 1; + this.buttonFind.Text = "..."; + this.buttonFind.UseVisualStyleBackColor = true; + this.buttonFind.Click += new System.EventHandler(this.buttonFind_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(288, 40); + this.buttonOK.Name = "buttonOK"; + this.buttonOK.Size = new System.Drawing.Size(64, 24); + this.buttonOK.TabIndex = 3; + this.buttonOK.Text = "OK"; + this.buttonOK.UseVisualStyleBackColor = true; + this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); + // + // openFileDialog + // + this.openFileDialog.Title = "Select Girder plugin to use"; + // + // Config + // + this.AcceptButton = this.buttonOK; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(360, 72); + this.Controls.Add(this.buttonOK); + this.Controls.Add(this.buttonFind); + this.Controls.Add(this.textBoxPluginFile); + this.Controls.Add(this.buttonConfigureGirderPlugin); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(368, 99); + this.Name = "Config"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Girder Plugin Configuration"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button buttonConfigureGirderPlugin; + private System.Windows.Forms.TextBox textBoxPluginFile; + private System.Windows.Forms.Button buttonFind; + private System.Windows.Forms.Button buttonOK; + private System.Windows.Forms.OpenFileDialog openFileDialog; + } +} \ No newline at end of file Added: trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.cs (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.cs 2007-11-30 04:06:38 UTC (rev 1106) @@ -0,0 +1,87 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace GirderPlugin +{ + + /// <summary> + /// Config form for selecting and configuring a Girder plugin. + /// </summary> + public partial class Config : Form + { + + /// <summary> + /// Gets or sets the name of the Girder plugin file in use. + /// </summary> + /// <value>The name of the Girder plugin file.</value> + public string FileName + { + get { return textBoxPluginFile.Text; } + set { textBoxPluginFile.Text = value; } + } + + /// <summary> + /// Initializes a new instance of the <see cref="Config"/> class. + /// </summary> + public Config() + { + InitializeComponent(); + } + + private void buttonConfigureGirderPlugin_Click(object sender, EventArgs e) + { + GirderPluginWrapper pluginWrapper = new GirderPluginWrapper(textBoxPluginFile.Text); + + pluginWrapper.GirOpen(); + + 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(); + } + + private void buttonFind_Click(object sender, EventArgs e) + { + openFileDialog.FileName = textBoxPluginFile.Text; + + if (openFileDialog.ShowDialog(this) == DialogResult.OK) + { + GirderPluginWrapper pluginWrapper = new GirderPluginWrapper(openFileDialog.FileName); + + pluginWrapper.GirOpen(); + + 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; + + pluginWrapper.GirClose(); + + pluginWrapper.Dispose(); + } + } + + private void buttonOK_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.OK; + this.Close(); + } + + } + +} Added: trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.resx =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.resx (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.resx 2007-11-30 04:06:38 UTC (rev 1106) @@ -0,0 +1,219 @@ +<?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="openFileDialog.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> + AAABAAIAICAAAAEAIACoEAAAJgAAABAQAAABACAAaAQAAM4QAAAoAAAAIAAAAEAAAAABACAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMj/AADI/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAyP8AAMj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADI/wAAyP8AAMj/AADI/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMj/AADI/wAAyP8AAMj/AAAAAAAAAAAAAMj/AADI/wAA + yP8AAMj/AADI/wAAyP8AAMj/AADI/wAAyP8AAMj/AADI/wAAyP8AAMj/AADI/wAAyP8AAMj/AADI/wAA + yP8AAMj/AADI/wAAyP8AAMj/AADI/wAAyP8AAMj/AADI/wAAyP8AAMj/AADI/wAAyP8AAMj/AADI/wAA + yP8AAMj/AADI/wAAyP8AAMj/AADI/wAAyP8AAMj/AADI/wAAyP8AAMj/AADI/wAAyP8AAMj/AADI/wAA + yP8AAMj/AADI/wAAyP8AAMj/AADI/wAAyP8AAMj/AADI/wAAyP8AAMj/AADI/wAAyP8AAMj/AADI/wAA + yP8AAMj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMj/AADI/wAA + yP8AAMj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + yP8AAMj/AADI/wAAyP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADI/wAAyP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AAAAAAAAAAAAAAAAAAAAAMj/AADI/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAA + AP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAA + AP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAA + AP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAA + AP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///8/////P////w////8MAAAAAAAAAAP// + /8P/wD/D/gAPz/wAA8/4H4H/8H/g/+H/8P/h//D/w//w/8P/8P/D+AD/x/gA/8f4AP/H////w////8P/ + ///D//P/4f/h/+H/4f/w/8P/+D8D//wAB//+AA///4B/////////////KAAAABAAAAAgAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAMj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADI/wAAyP8AAAAAAADI/wAAyP8AAMj/AADI/wAAyP8AAMj/AADI/wAA + yP8AAMj/AADI/wAAyP8AAMj/AADI/wAAyP8AAMj/AADI/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMj/AADI/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAADI/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAA + AP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAA + AP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAA + AP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AP8AAAD/AAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+5xB//mcQQAAnEH/+ZxB8DucQcePnEHPz5xBn8+cQZwP + nEGf/5xBn/+cQZ+fnEHPn5xBxx+cQfB/nEH//5xB +</value> + </data> +</root> \ No newline at end of file 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-11-29 01:08:38 UTC (rev 1105) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.cs 2007-11-30 04:06:38 UTC (rev 1106) @@ -2,149 +2,141 @@ using System.ComponentModel; using System.Diagnostics; using System.IO; -using System.Runtime.InteropServices; +using System.Windows.Forms; +using System.Xml; -using Microsoft.Win32.SafeHandles; - using IRServerPluginInterface; namespace GirderPlugin { - public class GirderPlugin : IRServerPluginBase, IRemoteReceiver, ITransmitIR, ILearnIR, IConfigure + /// <summary> + /// IR Server Plugin for using Girder 3.x plugins. + /// </summary> + public class GirderPlugin : IRServerPluginBase, IRemoteReceiver, IConfigure { #region Constants + static readonly string ConfigurationFile = + Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + + "\\IR Server Suite\\IR Server\\Girder Plugin.xml"; + static readonly string[] Ports = new string[] { "None" }; + const int GIRINFO_POWERBROADCAST = 2; + const int PBT_APMSUSPEND = 4; + const int PBT_APMRESUMEAUTOMATIC = 18; + #endregion Constants #region Variables + string _pluginFile; + RemoteHandler _remoteButtonHandler = null; - IntPtr _pluginDll; + GirderPluginWrapper _pluginWrapper; #endregion Variables - #region Interop - - [DllImport("kernel32")] - extern static IntPtr LoadLibrary( - string dllFileName); - - [DllImport("kernel32.dll")] - static extern IntPtr GetProcAddress( - IntPtr module, - string functionName); - - [DllImport("kernel32")] - extern static Int32 FreeLibrary( - IntPtr handle); - - #endregion Interop - - #region Girder Plugin Delegates - - /* -void WINAPI gir_version (char *data, int size); -void WINAPI gir_name (char *data, int size); -void WINAPI gir_description (char *data, int size); -int WINAPI gir_devicenum (); -int WINAPI gir_requested_api (int max_api); - -int WINAPI gir_open (int gir_major_ver, int gir_minor_ver, int gir_micro_ver, p_functions api_functions ); -int WINAPI gir_close (); -int WINAPI gir_learn_event(char *old, char *newevent, int len); -int WINAPI gir_info (int message, int wparam, int lparam); - -int WINAPI gir_start (); -int WINAPI gir_stop (); - -int WINAPI gir_event(p_command command, char *eventstring, void *payload, int len, char * status, int statuslen); -void WINAPI gir_command_gui(); -void WINAPI gir_command_changed(p_command command); - */ - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - delegate void gir_version(string data, int size); - gir_version _girVersion; - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - delegate void gir_name(string data, int size); - gir_name _girName; - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - delegate void gir_description(string data, int size); - gir_description _girDescription; - - /* - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - delegate int gir_devicenum(); - gir_devicenum _girDevicenum; - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - delegate int gir_requested_api(); - gir_requested_api _girRequestedApi; - */ - - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - delegate int gir_start(); - gir_start _girStart; - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - delegate int gir_stop(); - gir_stop _girStop; - - - - #endregion Girder Plugin Delegates - - #region IRServerPluginBase Members + /// <summary> + /// Name of the IR Server plugin. + /// </summary> + /// <value>The name.</value> public override string Name { get { return "Girder Plugin"; } } - public override string Version { get { return "1.0.3.4"; } } + /// <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"; } } - public override string Description { get { return "Supports using Girder plugins"; } } + /// <summary> + /// A description of the IR Server plugin. + /// </summary> + /// <value>The description.</value> + public override string Description { get { return "Supports using Girder 3.x plugins with IR Server"; } } + /// <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() - { - LoadGirderPlugin("MceIr.dll"); - - _girStart(); + { + LoadSettings(); - return true; + _pluginWrapper = new GirderPluginWrapper(_pluginFile); + + _pluginWrapper.EventCallback += new GirderPluginWrapper.PluginEventCallback(PluginCallback); + + bool open = _pluginWrapper.GirOpen(); + if (open) + _pluginWrapper.GirStart(); + + return open; } + /// <summary> + /// Suspend the IR Server plugin when computer enters standby. + /// </summary> public override void Suspend() { + if (_pluginWrapper == null) + return; + _pluginWrapper.GirInfo(GIRINFO_POWERBROADCAST, PBT_APMSUSPEND, 0); } + /// <summary> + /// Resume the IR Server plugin when the computer returns from standby. + /// </summary> public override void Resume() { + if (_pluginWrapper == null) + return; + _pluginWrapper.GirInfo(GIRINFO_POWERBROADCAST, PBT_APMRESUMEAUTOMATIC, 0); } + /// <summary> + /// Stop the IR Server plugin. + /// </summary> public override void Stop() { - if (_pluginDll == IntPtr.Zero) + if (_pluginWrapper == null) return; - _girStop(); + _pluginWrapper.GirStop(); - FreeLibrary(_pluginDll); + _pluginWrapper.GirClose(); + + _pluginWrapper.Dispose(); + + _pluginWrapper = null; } #endregion IRServerPluginBase Members #region IRemoteReceiver Members + /// <summary> + /// Callback for remote button presses. + /// </summary> + /// <value>The remote callback.</value> public RemoteHandler RemoteCallback { get { return _remoteButtonHandler; } @@ -155,11 +147,21 @@ #region ITransmitIR Members + /// <summary> + /// Lists the available blaster ports. + /// </summary> + /// <value>The available ports.</value> public string[] AvailablePorts { get { return Ports; } } + /// <summary> + /// Transmit an infrared command. + /// </summary> + /// <param name="port">Port to transmit on.</param> + /// <param name="data">Data to transmit.</param> + /// <returns>true if successful, otherwise false.</returns> public bool Transmit(string port, byte[] data) { throw new Exception("The method or operation is not implemented."); @@ -167,60 +169,76 @@ #endregion ITransmitIR Members - #region ILearnIR Members + #region IConfigure Members - public LearnStatus Learn(out byte[] data) + /// <summary> + /// Configure the IR Server plugin. + /// </summary> + public void Configure(IWin32Window owner) { - throw new Exception("The method or operation is not implemented."); - } + LoadSettings(); - #endregion ILearnIR Members + Config config = new Config(); + config.FileName = _pluginFile; - #region IConfigure Members + if (config.ShowDialog(owner) == DialogResult.OK) + { + _pluginFile = config.FileName; - public void Configure() - { + SaveSettings(); + } } #endregion IConfigure Members #region Implementation - void LoadGirderPlugin(string girderPluginFile) + void PluginCallback(string eventstring, IntPtr payload, int len, int device) { - IntPtr function; + if (_remoteButtonHandler != null) + _remoteButtonHandler(eventstring); + } - _pluginDll = LoadLibrary(girderPluginFile); - if (_pluginDll == IntPtr.Zero) - throw new ApplicationException(String.Format("Failed to load girder plugin ({0})", girderPluginFile)); - + void LoadSettings() + { + XmlDocument doc = new XmlDocument(); + + try { doc.Load(ConfigurationFile); } + catch { return; } + + try { _pluginFile = doc.DocumentElement.Attributes["PluginFile"].Value; } + catch { } + } + void SaveSettings() + { try { - function = GetProcAddress(_pluginDll, "gir_version"); - _girVersion = (gir_version)Marshal.GetDelegateForFunctionPointer(function, typeof(gir_version)); + 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> - function = GetProcAddress(_pluginDll, "gir_name"); - _girName = (gir_name)Marshal.GetDelegateForFunctionPointer(function, typeof(gir_name)); + writer.WriteAttributeString("PluginFile", _pluginFile); - function = GetProcAddress(_pluginDll, "gir_description"); - _girDescription = (gir_description)Marshal.GetDelegateForFunctionPointer(function, typeof(gir_description)); - - - - function = GetProcAddress(_pluginDll, "gir_start"); - _girStart = (gir_start)Marshal.GetDelegateForFunctionPointer(function, typeof(gir_start)); - - function = GetProcAddress(_pluginDll, "gir_stop"); - _girStop = (gir_stop)Marshal.GetDelegateForFunctionPointer(function, typeof(gir_stop)); + writer.WriteEndElement(); // </settings> + writer.WriteEndDocument(); + } } +#if TRACE + catch (Exception ex) + { + Trace.WriteLine(ex.ToString()); + } +#else catch { - FreeLibrary(_pluginDll); - throw; } +#endif + } - } - #endregion Implementation } Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.csproj =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.csproj 2007-11-29 01:08:38 UTC (rev 1105) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.csproj 2007-11-30 04:06:38 UTC (rev 1106) @@ -10,6 +10,8 @@ <RootNamespace>GirderPlugin</RootNamespace> <AssemblyName>Girder Plugin</AssemblyName> <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent> + <ApplicationIcon> + </ApplicationIcon> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>true</DebugSymbols> @@ -20,17 +22,22 @@ <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> - <PlatformTarget>x86</PlatformTarget> + <PlatformTarget>AnyCPU</PlatformTarget> <UseVSHostingProcess>false</UseVSHostingProcess> + <AllowUnsafeBlocks>false</AllowUnsafeBlocks> + <DocumentationFile>bin\Debug\Girder Plugin.XML</DocumentationFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> + <DefineConstants> + </DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <PlatformTarget>AnyCPU</PlatformTarget> + <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <DebugSymbols>true</DebugSymbols> @@ -38,7 +45,7 @@ <DefineConstants>DEBUG;TRACE</DefineConstants> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <DebugType>full</DebugType> - <PlatformTarget>x86</PlatformTarget> + <PlatformTarget>AnyCPU</PlatformTarget> <UseVSHostingProcess>false</UseVSHostingProcess> <ErrorReport>prompt</ErrorReport> </PropertyGroup> @@ -53,10 +60,19 @@ <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="Config.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="Config.Designer.cs"> + <DependentUpon>Config.cs</DependentUpon> + </Compile> <Compile Include="Girder Plugin.cs" /> + <Compile Include="GirderPluginWrapper.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> </ItemGroup> <ItemGroup> @@ -66,6 +82,15 @@ <Private>False</Private> </ProjectReference> </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Config.resx"> + <SubType>Designer</SubType> + <DependentUpon>Config.cs</DependentUpon> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <Content Include="Icon.ico" /> + </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. @@ -75,6 +100,7 @@ </Target> --> <PropertyGroup> - <PostBuildEvent>copy "$(TargetName).*" "\MediaPortal Development\Plugin Releases\IR Server Suite\IR Server Plugins\"</PostBuildEvent> + <PostBuildEvent> + </PostBuildEvent> </PropertyGroup> </Project> \ No newline at end of file Added: trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/GirderPluginWrapper.cs 2007-11-30 04:06:38 UTC (rev 1106) @@ -0,0 +1,931 @@ +using System; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading; + +#if TRACE +using System.Diagnostics; +#endif + +namespace GirderPlugin +{ + + /// <summary> + /// Wrapper class to work with Girder 3.x plugins. + /// </summary> + public class GirderPluginWrapper : IDisposable + { + + #region Constants + + /// <summary> + /// Simulated Girder application version (Major). + /// </summary> + public const int GirVerMajor = 3; + /// <summary> + /// Simulated Girder application version (Minor). + /// </summary> + public const int GirVerMinor = 3; + /// <summary> + /// Simulated Girder application version (Micro). + /// </summary> + public const int GirVerMicro = 0; + + /// <summary> + /// Maximum Girder API version this wrapper can handle. + /// </summary> + public const int GirMaxApi = 2; + + const int MaxStringLength = 256; + + #endregion Constants + + #region Interop + + [DllImport("kernel32")] + extern static IntPtr LoadLibrary( + string dllFileName); + + [DllImport("kernel32")] + static extern IntPtr GetProcAddress( + IntPtr module, + string functionName); + + [DllImport("kernel32")] + [return: MarshalAs(UnmanagedType.Bool)] + extern static bool FreeLibrary( + IntPtr handle); + + #endregion Interop + + #region Girder Plugin Delegates + + #region Girder Funtions + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_event_cb(string event_string, int device, IntPtr payload, int len); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_parse_girder_reg(string orig, IntPtr szstore, int size); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_get_link_name(int lvalue, IntPtr szstore, int size); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + delegate void t_set_command(GirCommand command); // GirCommand Ptr? + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + delegate void t_target_enum(int id, t_target_callback callback); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + delegate void t_target_callback(IntPtr hw, GirCommand command); // GirCommand Ptr? + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + delegate void t_realloc_pchar(IntPtr old, byte newchar); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + delegate void t_show_osd(int timer); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + delegate void t_hide_osd(); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_start_osd_draw(IntPtr hw, IntPtr h, int user); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + delegate void t_stop_osd_draw(IntPtr h); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_treepicker_show(IntPtr window, int id); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_register_cb(int actionplugin, t_event_cb callback, string prefix, int device); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_i18n_translate(string orig, IntPtr szstore, int size); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + delegate int t_get_osd_settings(int setting); // (return int == dword) + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_get_osd_fontname(IntPtr szstore, int size); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + delegate IntPtr t_gir_malloc(int size); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + delegate void t_gir_free(IntPtr data); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + delegate int t_get_int_var(string name); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + delegate double t_get_double_var(string name); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_get_string_var(string name, IntPtr szstore, int size); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_set_int_var(string name, int value); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_set_double_var(string name, double value); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_set_string_var(string name, string value); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_delete_var(string name); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_run_parser(string str, IntPtr error_value); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_send_event(string eventstring, IntPtr payload, int len, int device); + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + [return: MarshalAs(UnmanagedType.Bool)] + delegate bool t_trigger_command(int command_id); + + #endregion Girder Funtions + +/* +typedef void (WINAPI *t_target_callback) (HWND hw, p_command command); +typedef void (WINAPI *t_set_command) (p_command command); +typedef void (WINAPI *t_target_enum) (int id, t_target_callback callback); +typedef void (WINAPI *t_realloc_pchar) (PCHAR * old, PCHAR newchar); +typedef void (WINAPI *t_show_osd) (int timer); +typedef void (WINAPI *t_hide_osd) (); +typedef int (WINAPI *t_start_osd_draw) (HWND *hw, HDC *h, int user); +typedef void (WINAPI *t_stop_osd_draw) (HDC h); +typedef int (WINAPI *t_treepicker_show) (HWND window, int id); +typedef int (WINAPI *t_event_cb) (PCHAR event_string, int device, void *payload, int len); +typedef int (WINAPI *t_register_cb) (int actionplugin, t_event_cb callback, PCHAR prefix, int device); +typedef int (WINAPI *t_get_link_name) (int lvalue, PCHAR szstore, int size); +typedef int (WINAPI *t_parse_girder_reg) (PCHAR orig, PCHAR szstore, int size); +typedef int (WINAPI *t_i18n_translate) (PCHAR orig, PCHAR szstore, int size); +typedef DWORD (WINAPI *t_get_osd_settings) (int setting); +typedef int (WINAPI *t_get_osd_fontname) (PCHAR szstore, int size); +typedef int (WINAPI *t_run_parser) (PCHAR str, int *error_value); +typedef int (WINAPI *t_get_int_var) (PCHAR name); +typedef double (WINAPI *t_get_double_var) (PCHAR name); +typedef int (WINAPI *t_get_string_var) (PCHAR name, PCHAR szstore, int size); +typedef int (WINAPI *t_set_int_var) (PCHAR name, int value); +typedef int (WINAPI *t_set_double_var) (PCHAR name, double value); +typedef int (WINAPI *t_set_string_var) (PCHAR name, PCHAR value); +typedef int (WINAPI *t_delete_var) (PCHAR name); +typedef void * (WINAPI *t_gir_malloc) (int size); +typedef void (WINAPI *t_gir_free) (void *data); +typedef int (WINAPI *t_send_event) (const char * eventstring, void *payload, int len, int device); +typedef int (WINAPI *t_trigger_command) (int command_id); + + +typedef void (WINAPI *t_target_callback_ex) (HWND hw, p_command command, void * data); +typedef void (WINAPI *t_target_enum_ex) (int id, t_target_callback_ex callback, void *data); // added user data +typedef PCHAR (WINAPI *t_open_script_editor) (HWND window, PCHAR script); // call from its own thread. free return pchar with gir_free. +typedef int (WINAPI *t_get_variable_type) (PCHAR name); // 1 = int, 2 = double, 3= string, -1 = does not exists. +typedef int (WINAPI *t_open_list_variables) ( ); // call to list all vars. +typedef int (WINAPI *t_get_first_variable) ( ); // move to the beginning of the list +typedef int (WINAPI *t_close_list_variables) ( ); // close the list var MUST DO! +typedef int (WINAPI *t_get_next_int_variable) (PCHAR name, int len, int value ); +typedef int (WINAPI *t_get_next_double_variable) (PCHAR name, int len, double value ); +typedef int (WINAPI *t_get_next_string_variable) (PCHAR name, int len, PCHAR value, int size ); +typedef int (WINAPI *t_set_variable_window) (HWND window, UINT msg, int add); // call this to be notified of variable changes. +typedef void * (WINAPI *t_get_script_state) (); // call this to get the lua/script state, CHECK IF RETURN VALUE IS NOT NULL!! +*/ + [StructLayout(LayoutKind.Sequential)] + struct GirApiFunctions + { + public int size; + public t_parse_girder_reg parse_reg_string; + public t_get_link_name get_link_name; + public t_set_command set_command; + public t_target_enum target_enum; + public t_realloc_pchar realloc_pchar; + public t_show_osd show_osd; + public t_hide_osd hide_osd; + public t_start_osd_draw start_osd_draw; + public t_stop_osd_draw stop_osd_draw; + public t_treepicker_show treepicker_show; + public t_register_cb register_cb; + public t_i18n_translate i18n_translate; + public t_get_osd_settings get_osd_settings; + public t_get_osd_fontname get_osd_font_name; + public t_gir_malloc gir_malloc; + public t_gir_free gir_free; + public t_get_int_var get_int_var; + public t_get_double_var get_double_var; + public t_get_string_var get_string_var; + public t_set_int_var set_int_var; + public t_set_double_var set_double_var; + public t_set_string_var set_string_var; + public t_delete_var delete_var; + public t_run_parser run_parser; + public t_send_event send_event; + public t_trigger_command trigger_command; + public IntPtr parent_hwnd; + + } + + [StructLayout(LayoutKind.Sequential)] + struct GirCommand + { + public Mutex critical_section; + public string name; + public int actiontype; + public int actionsubtype; + public string svalue1; + public string svalue2; + public string svalue3; + public int bvalue1; + public int bvalue2; + public int bvalue3; + public int ivalue1; + public int ivalue2; + public int ivalue3; + public int lvalue1; + public int lvalue2; + public int lvalue3; + public IntPtr binary; + public int size; + } + + #region Plugin functions + + [UnmanagedFunctionPointer(CallingConvention.Winapi)] + delegate void gir_version([In, Out] StringBuilder version, int size); + + [UnmanagedFunctionPointer(CallingConventi... [truncated message content] |
From: <an...@us...> - 2007-12-05 16:48:01
|
Revision: 1126 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1126&view=rev Author: and-81 Date: 2007-12-05 08:47:57 -0800 (Wed, 05 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.Designer.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 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/Tray Launcher/Tray.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 Skin Editor/MainForm.cs trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs trunk/plugins/IR Server Suite/Common/IrssComms/Server.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/KeysCommand.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/KeysCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/KeysCommand.resx trunk/plugins/IR Server Suite/Common/IrssUtils/Keyboard.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Mouse.cs trunk/plugins/IR Server Suite/Common/MPUtils/ExternalChannelConfig.cs trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.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/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/MicrosoftMceTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Mouse.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/Mouse.cs trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/CreateIRFile.cs trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLircServer.cs trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/X10Transceiver.cs trunk/plugins/IR Server Suite/Input Service/Input Service/InputService.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 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/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/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/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/StbSetup.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs trunk/plugins/MCEReplacement/Forms/ExternalChannels.cs trunk/plugins/MCEReplacement/Forms/MacroEditor.cs trunk/plugins/MCEReplacement/Forms/SetupForm.cs trunk/plugins/MCEReplacement/Forms/StbSetup.cs trunk/plugins/MCEReplacement/MCEReplacement.cs Added Paths: ----------- trunk/plugins/IR Server Suite/Applications/Translator/Default Settings/Wii Remote.xml trunk/plugins/IR Server Suite/Documentation/troubleshooting.html Property Changed: ---------------- trunk/plugins/IgorPlugUSB/ trunk/plugins/MCEReplacement/ trunk/plugins/MCEReplacementTray/ trunk/plugins/MessagePlugin/ trunk/plugins/RarPlayer/ trunk/plugins/TV3ExtChannelChanger/ trunk/plugins/TV3MceBlaster/ trunk/plugins/TV3UuirtBlaster/ trunk/plugins/TVServerStatus/ trunk/plugins/XBCDRC/ Modified: trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs 2007-12-05 14:50:52 UTC (rev 1125) +++ trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs 2007-12-05 16:47:57 UTC (rev 1126) @@ -71,7 +71,7 @@ bool _registered; // Used for relay and repeater modes. string[] _pluginNameReceive; - IRServerPluginBase[] _pluginReceive; + List<IRServerPluginBase> _pluginReceive; string _pluginNameTransmit; IRServerPluginBase _pluginTransmit; @@ -172,7 +172,7 @@ } else { - List<IRServerPluginBase> plugins = new List<IRServerPluginBase>(_pluginNameReceive.Length); + _pluginReceive = new List<IRServerPluginBase>(_pluginNameReceive.Length); for (int index = 0; index < _pluginNameReceive.Length; index++) { @@ -186,14 +186,15 @@ } else { - plugins.Add(plugin); + _pluginReceive.Add(plugin); if (!String.IsNullOrEmpty(_pluginNameTransmit) && plugin.Name.Equals(_pluginNameTransmit, StringComparison.OrdinalIgnoreCase)) _pluginTransmit = plugin; } } - _pluginReceive = plugins.ToArray(); + if (_pluginReceive.Count == 0) + _pluginReceive = null; } if (String.IsNullOrEmpty(_pluginNameTransmit)) @@ -235,6 +236,8 @@ if (_pluginReceive != null) { + List<IRServerPluginBase> removePlugins = new List<IRServerPluginBase>(); + foreach (IRServerPluginBase plugin in _pluginReceive) { try @@ -272,10 +275,18 @@ { IrssLog.Error("Failed to start receive plugin: \"{0}\"", plugin.Name); IrssLog.Error(ex.ToString()); + + removePlugins.Add(plugin); } } + + foreach (IRServerPluginBase plugin in removePlugins) + _pluginReceive.Remove(plugin); + + if (_pluginReceive.Count == 0) + _pluginReceive = null; } - + if (_pluginTransmit != null && !startedTransmit) { try @@ -289,6 +300,8 @@ { IrssLog.Error("Failed to start transmit plugin: \"{0}\"", _pluginNameTransmit); IrssLog.Error(ex.ToString()); + + _pluginTransmit = null; } } @@ -370,13 +383,15 @@ { if (_pluginTransmit != null && !stoppedTransmit) _pluginTransmit.Stop(); - - _pluginTransmit = null; } catch (Exception ex) { IrssLog.Error(ex.ToString()); } + finally + { + _pluginTransmit = null; + } // Stop Server try @@ -431,6 +446,8 @@ SaveSettings(); + Thread.Sleep(1000); + Start(); // Restart communications } } @@ -733,10 +750,10 @@ { try { - plugin.Resume(); - if (plugin == _pluginTransmit) resumedTransmit = true; + + plugin.Resume(); } catch (Exception ex) { @@ -1471,23 +1488,20 @@ { doc.Load(ConfigurationFile); } + catch (DirectoryNotFoundException) + { + IrssLog.Error("No configuration file found ({0}), folder not found! Creating default configuration file", ConfigurationFile); + + Directory.CreateDirectory(Path.GetDirectoryName(ConfigurationFile)); + + CreateDefaultSettings(); + return; + } catch (FileNotFoundException) { IrssLog.Warn("No configuration file found ({0}), creating default configuration file", ConfigurationFile); - string[] blasters = Program.DetectBlasters(); - if (blasters == null) - _pluginNameTransmit = String.Empty; - else - _pluginNameTransmit = blasters[0]; - - string[] receivers = Program.DetectReceivers(); - if (receivers == null) - _pluginNameReceive = null; - else - _pluginNameReceive = receivers; - - SaveSettings(); + CreateDefaultSettings(); return; } catch (Exception ex) @@ -1520,7 +1534,7 @@ { try { - using (XmlTextWriter writer = new XmlTextWriter(ConfigurationFile, System.Text.Encoding.UTF8)) + using (XmlTextWriter writer = new XmlTextWriter(ConfigurationFile, Encoding.UTF8)) { writer.Formatting = Formatting.Indented; writer.Indentation = 1; @@ -1558,7 +1572,30 @@ IrssLog.Error(ex.ToString()); } } + void CreateDefaultSettings() + { + try + { + string[] blasters = Program.DetectBlasters(); + if (blasters == null) + _pluginNameTransmit = String.Empty; + else + _pluginNameTransmit = blasters[0]; + string[] receivers = Program.DetectReceivers(); + if (receivers == null) + _pluginNameReceive = null; + else + _pluginNameReceive = receivers; + + SaveSettings(); + } + catch (Exception ex) + { + IrssLog.Error(ex.ToString()); + } + } + #endregion Implementation } Added: trunk/plugins/IR Server Suite/Applications/Translator/Default Settings/Wii Remote.xml =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Default Settings/Wii Remote.xml (rev 0) +++ trunk/plugins/IR Server Suite/Applications/Translator/Default Settings/Wii Remote.xml 2007-12-05 16:47:57 UTC (rev 1126) @@ -0,0 +1,23 @@ +<?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> + <ButtonMapping KeyCode="Wiimote_Button:B" Description="" Command="Keys: {ENTER}" /> + <ButtonMapping KeyCode="Wiimote_Button:A" Description="" Command="Keys: {SPACE}" /> + <ButtonMapping KeyCode="Wiimote_Pad:Down" Description="" Command="Keys: {DOWN}" /> + <ButtonMapping KeyCode="Wiimote_Pad:Up" Description="" Command="Keys: {UP}" /> + <ButtonMapping KeyCode="Wiimote_Pad:Left" Description="" Command="Keys: {LEFT}" /> + <ButtonMapping KeyCode="Wiimote_Pad:Right" Description="" Command="Keys: {RIGHT}" /> + <ButtonMapping KeyCode="Wiimote_Button:One" Description="" Command="Keys: {PGUP}" /> + <ButtonMapping KeyCode="Wiimote_Button:Two" Description="" Command="Keys: {PGDN}" /> + <ButtonMapping KeyCode="Wiimote_Button:Home" Description="" Command="Keys: {WIN}" /> + </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> + <ButtonMapping KeyCode="31710" Description="Right" Command="Macro: Mouse Macro1" /> + </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-12-05 14:50:52 UTC (rev 1125) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.Designer.cs 2007-12-05 16:47:57 UTC (rev 1126) @@ -138,6 +138,7 @@ 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(); @@ -176,6 +177,7 @@ this.buttonCancel = new System.Windows.Forms.Button(); this.buttonOK = new System.Windows.Forms.Button(); this.toolTips = new System.Windows.Forms.ToolTip(this.components); + this.windowsKeyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.groupBoxButton.SuspendLayout(); this.groupBoxSet.SuspendLayout(); this.tabControl.SuspendLayout(); @@ -1017,52 +1019,52 @@ this.toolStripSeparator2, this.specialKeysToolStripMenuItem}); this.contextMenuStripKeystrokes.Name = "contextMenuStripKeystrokes"; - this.contextMenuStripKeystrokes.Size = new System.Drawing.Size(145, 148); + this.contextMenuStripKeystrokes.Size = new System.Drawing.Size(153, 170); // // cutToolStripMenuItem // this.cutToolStripMenuItem.Name = "cutToolStripMenuItem"; - this.cutToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + this.cutToolStripMenuItem.Size = new System.Drawing.Size(152, 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.Size = new System.Drawing.Size(152, 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.Size = new System.Drawing.Size(152, 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); + this.toolStripSeparator1.Size = new System.Drawing.Size(149, 6); // // selectAllToolStripMenuItem // this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem"; - this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(152, 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.Size = new System.Drawing.Size(152, 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); + this.toolStripSeparator2.Size = new System.Drawing.Size(149, 6); // // specialKeysToolStripMenuItem // @@ -1086,9 +1088,10 @@ this.pageDownToolStripMenuItem, this.pageUpToolStripMenuItem, this.scrollLockToolStripMenuItem, - this.tabToolStripMenuItem}); + this.tabToolStripMenuItem, + this.windowsKeyToolStripMenuItem}); this.specialKeysToolStripMenuItem.Name = "specialKeysToolStripMenuItem"; - this.specialKeysToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + this.specialKeysToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.specialKeysToolStripMenuItem.Text = "Special Keys"; // // arrowsToolStripMenuItem @@ -1309,7 +1312,8 @@ this.modifiersToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.altToolStripMenuItem, this.controlToolStripMenuItem, - this.shiftToolStripMenuItem}); + this.shiftToolStripMenuItem, + this.windowsToolStripMenuItem}); this.modifiersToolStripMenuItem.Name = "modifiersToolStripMenuItem"; this.modifiersToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.modifiersToolStripMenuItem.Text = "Modifiers"; @@ -1317,24 +1321,31 @@ // altToolStripMenuItem // this.altToolStripMenuItem.Name = "altToolStripMenuItem"; - this.altToolStripMenuItem.Size = new System.Drawing.Size(120, 22); + this.altToolStripMenuItem.Size = new System.Drawing.Size(152, 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(120, 22); + this.controlToolStripMenuItem.Size = new System.Drawing.Size(152, 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(120, 22); + this.shiftToolStripMenuItem.Size = new System.Drawing.Size(152, 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(152, 22); + this.windowsToolStripMenuItem.Text = "Windows"; + this.windowsToolStripMenuItem.Click += new System.EventHandler(this.KeystrokeToolStripMenuItem_Click); + // // toolStripSeparator3 // this.toolStripSeparator3.Name = "toolStripSeparator3"; @@ -1710,6 +1721,13 @@ this.buttonOK.UseVisualStyleBackColor = true; this.buttonOK.Click += new System.EventHandler(this.buttonOK_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); + // // ButtonMappingForm // this.AcceptButton = this.buttonOK; @@ -1911,6 +1929,8 @@ private System.Windows.Forms.ComboBox comboBoxMiscCommand; private System.Windows.Forms.CheckBox checkBoxForceFocus; private System.Windows.Forms.CheckBox checkBoxWaitForResponse; + private System.Windows.Forms.ToolStripMenuItem windowsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem windowsKeyToolStripMenuItem; } } \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-12-05 14:50:52 UTC (rev 1125) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-12-05 16:47:57 UTC (rev 1126) @@ -97,6 +97,10 @@ } } + void InsertKeystroke(char key) + { + textBoxKeys.Paste(key.ToString()); + } void InsertKeystroke(string keystroke) { textBoxKeys.Paste(keystroke); @@ -485,7 +489,7 @@ } catch (Exception ex) { - MessageBox.Show(this, ex.Message, "Test failed", MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show(this, ex.ToString(), "Test failed", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } @@ -652,9 +656,10 @@ case "multiplyToolStripMenuItem": InsertKeystroke("{MULTIPLY}"); break; case "divideToolStripMenuItem": InsertKeystroke("{DIVIDE}"); break; - case "altToolStripMenuItem": InsertKeystroke("%"); break; - case "controlToolStripMenuItem": InsertKeystroke("^"); break; - case "shiftToolStripMenuItem": InsertKeystroke("+"); break; + case "altToolStripMenuItem": InsertKeystroke(Keyboard.ModifierAlt); break; + case "controlToolStripMenuItem": InsertKeystroke(Keyboard.ModifierControl); break; + case "shiftToolStripMenuItem": InsertKeystroke(Keyboard.ModifierShift); break; + case "windowsToolStripMenuItem": InsertKeystroke(Keyboard.ModifierWinKey); break; case "backspaceToolStripMenuItem": InsertKeystroke("{BACKSPACE}"); break; case "breakToolStripMenuItem": InsertKeystroke("{BREAK}"); break; @@ -672,6 +677,7 @@ case "pageUpToolStripMenuItem": InsertKeystroke("{PGUP}"); break; case "scrollLockToolStripMenuItem": InsertKeystroke("{SCROLLLOCK}"); break; case "tabToolStripMenuItem": InsertKeystroke("{TAB}"); break; + case "windowsKeyToolStripMenuItem": InsertKeystroke("{WIN}"); break; } } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-12-05 14:50:52 UTC (rev 1125) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-12-05 16:47:57 UTC (rev 1126) @@ -89,7 +89,7 @@ { try { - using (XmlTextWriter writer = new XmlTextWriter(fileName, System.Text.Encoding.UTF8)) + using (XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.UTF8)) { writer.Formatting = Formatting.Indented; writer.Indentation = 1; @@ -280,7 +280,7 @@ } catch (Exception ex) { - IrssLog.Error(ex.Message); + IrssLog.Error(ex.ToString()); } } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-12-05 14:50:52 UTC (rev 1125) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-12-05 16:47:57 UTC (rev 1126) @@ -790,7 +790,7 @@ } catch (Exception ex) { - IrssLog.Error(ex.Message); + IrssLog.Error(ex.ToString()); } IrssLog.Debug("Active program not found in Translator program list"); Modified: trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs 2007-12-05 14:50:52 UTC (rev 1125) +++ trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs 2007-12-05 16:47:57 UTC (rev 1126) @@ -216,7 +216,7 @@ try { - using (XmlTextWriter writer = new XmlTextWriter(ConfigurationFile, System.Text.Encoding.UTF8)) + using (XmlTextWriter writer = new XmlTextWriter(ConfigurationFile, Encoding.UTF8)) { writer.Formatting = Formatting.Indented; writer.Indentation = 1; @@ -343,7 +343,7 @@ } catch (Exception ex) { - IrssLog.Error("ReceivedMessage - {0}", ex.Message); + IrssLog.Error("ReceivedMessage(): {0}", ex.ToString()); } } Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs 2007-12-05 14:50:52 UTC (rev 1125) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs 2007-12-05 16:47:57 UTC (rev 1126) @@ -123,7 +123,7 @@ } catch (Exception ex) { - IrssLog.Error(ex.Message); + IrssLog.Error(ex.ToString()); } } Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs 2007-12-05 14:50:52 UTC (rev 1125) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs 2007-12-05 16:47:57 UTC (rev 1126) @@ -251,7 +251,7 @@ { try { - using (XmlTextWriter writer = new XmlTextWriter(ConfigurationFile, System.Text.Encoding.UTF8)) + using (XmlTextWriter writer = new XmlTextWriter(ConfigurationFile, Encoding.UTF8)) { writer.Formatting = Formatting.Indented; writer.Indentation = 1; Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.cs 2007-12-05 14:50:52 UTC (rev 1125) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.cs 2007-12-05 16:47:57 UTC (rev 1126) @@ -390,7 +390,7 @@ { IrssLog.Info("Saving Skin: {0}", fileName); - using (XmlTextWriter writer = new XmlTextWriter(fileName, System.Text.Encoding.UTF8)) + using (XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.UTF8)) { writer.Formatting = Formatting.Indented; writer.Indentation = 1; @@ -494,7 +494,7 @@ { try { - using (XmlTextWriter writer = new XmlTextWriter(ConfigurationFile, System.Text.Encoding.UTF8)) + using (XmlTextWriter writer = new XmlTextWriter(ConfigurationFile, Encoding.UTF8)) { writer.Formatting = Formatting.Indented; writer.Indentation = 1; Modified: trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs 2007-12-05 14:50:52 UTC (rev 1125) +++ trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs 2007-12-05 16:47:57 UTC (rev 1126) @@ -405,7 +405,7 @@ { try { - using (XmlTextWriter writer = new XmlTextWriter(ConfigurationFile, System.Text.Encoding.UTF8)) + using (XmlTextWriter writer = new XmlTextWriter(ConfigurationFile, Encoding.UTF8)) { writer.Formatting = Formatting.Indented; writer.Indentation = 1; Modified: trunk/plugins/IR Server Suite/Common/IrssComms/Server.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/Server.cs 2007-12-05 14:50:52 UTC (rev 1125) +++ trunk/plugins/IR Server Suite/Common/IrssComms/Server.cs 2007-12-05 16:47:57 UTC (rev 1126) @@ -247,12 +247,14 @@ void ClientDisconnect(object obj) { ClientManager clientManager = obj as ClientManager; - if (clientManager == null || _clientManagers == null) return; lock (_clientManagers) { + if (_clientManagers == null) + return; + if (_clientManagers.Contains(clientManager)) _clientManagers.Remove(clientManager); } @@ -273,13 +275,18 @@ { Socket socket = _serverSocket.Accept(); - ClientManager manager = new ClientManager(socket, clientManagerMessageSink); - manager.DisconnectCallback = new WaitCallback(ClientDisconnect); + lock (_clientManagers) + { + if (_clientManagers == null) + continue; - lock (_clientManagers) + ClientManager manager = new ClientManager(socket, clientManagerMessageSink); + manager.DisconnectCallback = new WaitCallback(ClientDisconnect); + _clientManagers.Add(manager); - manager.Start(); + manager.Start(); + } } } #if TRACE Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/KeysCommand.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/KeysCommand.Designer.cs 2007-12-05 14:50:52 UTC (rev 1125) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/KeysCommand.Designer.cs 2007-12-05 16:47:57 UTC (rev 1126) @@ -30,10 +30,70 @@ /// </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.textBoxKeystrokes = new System.Windows.Forms.TextBox(); + this.textBoxKeys = new System.Windows.Forms.TextBox(); this.labelKeystrokes = new System.Windows.Forms.Label(); + 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.contextMenuStripKeystrokes.SuspendLayout(); this.SuspendLayout(); // // buttonCancel @@ -59,17 +119,18 @@ this.buttonOK.UseVisualStyleBackColor = true; this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); // - // textBoxKeystrokes + // textBoxKeys // - this.textBoxKeystrokes.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + 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.textBoxKeystrokes.Location = new System.Drawing.Point(8, 24); - this.textBoxKeystrokes.Multiline = true; - this.textBoxKeystrokes.Name = "textBoxKeystrokes"; - this.textBoxKeystrokes.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.textBoxKeystrokes.Size = new System.Drawing.Size(320, 96); - this.textBoxKeystrokes.TabIndex = 1; + 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(320, 96); + this.textBoxKeys.TabIndex = 1; // // labelKeystrokes // @@ -81,6 +142,462 @@ this.labelKeystrokes.TabIndex = 0; this.labelKeystrokes.Text = "Keystrokes:"; // + // 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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(152, 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); + // // KeysCommand // this.AcceptButton = this.buttonOK; @@ -91,13 +608,14 @@ this.Controls.Add(this.labelKeystrokes); this.Controls.Add(this... [truncated message content] |
From: <an...@us...> - 2007-12-09 06:00:46
|
Revision: 1136 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1136&view=rev Author: and-81 Date: 2007-12-08 22:00:45 -0800 (Sat, 08 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj trunk/plugins/IR Server Suite/Documentation/new.html trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/Configure.cs trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/HCW Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/HcwTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/irremote.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 Suite.sln trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapper/InputHandler.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapping/MPControlPlugin.xml trunk/plugins/MCEReplacement/InputMapper/InputHandler.cs trunk/plugins/MCEReplacement/InputMapping/MCE Replacement.xml Added Paths: ----------- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.resx Property Changed: ---------------- trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/ Modified: trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs 2007-12-08 18:56:18 UTC (rev 1135) +++ trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs 2007-12-09 06:00:45 UTC (rev 1136) @@ -418,10 +418,14 @@ IrssLog.Info("Program already running, attempting to give focus."); Win32.SetForegroundWindow(process.MainWindowHandle, true); - return; } } + catch (Win32Exception ex) + { + if (ex.ErrorCode != -2147467259) // Ignore "Unable to enumerate the process modules" errors. + IrssLog.Error(ex.ToString()); + } catch (Exception ex) { IrssLog.Error(ex.ToString()); Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.Designer.cs 2007-12-09 06:00:45 UTC (rev 1136) @@ -0,0 +1,444 @@ +namespace IrssUtils.Forms +{ + + partial class SmsKeyboard + { + /// <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(SmsKeyboard)); + 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.buttonStar = new System.Windows.Forms.Button(); + this.buttonHash = 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(166, 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, 212); + this.panelBottom.Name = "panelBottom"; + this.panelBottom.Size = new System.Drawing.Size(166, 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, 196); + 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(182, 16); + this.panelRight.Name = "panelRight"; + this.panelRight.Size = new System.Drawing.Size(16, 196); + 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(182, 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(182, 212); + 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, 212); + 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(168, 198); + this.panelMain.TabIndex = 8; + // + // tableLayoutPanelKeys + // + this.tableLayoutPanelKeys.BackColor = System.Drawing.Color.Transparent; + this.tableLayoutPanelKeys.ColumnCount = 3; + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanelKeys.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + 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, 0, 1); + this.tableLayoutPanelKeys.Controls.Add(this.button5, 1, 1); + this.tableLayoutPanelKeys.Controls.Add(this.button6, 2, 1); + this.tableLayoutPanelKeys.Controls.Add(this.button7, 0, 2); + this.tableLayoutPanelKeys.Controls.Add(this.button8, 1, 2); + this.tableLayoutPanelKeys.Controls.Add(this.button9, 2, 2); + this.tableLayoutPanelKeys.Controls.Add(this.button0, 1, 3); + this.tableLayoutPanelKeys.Controls.Add(this.buttonStar, 0, 3); + this.tableLayoutPanelKeys.Controls.Add(this.buttonHash, 2, 3); + this.tableLayoutPanelKeys.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanelKeys.Location = new System.Drawing.Point(0, 30); + this.tableLayoutPanelKeys.Name = "tableLayoutPanelKeys"; + this.tableLayoutPanelKeys.RowCount = 4; + this.tableLayoutPanelKeys.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanelKeys.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanelKeys.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanelKeys.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanelKeys.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanelKeys.Size = new System.Drawing.Size(168, 168); + 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(59, 3); + this.button2.MinimumSize = new System.Drawing.Size(32, 24); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(50, 36); + this.button2.TabIndex = 1; + this.button2.TabStop = false; + this.button2.Text = "2"; + this.button2.UseMnemonic = false; + this.button2.UseVisualStyleBackColor = true; + // + // 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(50, 36); + this.button1.TabIndex = 0; + this.button1.TabStop = false; + this.button1.Text = "1"; + this.button1.UseMnemonic = false; + this.button1.UseVisualStyleBackColor = true; + // + // 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(115, 3); + this.button3.MinimumSize = new System.Drawing.Size(32, 24); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(50, 36); + this.button3.TabIndex = 2; + this.button3.TabStop = false; + this.button3.Text = "3"; + this.button3.UseMnemonic = false; + this.button3.UseVisualStyleBackColor = true; + // + // 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(3, 45); + this.button4.MinimumSize = new System.Drawing.Size(32, 24); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(50, 36); + this.button4.TabIndex = 3; + this.button4.TabStop = false; + this.button4.Text = "4"; + this.button4.UseMnemonic = false; + this.button4.UseVisualStyleBackColor = true; + // + // 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(59, 45); + this.button5.MinimumSize = new System.Drawing.Size(32, 24); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(50, 36); + this.button5.TabIndex = 4; + this.button5.TabStop = false; + this.button5.Text = "5"; + this.button5.UseMnemonic = false; + this.button5.UseVisualStyleBackColor = true; + // + // 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(115, 45); + this.button6.MinimumSize = new System.Drawing.Size(32, 24); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(50, 36); + this.button6.TabIndex = 5; + this.button6.TabStop = false; + this.button6.Text = "6"; + this.button6.UseMnemonic = false; + this.button6.UseVisualStyleBackColor = true; + // + // 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(3, 87); + this.button7.MinimumSize = new System.Drawing.Size(32, 24); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(50, 36); + this.button7.TabIndex = 6; + this.button7.TabStop = false; + this.button7.Text = "7"; + this.button7.UseMnemonic = false; + this.button7.UseVisualStyleBackColor = true; + // + // 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(59, 87); + this.button8.MinimumSize = new System.Drawing.Size(32, 24); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(50, 36); + this.button8.TabIndex = 7; + this.button8.TabStop = false; + this.button8.Text = "8"; + this.button8.UseMnemonic = false; + this.button8.UseVisualStyleBackColor = true; + // + // 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(115, 87); + this.button9.MinimumSize = new System.Drawing.Size(32, 24); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(50, 36); + this.button9.TabIndex = 8; + this.button9.TabStop = false; + this.button9.Text = "9"; + this.button9.UseMnemonic = false; + this.button9.UseVisualStyleBackColor = true; + // + // 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(59, 129); + this.button0.MinimumSize = new System.Drawing.Size(32, 24); + this.button0.Name = "button0"; + this.button0.Size = new System.Drawing.Size(50, 36); + this.button0.TabIndex = 10; + this.button0.TabStop = false; + this.button0.Text = "0"; + this.button0.UseMnemonic = false; + this.button0.UseVisualStyleBackColor = true; + // + // buttonStar + // + this.buttonStar.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonStar.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonStar.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonStar.Location = new System.Drawing.Point(3, 129); + this.buttonStar.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonStar.Name = "buttonStar"; + this.buttonStar.Size = new System.Drawing.Size(50, 36); + this.buttonStar.TabIndex = 9; + this.buttonStar.TabStop = false; + this.buttonStar.Text = "*"; + this.buttonStar.UseMnemonic = false; + this.buttonStar.UseVisualStyleBackColor = true; + // + // buttonHash + // + this.buttonHash.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonHash.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonHash.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonHash.Location = new System.Drawing.Point(115, 129); + this.buttonHash.MinimumSize = new System.Drawing.Size(32, 24); + this.buttonHash.Name = "buttonHash"; + this.buttonHash.Size = new System.Drawing.Size(50, 36); + this.buttonHash.TabIndex = 11; + this.buttonHash.TabStop = false; + this.buttonHash.Text = "#"; + this.buttonHash.UseMnemonic = false; + this.buttonHash.UseVisualStyleBackColor = true; + // + // textBoxKeys + // + this.textBoxKeys.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.textBoxKeys.Dock = System.Windows.Forms.DockStyle.Top; + this.textBoxKeys.Font = new System.Drawing.Font("Courier New", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.textBoxKeys.Location = new System.Drawing.Point(0, 0); + this.textBoxKeys.Name = "textBoxKeys"; + this.textBoxKeys.Size = new System.Drawing.Size(168, 30); + this.textBoxKeys.TabIndex = 0; + this.textBoxKeys.WordWrap = false; + // + // SmsKeyboard + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.Fuchsia; + this.ClientSize = new System.Drawing.Size(198, 228); + this.ControlBox = false; + this.Controls.Add(this.panelMain); + this.Controls.Add(this.panelBottomLeft); + this.Controls.Add(this.panelBottomRight); + this.Controls.Add(this.panelTopRight); + this.Controls.Add(this.panelTopLeft); + this.Controls.Add(this.panelRight); + this.Controls.Add(this.panelLeft); + this.Controls.Add(this.panelBottom); + this.Controls.Add(this.panelTop); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(198, 228); + this.Name = "SmsKeyboard"; + this.Opacity = 0.8; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Virtual Keyboard"; + this.TopMost = true; + this.TransparencyKey = System.Drawing.Color.Fuchsia; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.SmsKeyboard_FormClosed); + this.panelMain.ResumeLayout(false); + this.panelMain.PerformLayout(); + this.tableLayoutPanelKeys.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panelTop; + private System.Windows.Forms.Panel panelBottom; + private System.Windows.Forms.Panel panelLeft; + private System.Windows.Forms.Panel panelRight; + private System.Windows.Forms.Panel panelTopLeft; + private System.Windows.Forms.Panel panelTopRight; + private System.Windows.Forms.Panel panelBottomRight; + private System.Windows.Forms.Panel panelBottomLeft; + private System.Windows.Forms.Panel panelMain; + private System.Windows.Forms.TextBox textBoxKeys; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanelKeys; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Button button0; + private System.Windows.Forms.Button buttonStar; + private System.Windows.Forms.Button buttonHash; + + } + +} Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.cs (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.cs 2007-12-09 06:00:45 UTC (rev 1136) @@ -0,0 +1,119 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace IrssUtils.Forms +{ + + /// <summary> + /// SMS style virtual keyboard. + /// </summary> + public partial class SmsKeyboard : Form + { + + #region Variables + + bool _capsLock; + bool _shift; + + Timer _timer; + + #endregion Variables + + #region Properties + + /// <summary> + /// Gets or sets the text output. + /// </summary> + /// <value>The text output.</value> + public string TextOutput + { + get { return textBoxKeys.Text; } + set { textBoxKeys.Text = value; } + } + + #endregion Properties + + #region Constructor + + /// <summary> + /// Initializes a new instance of the <see cref="VirtualKeyboard"/> class. + /// </summary> + public SmsKeyboard() + { + InitializeComponent(); + + _timer = new Timer(); + _timer.Interval = 2000; + _timer.Tick += new EventHandler(Timeout); + _timer.Enabled = true; + } + + #endregion Constructor + + void Timeout(object sender, EventArgs e) + { + //textBoxKeys.SelectionLength = 0; + //textBoxKeys.SelectionStart++; + + + _timer.Stop(); + } + + void TextAdd(string str) + { + string toAdd = str.Clone() as string; + + if (_shift || _capsLock) + toAdd = toAdd.ToUpper(); + else + toAdd = toAdd.ToLower(); + + textBoxKeys.Paste(toAdd); + + if (_shift) + _shift = false; + + _timer.Start(); + } + void TextBackspace() + { + } + + void ToggleShift() + { + _shift = !_shift; + if (_capsLock) + _capsLock = false; + } + void ToggleCapsLock() + { + _capsLock = !_capsLock; + if (_shift) + _shift = false; + } + + private void buttonDone_Click(object sender, EventArgs e) + { + if (String.IsNullOrEmpty(textBoxKeys.Text)) + this.DialogResult = DialogResult.Cancel; + + this.Close(); + } + private void buttonCancel_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void SmsKeyboard_FormClosed(object sender, FormClosedEventArgs e) + { + _timer.Stop(); + } + + } + +} Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.resx =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.resx (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.resx 2007-12-09 06:00:45 UTC (rev 1136) @@ -0,0 +1,153 @@ +<?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> + <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="panelTopLeft.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAGGoAAB + hqABJxZkogAAADxJREFUOE9jYBgFIy0EFBQU/qNjosIAm0aYGEED0DU3NDT8R8ZEG4CuEcbHawCy7RQZ + gEszSJwoFwxuAwBKCJWYy6xHKAAAAABJRU5ErkJggg== +</value> + </data> + <data name="panelTopRight.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAGGoAAB + hqABJxZkogAAAD1JREFUOE9jYBgFwyEEFBQU/qNjkvyFzQCYGFEGNTQ0/EfGJLsG3QAYn2hXEDIAZBBe + r+AyACROlCuGvgEAseGVmCLfnHsAAAAASUVORK5CYII= +</value> + </data> + <data name="panelBottomRight.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAGGoAAB + hqABJxZkogAAAE9JREFUOE9jbGho+M+AAyxYsAAs8+DBA0ZcahhABuDCCgoK/0EYp2aQxOA1AOZ8sr1A + lP+xhQGyzQRtBxmAroFop8OiBpsBeKNtVHI4hgAAFoGIYl+udS0AAAAASUVORK5CYII= +</value> + </data> + <data name="panelBottomLeft.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAGGoAAB + hqABJxZkogAAAEpJREFUOE9jZMADFBQU/oOkExIS8CnDLQcyAIQbGhpwYrwmDx4D8HmDYOAQ8gbRBuAy + iKABIAUwzdhoogyAKaLYAJJsG1VMxxAAACPwg+GiZL60AAAAAElFTkSuQmCC +</value> + </data> +</root> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.Designer.cs 2007-12-08 18:56:18 UTC (rev 1135) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.Designer.cs 2007-12-09 06:00:45 UTC (rev 1136) @@ -1,5 +1,6 @@ namespace IrssUtils.Forms { + partial class VirtualKeyboard { /// <summary> @@ -1184,4 +1185,5 @@ private System.Windows.Forms.Button buttonCancel; } -} \ No newline at end of file + +} Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj 2007-12-08 18:56:18 UTC (rev 1135) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj 2007-12-09 06:00:45 UTC (rev 1136) @@ -77,6 +77,12 @@ <Compile Include="Forms\BlastCommand.Designer.cs"> <DependentUpon>BlastCommand.cs</DependentUpon> </Compile> + <Compile Include="Forms\SmsKeyboard.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="Forms\SmsKeyboard.Designer.cs"> + <DependentUpon>SmsKeyboard.cs</DependentUpon> + </Compile> <Compile Include="Forms\DisplayModeCommand.cs"> <SubType>Form</SubType> </Compile> @@ -182,6 +188,10 @@ <DependentUpon>BlastCommand.cs</DependentUpon> <SubType>Designer</SubType> </EmbeddedResource> + <EmbeddedResource Include="Forms\SmsKeyboard.resx"> + <DependentUpon>SmsKeyboard.cs</DependentUpon> + <SubType>Designer</SubType> + </EmbeddedResource> <EmbeddedResource Include="Forms\DisplayModeCommand.resx"> <DependentUpon>DisplayModeCommand.cs</DependentUpon> <SubType>Designer</SubType> Modified: trunk/plugins/IR Server Suite/Documentation/new.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/new.html 2007-12-08 18:56:18 UTC (rev 1135) +++ trunk/plugins/IR Server Suite/Documentation/new.html 2007-12-09 06:00:45 UTC (rev 1136) @@ -27,6 +27,7 @@ <LI>Added support for the RedEye blaster device.</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> +<LI>Re-synchronized InputHandler with MediaPortal</LI> </UL></P> <BR> Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver ___________________________________________________________________ Name: svn:ignore - *.suo *.user thumbs.db + *.suo *.user thumbs.db bin obj Modified: trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/Configure.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/Configure.cs 2007-12-08 18:56:18 UTC (rev 1135) +++ trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/Configure.cs 2007-12-09 06:00:45 UTC (rev 1136) @@ -9,21 +9,36 @@ namespace HcwTransceiver { + /// <summary> + /// Configure the HCW Transceiver plugin. + /// </summary> public partial class Configure : Form { #region Properties + /// <summary> + /// Gets or sets the repeat delay. + /// </summary> + /// <value>The repeat delay.</value> public int RepeatDelay { get { return Decimal.ToInt32(numericUpDownButtonRepeatDelay.Value); } set { numericUpDownButtonRepeatDelay.Value = new Decimal(value); } } + /// <summary> + /// Gets or sets the blast repeats. + /// </summary> + /// <value>The blast repeats.</value> public int BlastRepeats { get { return Decimal.ToInt32(numericUpDownRepeatCount.Value); } set { numericUpDownRepeatCount.Value = new Decimal(value); } } + /// <summary> + /// Gets or sets the learn timeout. + /// </summary> + /// <value>The learn timeout.</value> public int LearnTimeout { get { return Decimal.ToInt32(numericUpDownLearnTimeout.Value); } @@ -34,6 +49,9 @@ #region Constructor + /// <summary> + /// Initializes a new instance of the <see cref="Configure"/> class. + /// </summary> public Configure() { InitializeComponent(); Modified: trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/HCW Transceiver.csproj =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/HCW Transceiver.csproj 2007-12-08 18:56:18 UTC (rev 1135) +++ trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/HCW Transceiver.csproj 2007-12-09 06:00:45 UTC (rev 1136) @@ -16,11 +16,12 @@ <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG</DefineConstants> + <DefineConstants>TRACE;DEBUG</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> - <UseVSHostingProcess>true</UseVSHostingProcess> + <UseVSHostingProcess>false</UseVSHostingProcess> + <DocumentationFile>bin\Debug\HCW Transceiver.XML</DocumentationFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> @@ -91,6 +92,7 @@ </Target> --> <PropertyGroup> - <PostBuildEvent>copy "$(TargetFileName)" "\MediaPortal Development\Plugin Releases\IR Server Suite\IR Server Plugins\"</PostBuildEvent> + <PostBuildEvent> + </PostBuildEvent> </PropertyGroup> </Project> \ No newline at end of file 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-08 18:56:18 UTC (rev 1135) +++ trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/HcwTransceiver.cs 2007-12-09 06:00:45 UTC (rev 1136) @@ -13,9 +13,11 @@ namespace HcwTransceiver { + /// <summary> + /// IR Server plugin supporting Hauppauge devices. + /// </summary> [CLSCompliant(false)] - public class HcwTransceiver : - IRServerPlugin, IConfigure, ITransmitIR, ILearnIR, IRemoteReceiver + public class HcwTransceiver : IRServerPluginBase, IRemoteReceiver // IConfigure, ITransmitIR, ILearnIR, { #region Interop @@ -37,8 +39,8 @@ #region Delegates //Sets up callback so that other forms can catch a key press - public delegate void HCWEvent(int keypress); - //public event HCWEvent HCWKeyPressed; + delegate void HCWEvent(int keypress); + //event HCWEvent HCWKeyPressed; #endregion Delegates @@ -46,20 +48,10 @@ static readonly string ConfigurationFile = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + - "\\IR Server Suite\\IR Server\\USB-UIRT Transceiver.xml"; + "\\IR Server Suite\\IR Server\\HCW Transceiver.xml"; - const int UUIRTDRV_IRFMT_UUIRT = 0x0000; - const int UUIRTDRV_IRFMT_PRONTO = 0x0010; - const int UUIRTDRV_IRFMT_LEARN_FORCERAW = 0x0100; - const int UUIRTDRV_IRFMT_LEARN_FORCESTRUC = 0x0200; - const int UUIRTDRV_IRFMT_LEARN_FORCEFREQ = 0x0400; - const int UUIRTDRV_IRFMT_LEARN_FREQDETECT = 0x0800; - - static readonly string[] Ports = new string[] { "Default", "Port 1", "Port 2", "Port 3" }; + static readonly string[] Ports = new string[] { "Default", "Port 1", "Port 2" }; - const int AbortLearn = -1; - const int AllowLearn = 0; - #endregion Constants #region Variables @@ -81,31 +73,65 @@ #region Implementation - public override string Name { get { return "HCW Transceiver"; } } - public override string Version { get { return "1.0.3.4"; } } - public override string Author { get { return "and-81"; } } - public override string Description { get { return "Support for the HCW transceiver"; } } + /// <summary> + /// Name of the IR Server plugin. + /// </summary> + /// <value>The name.</value> + public override string Name { get { return "HCW 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, original MediaPortal code by mPod"; } } + /// <summary> + /// A description of the IR Server plugin. + /// </summary> + /// <value>The description.</value> + public override string Description { get { return "Support for Hauppauge devices"; } } + /// <summary> + /// Start the IR Server plugin. + /// </summary> + /// <returns>true if successful, otherwise false.</returns> public override bool Start() { LoadSettings(); 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() { } - public void Configure() + + /// <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(); @@ -115,7 +141,7 @@ config.BlastRepeats = _blastRepeats; config.LearnTimeout = _learnTimeout; - if (config.ShowDialog() == DialogResult.OK) + if (config.ShowDialog(owner) == DialogResult.OK) { _repeatDelay = config.RepeatDelay; _blastRepeats = config.BlastRepeats; @@ -125,25 +151,23 @@ } } + + /// <summary> + /// Callback for remote button presses. + /// </summary> + /// <value>The remote callback.</value> public RemoteHandler RemoteCallback { get { return _remoteButtonHandler; } set { _remoteButtonHandler = value; } } + /// <summary> + /// Gets the available ports. + /// </summary> + /// <value>The available ports.</value> public string[] AvailablePorts { get { return Ports; } } - public bool Transmit(string port, byte[] data) - { - - return false; - } - public LearnStatus Learn(out byte[] data) - { - data = null; - return LearnStatus.Failure; - } - void LoadSettings() { try @@ -155,10 +179,14 @@ _blastRepeats = int.Parse(doc.DocumentElement.Attributes["BlastRepeats"].Value); _learnTimeout = int.Parse(doc.DocumentElement.Attributes["LearnTimeout"].Value); } +#if TRACE catch (Exception ex) { - Console.WriteLine(ex.ToString()); - + Trace.WriteLine(ex.ToString()); +#else + catch + { +#endif _repeatDelay = 500; _blastRepeats = 4; _learnTimeout = 10000; @@ -183,10 +211,16 @@ writer.WriteEndDocument(); writer.Close(); } +#if TRACE catch (Exception ex) { - Console.WriteLine(ex.ToString()); + Trace.WriteLine(ex.ToString()); } +#else + catch + { + } +#endif } #endregion Implementation Modified: trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/Properties/AssemblyInfo.cs 2007-12-08 18:56:18 UTC (rev 1135) +++ trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/Properties/AssemblyInfo.cs 2007-12-09 06:00:45 UTC (rev 1136) @@ -29,7 +29,8 @@ // // 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.4")] -[assembly: AssemblyFileVersion("1.0.3.4")] +[assembly: AssemblyVersion("1.0.3.5")] +[assembly: AssemblyFileVersion("1.0.3.5")] [assembly: CLSCompliant(true)] +[assembly: GuidAttribute("560F8887-A826-40c8-BAB2-022FB7011EEF")] Modified: trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/irremote.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/irremote.cs 2007-12-08 18:56:18 UTC (rev 1135) +++ trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/irremote.cs 2007-12-09 06:00:45 UTC (rev 1136) @@ -92,13 +92,29 @@ #endregion + /// <summary> + /// Current Version. + /// </summary> public static string CurrentVersion = "2.49.23332"; + /// <summary> + /// Close the device. + /// </summary> + /// <param name="WindowHandle">The window handle.</param> + /// <param name="Msg">The MSG.</param> + /// <returns><c>true</c> if successful; otherwise <c>false</c>.</returns> public static bool IRClose(IntPtr WindowHandle, uint Msg) { return IR_Close((int)WindowHandle, Msg); } + /// <summary> + /// Get system key code. + /// </summary> + /// <param name="RepeatCount">The repeat count.</param> + /// <param name="RemoteCode">The remote code.</param> + /// <param name="KeyCode">The key code.</param> + /// <returns><c>true</c> if successful; otherwise <c>false</c>.</returns> public static bool IRGetSystemKeyCode(out int RepeatCount, out int RemoteCode, out int KeyCode) { RepeatCount = 0; @@ -119,11 +135,24 @@ return result; } + /// <summary> + /// Opens the device. + /// </summary> + /// <param name="WindowHandle">The window handle.</param> + /// <param name="Msg">The MSG.</param> + /// <param name="Verbose">if set to <c>true</c> [verbose].</param> + /// <param name="IRPort">The IR port.</param> + /// <returns><c>true</c> if successful; otherwise <c>false</c>.</returns> public static bool IROpen(IntPtr WindowHandle, uint Msg, bool Verbose, ushort IRPort) { return IR_Open((int)WindowHandle, Msg, Verbose, IRPort); } + /// <summary> + /// Set DLL directory. + /// </summary> + /// <param name="PathName">Name of the path.</param> + /// <returns><c>true</c> if successful; otherwise <c>false</c>.</returns> public static bool IRSetDllDirectory(string PathName) { return SetDllDirectory(PathName); 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-08 18:56:18 UTC (rev 1135) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs 2007-12-09 06:00:45 UTC (rev 1136) @@ -194,8 +194,6 @@ OpenDevice(); StartReadThread(); - _deviceAvailable = true; - // Initialize device ... WriteSync(StartPacket); Thread.Sleep(PacketTimeout); @@ -240,8 +238,6 @@ #endif */ - _deviceAvailable = false; - StopReadThread(); CloseDevice(); @@ -265,8 +261,6 @@ WriteSync(StopPacket); Thread.Sleep(PacketTimeout); - _deviceAvailable = false; - StopReadThread(); CloseDevice(); @@ -286,8 +280,6 @@ { OpenDevice(); StartReadThread(); - - _deviceAvailable = true; } catch { @@ -396,6 +388,9 @@ // Send packet WriteSync(DataPacket(code)); + + // Force a delay between blasts (hopefully solves back-to-back blast errors) ... + Thread.Sleep(PacketTimeout); } #endregion Driver overrides @@ -535,7 +530,7 @@ DebugWriteLine("StartReadThread()"); #endif - if (_readThread != null && _readThread.IsAlive) + if (_readThread != null) return; _stopReadThread = new ManualResetEvent(false); @@ -555,7 +550,7 @@ DebugWriteLine("StopReadThread()"); #endif - if (_readThread == null || !_readThread.IsAlive) + if (_readThread == null) return; _readThreadMode = ReadThreadMode.Stop; @@ -601,6 +596,8 @@ _readHandle.Dispose(); throw new Win32Exception(lastError); } + + _deviceAvailable = true; } /// <summary> @@ -612,6 +609,8 @@ DebugWriteLine("CloseDevice()"); #endif + _deviceAvailable = false; + if (_readHandle != null) { CloseHandle(_readHandle); @@ -637,8 +636,6 @@ OpenDevice(); StartReadThread(); - - _deviceAvailable = true; } void OnDeviceRemoval() { @@ -646,8 +643,6 @@ DebugWriteLine("OnDeviceRemoval()"); #endif - _deviceAvailable = false; - StopReadThread(); CloseDevice(); } 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-08 18:56:18 UTC (rev 1135) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs 2007-12-09 06:00:45 UTC (rev 1136) @@ -11,8 +11,6 @@ using IRServerPluginInterface; -// TODO: Lock ehome handle on access to driver - namespace MicrosoftMceTransceiver { @@ -329,11 +327,14 @@ void StartReceive(int receivePort, int timeout) { + if (!_deviceAvailable) + throw new ApplicationException("Device not available"); + int bytesReturned; StartReceiveParams structure; - structure.Receiver = new IntPtr(receivePort); - structure.Timeout = new IntPtr(timeout); + structure.Receiver = new IntPtr(receivePort); + structure.Timeout = new IntPtr(timeout); IntPtr structPtr = IntPtr.Zero; @@ -354,12 +355,18 @@ void StopReceive() { + if (!_deviceAvailable) + throw new ApplicationException("Device not available"); + int bytesReturned; IoControl(IoCtrl.StopReceive, IntPtr.Zero, 0, IntPtr.Zero, 0, out bytesReturned); } void GetDeviceCapabilities() { + if (!_deviceAvailable) + throw new ApplicationException("Device not available"); + int bytesReturned; DeviceCapabilities structure = new DeviceCapabilities(); @@ -413,6 +420,9 @@ void GetBlasters() { + if (!_deviceAvailable) + throw new ApplicationException("Device not available"); + if (_numTxPorts <= 0) return; @@ -447,9 +457,12 @@ void TransmitIR(byte[] irData, int carrier, int transmitPortMask) { + if (!_deviceAvailable) + throw new ApplicationException("Device not available"); + int bytesReturned; - TransmitParams transmitParams = new TransmitParams(); + TransmitParams transmitParams = new TransmitParams(); transmitParams.TransmitPortMask = new IntPtr(transmitPortMask); if (carrier == IrCode.CarrierFrequencyUnknown) @@ -463,10 +476,10 @@ transmitParams.Flags = new IntPtr((int)mode); - TransmitChunk transmitChunk = new TransmitChunk(); + TransmitChunk transmitChunk = new TransmitChunk(); transmitChunk.OffsetToNextChunk = new IntPtr(0); - transmitChunk.RepeatCount = new IntPtr(1); - transmitChunk.ByteCount = new IntPtr(irData.Length); + transmitChunk.RepeatCount = new IntPtr(1); + transmitChunk.ByteCount = new IntPtr(irData.Length); int bufferSize = irData.Length + Marshal.SizeOf(typeof(TransmitChunk)) + 8; byte[] buffer = new byte[bufferSize]; @@ -477,12 +490,12 @@ Array.Copy(irData, 0, buffer, rawTransmitChunk.Length, irData.Length); IntPtr structurePtr = IntPtr.Zero; - IntPtr bufferPtr = IntPtr.Zero; + IntPtr bufferPtr = IntPtr.Zero; try { - structurePtr = Marshal.AllocHGlobal(Marshal.SizeOf(transmitParams)); - bufferPtr = Marshal.AllocHGlobal(buffer.Length); + structurePtr = Marshal.AllocHGlobal(Marshal.SizeOf(transmitParams)); + bufferPtr = Marshal.AllocHGlobal(buffer.Length); Marshal.StructureToPtr(transmitParams, structurePtr, true); @@ -494,10 +507,13 @@ { if (structurePtr != IntPtr.Zero) Marshal.FreeHGlobal(structurePtr); - + if (bufferPtr != IntPtr.Zero) Marshal.FreeHGlobal(bufferPtr); } + + // Force a delay between blasts (hopefully solves back-to-back blast errors) ... + Thread.Sleep(PacketTimeout); } void IoControl(IoCtrl ioControlCode, IntPtr inBuffer, int inBufferSize, IntPtr outBuffer, int outBufferSize, out int bytesReturned) @@ -531,7 +547,6 @@ throw new Win32Exception(lastError); } } - } catch { @@ -571,8 +586,6 @@ StartReadThread(); - _deviceAvailable = true; - _notifyWindow.Create(); _notifyWindow.RegisterDeviceArrival(); _notifyWindow.RegisterDeviceRemoval(_eHomeHandle.DangerousGetHandle()); @@ -592,8 +605,6 @@ _notifyWindow.DeviceArrival -= new DeviceEventHandler(OnDeviceArrival); _notifyWindow.DeviceRemoval -= new DeviceEventHandler(OnDeviceRemoval); - _deviceAvailable = false; - StopReadThread(); CloseDevice(); @@ -614,8 +625,6 @@ DebugWriteLine("Suspend()"); #endif - _deviceAvailable = false; - StopReadThread(); CloseDevice(); } @@ -633,8 +642,6 @@ { OpenDevice(); StartReadThread(); - - _deviceAvailable = true; } catch { @@ -786,7 +793,7 @@ DebugWriteLine("StartReadThread()"); #endif - if (_readThread != null && _readThread.IsAlive) + if (_readThread != null) return; _readThread = new Thread(new ThreadStart(ReadThread)); @@ -803,7 +810,7 @@ DebugWriteLine("StopReadThread()"); #endif - if (_readThread == null || !_readThread.IsAlive) + if (_readThread == null) return; _readThreadMode = ReadThreadMode.Stop; @@ -835,6 +842,8 @@ _eHomeHandle = null; throw new Win32Exception(lastError); } + + _deviceAvailable = true; } /// <summary> @@ -846,6 +855,8 @@ DebugWriteLine("CloseDevice()"); #endif + _deviceAvailable = false; + if (_eHomeHandle == null) return; @@ -868,8 +879,6 @@ _readThreadMode = ReadThreadMode.Receiving; StartReadThread(); - - _deviceAvailable = true; } void OnDeviceRemoval() { @@ -877,8 +886,6 @@ DebugWriteLine("OnDeviceRemoval()"); #endif - _deviceAvailable = false; - StopReadThread(); CloseDevice(); } @@ -944,7 +951,6 @@ _readThreadMode = ReadThreadMode.LearningDone; ... [truncated message content] |
From: <an...@us...> - 2007-12-11 07:00:40
|
Revision: 1142 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1142&view=rev Author: and-81 Date: 2007-12-10 23:00:22 -0800 (Mon, 10 Dec 2007) Log Message: ----------- Modified Paths: -------------- 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/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SmsKeyboard.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/VirtualKeyboard.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj trunk/plugins/IR Server Suite/Common/MPUtils/Forms/GoToScreen.cs trunk/plugins/IR Server Suite/Common/MPUtils/MPUtils.csproj 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 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 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/SetupForm.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2 Blaster Plugin.csproj 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/PluginSetup.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3 Blaster Plugin.csproj trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs trunk/plugins/MCEReplacement/Forms/MacroEditor.cs trunk/plugins/MCEReplacement/Forms/SetupForm.cs trunk/plugins/MCEReplacement/MCEReplacement.cs trunk/plugins/MCEReplacement/MCEReplacement.csproj trunk/plugins/MCEReplacementTray/MCEReplacementTray.csproj Added Paths: ----------- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BeepCommand.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BeepCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BeepCommand.resx trunk/plugins/IR Server Suite/Set Top Boxes/ADB SCV-3800C/ trunk/plugins/IR Server Suite/Set Top Boxes/ADB SCV-3800C/0.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB SCV-3800C/1.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB SCV-3800C/2.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB SCV-3800C/3.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB SCV-3800C/4.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB SCV-3800C/5.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB SCV-3800C/6.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB SCV-3800C/7.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB SCV-3800C/8.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB SCV-3800C/9.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB SCV-3800C/OK.IR trunk/plugins/IR Server Suite/Set Top Boxes/ADB SCV-3800C.xml Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-12-10 13:54:01 UTC (rev 1141) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-12-11 07:00:22 UTC (rev 1142) @@ -63,10 +63,16 @@ comboBoxCommands.Items.Add(Common.UITextSerial); comboBoxCommands.Items.Add(Common.UITextWindowMsg); comboBoxCommands.Items.Add(Common.UITextTcpMsg); + comboBoxCommands.Items.Add(Common.UITextHttpMsg); comboBoxCommands.Items.Add(Common.UITextKeys); comboBoxCommands.Items.Add(Common.UITextMouse); comboBoxCommands.Items.Add(Common.UITextEject); comboBoxCommands.Items.Add(Common.UITextPopup); + comboBoxCommands.Items.Add(Common.UITextVirtualKB); + comboBoxCommands.Items.Add(Common.UITextSmsKB); + comboBoxCommands.Items.Add(Common.UITextBeep); + comboBoxCommands.Items.Add(Common.UITextSound); + comboBoxCommands.Items.Add(Common.UITextDisplay); comboBoxCommands.Items.Add(Common.UITextStandby); comboBoxCommands.Items.Add(Common.UITextHibernate); comboBoxCommands.Items.Add(Common.UITextReboot); @@ -92,99 +98,17 @@ using (XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.UTF8)) { writer.Formatting = Formatting.Indented; - writer.Indentation = 1; - writer.IndentChar = (char)9; writer.WriteStartDocument(true); - writer.WriteStartElement("macro"); // <macro> + writer.WriteStartElement("macro"); foreach (string item in listBoxMacro.Items) { - writer.WriteStartElement("action"); - - if (item.StartsWith(Common.CmdPrefixMacro, StringComparison.OrdinalIgnoreCase)) - { - writer.WriteAttributeString("command", Common.XmlTagMacro); - writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixMacro.Length)); - } - else if (item.StartsWith(Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase)) - { - writer.WriteAttributeString("command", Common.XmlTagBlast); - writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixBlast.Length)); - } - else if (item.StartsWith(Common.CmdPrefixPause, StringComparison.OrdinalIgnoreCase)) - { - writer.WriteAttributeString("command", Common.XmlTagPause); - writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixPause.Length)); - } - else if (item.StartsWith(Common.CmdPrefixRun, StringComparison.OrdinalIgnoreCase)) - { - writer.WriteAttributeString("command", Common.XmlTagRun); - writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixRun.Length)); - } - else if (item.StartsWith(Common.CmdPrefixSerial, StringComparison.OrdinalIgnoreCase)) - { - writer.WriteAttributeString("command", Common.XmlTagSerial); - writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixSerial.Length)); - } - else if (item.StartsWith(Common.CmdPrefixWindowMsg, StringComparison.OrdinalIgnoreCase)) - { - writer.WriteAttributeString("command", Common.XmlTagWindowMsg); - writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixWindowMsg.Length)); - } - else if (item.StartsWith(Common.CmdPrefixTcpMsg, StringComparison.OrdinalIgnoreCase)) - { - writer.WriteAttributeString("command", Common.XmlTagTcpMsg); - writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixTcpMsg.Length)); - } - else if (item.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) - { - writer.WriteAttributeString("command", Common.XmlTagKeys); - writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixKeys.Length)); - } - else if (item.StartsWith(Common.CmdPrefixMouse, StringComparison.OrdinalIgnoreCase)) - { - writer.WriteAttributeString("command", Common.XmlTagMouse); - writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixMouse.Length)); - } - else if (item.StartsWith(Common.CmdPrefixEject, StringComparison.OrdinalIgnoreCase)) - { - 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); - writer.WriteAttributeString("cmdproperty", String.Empty); - } - else if (item.StartsWith(Common.CmdPrefixHibernate, StringComparison.OrdinalIgnoreCase)) - { - writer.WriteAttributeString("command", Common.XmlTagHibernate); - writer.WriteAttributeString("cmdproperty", String.Empty); - } - else if (item.StartsWith(Common.CmdPrefixReboot, StringComparison.OrdinalIgnoreCase)) - { - writer.WriteAttributeString("command", Common.XmlTagReboot); - writer.WriteAttributeString("cmdproperty", String.Empty); - } - else if (item.StartsWith(Common.CmdPrefixShutdown, StringComparison.OrdinalIgnoreCase)) - { - writer.WriteAttributeString("command", Common.XmlTagShutdown); - writer.WriteAttributeString("cmdproperty", String.Empty); - } - else - { - IrssLog.Error("Cannot write unknown macro item ({0}) to file ({1}).", item, fileName); - } - + writer.WriteStartElement("item"); + writer.WriteAttributeString("command", item); writer.WriteEndElement(); } - writer.WriteEndElement(); // </macro> + writer.WriteEndElement(); writer.WriteEndDocument(); } } @@ -205,78 +129,12 @@ XmlDocument doc = new XmlDocument(); doc.Load(fileName); + XmlNodeList commandSequence = doc.DocumentElement.SelectNodes("item"); + listBoxMacro.Items.Clear(); - XmlNodeList commandSequence = doc.DocumentElement.SelectNodes("action"); - - string commandProperty; foreach (XmlNode item in commandSequence) - { - commandProperty = item.Attributes["cmdproperty"].Value; - - switch (item.Attributes["command"].Value) - { - case Common.XmlTagMacro: - listBoxMacro.Items.Add(Common.CmdPrefixMacro + commandProperty); - break; - - case Common.XmlTagBlast: - listBoxMacro.Items.Add(Common.CmdPrefixBlast + commandProperty); - break; - - case Common.XmlTagPause: - listBoxMacro.Items.Add(Common.CmdPrefixPause + commandProperty); - break; - - case Common.XmlTagRun: - listBoxMacro.Items.Add(Common.CmdPrefixRun + commandProperty); - break; - - case Common.XmlTagSerial: - listBoxMacro.Items.Add(Common.CmdPrefixSerial + commandProperty); - break; - - case Common.XmlTagWindowMsg: - listBoxMacro.Items.Add(Common.CmdPrefixWindowMsg + commandProperty); - break; - - case Common.XmlTagTcpMsg: - listBoxMacro.Items.Add(Common.CmdPrefixTcpMsg + commandProperty); - break; - - case Common.XmlTagKeys: - listBoxMacro.Items.Add(Common.CmdPrefixKeys + commandProperty); - break; - - case Common.XmlTagMouse: - listBoxMacro.Items.Add(Common.CmdPrefixMouse + commandProperty); - break; - - case Common.XmlTagEject: - 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; - - case Common.XmlTagReboot: - listBoxMacro.Items.Add(Common.CmdPrefixReboot); - break; - - case Common.XmlTagShutdown: - listBoxMacro.Items.Add(Common.CmdPrefixShutdown); - break; - } - } + listBoxMacro.Items.Add(item.Attributes["command"].Value); } catch (Exception ex) { @@ -294,97 +152,146 @@ if (comboBoxCommands.SelectedIndex == -1) return; - string selected = comboBoxCommands.SelectedItem as string; - - if (selected.Equals(Common.UITextRun, StringComparison.OrdinalIgnoreCase)) + try { - ExternalProgram externalProgram = new ExternalProgram(true); - if (externalProgram.ShowDialog(this) == DialogResult.OK) - listBoxMacro.Items.Add(Common.CmdPrefixRun + externalProgram.CommandString); - } - 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.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.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.Equals(Common.UITextTcpMsg, StringComparison.OrdinalIgnoreCase)) - { - TcpMessageCommand tcpMessageCommand = new TcpMessageCommand(); - if (tcpMessageCommand.ShowDialog(this) == DialogResult.OK) - listBoxMacro.Items.Add(Common.CmdPrefixTcpMsg + tcpMessageCommand.CommandString); - } - 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.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.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.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); - } - else if (selected.Equals(Common.UITextHibernate, StringComparison.OrdinalIgnoreCase)) - { - listBoxMacro.Items.Add(Common.CmdPrefixHibernate); - } - else if (selected.Equals(Common.UITextReboot, StringComparison.OrdinalIgnoreCase)) - { - listBoxMacro.Items.Add(Common.CmdPrefixReboot); - } - else if (selected.Equals(Common.UITextShutdown, StringComparison.OrdinalIgnoreCase)) - { - listBoxMacro.Items.Add(Common.CmdPrefixShutdown); - } - else if (selected.StartsWith(Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase)) - { - BlastCommand blastCommand = new BlastCommand( - new BlastIrDelegate(Program.BlastIR), - Common.FolderIRCommands, - Program.TransceiverInformation.Ports, - selected.Substring(Common.CmdPrefixBlast.Length)); + string selected = comboBoxCommands.SelectedItem as string; + string newCommand = null; - if (blastCommand.ShowDialog(this) == DialogResult.OK) - listBoxMacro.Items.Add(Common.CmdPrefixBlast + blastCommand.CommandString); + if (selected.Equals(Common.UITextRun, StringComparison.OrdinalIgnoreCase)) + { + ExternalProgram externalProgram = new ExternalProgram(); + if (externalProgram.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixRun + externalProgram.CommandString; + } + else if (selected.Equals(Common.UITextPause, StringComparison.OrdinalIgnoreCase)) + { + PauseTime pauseTime = new PauseTime(); + if (pauseTime.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixPause + pauseTime.Time.ToString(); + } + else if (selected.Equals(Common.UITextSerial, StringComparison.OrdinalIgnoreCase)) + { + SerialCommand serialCommand = new SerialCommand(); + if (serialCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixSerial + serialCommand.CommandString; + } + else if (selected.Equals(Common.UITextWindowMsg, StringComparison.OrdinalIgnoreCase)) + { + MessageCommand messageCommand = new MessageCommand(); + if (messageCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixWindowMsg + messageCommand.CommandString; + } + else if (selected.Equals(Common.UITextTcpMsg, StringComparison.OrdinalIgnoreCase)) + { + TcpMessageCommand tcpMessageCommand = new TcpMessageCommand(); + if (tcpMessageCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixTcpMsg + tcpMessageCommand.CommandString; + } + else if (selected.Equals(Common.UITextHttpMsg, StringComparison.OrdinalIgnoreCase)) + { + /* + HttpMessageCommand httpMessageCommand = new HttpMessageCommand(); + if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; + */ + } + else if (selected.Equals(Common.UITextKeys, StringComparison.OrdinalIgnoreCase)) + { + KeysCommand keysCommand = new KeysCommand(); + if (keysCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixKeys + keysCommand.CommandString; + } + else if (selected.Equals(Common.UITextMouse, StringComparison.OrdinalIgnoreCase)) + { + MouseCommand mouseCommand = new MouseCommand(); + if (mouseCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixMouse + mouseCommand.CommandString; + } + else if (selected.Equals(Common.UITextEject, StringComparison.OrdinalIgnoreCase)) + { + EjectCommand ejectCommand = new EjectCommand(); + if (ejectCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixEject + ejectCommand.CommandString; + } + else if (selected.Equals(Common.UITextPopup, StringComparison.OrdinalIgnoreCase)) + { + PopupMessage popupMessage = new PopupMessage(); + if (popupMessage.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixPopup + popupMessage.CommandString; + } + else if (selected.Equals(Common.UITextVirtualKB, StringComparison.OrdinalIgnoreCase)) + { + newCommand = Common.CmdPrefixVirtualKB; + } + else if (selected.Equals(Common.UITextSmsKB, StringComparison.OrdinalIgnoreCase)) + { + newCommand = Common.CmdPrefixSmsKB; + } + else if (selected.Equals(Common.UITextBeep, StringComparison.OrdinalIgnoreCase)) + { + BeepCommand beepCommand = new BeepCommand(); + if (beepCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixBeep + beepCommand.CommandString; + } + else if (selected.Equals(Common.UITextSound, StringComparison.OrdinalIgnoreCase)) + { + OpenFileDialog openFileDialog = new OpenFileDialog(); + openFileDialog.Filter = "Wave Files|*.WAV"; + openFileDialog.Multiselect = false; + + if (openFileDialog.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixSound + openFileDialog.FileName; + } + else if (selected.Equals(Common.UITextDisplay, StringComparison.OrdinalIgnoreCase)) + { + DisplayModeCommand displayModeCommand = new DisplayModeCommand(); + if (displayModeCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixDisplay + displayModeCommand.CommandString; + } + else if (selected.Equals(Common.UITextStandby, StringComparison.OrdinalIgnoreCase)) + { + newCommand = Common.CmdPrefixStandby; + } + else if (selected.Equals(Common.UITextHibernate, StringComparison.OrdinalIgnoreCase)) + { + newCommand = Common.CmdPrefixHibernate; + } + else if (selected.Equals(Common.UITextReboot, StringComparison.OrdinalIgnoreCase)) + { + newCommand = Common.CmdPrefixReboot; + } + else if (selected.Equals(Common.UITextShutdown, StringComparison.OrdinalIgnoreCase)) + { + newCommand = Common.CmdPrefixShutdown; + } + else if (selected.StartsWith(Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase)) + { + BlastCommand blastCommand = new BlastCommand( + new BlastIrDelegate(Program.BlastIR), + Common.FolderIRCommands, + Program.TransceiverInformation.Ports, + selected.Substring(Common.CmdPrefixBlast.Length)); + + if (blastCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixBlast + blastCommand.CommandString; + } + else if (selected.StartsWith(Common.CmdPrefixMacro, StringComparison.OrdinalIgnoreCase)) + { + newCommand = selected; + } + else + { + throw new ApplicationException(String.Format("Unknown command in macro command list \"{0}\"", selected)); + } + + if (!String.IsNullOrEmpty(newCommand)) + listBoxMacro.Items.Add(newCommand); } - else if (selected.StartsWith(Common.CmdPrefixMacro, StringComparison.OrdinalIgnoreCase)) + catch (Exception ex) { - listBoxMacro.Items.Add(selected); + IrssLog.Error(ex.ToString()); + MessageBox.Show(this, ex.Message, "Failed to add macro command", MessageBoxButtons.OK, MessageBoxIcon.Error); } - else - { - throw new ApplicationException(String.Format("Unknown command in macro command list \"{0}\"", selected)); - } } private void buttonMoveUp_Click(object sender, EventArgs e) @@ -434,16 +341,15 @@ return; } - string fileName = Program.FolderMacros + name + Common.FileExtensionMacro; - - WriteToFile(fileName); - try { + WriteToFile(Program.FolderMacros + name + Common.FileExtensionMacro); + Program.ProcessCommand(Common.CmdPrefixMacro + name, false); } catch (Exception ex) { + IrssLog.Error(ex.ToString()); MessageBox.Show(this, ex.Message, "Test failed", MessageBoxButtons.OK, MessageBoxIcon.Error); } } @@ -472,10 +378,16 @@ return; } - string fileName = Program.FolderMacros + name + Common.FileExtensionMacro; + try + { + WriteToFile(Program.FolderMacros + name + Common.FileExtensionMacro); + } + catch (Exception ex) + { + IrssLog.Error(ex.ToString()); + MessageBox.Show(this, ex.Message, "Failed writing macro to file", MessageBoxButtons.OK, MessageBoxIcon.Error); + } - WriteToFile(fileName); - this.DialogResult = DialogResult.OK; this.Close(); } @@ -485,132 +397,137 @@ if (listBoxMacro.SelectedIndex == -1) return; - string selected = listBoxMacro.SelectedItem as string; - - if (selected.StartsWith(Common.CmdPrefixPause, StringComparison.OrdinalIgnoreCase)) + try { - PauseTime pauseTime = new PauseTime(int.Parse(selected.Substring(Common.CmdPrefixPause.Length))); - if (pauseTime.ShowDialog(this) == DialogResult.Cancel) - return; + string selected = listBoxMacro.SelectedItem as string; + string newCommand = null; - int index = listBoxMacro.SelectedIndex; - listBoxMacro.Items.RemoveAt(index); - listBoxMacro.Items.Insert(index, Common.CmdPrefixPause + pauseTime.Time.ToString()); - listBoxMacro.SelectedIndex = index; - } - else if (selected.StartsWith(Common.CmdPrefixRun, StringComparison.OrdinalIgnoreCase)) - { - string[] commands = Common.SplitRunCommand(selected.Substring(Common.CmdPrefixRun.Length)); + if (selected.StartsWith(Common.CmdPrefixRun, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitRunCommand(selected.Substring(Common.CmdPrefixRun.Length)); - ExternalProgram executeProgram = new ExternalProgram(commands, true); - if (executeProgram.ShowDialog(this) == DialogResult.Cancel) - return; + ExternalProgram executeProgram = new ExternalProgram(commands); + if (executeProgram.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixRun + executeProgram.CommandString; + } + else if (selected.StartsWith(Common.CmdPrefixPause, StringComparison.OrdinalIgnoreCase)) + { + PauseTime pauseTime = new PauseTime(int.Parse(selected.Substring(Common.CmdPrefixPause.Length))); + if (pauseTime.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixPause + pauseTime.Time.ToString(); + } + else if (selected.StartsWith(Common.CmdPrefixSerial, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitSerialCommand(selected.Substring(Common.CmdPrefixSerial.Length)); - int index = listBoxMacro.SelectedIndex; - listBoxMacro.Items.RemoveAt(index); - listBoxMacro.Items.Insert(index, Common.CmdPrefixRun + executeProgram.CommandString); - listBoxMacro.SelectedIndex = index; - } - else if (selected.StartsWith(Common.CmdPrefixSerial, StringComparison.OrdinalIgnoreCase)) - { - string[] commands = Common.SplitSerialCommand(selected.Substring(Common.CmdPrefixSerial.Length)); + SerialCommand serialCommand = new SerialCommand(commands); + if (serialCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixSerial + serialCommand.CommandString; + } + else if (selected.StartsWith(Common.CmdPrefixWindowMsg, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitWindowMessageCommand(selected.Substring(Common.CmdPrefixWindowMsg.Length)); - SerialCommand serialCommand = new SerialCommand(commands); - if (serialCommand.ShowDialog(this) == DialogResult.Cancel) - return; + MessageCommand messageCommand = new MessageCommand(commands); + if (messageCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixWindowMsg + messageCommand.CommandString; + } + else if (selected.StartsWith(Common.CmdPrefixTcpMsg, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitTcpMessageCommand(selected.Substring(Common.CmdPrefixTcpMsg.Length)); - int index = listBoxMacro.SelectedIndex; - listBoxMacro.Items.RemoveAt(index); - listBoxMacro.Items.Insert(index, Common.CmdPrefixSerial + serialCommand.CommandString); - listBoxMacro.SelectedIndex = index; - } - else if (selected.StartsWith(Common.CmdPrefixWindowMsg, StringComparison.OrdinalIgnoreCase)) - { - string[] commands = Common.SplitWindowMessageCommand(selected.Substring(Common.CmdPrefixWindowMsg.Length)); + TcpMessageCommand tcpMessageCommand = new TcpMessageCommand(commands); + if (tcpMessageCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixTcpMsg + tcpMessageCommand.CommandString; + } + else if (selected.StartsWith(Common.CmdPrefixHttpMsg, StringComparison.OrdinalIgnoreCase)) + { + /* + string[] commands = Common.SplitHttpMessageCommand(selected.Substring(Common.CmdPrefixHttpMsg.Length)); + + HttpMessageCommand httpMessageCommand = new HttpMessageCommand(commands); + if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; + */ + } + else if (selected.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) + { + KeysCommand keysCommand = new KeysCommand(selected.Substring(Common.CmdPrefixKeys.Length)); + if (keysCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixKeys + keysCommand.CommandString; + } + else if (selected.StartsWith(Common.CmdPrefixMouse, StringComparison.OrdinalIgnoreCase)) + { + MouseCommand mouseCommand = new MouseCommand(selected.Substring(Common.CmdPrefixMouse.Length)); + if (mouseCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixMouse + mouseCommand.CommandString; + } + else if (selected.StartsWith(Common.CmdPrefixEject, StringComparison.OrdinalIgnoreCase)) + { + EjectCommand ejectCommand = new EjectCommand(selected.Substring(Common.CmdPrefixEject.Length)); + if (ejectCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixEject + ejectCommand.CommandString; + } + else if (selected.StartsWith(Common.CmdPrefixPopup, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitPopupCommand(selected.Substring(Common.CmdPrefixPopup.Length)); - MessageCommand messageCommand = new MessageCommand(commands); - if (messageCommand.ShowDialog(this) == DialogResult.Cancel) - return; + PopupMessage popupMessage = new PopupMessage(commands); + if (popupMessage.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixPopup + popupMessage.CommandString; + } + else if (selected.StartsWith(Common.CmdPrefixBeep, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitBeepCommand(selected.Substring(Common.CmdPrefixBeep.Length)); - int index = listBoxMacro.SelectedIndex; - listBoxMacro.Items.RemoveAt(index); - listBoxMacro.Items.Insert(index, Common.CmdPrefixWindowMsg + messageCommand.CommandString); - listBoxMacro.SelectedIndex = index; - } - else if (selected.StartsWith(Common.CmdPrefixTcpMsg, StringComparison.OrdinalIgnoreCase)) - { - string[] commands = Common.SplitTcpMessageCommand(selected.Substring(Common.CmdPrefixTcpMsg.Length)); - TcpMessageCommand tcpMessageCommand = new TcpMessageCommand(commands); - if (tcpMessageCommand.ShowDialog(this) == DialogResult.Cancel) - return; + BeepCommand beepCommand = new BeepCommand(commands); + if (beepCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixBeep + beepCommand.CommandString; + } + else if (selected.StartsWith(Common.CmdPrefixSound, StringComparison.OrdinalIgnoreCase)) + { + OpenFileDialog openFileDialog = new OpenFileDialog(); + openFileDialog.Filter = "Wave Files|*.WAV"; + openFileDialog.Multiselect = false; + openFileDialog.FileName = selected.Substring(Common.CmdPrefixSound.Length); - int index = listBoxMacro.SelectedIndex; - listBoxMacro.Items.RemoveAt(index); - listBoxMacro.Items.Insert(index, Common.CmdPrefixTcpMsg + tcpMessageCommand.CommandString); - listBoxMacro.SelectedIndex = index; - } - else if (selected.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) - { - KeysCommand keysCommand = new KeysCommand(selected.Substring(Common.CmdPrefixKeys.Length)); - if (keysCommand.ShowDialog(this) == DialogResult.Cancel) - return; + if (openFileDialog.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixSound + openFileDialog.FileName; + } + else if (selected.StartsWith(Common.CmdPrefixDisplay, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitDisplayModeCommand(selected.Substring(Common.CmdPrefixDisplay.Length)); - int index = listBoxMacro.SelectedIndex; - listBoxMacro.Items.RemoveAt(index); - listBoxMacro.Items.Insert(index, Common.CmdPrefixKeys + keysCommand.CommandString); - listBoxMacro.SelectedIndex = index; - } - else if (selected.StartsWith(Common.CmdPrefixMouse, StringComparison.OrdinalIgnoreCase)) - { - MouseCommand mouseCommand = new MouseCommand(selected.Substring(Common.CmdPrefixMouse.Length)); - if (mouseCommand.ShowDialog(this) == DialogResult.Cancel) - return; + DisplayModeCommand displayModeCommand = new DisplayModeCommand(commands); + if (displayModeCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixDisplay + displayModeCommand.CommandString; + } + else if (selected.StartsWith(Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitBlastCommand(selected.Substring(Common.CmdPrefixBlast.Length)); - int index = listBoxMacro.SelectedIndex; - listBoxMacro.Items.RemoveAt(index); - listBoxMacro.Items.Insert(index, Common.CmdPrefixMouse + mouseCommand.CommandString); - listBoxMacro.SelectedIndex = index; - } - else if (selected.StartsWith(Common.CmdPrefixEject, StringComparison.OrdinalIgnoreCase)) - { - EjectCommand ejectCommand = new EjectCommand(selected.Substring(Common.CmdPrefixEject.Length)); - if (ejectCommand.ShowDialog(this) == DialogResult.Cancel) - return; + BlastCommand blastCommand = new BlastCommand( + new BlastIrDelegate(Program.BlastIR), + Common.FolderIRCommands, + Program.TransceiverInformation.Ports, + commands); - int index = listBoxMacro.SelectedIndex; - listBoxMacro.Items.RemoveAt(index); - 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; + if (blastCommand.ShowDialog(this) == DialogResult.OK) + newCommand = Common.CmdPrefixBlast + blastCommand.CommandString; + } - int index = listBoxMacro.SelectedIndex; - listBoxMacro.Items.RemoveAt(index); - listBoxMacro.Items.Insert(index, Common.CmdPrefixPopup + popupMessage.CommandString); - listBoxMacro.SelectedIndex = index; + if (!String.IsNullOrEmpty(newCommand)) + { + int index = listBoxMacro.SelectedIndex; + listBoxMacro.Items.RemoveAt(index); + listBoxMacro.Items.Insert(index, newCommand); + listBoxMacro.SelectedIndex = index; + } } - else if (selected.StartsWith(Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase)) + catch (Exception ex) { - string[] commands = Common.SplitBlastCommand(selected.Substring(Common.CmdPrefixBlast.Length)); - - BlastCommand blastCommand = new BlastCommand( - new BlastIrDelegate(Program.BlastIR), - Common.FolderIRCommands, - Program.TransceiverInformation.Ports, - commands); - - if (blastCommand.ShowDialog(this) == DialogResult.Cancel) - return; - - int index = listBoxMacro.SelectedIndex; - listBoxMacro.Items.RemoveAt(index); - listBoxMacro.Items.Insert(index, Common.CmdPrefixBlast + blastCommand.CommandString); - listBoxMacro.SelectedIndex = index; + IrssLog.Error(ex.ToString()); + MessageBox.Show(this, ex.Message, "Failed to edit macro item", MessageBoxButtons.OK, MessageBoxIcon.Error); } } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-12-10 13:54:01 UTC (rev 1141) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-12-11 07:00:22 UTC (rev 1142) @@ -972,7 +972,7 @@ if (selected.Equals(Common.UITextRun, StringComparison.OrdinalIgnoreCase)) { - ExternalProgram externalProgram = new ExternalProgram(true); + ExternalProgram externalProgram = new ExternalProgram(); if (externalProgram.ShowDialog(this) == DialogResult.Cancel) return; @@ -1046,7 +1046,7 @@ if (command.StartsWith(Common.CmdPrefixRun, StringComparison.OrdinalIgnoreCase)) { string[] commands = Common.SplitRunCommand(command.Substring(Common.CmdPrefixRun.Length)); - ExternalProgram externalProgram = new ExternalProgram(commands, true); + ExternalProgram externalProgram = new ExternalProgram(commands); if (externalProgram.ShowDialog(this) == DialogResult.Cancel) return; Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-12-10 13:54:01 UTC (rev 1141) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-12-11 07:00:22 UTC (rev 1142) @@ -1072,28 +1072,63 @@ } else if (command.StartsWith(Common.CmdPrefixHibernate, StringComparison.OrdinalIgnoreCase)) { - if (!Common.Hibernate()) - IrssLog.Warn("Hibernate request was rejected by another application."); + if (_inConfiguration) + { + MessageBox.Show("Cannot Hibernate in configuration", Common.UITextHibernate, MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + 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."); + if (_inConfiguration) + { + MessageBox.Show("Cannot Log off in configuration", Common.UITextLogOff, MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + if (!Common.LogOff()) + IrssLog.Warn("LogOff request failed."); + } } else if (command.StartsWith(Common.CmdPrefixReboot, StringComparison.OrdinalIgnoreCase)) { - if (!Common.Reboot()) - IrssLog.Warn("Reboot request failed."); + if (_inConfiguration) + { + MessageBox.Show("Cannot Reboot in configuration", Common.UITextReboot, MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + if (!Common.Reboot()) + IrssLog.Warn("Reboot request failed."); + } } else if (command.StartsWith(Common.CmdPrefixShutdown, StringComparison.OrdinalIgnoreCase)) { - if (!Common.ShutDown()) - IrssLog.Warn("ShutDown request failed."); + if (_inConfiguration) + { + MessageBox.Show("Cannot ShutDown in configuration", Common.UITextShutdown, MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + 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."); + if (_inConfiguration) + { + MessageBox.Show("Cannot enter Standby in configuration", Common.UITextStandby, MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + if (!Common.Standby()) + IrssLog.Warn("Standby request was rejected by another application."); + } } else if (command.StartsWith(Common.CmdPrefixTranslator, StringComparison.OrdinalIgnoreCase)) { @@ -1103,7 +1138,7 @@ { if (_inConfiguration) { - MessageBox.Show("Cannot show Virtual Keyboard in configuration", "Virtual Keyboard", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show("Cannot show Virtual Keyboard in configuration", Common.UITextVirtualKB, MessageBoxButtons.OK, MessageBoxIcon.Information); } else { @@ -1112,6 +1147,19 @@ Keyboard.ProcessCommand(vk.TextOutput); } } + else if (command.StartsWith(Common.CmdPrefixSmsKB, StringComparison.OrdinalIgnoreCase)) + { + if (_inConfiguration) + { + MessageBox.Show("Cannot show SMS Keyboard in configuration", Common.UITextSmsKB, MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + IrssUtils.Forms.SmsKeyboard sms = new IrssUtils.Forms.SmsKeyboard(); + if (sms.ShowDialog() == DialogResult.OK) + Keyboard.ProcessCommand(sms.TextOutput); + } + } else { throw new ArgumentException(String.Format("Cannot process unrecognized command \"{0}\"", command), "command"); @@ -1139,154 +1187,13 @@ XmlDocument doc = new XmlDocument(); doc.Load(fileName); - if (doc.DocumentElement.InnerText.Contains(Common.XmlTagBlast) && !_registered) + if (doc.DocumentElement.InnerText.Contains(Common.CmdPrefixBlast) && !_registered) throw new ApplicationException("Cannot process Macro with Blast commands when not registered to an active IR Server"); - XmlNodeList commandSequence = doc.DocumentElement.SelectNodes("action"); - string commandProperty; + XmlNodeList commandSequence = doc.DocumentElement.SelectNodes("item"); foreach (XmlNode item in commandSequence) - { - commandProperty = item.Attributes["cmdproperty"].Value; - - switch (item.Attributes["command"].Value) - { - case Common.XmlTagMacro: - { - ProcMacro(FolderMacros + commandProperty + Common.FileExtensionMacro); - break; - } - - case Common.XmlTagBlast: - { - string[] commands = Common.SplitBlastCommand(commandProperty); - BlastIR(Common.FolderIRCommands + commands[0] + Common.FileExtensionIR, commands[1]); - break; - } - - case Common.XmlTagPause: - { - int sleep = int.Parse(commandProperty); - Thread.Sleep(sleep); - break; - } - - case Common.XmlTagRun: - { - string[] commands = Common.SplitRunCommand(commandProperty); - Common.ProcessRunCommand(commands); - break; - } - - case Common.XmlTagSerial: - { - string[] commands = Common.SplitSerialCommand(commandProperty); - Common.ProcessSerialCommand(commands); - break; - } - - case Common.XmlTagPopup: - { - string[] commands = Common.SplitPopupCommand(commandProperty); - MessageBox.Show(commands[1], commands[0], MessageBoxButtons.OK, MessageBoxIcon.Information); - break; - } - - case Common.XmlTagWindowMsg: - { - string[] commands = Common.SplitWindowMessageCommand(commandProperty); - Common.ProcessWindowMessageCommand(commands); - break; - } - - case Common.XmlTagTcpMsg: - { - string[] commands = Common.SplitTcpMessageCommand(commandProperty); - Common.ProcessTcpMessageCommand(commands); - break; - } - - case Common.XmlTagKeys: - { - if (_inConfiguration) - MessageBox.Show(commandProperty, Common.UITextKeys, MessageBoxButtons.OK, MessageBoxIcon.Information); - else - Common.ProcessKeyCommand(commandProperty); - break; - } - - case Common.XmlTagMouse: - { - Common.ProcessMouseCommand(commandProperty); - break; - } - - case Common.XmlTagEject: - { - Common.ProcessEjectCommand(commandProperty); - break; - } - - case Common.XmlTagStandby: - { - if (_inConfiguration) - MessageBox.Show("Cannot enter Standby in configuration", Common.UITextStandby, MessageBoxButtons.OK, MessageBoxIcon.Information); - else - Common.Standby(); - break; - } - - case Common.XmlTagHibernate: - { - if (_inConfiguration) - MessageBox.Show("Cannot Hibernate in configuration", Common.UITextHibernate, MessageBoxButtons.OK, MessageBoxIcon.Information); - else - Common.Hibernate(); - break; - } - - case Common.XmlTagShutdown: - { - if (_inConfiguration) - MessageBox.Show("Cannot ShutDown in configuration", Common.UITextShutdown, MessageBoxButtons.OK, MessageBoxIcon.Information); - else - Common.ShutDown(); - break; - } - - case Common.XmlTagReboot: - { - if (_inConfiguration) - MessageBox.Show("Cannot Reboot in configuration", Common.UITextReboot, MessageBoxButtons.OK, MessageBoxIcon.Information); - else - Common.Reboot(); - break; - } - - case Common.XmlTagLogOff: - { - if (_inConfiguration) - MessageBox.Show("Cannot Log off in configuration", Common.UITextLogOff, MessageBoxButtons.OK, MessageBoxIcon.Information); - else - 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; - } - } - } + ProcCommand(item.Attributes["command"].Value); } finally { Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-12-10 13:54:01 UTC (rev 1141) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-12-11 07:00:22 UTC (rev 1142) @@ -111,10 +111,11 @@ public const string CmdPrefixEject = "Eject: "; public const string CmdPrefixSound = "Sound: "; public const string CmdPrefixBeep = "Beep: "; - public const string CmdPrefixDisplay = "Display: "; + public const string CmdPrefixDisplay = "Display Mode: "; public const string CmdPrefixTranslator = "Show Translator OSD"; public const string CmdPrefixVirtualKB = "Show Virtual Keyboard"; + public const string CmdPrefixSmsKB = "Show SMS Keyboard"; // For MediaPortal ... public const string CmdPrefixMultiMap = "Multi-Mapping: "; @@ -124,42 +125,6 @@ #endregion Command Prefixes - #region XML Tags - - 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"; - - #endregion XML Tags - #region User Interface Text public const string UITextRun = "Run Program"; @@ -168,6 +133,7 @@ public const string UITextKeys = "Keystrokes Command"; public const string UITextWindowMsg = "Window Message"; public const string UITextTcpMsg = "TCP Message"; + public const string UITextHttpMsg = "HTTP Message"; public const string UITextGoto = "Go To Screen"; public const string UITextPopup = "Popup Message"; public const string UITextMultiMap = "Set Multi-Mapping"; @@ -187,10 +153,11 @@ public const string UITextEject = "Eject CD"; public const string UITextSound = "Play Sound"; public const string UITextBeep = "Beep"; - public const string UITextDisplay = "Display"; + public const string UITextDisplay = "Display Mode"; public const string UITextTranslator = "Show Translator OSD"; public const string UITextVirtualKB = "Show Virtual Keyboard"; + public const string UITextSmsKB = "Show SMS Keyboard"; #endregion User Interface Text @@ -882,10 +849,23 @@ { foreach (Match match in Regex.Matches(input, @"%\w+%")) { - string envVar = Environment.GetEnvironmentVariable(match.Value.Substring(1, match.Value.Length - 2)); + string varName = match.Value.Substring(1, match.Value.Length - 2); - if (envVar != null) - output = output.Replace(match.Value, envVar); + string envVar = String.Empty; + + switch (varName.ToUpperInvariant()) + { + case "$CLIPBOARD_TEXT$": + if (Clipboard.ContainsText()) + envVar = Clipboard.GetText(); + break; + + default: + envVar = Environment.GetEnvironmentVariable(varName); + break; + } + + output = output.Replace(match.Value, envVar); } } Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BeepCommand.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BeepCommand.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BeepCommand.Designer.cs 2007-12-11 07:00:22 UTC (rev 1142) @@ -0,0 +1,173 @@ +namespace IrssUtils.Forms +{ + partial class BeepCommand + { + /// <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.numericUpDownFreq = new System.Windows.Forms.NumericUpDown(); + this.buttonOK = new System.Windows.Forms.Button(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.labelFrequency = new System.Windows.Forms.Label(); + this.labelDuration = new System.Windows.Forms.Label(); + this.numericUpDownDuration = new System.Windows.Forms.NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownFreq)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownDuration)).BeginInit(); + this.SuspendLayout(); + // + // numericUpDownFreq + // + this.numericUpDownFreq.Increment = new decimal(new int[] { + 50, + 0, + 0, + 0}); + this.numericUpDownFreq.Location = new System.Drawing.Point(87, 8); + this.numericUpDownFreq.Maximum = new decimal(new int[] { + 32767, + 0, + 0, + 0}); + this.numericUpDownFreq.Minimum = new decimal(new int[] { + 37, + 0, + 0, + 0}); + this.numericUpDownFreq.Name = "numericUpDownFreq"; + this.numericUpDownFreq.Size = new System.Drawing.Size(73, 20); + this.numericUpDownFreq.TabIndex = 1; + this.numericUpDownFreq.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.numericUpDownFreq.Value = new decimal(new int[] { + 5000, + 0, + 0, + 0}); + // + // 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(24, 80); + 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); + // + // 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(96, 80); + 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); + // + // labelFrequency + // + this.labelFrequency.Location = new System.Drawing.Point(8, 8); + this.labelFrequency.Name = "labelFrequency"; + this.labelFrequency.Size = new System.Drawing.Size(80, 20); + this.labelFrequency.TabIndex = 4; + this.labelFrequency.Text = "Frequency:"; + this.labelFrequency.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // labelDuration + // + this.labelDuration.Location = new System.Drawing.Point(8, 40); + this.labelDuration.Name = "labelDuration"; + this.labelDuration.Size = new System.Drawing.Size(80, 20); + this.labelDuration.TabIndex = 5; + this.labelDuration.Text = "Duration:"; + this.labelDuration.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // numericUpDownDuration + // + this.numericUpDownDuration.Increment = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.numericUpDownDuration.Location = new System.Drawing.Point(88, 40); + this.numericUpDownDuration.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.numericUpDownDuration.Minimum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.numericUpDownDuration.Name = "numericUpDownDuration"; + this.numericUpDownDuration.Size = new System.Drawing.Size(73, 20); + this.numericUpDownDuration.TabIndex = 6; + this.numericUpDownDuration.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.numericUpDownDuration.Value = new decimal(new int[] { + 500, + 0, + 0, + 0}); + // + // BeepCommand + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + ... [truncated message content] |
From: <an...@us...> - 2007-12-11 14:47:44
|
Revision: 1145 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1145&view=rev Author: and-81 Date: 2007-12-11 06:47:41 -0800 (Tue, 11 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/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj trunk/plugins/IR Server Suite/Documentation/Plugins/stb.html trunk/plugins/IR Server Suite/Documentation/new.html 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/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/TV2 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/MCEReplacement/Forms/MacroEditor.cs Added Paths: ----------- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.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-11 14:00:24 UTC (rev 1144) +++ trunk/plugins/IR Server Suite/Applications/IR File Tool/IrDecoder.cs 2007-12-11 14:47:41 UTC (rev 1145) @@ -21,7 +21,7 @@ None, /// <summary> - /// Daewoo protocol. + /// Daewoo protocol. 38kHz carrier. /// </summary> Daewoo, /// <summary> @@ -29,75 +29,79 @@ /// </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. + /// 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. + /// 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, @@ -139,6 +143,7 @@ const uint PrefixRC6 = 0x000FC950; const uint PrefixRC6A = 0x000FCA90; + const uint PrefixRC6Foxtel = 0x000FCA93; const uint MceMouse = 1; const uint MceKeyboard = 4; @@ -614,7 +619,7 @@ bool pulse = (timingData[i] > 0); bool ignored = true; - //Trace.WriteLine("NEC - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), NEC_Data.State), timingData[i]); + //Trace.WriteLine(String.Format("NEC - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), NEC_Data.State), timingData[i])); switch (NEC_Data.State) { @@ -1142,6 +1147,8 @@ bool pulse = (timingData[i] > 0); bool ignored = true; + //Trace.WriteLine(String.Format("RC6 - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), RC6_Data.State), timingData[i])); + switch (RC6_Data.State) { @@ -1240,6 +1247,10 @@ { RC6_Data.Bit = 16; } + else if (RC6_Data.Header == PrefixRC6Foxtel) + { + RC6_Data.Bit = 20; + } else if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) { RC6_Data.Bit = 32; @@ -1338,8 +1349,7 @@ { bool first = false; - bool mceVariation; - bool aVariation; + IrProtocol protocolVariation = IrProtocol.RC6; if ((~RC6_Data.Code >> 16) == CustomerMce) // MCE RC6 variation { @@ -1353,10 +1363,9 @@ RC6_Data.Code &= ToggleMaskMce; - mceVariation = true; - aVariation = false; + protocolVariation = IrProtocol.RC6_MCE; } - else // Standard RC6 (Non-MCE) + else // Standard RC6 or Non-MCE variations { bool toggleOn = (RC6_Data.Toggle & 1) == 1; @@ -1369,20 +1378,13 @@ else RC6_Data.Toggle = 4; - mceVariation = false; - - if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) - aVariation = true; - else - aVariation = false; + if (RC6_Data.Header == PrefixRC6Foxtel) + protocolVariation = IrProtocol.RC6_Foxtel; + else if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) + protocolVariation = IrProtocol.RC6A; } - if (mceVariation) - remoteCallback(IrProtocol.RC6_MCE, RC6_Data.Code, first); - else if (aVariation) - remoteCallback(IrProtocol.RC6A, RC6_Data.Code, first); - else - remoteCallback(IrProtocol.RC6, RC6_Data.Code, first); + remoteCallback(protocolVariation, RC6_Data.Code, first); RC6_Data.State = RemoteDetectionState.HeaderPulse; } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-12-11 14:00:24 UTC (rev 1144) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-12-11 14:47:41 UTC (rev 1145) @@ -189,11 +189,9 @@ } else if (selected.Equals(Common.UITextHttpMsg, StringComparison.OrdinalIgnoreCase)) { - /* HttpMessageCommand httpMessageCommand = new HttpMessageCommand(); if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; - */ } else if (selected.Equals(Common.UITextKeys, StringComparison.OrdinalIgnoreCase)) { @@ -442,13 +440,11 @@ } else if (selected.StartsWith(Common.CmdPrefixHttpMsg, StringComparison.OrdinalIgnoreCase)) { - /* string[] commands = Common.SplitHttpMessageCommand(selected.Substring(Common.CmdPrefixHttpMsg.Length)); HttpMessageCommand httpMessageCommand = new HttpMessageCommand(commands); if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; - */ } else if (selected.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) { Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-12-11 14:00:24 UTC (rev 1144) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-12-11 14:47:41 UTC (rev 1145) @@ -667,8 +667,10 @@ WebRequest request = WebRequest.Create(uri); request.Timeout = int.Parse(commands[1]); - request.Credentials = new NetworkCredential(commands[2], commands[3]); + if (!String.IsNullOrEmpty(commands[2])) + request.Credentials = new NetworkCredential(commands[2], commands[3]); + using (WebResponse response = request.GetResponse()) using (Stream responseStream = response.GetResponseStream()) using (StreamReader streamReader = new StreamReader(responseStream)) Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.Designer.cs 2007-12-11 14:47:41 UTC (rev 1145) @@ -0,0 +1,232 @@ +namespace IrssUtils.Forms +{ + partial class HttpMessageCommand + { + /// <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.groupBoxMessageDetails = new System.Windows.Forms.GroupBox(); + this.numericUpDownTimeout = new System.Windows.Forms.NumericUpDown(); + this.labelTimeout = new System.Windows.Forms.Label(); + this.textBoxUsername = new System.Windows.Forms.TextBox(); + this.textBoxAddress = new System.Windows.Forms.TextBox(); + this.labelAddress = new System.Windows.Forms.Label(); + this.buttonOK = new System.Windows.Forms.Button(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.textBoxPassword = new System.Windows.Forms.TextBox(); + this.checkBoxUsernameAndPassword = new System.Windows.Forms.CheckBox(); + this.labelPassword = new System.Windows.Forms.Label(); + this.labelUsername = new System.Windows.Forms.Label(); + this.toolTips = new System.Windows.Forms.ToolTip(this.components); + this.groupBoxMessageDetails.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTimeout)).BeginInit(); + this.SuspendLayout(); + // + // groupBoxMessageDetails + // + this.groupBoxMessageDetails.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.groupBoxMessageDetails.Controls.Add(this.labelUsername); + this.groupBoxMessageDetails.Controls.Add(this.labelPassword); + this.groupBoxMessageDetails.Controls.Add(this.checkBoxUsernameAndPassword); + this.groupBoxMessageDetails.Controls.Add(this.textBoxPassword); + this.groupBoxMessageDetails.Controls.Add(this.numericUpDownTimeout); + this.groupBoxMessageDetails.Controls.Add(this.labelTimeout); + this.groupBoxMessageDetails.Controls.Add(this.textBoxUsername); + this.groupBoxMessageDetails.Controls.Add(this.textBoxAddress); + this.groupBoxMessageDetails.Controls.Add(this.labelAddress); + this.groupBoxMessageDetails.Location = new System.Drawing.Point(8, 8); + this.groupBoxMessageDetails.Name = "groupBoxMessageDetails"; + this.groupBoxMessageDetails.Size = new System.Drawing.Size(288, 176); + this.groupBoxMessageDetails.TabIndex = 0; + this.groupBoxMessageDetails.TabStop = false; + this.groupBoxMessageDetails.Text = "HTTP message details"; + // + // numericUpDownTimeout + // + this.numericUpDownTimeout.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.numericUpDownTimeout.Location = new System.Drawing.Point(104, 56); + this.numericUpDownTimeout.Maximum = new decimal(new int[] { + 120000, + 0, + 0, + 0}); + this.numericUpDownTimeout.Name = "numericUpDownTimeout"; + this.numericUpDownTimeout.Size = new System.Drawing.Size(72, 20); + this.numericUpDownTimeout.TabIndex = 3; + this.numericUpDownTimeout.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.toolTips.SetToolTip(this.numericUpDownTimeout, "Web request timeout"); + this.numericUpDownTimeout.Value = new decimal(new int[] { + 30000, + 0, + 0, + 0}); + // + // labelTimeout + // + this.labelTimeout.Location = new System.Drawing.Point(8, 56); + this.labelTimeout.Name = "labelTimeout"; + this.labelTimeout.Size = new System.Drawing.Size(96, 20); + this.labelTimeout.TabIndex = 2; + this.labelTimeout.Text = "Timeout:"; + this.labelTimeout.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // textBoxUsername + // + this.textBoxUsername.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxUsername.Location = new System.Drawing.Point(104, 112); + this.textBoxUsername.Name = "textBoxUsername"; + this.textBoxUsername.Size = new System.Drawing.Size(176, 20); + this.textBoxUsername.TabIndex = 6; + this.toolTips.SetToolTip(this.textBoxUsername, "Username for HTTP request"); + // + // textBoxAddress + // + this.textBoxAddress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxAddress.Location = new System.Drawing.Point(104, 24); + this.textBoxAddress.Name = "textBoxAddress"; + this.textBoxAddress.Size = new System.Drawing.Size(176, 20); + this.textBoxAddress.TabIndex = 1; + this.textBoxAddress.Text = "http://"; + this.toolTips.SetToolTip(this.textBoxAddress, "Web address to request"); + // + // labelAddress + // + this.labelAddress.Location = new System.Drawing.Point(8, 24); + this.labelAddress.Name = "labelAddress"; + this.labelAddress.Size = new System.Drawing.Size(96, 20); + this.labelAddress.TabIndex = 0; + this.labelAddress.Text = "Web address:"; + this.labelAddress.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // 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(160, 192); + this.buttonOK.Name = "buttonOK"; + this.buttonOK.Size = new System.Drawing.Size(64, 24); + this.buttonOK.TabIndex = 1; + 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(232, 192); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(64, 24); + this.buttonCancel.TabIndex = 2; + this.buttonCancel.Text = "Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; + this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + // + // textBoxPassword + // + this.textBoxPassword.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxPassword.Location = new System.Drawing.Point(104, 144); + this.textBoxPassword.Name = "textBoxPassword"; + this.textBoxPassword.Size = new System.Drawing.Size(176, 20); + this.textBoxPassword.TabIndex = 8; + this.toolTips.SetToolTip(this.textBoxPassword, "WARNING: This password is not securely stored."); + // + // checkBoxUsernameAndPassword + // + this.checkBoxUsernameAndPassword.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.checkBoxUsernameAndPassword.Location = new System.Drawing.Point(8, 88); + this.checkBoxUsernameAndPassword.Name = "checkBoxUsernameAndPassword"; + this.checkBoxUsernameAndPassword.Size = new System.Drawing.Size(272, 20); + this.checkBoxUsernameAndPassword.TabIndex = 4; + this.checkBoxUsernameAndPassword.Text = "Use a username and password"; + this.toolTips.SetToolTip(this.checkBoxUsernameAndPassword, "Use a username and password for the HTTP request"); + this.checkBoxUsernameAndPassword.UseVisualStyleBackColor = true; + // + // labelPassword + // + this.labelPassword.Location = new System.Drawing.Point(8, 144); + this.labelPassword.Name = "labelPassword"; + this.labelPassword.Size = new System.Drawing.Size(96, 20); + this.labelPassword.TabIndex = 7; + this.labelPassword.Text = "Password:"; + this.labelPassword.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // labelUsername + // + this.labelUsername.Location = new System.Drawing.Point(8, 112); + this.labelUsername.Name = "labelUsername"; + this.labelUsername.Size = new System.Drawing.Size(96, 20); + this.labelUsername.TabIndex = 5; + this.labelUsername.Text = "Username:"; + this.labelUsername.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // HttpMessageCommand + // + 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(304, 233); + this.Controls.Add(this.buttonCancel); + this.Controls.Add(this.buttonOK); + this.Controls.Add(this.groupBoxMessageDetails); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "HttpMessageCommand"; + this.ShowIcon = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "HTTP Message Command"; + this.groupBoxMessageDetails.ResumeLayout(false); + this.groupBoxMessageDetails.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTimeout)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBoxMessageDetails; + private System.Windows.Forms.Label labelAddress; + private System.Windows.Forms.NumericUpDown numericUpDownTimeout; + private System.Windows.Forms.Label labelTimeout; + private System.Windows.Forms.TextBox textBoxUsername; + private System.Windows.Forms.TextBox textBoxAddress; + private System.Windows.Forms.Button buttonOK; + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.TextBox textBoxPassword; + private System.Windows.Forms.CheckBox checkBoxUsernameAndPassword; + private System.Windows.Forms.Label labelPassword; + private System.Windows.Forms.Label labelUsername; + private System.Windows.Forms.ToolTip toolTips; + } +} \ No newline at end of file Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.cs (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.cs 2007-12-11 14:47:41 UTC (rev 1145) @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace IrssUtils.Forms +{ + + /// <summary> + /// HTTP Message Command form. + /// </summary> + public partial class HttpMessageCommand : Form + { + + #region Properties + + /// <summary> + /// Gets the command string. + /// </summary> + /// <value>The command string.</value> + public string CommandString + { + get + { + return String.Format("{0}|{1}|{2}|{3}", + textBoxAddress.Text, + numericUpDownTimeout.Value.ToString(), + checkBoxUsernameAndPassword.Checked ? textBoxUsername.Text : String.Empty, + checkBoxUsernameAndPassword.Checked ? textBoxPassword.Text : String.Empty); + } + } + + #endregion Properties + + #region Constructors + + /// <summary> + /// Initializes a new instance of the <see cref="TcpMessageCommand"/> class. + /// </summary> + public HttpMessageCommand() + { + InitializeComponent(); + } + /// <summary> + /// Initializes a new instance of the <see cref="TcpMessageCommand"/> class. + /// </summary> + /// <param name="commands">The command elements.</param> + public HttpMessageCommand(string[] commands) + : this() + { + if (commands == null) + throw new ArgumentNullException("commands"); + + textBoxAddress.Text = commands[0]; + numericUpDownTimeout.Value = Convert.ToDecimal(commands[1]); + textBoxUsername.Text = commands[2]; + textBoxPassword.Text = commands[3]; + } + + #endregion Constructors + + #region Buttons + + 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(); + } + + #endregion Buttons + + } + +} Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.resx =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.resx (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.resx 2007-12-11 14:47:41 UTC (rev 1145) @@ -0,0 +1,123 @@ +<?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="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> +</root> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj 2007-12-11 14:00:24 UTC (rev 1144) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj 2007-12-11 14:47:41 UTC (rev 1145) @@ -83,6 +83,12 @@ <Compile Include="Forms\BeepCommand.Designer.cs"> <DependentUpon>BeepCommand.cs</DependentUpon> </Compile> + <Compile Include="Forms\HttpMessageCommand.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="Forms\HttpMessageCommand.Designer.cs"> + <DependentUpon>HttpMessageCommand.cs</DependentUpon> + </Compile> <Compile Include="Forms\SmsKeyboard.cs"> <SubType>Form</SubType> </Compile> @@ -198,6 +204,10 @@ <DependentUpon>BeepCommand.cs</DependentUpon> <SubType>Designer</SubType> </EmbeddedResource> + <EmbeddedResource Include="Forms\HttpMessageCommand.resx"> + <DependentUpon>HttpMessageCommand.cs</DependentUpon> + <SubType>Designer</SubType> + </EmbeddedResource> <EmbeddedResource Include="Forms\SmsKeyboard.resx"> <DependentUpon>SmsKeyboard.cs</DependentUpon> <SubType>Designer</SubType> Modified: trunk/plugins/IR Server Suite/Documentation/Plugins/stb.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/Plugins/stb.html 2007-12-11 14:00:24 UTC (rev 1144) +++ trunk/plugins/IR Server Suite/Documentation/Plugins/stb.html 2007-12-11 14:47:41 UTC (rev 1145) @@ -9,18 +9,29 @@ <UL> <LI>ADB 3100</LI> <LI>ADB ABQ-1H4G</LI> +<LI>ADB SCV-3800C</LI> <LI>Amstrad DRX-300</LI> <LI>Coolsat</LI> <LI>D-Box</LI> <LI>Dilog DT-355</LI> <LI>DirecTV D10</LI> -<LI>DirecTV D10-100 (Serial)</LI> -<LI>DirecTV D10-200 (Serial)</LI> <LI>DirecTV HR10-250</LI> <LI>DirecTV R15</LI> <LI>Dish 301</LI> <LI>Dish 811</LI> <LI>DreamBox 7000</LI> +<LI>DSS DishPlayer 7200</LI> +<LI>Echostar 1000</LI> +<LI>Echostar 2500</LI> +<LI>Echostar 3000</LI> +<LI>Echostar 370</LI> +<LI>Echostar 3800</LI> +<LI>Echostar 4000</LI> +<LI>Echostar 4700</LI> +<LI>Echostar 4720</LI> +<LI>Echostar 4722</LI> +<LI>Echostar 6000</LI> +<LI>Echostar 7700</LI> <LI>Force 536</LI> <LI>Foxtel Digital DC420NF</LI> <LI>Foxtel STU100</LI> @@ -28,12 +39,14 @@ <LI>General Instruments DCT2224</LI> <LI>Israel HOT</LI> <LI>JVC TU-4700</LI> +<LI>Motorola DCT-2000</LI> +<LI>Motorola DCT-2244</LI> +<LI>Motorola DCT-6200</LI> <LI>MultiChoice DSD660</LI> <LI>Nokia 221T</LI> -<LI>Nokia 9800s and 9902s (Serial)</LI> <LI>Nokia 9800s</LI> +<LI>OnDigital</LI> <LI>OnDigital DTR730</LI> -<LI>OnDigital</LI> <LI>Pace 4100</LI> <LI>Panasat IRD624DSTV</LI> <LI>Pioneer BCT-1540</LI> @@ -42,10 +55,14 @@ <LI>Sagem D-Box II</LI> <LI>Sagem ICD-503</LI> <LI>Samsung SMT 2100C</LI> +<LI>Scientific Atlanta 8602</LI> +<LI>Scientific Atlanta Explorer 2000</LI> <LI>Scientific Atlanta Explorer 2100</LI> +<LI>Scientific Atlanta Explorer 3100</LI> <LI>Scientific Atlanta Explorer 3250</LI> <LI>Scientific Atlanta Explorer 4000DVB</LI> <LI>Scientific Atlanta Explorer 8300</LI> +<LI>Sky</LI> <LI>Sky DigiBox 2500N</LI> <LI>Sky DigiBox Amstrad</LI> <LI>Sky DigiBox TU-DSB20</LI> @@ -53,9 +70,14 @@ <LI>Sky DigiBox TU-DSB31</LI> <LI>Sky DigiBox TU-DSB40</LI> <LI>Sky Zenith</LI> -<LI>Sky</LI> <LI>Sky+ BSKYB 2200</LI> <LI>SkyNZ Pace DSR6000</LI> +<LI>Sony DHG-M55CV</LI> +<LI>Sony SAS-A3</LI> +<LI>Sony SAS-A4</LI> +<LI>Sony SAT-A2</LI> +<LI>Sony SAT-A3</LI> +<LI>Sony SAT-A50</LI> <LI>Xsat CDTV-410</LI> </UL> Modified: trunk/plugins/IR Server Suite/Documentation/new.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/new.html 2007-12-11 14:00:24 UTC (rev 1144) +++ trunk/plugins/IR Server Suite/Documentation/new.html 2007-12-11 14:47:41 UTC (rev 1145) @@ -27,7 +27,11 @@ <LI>Added support for the RedEye blaster device.</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> -<LI>Re-synchronized InputHandler with MediaPortal</LI> +<LI>Re-synchronized InputHandler with MediaPortal.</LI> +<LI>Jens has helped me get 64-bit MCE remote support working properly, finally! :)</LI> +<LI>Added a swag of new STB presets.</LI> +<LI>Added RC6 Foxtel variation support for MCE Remote protocol decoding.</LI> +<LI>Simplified Macro file format. Old macro's must be converted or rebuilt. This change will speed up the introduction of new features.</LI> </UL></P> <BR> 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-11 14:00:24 UTC (rev 1144) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IrDecoder.cs 2007-12-11 14:47:41 UTC (rev 1145) @@ -21,7 +21,7 @@ None, /// <summary> - /// Daewoo protocol. + /// Daewoo protocol. 38kHz carrier. /// </summary> Daewoo, /// <summary> @@ -29,75 +29,79 @@ /// </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. + /// 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. + /// 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, @@ -139,6 +143,7 @@ const uint PrefixRC6 = 0x000FC950; const uint PrefixRC6A = 0x000FCA90; + const uint PrefixRC6Foxtel = 0x000FCA93; const uint MceMouse = 1; const uint MceKeyboard = 4; @@ -614,7 +619,7 @@ bool pulse = (timingData[i] > 0); bool ignored = true; - //Trace.WriteLine("NEC - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), NEC_Data.State), timingData[i]); + //Trace.WriteLine(String.Format("NEC - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), NEC_Data.State), timingData[i])); switch (NEC_Data.State) { @@ -1142,6 +1147,8 @@ bool pulse = (timingData[i] > 0); bool ignored = true; + //Trace.WriteLine(String.Format("RC6 - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), RC6_Data.State), timingData[i])); + switch (RC6_Data.State) { @@ -1240,6 +1247,10 @@ { RC6_Data.Bit = 16; } + else if (RC6_Data.Header == PrefixRC6Foxtel) + { + RC6_Data.Bit = 20; + } else if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) { RC6_Data.Bit = 32; @@ -1338,8 +1349,7 @@ { bool first = false; - bool mceVariation; - bool aVariation; + IrProtocol protocolVariation = IrProtocol.RC6; if ((~RC6_Data.Code >> 16) == CustomerMce) // MCE RC6 variation { @@ -1353,10 +1363,9 @@ RC6_Data.Code &= ToggleMaskMce; - mceVariation = true; - aVariation = false; + protocolVariation = IrProtocol.RC6_MCE; } - else // Standard RC6 (Non-MCE) + else // Standard RC6 or Non-MCE variations { bool toggleOn = (RC6_Data.Toggle & 1) == 1; @@ -1369,20 +1378,13 @@ else RC6_Data.Toggle = 4; - mceVariation = false; - - if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) - aVariation = true; - else - aVariation = false; + if (RC6_Data.Header == PrefixRC6Foxtel) + protocolVariation = IrProtocol.RC6_Foxtel; + else if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) + protocolVariation = IrProtocol.RC6A; } - if (mceVariation) - remoteCallback(IrProtocol.RC6_MCE, RC6_Data.Code, first); - else if (aVariation) - remoteCallback(IrProtocol.RC6A, RC6_Data.Code, first); - else - remoteCallback(IrProtocol.RC6, RC6_Data.Code, first); + remoteCallback(protocolVariation, RC6_Data.Code, first); RC6_Data.State = RemoteDetectionState.HeaderPulse; } 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-11 14:00:24 UTC (rev 1144) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs 2007-12-11 14:47:41 UTC (rev 1145) @@ -73,6 +73,10 @@ /// </summary> RC6_MCE, /// <summary> + /// Foxtel's protocol variation of Philips RC6. 36kHz carrier. + /// </summary> + RC6_Foxtel, + /// <summary> /// RCA protocol. 56kHz carrier. /// </summary> RCA, @@ -139,6 +143,7 @@ const uint PrefixRC6 = 0x000FC950; const uint PrefixRC6A = 0x000FCA90; + const uint PrefixRC6Foxtel = 0x000FCA93; const uint MceMouse = 1; const uint MceKeyboard = 4; @@ -614,7 +619,7 @@ bool pulse = (timingData[i] > 0); bool ignored = true; - //Trace.WriteLine("NEC - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), NEC_Data.State), timingData[i]); + //Trace.WriteLine(String.Format("NEC - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), NEC_Data.State), timingData[i])); switch (NEC_Data.State) { @@ -1142,6 +1147,8 @@ bool pulse = (timingData[i] > 0); bool ignored = true; + //Trace.WriteLine(String.Format("RC6 - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), RC6_Data.State), timingData[i])); + switch (RC6_Data.State) { @@ -1240,6 +1247,10 @@ { RC6_Data.Bit = 16; } + else if (RC6_Data.Header == PrefixRC6Foxtel) + { + RC6_Data.Bit = 20; + } else if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) { RC6_Data.Bit = 32; @@ -1338,8 +1349,7 @@ { bool first = false; - bool mceVariation; - bool aVariation; + IrProtocol protocolVariation = IrProtocol.RC6; if ((~RC6_Data.Code >> 16) == CustomerMce) // MCE RC6 variation { @@ -1353,10 +1363,9 @@ RC6_Data.Code &= ToggleMaskMce; - mceVariation = true; - aVariation = false; + protocolVariation = IrProtocol.RC6_MCE; } - else // Standard RC6 (Non-MCE) + else // Standard RC6 or Non-MCE variations { bool toggleOn = (RC6_Data.Toggle & 1) == 1; @@ -1369,20 +1378,13 @@ else RC6_Data.Toggle = 4; - mceVariation = false; - - if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) - aVariation = true; - else - aVariation = false; + if (RC6_Data.Header == PrefixRC6Foxtel) + protocolVariation = IrProtocol.RC6_Foxtel; + else if ((RC6_Data.Header & RC6HeaderMask) == PrefixRC6A) + protocolVariation = IrProtocol.RC6A; } - if (mceVariation) - remoteCallback(IrProtocol.RC6_MCE, RC6_Data.Code, first); - else if (aVariation) - remoteCallback(IrProtocol.RC6A, RC6_Data.Code, first); - else - remoteCallback(IrProtocol.RC6, RC6_Data.Code, first); + remoteCallback(protocolVariation, RC6_Data.Code, first); RC6_Data.State = RemoteDetectionState.HeaderPulse; } Modified: 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/MacroEditor.cs 2007-12-11 14:00:24 UTC (rev 1144) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/MacroEditor.cs 2007-12-11 14:47:41 UTC (rev 1145) @@ -195,11 +195,9 @@ } else if (selected.Equals(Common.UITextHttpMsg, StringComparison.OrdinalIgnoreCase)) { - /* HttpMessageCommand httpMessageCommand = new HttpMessageCommand(); if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; - */ } else if (selected.Equals(Common.UITextKeys, StringComparison.OrdinalIgnoreCase)) { @@ -472,13 +470,11 @@ } else if (selected.StartsWith(Common.CmdPrefixHttpMsg, StringComparison.OrdinalIgnoreCase)) { - /* string[] commands = Common.SplitHttpMessageCommand(selected.Substring(Common.CmdPrefixHttpMsg.Length)); HttpMessageCommand httpMessageCommand = new HttpMessageCommand(commands); if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; - */ } else if (selected.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) { Modified: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/MacroEditor.cs 2007-12-11 14:00:24 UTC (rev 1144) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/MacroEditor.cs 2007-12-11 14:47:41 UTC (rev 1145) @@ -197,11 +197,9 @@ } else if (selected.Equals(Common.UITextHttpMsg, StringComparison.OrdinalIgnoreCase)) { - /* HttpMessageCommand httpMessageCommand = new HttpMessageCommand(); if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; - */ } else if (selected.Equals(Common.UITextKeys, StringComparison.OrdinalIgnoreCase)) { @@ -482,13 +480,11 @@ } else if (selected.StartsWith(Common.CmdPrefixHttpMsg, StringComparison.OrdinalIgnoreCase)) { - /* string[] commands = Common.SplitHttpMessageCommand(selected.Substring(Common.CmdPrefixHttpMsg.Length)); HttpMessageCommand httpMessageCommand = new HttpMessageCommand(commands); if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; - */ } else if (selected.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) { Modified: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/MacroEditor.cs 2007-12-11 14:00:24 UTC (rev 1144) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/MacroEditor.cs 2007-12-11 14:47:41 UTC (rev 1145) @@ -190,11 +190,9 @@ } else if (selected.Equals(Common.UITextHttpMsg, StringComparison.OrdinalIgnoreCase)) { - /* HttpMessageCommand httpMessageCommand = new HttpMessageCommand(); if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; - */ } else if (selected.Equals(Common.UITextKeys, StringComparison.OrdinalIgnoreCase)) { @@ -438,13 +436,11 @@ } else if (selected.StartsWith(Common.CmdPrefixHttpMsg, StringComparison.OrdinalIgnoreCase)) { - /* string[] commands = Common.SplitHttpMessageCommand(selected.Substring(Common.CmdPrefixHttpMsg.Length)); HttpMessageCommand httpMessageCommand = new HttpMessageCommand(commands); if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; - */ } else if (selected.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) { Modified: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/MacroEditor.cs 2007-12-11 14:00:24 UTC (rev 1144) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/MacroEditor.cs 2007-12-11 14:47:41 UTC (rev 1145) @@ -180,11 +180,9 @@ } else if (selected.Equals(Common.UITextHttpMsg, StringComparison.OrdinalIgnoreCase)) { - /* HttpMessageCommand httpMessageCommand = new HttpMessageCommand(); if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; - */ } else if (selected.Equals(Common.UITextKeys, StringComparison.OrdinalIgnoreCase)) { @@ -392,13 +390,11 @@ } else if (selected.StartsWith(Common.CmdPrefixHttpMsg, StringComparison.OrdinalIgnoreCase)) { - /* string[] commands = Common.SplitHttpMessageCommand(selected.Substring(Common.CmdPrefixHttpMsg.Length)); HttpMessageCommand httpMessageCommand = new HttpMessageCommand(commands); if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; - */ } else if (selected.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) { Modified: trunk/plugins/MCEReplacement/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/MCEReplacement/Forms/MacroEditor.cs 2007-12-11 14:00:24 UTC (rev 1144) +++ trunk/plugins/MCEReplacement/Forms/MacroEditor.cs 2007-12-11 14:47:41 UTC (rev 1145) @@ -197,11 +197,9 @@ } else if (selected.Equals(Common.UITextHttpMsg, StringComparison.OrdinalIgnoreCase)) { - /* HttpMessageCommand httpMessageCommand = new HttpMessageCommand(); if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; - */ } else if (selected.Equals(Common.UITextKeys, StringComparison.OrdinalIgnoreCase)) { @@ -482,13 +480,11 @@ } else if (selected.StartsWith(Common.CmdPrefixHttpMsg, StringComparison.OrdinalIgnoreCase)) { - /* string[] commands = Common.SplitHttpMessageCommand(selected.Substring(Common.CmdPrefixHttpMsg.Length)); HttpMessageCommand httpMessageCommand = new HttpMessageCommand(commands); if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; - */ } else if (selected.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2007-12-17 05:55:31
|
Revision: 1161 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1161&view=rev Author: and-81 Date: 2007-12-16 21:55:29 -0800 (Sun, 16 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.Designer.cs trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.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/Program.cs trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs 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/Forms/HttpMessageCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MessageCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IRServerInfo.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj trunk/plugins/IR Server Suite/Documentation/ehome_driver.html trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Configure.Designer.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Configure.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Microsoft MCE Transceiver.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/Input Service/Input Service/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/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/ExternalChannels.designer.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/ExternalChannels.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 trunk/plugins/MCEReplacement/Forms/ExternalChannels.cs trunk/plugins/MCEReplacement/Forms/ExternalChannels.designer.cs trunk/plugins/MCEReplacement/Forms/StbSetup.cs trunk/plugins/MCEReplacement/MCEReplacement.cs Added Paths: ----------- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.resx trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.resx trunk/plugins/IR Server Suite/Set Top Boxes/Dreambox HTTP TEST.xml Removed Paths: ------------- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Advanced.Designer.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Advanced.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Advanced.resx Modified: trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.Designer.cs 2007-12-14 15:40:14 UTC (rev 1160) +++ trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.Designer.cs 2007-12-17 05:55:29 UTC (rev 1161) @@ -48,7 +48,6 @@ this.groupBoxCommands = new System.Windows.Forms.GroupBox(); this.comboBoxPort = new System.Windows.Forms.ComboBox(); this.toolTips = new System.Windows.Forms.ToolTip(this.components); - this.buttonIRBlastAutoTest = new System.Windows.Forms.Button(); this.buttonHelp = new System.Windows.Forms.Button(); this.groupBoxStatus.SuspendLayout(); this.groupBoxRemoteButton.SuspendLayout(); @@ -270,18 +269,6 @@ this.comboBoxPort.TabIndex = 2; this.toolTips.SetToolTip(this.comboBoxPort, "Port for blasting IR"); // - // buttonIRBlastAutoTest - // - this.buttonIRBlastAutoTest.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.buttonIRBlastAutoTest.Location = new System.Drawing.Point(336, 416); - this.buttonIRBlastAutoTest.Name = "buttonIRBlastAutoTest"; - this.buttonIRBlastAutoTest.Size = new System.Drawing.Size(112, 24); - this.buttonIRBlastAutoTest.TabIndex = 5; - this.buttonIRBlastAutoTest.Text = "IRBlast Auto-Test"; - this.toolTips.SetToolTip(this.buttonIRBlastAutoTest, "Runs a random number blasting test"); - this.buttonIRBlastAutoTest.UseVisualStyleBackColor = true; - this.buttonIRBlastAutoTest.Click += new System.EventHandler(this.buttonAutoTest_Click); - // // buttonHelp // this.buttonHelp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); @@ -297,8 +284,7 @@ // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(456, 446); - this.Controls.Add(this.buttonIRBlastAutoTest); + this.ClientSize = new System.Drawing.Size(464, 455); this.Controls.Add(this.buttonHelp); this.Controls.Add(this.groupBoxCommands); this.Controls.Add(this.groupBoxSetup); @@ -341,7 +327,6 @@ private System.Windows.Forms.ComboBox comboBoxPort; private System.Windows.Forms.ComboBox comboBoxComputer; private System.Windows.Forms.Button buttonHelp; - private System.Windows.Forms.Button buttonIRBlastAutoTest; } } Modified: trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.cs 2007-12-14 15:40:14 UTC (rev 1160) +++ trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.cs 2007-12-17 05:55:29 UTC (rev 1161) @@ -527,41 +527,6 @@ #endregion Controls - Thread AutoTest; - - private void buttonAutoTest_Click(object sender, EventArgs e) - { - AutoTest = new Thread(new ThreadStart(AutoTestThread)); - AutoTest.Name = "DebugClient.AutoTest"; - AutoTest.IsBackground = true; - AutoTest.Start(); - } - - void AutoTestThread() - { - Random rand = new Random(); - - int randomNumber; - - Process process = new Process(); - process.StartInfo.FileName = "IRBlast-NoWindow.exe"; - process.StartInfo.WorkingDirectory = "C:\\Program Files\\IR Server Suite\\IR Blast\\"; - - while (true) - { - randomNumber = rand.Next(100000); - - this.Invoke(_addStatusLine, new Object[] { String.Format("AutoTest: {0}", randomNumber) }); - - process.StartInfo.Arguments = "-host localhost -pad 4 -channel " + randomNumber.ToString(); - - process.Start(); - process.WaitForExit(); - - Thread.Sleep(10000); - } - } - } } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-12-14 15:40:14 UTC (rev 1160) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-12-17 05:55:29 UTC (rev 1161) @@ -222,10 +222,10 @@ tabControl.SelectTab(tabPageMessage); switch (commands[0].ToUpperInvariant()) { - 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; + case Common.TargetActive: radioButtonActiveWindow.Checked = true; break; + case Common.TargetApplication: radioButtonApplication.Checked = true; break; + case Common.TargetClass: radioButtonClass.Checked = true; break; + case Common.TargetWindow: radioButtonWindowTitle.Checked = true; break; } textBoxMsgTarget.Text = commands[1]; @@ -386,20 +386,20 @@ if (radioButtonActiveWindow.Checked) { - target = Common.WMTargetActive; + target = Common.TargetActive; textBoxMsgTarget.Text = "*"; } else if (radioButtonApplication.Checked) { - target = Common.WMTargetApplication; + target = Common.TargetApplication; } else if (radioButtonClass.Checked) { - target = Common.WMTargetClass; + target = Common.TargetClass; } else if (radioButtonWindowTitle.Checked) { - target = Common.WMTargetWindow; + target = Common.TargetWindow; } 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-12-14 15:40:14 UTC (rev 1160) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/EditProgramForm.cs 2007-12-17 05:55:29 UTC (rev 1161) @@ -120,30 +120,32 @@ { try { - Process process = new Process(); - process.StartInfo.FileName = Filename; - process.StartInfo.WorkingDirectory = StartupFolder; - process.StartInfo.Arguments = Parameters; - process.StartInfo.WindowStyle = StartState; - process.StartInfo.UseShellExecute = UseShellExecute; + using (Process process = new Process()) + { + process.StartInfo.FileName = Filename; + process.StartInfo.WorkingDirectory = StartupFolder; + process.StartInfo.Arguments = Parameters; + process.StartInfo.WindowStyle = StartState; + process.StartInfo.UseShellExecute = UseShellExecute; - IrssLog.Info("Launching program {0}", DisplayName); + IrssLog.Info("Launching program {0}", DisplayName); - process.Start(); + process.Start(); - // Give new process focus ... - if (StartState != ProcessWindowStyle.Hidden && ForceWindowFocus) - { - int attempt = 0; - while (!process.HasExited && attempt++ < 50) + // Give new process focus ... + if (StartState != ProcessWindowStyle.Hidden && ForceWindowFocus) { - if (process.MainWindowHandle != IntPtr.Zero) + int attempt = 0; + while (!process.HasExited && attempt++ < 50) { - Win32.SetForegroundWindow(process.MainWindowHandle, true); - break; + if (process.MainWindowHandle != IntPtr.Zero) + { + Win32.SetForegroundWindow(process.MainWindowHandle, true); + break; + } + + Thread.Sleep(500); } - - Thread.Sleep(500); } } } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-12-14 15:40:14 UTC (rev 1160) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-12-17 05:55:29 UTC (rev 1161) @@ -1052,6 +1052,16 @@ string[] commands = Common.SplitWindowMessageCommand(command.Substring(Common.CmdPrefixWindowMsg.Length)); Common.ProcessWindowMessageCommand(commands); } + else if (command.StartsWith(Common.CmdPrefixTcpMsg, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitTcpMessageCommand(command.Substring(Common.CmdPrefixTcpMsg.Length)); + Common.ProcessTcpMessageCommand(commands); + } + else if (command.StartsWith(Common.CmdPrefixHttpMsg, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitHttpMessageCommand(command.Substring(Common.CmdPrefixHttpMsg.Length)); + Common.ProcessHttpCommand(commands); + } else if (command.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) { string keyCommand = command.Substring(Common.CmdPrefixKeys.Length); @@ -1070,6 +1080,11 @@ string ejectCommand = command.Substring(Common.CmdPrefixEject.Length); Common.ProcessEjectCommand(ejectCommand); } + else if (command.StartsWith(Common.CmdPrefixPopup, StringComparison.OrdinalIgnoreCase)) + { + string[] commands = Common.SplitPopupCommand(command.Substring(Common.CmdPrefixPopup.Length)); + MessageBox.Show(commands[1], commands[0], MessageBoxButtons.OK, MessageBoxIcon.Information); + } else if (command.StartsWith(Common.CmdPrefixHibernate, StringComparison.OrdinalIgnoreCase)) { if (_inConfiguration) Modified: trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs 2007-12-14 15:40:14 UTC (rev 1160) +++ trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs 2007-12-17 05:55:29 UTC (rev 1161) @@ -436,22 +436,24 @@ } // Launch program - Process launch = new Process(); - launch.StartInfo.FileName = _programFile; - launch.StartInfo.WindowStyle = ProcessWindowStyle.Normal; - launch.StartInfo.UseShellExecute = true; - launch.Start(); + using (Process launch = new Process()) + { + launch.StartInfo.FileName = _programFile; + launch.StartInfo.WindowStyle = ProcessWindowStyle.Normal; + launch.StartInfo.UseShellExecute = true; + launch.Start(); - int attempt = 0; - while (!launch.HasExited && attempt++ < 50) - { - if (launch.MainWindowHandle != IntPtr.Zero) + int attempt = 0; + while (!launch.HasExited && attempt++ < 50) { - Win32.SetForegroundWindow(launch.MainWindowHandle, true); - break; + if (launch.MainWindowHandle != IntPtr.Zero) + { + Win32.SetForegroundWindow(launch.MainWindowHandle, true); + break; + } + + Thread.Sleep(500); } - - Thread.Sleep(500); } } catch (Exception ex) Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-12-14 15:40:14 UTC (rev 1160) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-12-17 05:55:29 UTC (rev 1161) @@ -99,6 +99,7 @@ public const string CmdPrefixGoto = "Goto: "; public const string CmdPrefixPopup = "Popup: "; public const string CmdPrefixMouseMode = "Mouse Mode: "; + public const string CmdPrefixCloseProgram = "Close Program: "; // public const string CmdPrefixWindowState = "Toggle Window State"; public const string CmdPrefixStandby = "Standby"; @@ -139,7 +140,7 @@ public const string UITextMultiMap = "Set Multi-Mapping"; public const string UITextMouseMode = "Set Mouse Mode"; public const string UITextInputLayer = "Toggle Input Handler Layer"; -// public const string UITextWindowState = "Change Window State"; + //public const string UITextWindowState = "Toggle Window State"; public const string UITextFocus = "Get Focus"; public const string UITextExit = "Exit MediaPortal"; @@ -183,26 +184,26 @@ #endregion Mouse Commands - #region Windows Message Target + #region Command Targets /// <summary> - /// Windows Message target the active window. + /// Target the active window. /// </summary> - public const string WMTargetActive = "ACTIVE"; + public const string TargetActive = "ACTIVE"; /// <summary> - /// Windows Message target an application. + /// Target an application. /// </summary> - public const string WMTargetApplication = "APPLICATION"; + public const string TargetApplication = "APPLICATION"; /// <summary> - /// Windows Message target a class. + /// Target a class. /// </summary> - public const string WMTargetClass = "CLASS"; + public const string TargetClass = "CLASS"; /// <summary> - /// Windows Message target a window title. + /// Target a window title. /// </summary> - public const string WMTargetWindow = "WINDOW"; + public const string TargetWindow = "WINDOW"; - #endregion Windows Message Target + #endregion Commad Targets #endregion Strings @@ -244,6 +245,10 @@ /// Number of Segments in a Display Mode Command. /// </summary> public const int SegmentsDisplayModeCommand = 4; + /// <summary> + /// Number of Segments in a Close Program Command. + /// </summary> + public const int SegmentsCloseProgramCommand = 2; #endregion Command Segments @@ -343,6 +348,16 @@ return SplitCommand(command, SegmentsDisplayModeCommand); } + /// <summary> + /// Splits a Close Program Command into it's component parts. + /// </summary> + /// <param name="command">The command to be split.</param> + /// <returns>Returns string[] of command elements.</returns> + public static string[] SplitCloseProgramCommand(string command) + { + return SplitCommand(command, SegmentsCloseProgramCommand); + } + static string[] SplitCommand(string command, int elements) { if (String.IsNullOrEmpty(command)) @@ -369,39 +384,39 @@ if (commands == null) throw new ArgumentNullException("commands"); - Process process = new Process(); - process.StartInfo.FileName = commands[0]; - process.StartInfo.WorkingDirectory = commands[1]; - process.StartInfo.Arguments = commands[2]; - process.StartInfo.WindowStyle = (ProcessWindowStyle)Enum.Parse(typeof(ProcessWindowStyle), commands[3], true); - process.StartInfo.CreateNoWindow = bool.Parse(commands[4]); - process.StartInfo.UseShellExecute = bool.Parse(commands[5]); + using (Process process = new Process()) + { + process.StartInfo.FileName = commands[0]; + process.StartInfo.WorkingDirectory = commands[1]; + process.StartInfo.Arguments = commands[2]; + process.StartInfo.WindowStyle = (ProcessWindowStyle)Enum.Parse(typeof(ProcessWindowStyle), commands[3], true); + process.StartInfo.CreateNoWindow = bool.Parse(commands[4]); + process.StartInfo.UseShellExecute = bool.Parse(commands[5]); - bool waitForExit = bool.Parse(commands[6]); - bool forceFocus = bool.Parse(commands[7]); + bool waitForExit = bool.Parse(commands[6]); + bool forceFocus = bool.Parse(commands[7]); - process.Start(); + process.Start(); - // Give new process focus ... - if (!process.StartInfo.CreateNoWindow && - process.StartInfo.WindowStyle != ProcessWindowStyle.Hidden && - forceFocus) - { - int attempt = 0; - while (!process.HasExited && attempt++ < 50) + // Give new process focus ... + if (!process.StartInfo.CreateNoWindow && process.StartInfo.WindowStyle != ProcessWindowStyle.Hidden && forceFocus) { - if (process.MainWindowHandle != IntPtr.Zero) + int attempt = 0; + while (!process.HasExited && attempt++ < 50) { - Win32.SetForegroundWindow(process.MainWindowHandle, true); - break; + if (process.MainWindowHandle != IntPtr.Zero) + { + Win32.SetForegroundWindow(process.MainWindowHandle, true); + break; + } + + Thread.Sleep(500); } + } - Thread.Sleep(500); - } + if (waitForExit) + process.WaitForExit(); } - - if (waitForExit) - process.WaitForExit(); } /// <summary> @@ -413,7 +428,7 @@ if (commands == null) throw new ArgumentNullException("commands"); - string command = Common.ReplaceEscapeCodes(commands[0]); + string command = ReplaceEscapeCodes(commands[0]); string comPort = commands[1]; int baudRate = int.Parse(commands[2]); @@ -463,11 +478,11 @@ string matchType = commands[0].ToUpperInvariant(); switch (matchType) { - case WMTargetActive: + case TargetActive: windowHandle = Win32.ForegroundWindow(); break; - case WMTargetApplication: + case TargetApplication: foreach (Process proc in Process.GetProcesses()) { try @@ -484,11 +499,11 @@ } break; - case WMTargetClass: + case TargetClass: windowHandle = Win32.FindWindowByClass(commands[1]); break; - case WMTargetWindow: + case TargetWindow: windowHandle = Win32.FindWindowByTitle(commands[1]); break; @@ -709,6 +724,48 @@ Display.ChangeDisplayMode(width, height, bpp, refresh); } + /// <summary> + /// Given a split Close Program Command this method will attempt to close a program by command structure supplied. + /// </summary> + /// <param name="commands">An array of arguments for the method (the output of SplitCloseProgramCommand).</param> + public static void ProcessCloseProgramCommand(string[] commands) + { + if (commands == null) + throw new ArgumentNullException("commands"); + + Process process; + + string matchType = commands[0].ToUpperInvariant(); + switch (matchType) + { + case TargetActive: + process = GetProcessByWindowHandle(Win32.ForegroundWindow()); + break; + + case TargetApplication: + process = GetProcessByFilePath(commands[1]); + break; + + case TargetClass: + process = GetProcessByWindowHandle(Win32.FindWindowByClass(commands[1])); + break; + + case TargetWindow: + process = GetProcessByWindowTitle(commands[1]); + break; + + default: + throw new ArgumentOutOfRangeException("commands", commands[0], "Invalid close program target"); + } + + if (process == null) + throw new ApplicationException(String.Format("Close Program target ({0}) not found", commands[0])); + + EndProcess(process, 5000); + + process.Close(); + } + #endregion Command Execution #region Misc @@ -919,6 +976,77 @@ return Win32.WindowsExit(Win32.ExitWindows.ShutDown, Win32.ShutdownReasons.FlagUserDefined); } + + static Process GetProcessByWindowHandle(IntPtr windowHandle) + { + foreach (Process process in Process.GetProcesses()) + { + IntPtr procWindowHandle; + try { procWindowHandle = process.MainWindowHandle; } + catch { continue; } + + if (procWindowHandle == windowHandle) + return process; + } + + return null; + } + + static Process GetProcessByWindowTitle(string windowTitle) + { + foreach (Process process in Process.GetProcesses()) + { + string procWindowTitle; + try { procWindowTitle = process.MainWindowTitle; } + catch { continue; } + + if (procWindowTitle.Equals(windowTitle, StringComparison.OrdinalIgnoreCase)) + return process; + } + + return null; + } + + static Process GetProcessByFilePath(string filePath) + { + foreach (Process process in Process.GetProcesses()) + { + string procFilePath; + try { procFilePath = process.MainModule.FileName; } + catch { continue; } + + if (procFilePath.Equals(filePath, StringComparison.OrdinalIgnoreCase)) + return process; + } + + return null; + } + + static Process GetProcessByFileName(string fileName) + { + foreach (Process process in Process.GetProcesses()) + { + string procFileName; + try { procFileName = process.MainModule.ModuleName; } + catch { continue; } + + if (procFileName.Equals(fileName, StringComparison.OrdinalIgnoreCase)) + return process; + } + + return null; + } + + static void EndProcess(Process process, int timeout) + { + if (process.CloseMainWindow()) + process.WaitForExit(timeout); + + if (!process.HasExited) + process.Kill(); + } + + #endregion Misc #endregion Methods Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.Designer.cs 2007-12-17 05:55:29 UTC (rev 1161) @@ -0,0 +1,189 @@ +namespace IrssUtils.Forms +{ + + partial class CloseProgramCommand + { + + /// <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.buttonFindTarget = new System.Windows.Forms.Button(); + this.textBoxTarget = new System.Windows.Forms.TextBox(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.buttonOK = new System.Windows.Forms.Button(); + this.groupBoxTarget = new System.Windows.Forms.GroupBox(); + this.radioButtonWindowTitle = new System.Windows.Forms.RadioButton(); + this.radioButtonClass = new System.Windows.Forms.RadioButton(); + this.radioButtonApplication = new System.Windows.Forms.RadioButton(); + this.radioButtonActiveWindow = new System.Windows.Forms.RadioButton(); + this.toolTips = new System.Windows.Forms.ToolTip(this.components); + this.groupBoxTarget.SuspendLayout(); + this.SuspendLayout(); + // + // buttonFindTarget + // + this.buttonFindTarget.Location = new System.Drawing.Point(240, 80); + this.buttonFindTarget.Name = "buttonFindTarget"; + this.buttonFindTarget.Size = new System.Drawing.Size(24, 20); + this.buttonFindTarget.TabIndex = 5; + this.buttonFindTarget.Text = "..."; + this.toolTips.SetToolTip(this.buttonFindTarget, "Locate a target to close"); + this.buttonFindTarget.UseVisualStyleBackColor = true; + this.buttonFindTarget.Click += new System.EventHandler(this.buttonFindMsgApp_Click); + // + // textBoxTarget + // + this.textBoxTarget.Location = new System.Drawing.Point(8, 80); + this.textBoxTarget.Name = "textBoxTarget"; + this.textBoxTarget.Size = new System.Drawing.Size(224, 20); + this.textBoxTarget.TabIndex = 4; + this.toolTips.SetToolTip(this.textBoxTarget, "Program to close"); + // + // buttonCancel + // + this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(216, 128); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(64, 24); + this.buttonCancel.TabIndex = 2; + 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.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonOK.Location = new System.Drawing.Point(144, 128); + this.buttonOK.Name = "buttonOK"; + this.buttonOK.Size = new System.Drawing.Size(64, 24); + this.buttonOK.TabIndex = 1; + this.buttonOK.Text = "OK"; + this.buttonOK.UseVisualStyleBackColor = true; + this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); + // + // groupBoxTarget + // + this.groupBoxTarget.Controls.Add(this.radioButtonWindowTitle); + this.groupBoxTarget.Controls.Add(this.radioButtonClass); + this.groupBoxTarget.Controls.Add(this.radioButtonApplication); + this.groupBoxTarget.Controls.Add(this.radioButtonActiveWindow); + this.groupBoxTarget.Controls.Add(this.textBoxTarget); + this.groupBoxTarget.Controls.Add(this.buttonFindTarget); + this.groupBoxTarget.Location = new System.Drawing.Point(8, 8); + this.groupBoxTarget.Name = "groupBoxTarget"; + this.groupBoxTarget.Size = new System.Drawing.Size(272, 112); + this.groupBoxTarget.TabIndex = 0; + this.groupBoxTarget.TabStop = false; + this.groupBoxTarget.Text = "Target"; + // + // radioButtonWindowTitle + // + this.radioButtonWindowTitle.Location = new System.Drawing.Point(152, 48); + this.radioButtonWindowTitle.Name = "radioButtonWindowTitle"; + this.radioButtonWindowTitle.Size = new System.Drawing.Size(112, 16); + this.radioButtonWindowTitle.TabIndex = 3; + this.radioButtonWindowTitle.TabStop = true; + this.radioButtonWindowTitle.Text = "Window title"; + this.toolTips.SetToolTip(this.radioButtonWindowTitle, "Close the window with the specified title"); + this.radioButtonWindowTitle.UseVisualStyleBackColor = true; + this.radioButtonWindowTitle.CheckedChanged += new System.EventHandler(this.radioButtonWindowTitle_CheckedChanged); + // + // radioButtonClass + // + this.radioButtonClass.Location = new System.Drawing.Point(8, 48); + this.radioButtonClass.Name = "radioButtonClass"; + this.radioButtonClass.Size = new System.Drawing.Size(112, 16); + this.radioButtonClass.TabIndex = 2; + this.radioButtonClass.TabStop = true; + this.radioButtonClass.Text = "Class"; + this.toolTips.SetToolTip(this.radioButtonClass, "Close the window with the specified class"); + this.radioButtonClass.UseVisualStyleBackColor = true; + this.radioButtonClass.CheckedChanged += new System.EventHandler(this.radioButtonClass_CheckedChanged); + // + // radioButtonApplication + // + this.radioButtonApplication.Location = new System.Drawing.Point(152, 24); + this.radioButtonApplication.Name = "radioButtonApplication"; + this.radioButtonApplication.Size = new System.Drawing.Size(112, 16); + this.radioButtonApplication.TabIndex = 1; + this.radioButtonApplication.TabStop = true; + this.radioButtonApplication.Text = "Application"; + this.toolTips.SetToolTip(this.radioButtonApplication, "Close the specified application"); + this.radioButtonApplication.UseVisualStyleBackColor = true; + this.radioButtonApplication.CheckedChanged += new System.EventHandler(this.radioButtonApplication_CheckedChanged); + // + // radioButtonActiveWindow + // + this.radioButtonActiveWindow.Location = new System.Drawing.Point(8, 24); + this.radioButtonActiveWindow.Name = "radioButtonActiveWindow"; + this.radioButtonActiveWindow.Size = new System.Drawing.Size(112, 16); + this.radioButtonActiveWindow.TabIndex = 0; + this.radioButtonActiveWindow.Text = "Active window"; + this.toolTips.SetToolTip(this.radioButtonActiveWindow, "Close the active window"); + this.radioButtonActiveWindow.UseVisualStyleBackColor = true; + this.radioButtonActiveWindow.CheckedChanged += new System.EventHandler(this.radioButtonActiveWindow_CheckedChanged); + // + // CloseProgramCommand + // + 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(288, 161); + this.Controls.Add(this.groupBoxTarget); + this.Controls.Add(this.buttonCancel); + this.Controls.Add(this.buttonOK); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(296, 188); + this.Name = "CloseProgramCommand"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Close Program Command"; + this.groupBoxTarget.ResumeLayout(false); + this.groupBoxTarget.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button buttonFindTarget; + private System.Windows.Forms.TextBox textBoxTarget; + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.Button buttonOK; + private System.Windows.Forms.GroupBox groupBoxTarget; + private System.Windows.Forms.ToolTip toolTips; + private System.Windows.Forms.RadioButton radioButtonActiveWindow; + private System.Windows.Forms.RadioButton radioButtonWindowTitle; + private System.Windows.Forms.RadioButton radioButtonClass; + private System.Windows.Forms.RadioButton radioButtonApplication; + } + +} Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.cs (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.cs 2007-12-17 05:55:29 UTC (rev 1161) @@ -0,0 +1,153 @@ +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 IrssUtils.Forms +{ + + /// <summary> + /// Close Program Command form. + /// </summary> + public partial class CloseProgramCommand : Form + { + + #region Properties + + /// <summary> + /// Gets the command string. + /// </summary> + /// <value>The command string.</value> + public string CommandString + { + get + { + string target = "ERROR"; + + if (radioButtonActiveWindow.Checked) + { + target = Common.TargetActive; + textBoxTarget.Text = "*"; + } + else if (radioButtonApplication.Checked) + { + target = Common.TargetApplication; + } + else if (radioButtonClass.Checked) + { + target = Common.TargetClass; + } + else if (radioButtonWindowTitle.Checked) + { + target = Common.TargetWindow; + } + + return String.Format("{0}|{1}", + target, + textBoxTarget.Text); + } + } + + #endregion Properties + + #region Constructors + + /// <summary> + /// Initializes a new instance of the <see cref="CloseProgramCommand"/> class. + /// </summary> + public CloseProgramCommand() : this(new string[] { Common.TargetActive, String.Empty }) { } + /// <summary> + /// Initializes a new instance of the <see cref="CloseProgramCommand"/> class. + /// </summary> + /// <param name="commands">The command elements.</param> + public CloseProgramCommand(string[] commands) + { + InitializeComponent(); + + if (commands != null) + { + string target = commands[0].ToUpperInvariant(); + switch (target) + { + case Common.TargetActive: radioButtonActiveWindow.Checked = true; break; + case Common.TargetApplication: radioButtonApplication.Checked = true; break; + case Common.TargetClass: radioButtonClass.Checked = true; break; + case Common.TargetWindow: radioButtonWindowTitle.Checked = true; break; + default: + throw new ArgumentOutOfRangeException("commands", commands[0], "Invalid message target"); + } + + textBoxTarget.Text = commands[1]; + } + } + + #endregion Constructors + + #region Controls + + private void buttonFindMsgApp_Click(object sender, EventArgs e) + { + if (radioButtonApplication.Checked) + { + OpenFileDialog find = new OpenFileDialog(); + find.Filter = "All files|*.*"; + find.Multiselect = false; + find.Title = "Application to close"; + + if (find.ShowDialog(this) == DialogResult.OK) + textBoxTarget.Text = find.FileName; + } + else if (radioButtonClass.Checked) + { + // TODO: Locate Class + } + else if (radioButtonWindowTitle.Checked) + { + WindowList windowList = new WindowList(); + if (windowList.ShowDialog(this) == DialogResult.OK) + textBoxTarget.Text = windowList.SelectedWindowTitle; + } + } + + 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(); + } + + private void radioButtonActiveWindow_CheckedChanged(object sender, EventArgs e) + { + buttonFindTarget.Enabled = false; + textBoxTarget.Enabled = false; + } + private void radioButtonApplication_CheckedChanged(object sender, EventArgs e) + { + buttonFindTarget.Enabled = true; + textBoxTarget.Enabled = true; + } + private void radioButtonClass_CheckedChanged(object sender, EventArgs e) + { + buttonFindTarget.Enabled = false; + textBoxTarget.Enabled = true; + } + private void radioButtonWindowTitle_CheckedChanged(object sender, EventArgs e) + { + buttonFindTarget.Enabled = true; + textBoxTarget.Enabled = true; + } + + #endregion Controls + + } + +} Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.resx =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.resx (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.resx 2007-12-17 05:55:29 UTC (rev 1161) @@ -0,0 +1,123 @@ +<?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="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> +</root> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ExternalProgram.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ExternalProgram.cs 2007-12-14 15:40:14 UTC (rev 1160) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ExternalProgram.cs 2007-12-17 05:55:29 UTC (rev 1161) @@ -190,31 +190,33 @@ try { - Process process = new Process(); - process.StartInfo.FileName = textBoxProgram.Text; - process.StartInfo.WorkingDirectory = textBoxStartup.Text; - process.StartInfo.Arguments = textBoxParameters.Text; - process.StartInfo.WindowStyle = (ProcessWindowStyle)Enum.Parse(typeof(ProcessWindowStyle), comboBoxWindowStyle.SelectedItem as string, true); - process.StartInfo.CreateNoWindow = checkBoxNoWindow.Checked; - process.StartInfo.UseShellExecute = checkBoxShellExecute.Checked; + using (Process process = new Process()) + { + process.StartInfo.FileName = textBoxProgram.Text; + process.StartInfo.WorkingDirectory = textBoxStartup.Text; + process.StartInfo.Arguments = textBoxParameters.Text; + process.StartInfo.WindowStyle = (ProcessWindowStyle)Enum.Parse(typeof(ProcessWindowStyle), comboBoxWindowStyle.SelectedItem as string, true); + process.StartInfo.CreateNoWindow = checkBoxNoWindow.Checked; + process.StartInfo.UseShellExecute = checkBoxShellExecute.Checked; - process.Start(); + process.Start(); - // Give new process focus ... - if (!process.StartInfo.CreateNoWindow && - process.StartInfo.WindowStyle != ProcessWindowStyle.Hidden && - checkBoxForceFocus.Checked) - { - int attempt = 0; - while (!process.HasExited && attempt++ < 50) + // Give new process focus ... + if (!process.StartInfo.CreateNoWindow && + process.StartInfo.WindowStyle != ProcessWindowStyle.Hidden && + checkBoxForceFocus.Checked) { - if (process.MainWindowHandle != IntPtr.Zero) + int attempt = 0; + while (!process.HasExited && attempt++ < 50) { - Win32.SetForegroundWindow(process.MainWindowHandle, true); - break; + if (process.MainWindowHandle != IntPtr.Zero) + { + Win32.SetForegroundWindow(process.MainWindowHandle, true); + break; + } + + Thread.Sleep(500); } - - Thread.Sleep(500); } } } Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.cs 2007-12-14 15:40:14 UTC (rev 1160) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/HttpMessageCommand.cs 2007-12-17 05:55:29 UTC (rev 1161) @@ -38,14 +38,14 @@ #region Constructors /// <summary> - /// Initializes a new instance of the <see cref="TcpMessageCommand"/> class. + /// Initializes a new instance of the <see cref="HttpMessageCommand"/> class. /// </summary> public HttpMessageCommand() { InitializeComponent(); } /// <summary> - /// Initializes a new instance of the <see cref="TcpMessageCommand"/> class. + /// Initializes a new instance of the <see cref="HttpMessageCommand"/> class. /// </summary> /// <param name="commands">The command elements.</param> public HttpMessageCommand(string[] commands) @@ -58,6 +58,8 @@ numericUpDownTimeout.Value = Convert.ToDecimal(commands[1]); textBoxUsername.Text = commands[2]; textBoxPassword.Text = commands[3]; + + checkBoxUsernameAndPassword.Checked = !String.IsNullOrEmpty(commands[2]); } #endregion Constructors Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MessageCommand.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MessageCommand.cs 2007-12-14 15:40:14 UTC (rev 1160) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MessageCommand.cs 2007-12-17 05:55:29 UTC (rev 1161) @@ -30,20 +30,20 @@ if (radioButtonActiveWindow.Checked) { - target = Common.WMTargetActive; + target = Common.TargetActive; textBoxMsgTarget.Text = "*"; } else if (radioButtonApplication.Checked) { - target = Common.WMTargetApplication; + target = Common.TargetApplication; } else if (radioButtonClass.Checked) { - target = Common.WMTargetClass; + target = Common.TargetClass; } else if (radioButtonWindowTitle.Checked) { - target = Common.WMTargetWindow; + target = Common.TargetWindow; } return String.Format("{0}|{1}|{2}|{3}|{4}", @@ -62,7 +62,7 @@ /// <summary> /// Initializes a new instance of the <see cref="MessageCommand"/> class. /// </summary> - public MessageCommand() : this(new string[] { Common.WMTargetActive, String.Empty, ((int)Win32.WindowsMessage.WM_USER).ToString(), "0", "0" }) { } + public MessageCommand() : this(new string[] { Common.TargetActive, String.Empty, ((int)Win32.WindowsMessage.WM_USER).ToString(), "0", "0" }) { } /// <summary> /// Initializes a new instance of the <see cref="MessageCommand"/> class. /// </summary> @@ -76,10 +76,10 @@ string target = commands[0].ToUpperInvariant(); switch (target) { - 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; + case Common.TargetActive: radioButtonActiveWindow.Checked = true; break; + case Common.TargetApplication: radioButtonApplication.Checked = true; break; + case Common.TargetClass: radioButtonClass.Checked = true; break; + case Common.TargetWindow: radioButtonWindowTitle.Checked = true; break; default: throw new ArgumentOutOfRangeException("commands", commands[0], "Invalid message target"); } Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.Designer.cs 2007-12-17 05:55:29 UTC (rev 1161) @@ -0,0 +1,103 @@ +namespace IrssUtils.Forms +{ + partial class ShowPopupMessage + { + /// <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.buttonOK = new System.Windows.Forms.Button(); + this.timerOK = new System.Windows.Forms.Timer(this.components); + this.labelMessage = new System.Windows.Forms.Label(); + this.panel1 = new System.Windows.Forms.Panel(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // 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(178, 0); + this.buttonOK.Name = "buttonOK"; + this.buttonOK.Size = new System.Drawing.Size(72, 24); + this.buttonOK.TabIndex = 0; + this.buttonOK.Text = "OK (100)"; + this.buttonOK.UseVisualStyleBackColor = true; + this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); + // + // timerOK + // + this.timerOK.Interval = 1000; + this.timerOK.Tick += new System.EventHandler(this.timerOK_Tick); + // + // labelMessage + // + this.labelMessage.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelMessage.Location = new System.Drawing.Point(0, 0); + this.labelMessage.Name = "labelMessage"; + this.labelMessage.Size = new System.Drawing.Size(250, 51); + this.labelMessage.TabIndex = 1; + this.labelMessage.Text = "Message"; + this.labelMessage.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel1 + // + this.panel1.Controls.Add(this.buttonOK); + this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel1.Location = new System.Drawing.Point(0, 51); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(250, 24); + this.panel1.TabIndex = 2; + // + // ShowPopupMessage + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(250, 75); + this.Controls.Add(this.labelMessage); + this.Controls.Add(this.panel1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(256, 100); + this.Name = "ShowPopupMessage"; + this.ShowIcon = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Header"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ShowPopupMessage_FormClosing); + this.Load += new System.EventHandler(this.ShowPopupMessage_Load); + this.panel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button buttonOK; + private System.Windows.Forms.Timer timerOK; + private System.Windows.Forms.Label labelMessage; + private System.Windows.Forms.Panel panel1; + } +} \ No newline at end of file Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.cs (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.cs 2007-12-17 05:55:29 UTC (rev 1161) @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace IrssUtils.Forms +{ + + /// <summary> + /// Show a popup message. + /// </summary> + public partial class ShowPopupMessage : Form + { + + #region Variables + + int _timeout; + + #endregion Variables + + /// <summary> + /// Initializes a new instance of the <see cref="ShowPopupMessage"/> class. + /// </summary> + public ShowPopupMessage(string header, string text, int timeout) + { + InitializeComponent(); + + this.Text = header; + labelMessage.Text = text; + _timeout = timeout; + } + + + private void timerOK_Tick(object sender, EventArgs e) + { + _timeout--; + + if (_timeout <= 0) + this.Close(); + + buttonOK.Text = String.Format("OK ({0})", _timeout); + } + + private void ShowPopupMessage_Load(object sender, EventArgs e) + { + timerOK.Start(); + } + + private void ShowPopupMessage_FormClosing(object sender, FormClosingEventArgs e) + { + timerOK.Stop(); + } + + private void buttonOK_Click(object sender, EventArgs e) + { + this.Close(); + } + + } + +} Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.resx =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.resx (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.resx 2007-12-17 05:55:29 UTC (rev 1161) @@ -0,0 +1,123 @@ +<?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... [truncated message content] |
From: <an...@us...> - 2007-12-17 16:00:25
|
Revision: 1162 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1162&view=rev Author: and-81 Date: 2007-12-17 08:00:13 -0800 (Mon, 17 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Debug Client/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Applications/IR Blast/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.exe.manifest trunk/plugins/IR Server Suite/Applications/IR Server/Properties/AssemblyInfo.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/Translator/MappedEvent.cs trunk/plugins/IR Server Suite/Applications/Translator/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Applications/Tray Launcher/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs trunk/plugins/IR Server Suite/Applications/Web Remote/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Applications/Web Remote/Setup.Designer.cs trunk/plugins/IR Server Suite/Applications/Web Remote/Setup.cs trunk/plugins/IR Server Suite/Common/IrssComms/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Common/MPUtils/Properties/AssemblyInfo.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/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionRemoteReceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/HcwTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/IRMan Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/RedEye Blaster/Properties/AssemblyInfo.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/Properties/AssemblyInfo.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/Properties/AssemblyInfo.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/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/WinLirc Transceiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Properties/AssemblyInfo.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/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/X10Transceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.cs trunk/plugins/IR Server Suite/Input Service/Input Service/Properties/AssemblyInfo.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 trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MPBlastZonePlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs trunk/plugins/IR Server Suite/Util Apps/IR File Tool/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Util Apps/MacroConverter/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Util Apps/SageSetup/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Util Apps/SageSetup/SageSetup.exe.manifest trunk/plugins/MCEReplacement/MCEReplacement.cs trunk/plugins/MCEReplacement/Properties/AssemblyInfo.cs Modified: trunk/plugins/IR Server Suite/Applications/Debug Client/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Debug Client/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/Debug Client/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -33,8 +33,8 @@ // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("8eeb5fcb-322c-45ee-80a9-3d30cc08a48c")] Modified: trunk/plugins/IR Server Suite/Applications/IR Blast/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/IR Blast/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -33,8 +33,8 @@ // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("5eeca936-da49-4952-ab3b-9f11ec57e4aa")] Modified: trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -33,8 +33,8 @@ // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("81eb136b-cc74-4eed-976d-f96ebccd1ce4")] Modified: trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.exe.manifest =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.exe.manifest 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.exe.manifest 2007-12-17 16:00:13 UTC (rev 1162) @@ -1,6 +1,6 @@ <?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="IRServer" type="win32" /> + <assemblyIdentity version="1.0.4.0" processorArchitecture="X86" name="IRServer" type="win32" /> <description>Provides multiple connections for local and network access to a remote control transceiver</description> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> 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-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -34,8 +34,8 @@ // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -146,13 +146,18 @@ comboBoxMiscCommand.Items.Clear(); comboBoxMiscCommand.Items.Add(Common.UITextTranslator); comboBoxMiscCommand.Items.Add(Common.UITextVirtualKB); + comboBoxMiscCommand.Items.Add(Common.UITextSmsKB); + comboBoxMiscCommand.Items.Add(Common.UITextTcpMsg); + comboBoxMiscCommand.Items.Add(Common.UITextHttpMsg); comboBoxMiscCommand.Items.Add(Common.UITextEject); + comboBoxMiscCommand.Items.Add(Common.UITextPopup); comboBoxMiscCommand.Items.Add(Common.UITextStandby); comboBoxMiscCommand.Items.Add(Common.UITextHibernate); comboBoxMiscCommand.Items.Add(Common.UITextReboot); comboBoxMiscCommand.Items.Add(Common.UITextShutdown); + comboBoxMiscCommand.Items.Add(Common.UITextBeep); + comboBoxMiscCommand.Items.Add(Common.UITextSound); - if (!String.IsNullOrEmpty(_command)) { string prefix = _command; @@ -294,6 +299,10 @@ comboBoxMiscCommand.SelectedItem = Common.UITextVirtualKB; break; + case Common.CmdPrefixSmsKB: + comboBoxMiscCommand.SelectedItem = Common.UITextSmsKB; + break; + default: if (prefix.Equals(Common.CmdPrefixEject, StringComparison.OrdinalIgnoreCase)) comboBoxMiscCommand.SelectedItem = Common.UITextEject; @@ -446,14 +455,33 @@ case "tabPageMisc": { - string newCommand = comboBoxMiscCommand.SelectedItem as string; + switch (comboBoxMiscCommand.SelectedItem as string) + { + case Common.UITextTranslator: + textBoxCommand.Text = _command = Common.CmdPrefixTranslator; + break; - switch (newCommand) - { + case Common.UITextVirtualKB: + textBoxCommand.Text = _command = Common.CmdPrefixVirtualKB; + break; + + case Common.UITextSmsKB: + textBoxCommand.Text = _command = Common.CmdPrefixSmsKB; + break; + + //comboBoxMiscCommand.Items.Add(Common.UITextTcpMsg); + //comboBoxMiscCommand.Items.Add(Common.UITextHttpMsg); + case Common.UITextEject: textBoxCommand.Text = _command = Common.CmdPrefixEject; break; + //comboBoxMiscCommand.Items.Add(Common.UITextPopup); + + case Common.UITextStandby: + textBoxCommand.Text = _command = Common.CmdPrefixStandby; + break; + case Common.UITextHibernate: textBoxCommand.Text = _command = Common.CmdPrefixHibernate; break; @@ -466,17 +494,8 @@ textBoxCommand.Text = _command = Common.CmdPrefixShutdown; break; - case Common.UITextStandby: - textBoxCommand.Text = _command = Common.CmdPrefixStandby; - break; - - case Common.UITextTranslator: - textBoxCommand.Text = _command = Common.CmdPrefixTranslator; - break; - - case Common.UITextVirtualKB: - textBoxCommand.Text = _command = Common.CmdPrefixVirtualKB; - break; + //comboBoxMiscCommand.Items.Add(Common.UITextBeep); + //comboBoxMiscCommand.Items.Add(Common.UITextSound); } break; Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -1209,7 +1209,7 @@ } private void aboutToolStripMenuItem_Click(object sender, EventArgs e) { - MessageBox.Show(this, "Translator\nVersion 1.0.3.5 for IR Server Suite\nBy Aaron Dinnage, 2007", "About Translator", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show(this, "Translator\nVersion 1.0.4.0 for IR Server Suite\nBy Aaron Dinnage, 2007", "About Translator", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void addProgramToolStripMenuItem_Click(object sender, EventArgs e) Modified: trunk/plugins/IR Server Suite/Applications/Translator/MappedEvent.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/MappedEvent.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/Translator/MappedEvent.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -41,6 +41,10 @@ /// The user is logging off. /// </summary> PC_Logoff, + + //ScreenSaver_Start, + //ScreenSaver_Stop, + //Scheduled_Event, } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/Translator/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -33,8 +33,8 @@ // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] Modified: trunk/plugins/IR Server Suite/Applications/Tray Launcher/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Tray Launcher/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/Tray Launcher/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -33,8 +33,8 @@ // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("2011f0d4-cec8-43d2-8678-79f24cd6c517")] Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -33,8 +33,8 @@ // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("b9084277-405c-48e6-80d1-c0d0e1dae27d")] Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -30,7 +30,7 @@ // Build Number // Revision // -[assembly: AssemblyVersion("1.0.3.5")] -[assembly: AssemblyFileVersion("1.0.3.5")] +[assembly: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/Web Remote/Program.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -56,6 +56,7 @@ static WebServer _webServer; static int _webPort; + //static string _passwordHash; static string _imageFile; static string _imageMap; @@ -206,6 +207,8 @@ _remoteSkin = setup.RemoteSkin; _webPort = setup.WebPort; + //_passwordHash = setup.PasswordHash; + SaveSettings(); return true; @@ -393,6 +396,7 @@ _serverHost = "localhost"; _remoteSkin = DefaultSkin; _webPort = DefaultWebPort; + //_passwordHash = null; return; } @@ -400,6 +404,7 @@ 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; } + //try { _passwordHash = doc.DocumentElement.Attributes["PasswordHash"].Value; } catch { _passwordHash = null; } } static void SaveSettings() { @@ -416,6 +421,7 @@ writer.WriteAttributeString("ServerHost", _serverHost); writer.WriteAttributeString("RemoteSkin", _remoteSkin); writer.WriteAttributeString("WebPort", _webPort.ToString()); + //writer.WriteAttributeString("PasswordHash", _passwordHash); writer.WriteEndElement(); // </settings> writer.WriteEndDocument(); Modified: trunk/plugins/IR Server Suite/Applications/Web Remote/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Web Remote/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/Web Remote/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -29,5 +29,5 @@ // Build Number // Revision // -[assembly: AssemblyVersion("1.0.3.5")] -[assembly: AssemblyFileVersion("1.0.3.5")] +[assembly: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] Modified: trunk/plugins/IR Server Suite/Applications/Web Remote/Setup.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Web Remote/Setup.Designer.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/Web Remote/Setup.Designer.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -38,6 +38,8 @@ this.labelPort = new System.Windows.Forms.Label(); this.labelSkin = new System.Windows.Forms.Label(); this.comboBoxSkin = new System.Windows.Forms.ComboBox(); + this.labelPassword = new System.Windows.Forms.Label(); + this.textBoxPassword = new System.Windows.Forms.TextBox(); this.groupBoxServerHost.SuspendLayout(); this.groupBoxWebServer.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownWebPort)).BeginInit(); @@ -46,7 +48,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(152, 168); + this.buttonOK.Location = new System.Drawing.Point(152, 200); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(56, 24); this.buttonOK.TabIndex = 2; @@ -58,7 +60,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(216, 168); + this.buttonCancel.Location = new System.Drawing.Point(216, 200); this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(56, 24); this.buttonCancel.TabIndex = 3; @@ -94,13 +96,15 @@ // this.groupBoxWebServer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.groupBoxWebServer.Controls.Add(this.textBoxPassword); + this.groupBoxWebServer.Controls.Add(this.labelPassword); this.groupBoxWebServer.Controls.Add(this.numericUpDownWebPort); this.groupBoxWebServer.Controls.Add(this.labelPort); this.groupBoxWebServer.Controls.Add(this.labelSkin); this.groupBoxWebServer.Controls.Add(this.comboBoxSkin); this.groupBoxWebServer.Location = new System.Drawing.Point(8, 72); this.groupBoxWebServer.Name = "groupBoxWebServer"; - this.groupBoxWebServer.Size = new System.Drawing.Size(264, 88); + this.groupBoxWebServer.Size = new System.Drawing.Size(264, 120); this.groupBoxWebServer.TabIndex = 1; this.groupBoxWebServer.TabStop = false; this.groupBoxWebServer.Text = "Web Server"; @@ -148,13 +152,32 @@ this.comboBoxSkin.Size = new System.Drawing.Size(168, 21); this.comboBoxSkin.TabIndex = 3; // + // labelPassword + // + this.labelPassword.Location = new System.Drawing.Point(8, 88); + this.labelPassword.Name = "labelPassword"; + this.labelPassword.Size = new System.Drawing.Size(80, 20); + this.labelPassword.TabIndex = 4; + this.labelPassword.Text = "Password:"; + this.labelPassword.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.labelPassword.Visible = false; + // + // textBoxPassword + // + this.textBoxPassword.Location = new System.Drawing.Point(88, 88); + this.textBoxPassword.Name = "textBoxPassword"; + this.textBoxPassword.Size = new System.Drawing.Size(168, 20); + this.textBoxPassword.TabIndex = 5; + this.textBoxPassword.UseSystemPasswordChar = true; + this.textBoxPassword.Visible = false; + // // 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(280, 207); + this.ClientSize = new System.Drawing.Size(280, 233); this.Controls.Add(this.groupBoxWebServer); this.Controls.Add(this.groupBoxServerHost); this.Controls.Add(this.buttonCancel); @@ -168,6 +191,7 @@ this.Text = "Web Remote Setup"; this.groupBoxServerHost.ResumeLayout(false); this.groupBoxWebServer.ResumeLayout(false); + this.groupBoxWebServer.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownWebPort)).EndInit(); this.ResumeLayout(false); @@ -184,5 +208,7 @@ private System.Windows.Forms.Label labelPort; private System.Windows.Forms.Label labelSkin; private System.Windows.Forms.ComboBox comboBoxSkin; + private System.Windows.Forms.Label labelPassword; + private System.Windows.Forms.TextBox textBoxPassword; } } \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Applications/Web Remote/Setup.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Web Remote/Setup.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Applications/Web Remote/Setup.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -4,6 +4,7 @@ using System.Data; using System.Drawing; using System.IO; +using System.Security.Cryptography; using System.Text; using System.Windows.Forms; @@ -50,6 +51,23 @@ set { numericUpDownWebPort.Value = new Decimal(value); } } + /// <summary> + /// Gets the password hash. + /// </summary> + /// <value>The password hash.</value> + public string PasswordHash + { + get + { + string text = textBoxPassword.Text; + + MD5 md5 = new MD5CryptoServiceProvider(); + byte[] hash = md5.ComputeHash(Encoding.ASCII.GetBytes(text)); + + return BitConverter.ToString(hash); + } + } + #endregion Properties #region Constructor Modified: trunk/plugins/IR Server Suite/Common/IrssComms/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Common/IrssComms/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -33,8 +33,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -139,6 +139,7 @@ public const string UITextPopup = "Popup Message"; public const string UITextMultiMap = "Set Multi-Mapping"; public const string UITextMouseMode = "Set Mouse Mode"; + public const string UITextCloseProgram = "Close a Running Program"; public const string UITextInputLayer = "Toggle Input Handler Layer"; //public const string UITextWindowState = "Toggle Window State"; public const string UITextFocus = "Get Focus"; Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.Designer.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.Designer.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -53,7 +53,7 @@ this.buttonFindTarget.Text = "..."; this.toolTips.SetToolTip(this.buttonFindTarget, "Locate a target to close"); this.buttonFindTarget.UseVisualStyleBackColor = true; - this.buttonFindTarget.Click += new System.EventHandler(this.buttonFindMsgApp_Click); + this.buttonFindTarget.Click += new System.EventHandler(this.buttonFindApp_Click); // // textBoxTarget // Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/CloseProgramCommand.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -89,7 +89,7 @@ #region Controls - private void buttonFindMsgApp_Click(object sender, EventArgs e) + private void buttonFindApp_Click(object sender, EventArgs e) { if (radioButtonApplication.Checked) { Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.Designer.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.Designer.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -31,15 +31,17 @@ this.components = new System.ComponentModel.Container(); this.buttonOK = new System.Windows.Forms.Button(); this.timerOK = new System.Windows.Forms.Timer(this.components); - this.labelMessage = new System.Windows.Forms.Label(); this.panel1 = new System.Windows.Forms.Panel(); + this.textBoxMessage = new System.Windows.Forms.TextBox(); + this.labelDiv = new System.Windows.Forms.Label(); this.panel1.SuspendLayout(); this.SuspendLayout(); // // 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(178, 0); + this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.buttonOK.Location = new System.Drawing.Point(88, 8); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(72, 24); this.buttonOK.TabIndex = 0; @@ -52,31 +54,45 @@ this.timerOK.Interval = 1000; this.timerOK.Tick += new System.EventHandler(this.timerOK_Tick); // - // labelMessage - // - this.labelMessage.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelMessage.Location = new System.Drawing.Point(0, 0); - this.labelMessage.Name = "labelMessage"; - this.labelMessage.Size = new System.Drawing.Size(250, 51); - this.labelMessage.TabIndex = 1; - this.labelMessage.Text = "Message"; - this.labelMessage.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // // panel1 // this.panel1.Controls.Add(this.buttonOK); this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panel1.Location = new System.Drawing.Point(0, 51); + this.panel1.Location = new System.Drawing.Point(0, 35); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(250, 24); + this.panel1.Size = new System.Drawing.Size(250, 40); this.panel1.TabIndex = 2; // + // textBoxMessage + // + this.textBoxMessage.BackColor = System.Drawing.SystemColors.Control; + this.textBoxMessage.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.textBoxMessage.Dock = System.Windows.Forms.DockStyle.Fill; + this.textBoxMessage.Location = new System.Drawing.Point(0, 16); + this.textBoxMessage.Multiline = true; + this.textBoxMessage.Name = "textBoxMessage"; + this.textBoxMessage.Size = new System.Drawing.Size(250, 19); + this.textBoxMessage.TabIndex = 3; + this.textBoxMessage.Text = "Message"; + this.textBoxMessage.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // labelDiv + // + this.labelDiv.Dock = System.Windows.Forms.DockStyle.Top; + this.labelDiv.Location = new System.Drawing.Point(0, 0); + this.labelDiv.Name = "labelDiv"; + this.labelDiv.Size = new System.Drawing.Size(250, 16); + this.labelDiv.TabIndex = 4; + this.labelDiv.Text = " "; + this.labelDiv.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // // ShowPopupMessage // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(250, 75); - this.Controls.Add(this.labelMessage); + this.Controls.Add(this.textBoxMessage); + this.Controls.Add(this.labelDiv); this.Controls.Add(this.panel1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.MaximizeBox = false; @@ -90,6 +106,7 @@ this.Load += new System.EventHandler(this.ShowPopupMessage_Load); this.panel1.ResumeLayout(false); this.ResumeLayout(false); + this.PerformLayout(); } @@ -97,7 +114,8 @@ private System.Windows.Forms.Button buttonOK; private System.Windows.Forms.Timer timerOK; - private System.Windows.Forms.Label labelMessage; private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.TextBox textBoxMessage; + private System.Windows.Forms.Label labelDiv; } } \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ShowPopupMessage.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -20,7 +20,9 @@ int _timeout; #endregion Variables - + + #region Constructor + /// <summary> /// Initializes a new instance of the <see cref="ShowPopupMessage"/> class. /// </summary> @@ -28,18 +30,24 @@ { InitializeComponent(); - this.Text = header; - labelMessage.Text = text; - _timeout = timeout; + this.Text = header; + textBoxMessage.Text = text; + _timeout = timeout; + + buttonOK.Text = String.Format("OK ({0})", _timeout); } + #endregion Constructor private void timerOK_Tick(object sender, EventArgs e) { _timeout--; if (_timeout <= 0) + { + this.DialogResult = DialogResult.Cancel; this.Close(); + } buttonOK.Text = String.Format("OK ({0})", _timeout); } @@ -56,6 +64,7 @@ private void buttonOK_Click(object sender, EventArgs e) { + this.DialogResult = DialogResult.OK; this.Close(); } Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -33,8 +33,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] Modified: trunk/plugins/IR Server Suite/Common/MPUtils/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/MPUtils/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Common/MPUtils/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -33,8 +33,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] Modified: trunk/plugins/IR Server Suite/Documentation/new.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/new.html 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/Documentation/new.html 2007-12-17 16:00:13 UTC (rev 1162) @@ -4,6 +4,11 @@ <H2>What's new?<BR><HR COLOR="RED"></H2> +<P>Version 1.0.4.0 +<UL> +<LI>Replaced "IR Server" application with "Input Service".</LI> +</UL></P> +<BR> <P>Version 1.0.3.5 <UL> 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-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -82,7 +82,7 @@ /// IR Server plugin version. /// </summary> /// <value>The version.</value> - public override string Version { get { return "1.0.3.5"; } } + public override string Version { get { return "1.0.4.0"; } } /// <summary> /// The IR Server plugin's author. /// </summary> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -29,8 +29,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("A03753AF-FBBF-44e0-9964-144C48A4D2CF")] 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-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionRemoteReceiver.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -211,7 +211,7 @@ /// IR Server plugin version. /// </summary> /// <value>The version.</value> - public override string Version { get { return "1.0.3.5"; } } + public override string Version { get { return "1.0.4.0"; } } /// <summary> /// The IR Server plugin's author. /// </summary> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -30,8 +30,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("db244336-eeac-4789-af94-6fbe53df225f")] 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-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -53,7 +53,7 @@ /// IR Server plugin version. /// </summary> /// <value>The version.</value> - public override string Version { get { return "1.0.3.5"; } } + public override string Version { get { return "1.0.4.0"; } } /// <summary> /// The IR Server plugin's author. /// </summary> 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-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -35,7 +35,7 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, UnmanagedCode = true)] 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-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/HcwTransceiver.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -84,7 +84,7 @@ /// IR Server plugin version. /// </summary> /// <value>The version.</value> - public override string Version { get { return "1.0.3.5"; } } + public override string Version { get { return "1.0.4.0"; } } /// <summary> /// The IR Server plugin's author. /// </summary> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/HCW Transceiver/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -29,8 +29,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("560F8887-A826-40c8-BAB2-022FB7011EEF")] Modified: trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -29,8 +29,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("efdc4eaa-6ccc-4928-a1e7-f4b634780081")] 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-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/IRMan Receiver.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -59,7 +59,7 @@ /// IR Server plugin version. /// </summary> /// <value>The version.</value> - public override string Version { get { return "1.0.3.5"; } } + public override string Version { get { return "1.0.4.0"; } } /// <summary> /// The IR Server plugin's author. /// </summary> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -29,8 +29,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("a50e930e-1653-40d5-ba5a-3c0315868c1b")] 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-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -221,7 +221,7 @@ /// IR Server plugin version. /// </summary> /// <value>The version.</value> - public override string Version { get { return "1.0.3.5"; } } + public override string Version { get { return "1.0.4.0"; } } /// <summary> /// The IR Server plugin's author. /// </summary> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -29,8 +29,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("fef45a20-12af-4750-b7fa-8c8b6ea42a15")] 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-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -159,7 +159,7 @@ /// IR Server plugin version. /// </summary> /// <value>The version.</value> - public override string Version { get { return "1.0.3.5"; } } + public override string Version { get { return "1.0.4.0"; } } /// <summary> /// The IR Server plugin's author. /// </summary> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -29,8 +29,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("2286B6BF-A7F8-4f1a-B72A-764B5002C949")] Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -123,7 +123,7 @@ /// <summary> /// IR Server plugin version. /// </summary> - public override string Version { get { return "1.0.3.5"; } } + public override string Version { get { return "1.0.4.0"; } } /// <summary> /// The IR Server plugin's author. /// </summary> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -30,8 +30,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(false)] Modified: trunk/plugins/IR Server Suite/IR Server Plugins/RedEye Blaster/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/RedEye Blaster/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/RedEye Blaster/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -29,8 +29,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("6F2CB034-AA67-4563-B962-B6C2DAC3E91C")] 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-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/RedEye Blaster/RedEye Blaster.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -80,7 +80,7 @@ /// IR Server plugin version. /// </summary> /// <value>The version.</value> - public override string Version { get { return "1.0.3.5"; } } + public override string Version { get { return "1.0.4.0"; } } /// <summary> /// The IR Server plugin's author. /// </summary> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -29,8 +29,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("77705932-9e14-4c82-9304-0056b4c7fc9f")] 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-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -52,7 +52,7 @@ /// IR Server plugin version. /// </summary> /// <value>The version.</value> - public override string Version { get { return "1.0.3.5"; } } + public override string Version { get { return "1.0.4.0"; } } /// <summary> /// The IR Server plugin's author. /// </summary> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -30,8 +30,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("f06073d3-d682-4962-83ea-56f1d4cffc95")] 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-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/UirtTransceiver.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -132,7 +132,7 @@ /// IR Server plugin version. /// </summary> /// <value>The version.</value> - public override string Version { get { return "1.0.3.5"; } } + public override string Version { get { return "1.0.4.0"; } } /// <summary> /// The IR Server plugin's author. /// </summary> Modified: 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 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -30,8 +30,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("B82A00C1-71EF-4f5e-97A1-615DE0D602B0")] 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-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -61,7 +61,7 @@ /// IR Server plugin version. /// </summary> /// <value>The version.</value> - public override string Version { get { return "1.0.3.5"; } } + public override string Version { get { return "1.0.4.0"; } } /// <summary> /// The IR Server plugin's author. /// </summary> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/Properties/AssemblyInfo.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/Properties/AssemblyInfo.cs 2007-12-17 16:00:13 UTC (rev 1162) @@ -29,8 +29,8 @@ // // 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: AssemblyVersion("1.0.4.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: CLSCompliant(true)] [assembly: GuidAttribute("f581d23a-eecd-4c87-b7a8-012cd98cfff7")] Modified: trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.cs 2007-12-17 05:55:29 UTC (rev 1161) +++ trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Tr... [truncated message content] |
From: <gre...@us...> - 2007-12-23 20:05:40
|
Revision: 1166 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1166&view=rev Author: gregorvsf Date: 2007-12-23 12:05:39 -0800 (Sun, 23 Dec 2007) Log Message: ----------- Added Paths: ----------- trunk/plugins/ACID/ trunk/plugins/ACID/ACID.csproj trunk/plugins/ACID/ACID.csproj.user trunk/plugins/ACID/AsteriskCID.cs trunk/plugins/ACID/Call.cs trunk/plugins/ACID/CallWatch.cs trunk/plugins/ACID/Properties/ trunk/plugins/ACID/Properties/AssemblyInfo.cs trunk/plugins/ACID/Properties/AsteriskCID.png trunk/plugins/ACID/Properties/AsteriskCIDDisabled.png trunk/plugins/ACID/Properties/Resources.Designer.cs trunk/plugins/ACID/Properties/Resources.resx trunk/plugins/ACID/Properties/asterisk_logo.png trunk/plugins/ACID/frmConfig.cs trunk/plugins/ACID/frmConfig.designer.cs trunk/plugins/ACID/frmConfig.resx trunk/plugins/ACID.sln trunk/plugins/ACID.suo trunk/plugins/References/ trunk/plugins/References/Asterisk.NET.dll Added: trunk/plugins/ACID/ACID.csproj =================================================================== --- trunk/plugins/ACID/ACID.csproj (rev 0) +++ trunk/plugins/ACID/ACID.csproj 2007-12-23 20:05:39 UTC (rev 1166) @@ -0,0 +1,151 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>9.0.21022</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{2E40473B-F2A8-4B8C-A094-10DA0857682A}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>AsteriskCID</RootNamespace> + <AssemblyName>ACID</AssemblyName> + <FileUpgradeFlags> + </FileUpgradeFlags> + <OldToolsVersion>2.0</OldToolsVersion> + <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> + <UpgradeBackupLocation> + </UpgradeBackupLocation> + <PublishUrl>publish\</PublishUrl> + <Install>true</Install> + <InstallFrom>Disk</InstallFrom> + <UpdateEnabled>false</UpdateEnabled> + <UpdateMode>Foreground</UpdateMode> + <UpdateInterval>7</UpdateInterval> + <UpdateIntervalUnits>Days</UpdateIntervalUnits> + <UpdatePeriodically>false</UpdatePeriodically> + <UpdateRequired>false</UpdateRequired> + <MapFileExtensions>true</MapFileExtensions> + <ApplicationRevision>0</ApplicationRevision> + <ApplicationVersion>1.0.0.%2a</ApplicationVersion> + <IsWebBootstrapper>false</IsWebBootstrapper> + <UseApplicationTrust>false</UseApplicationTrust> + <BootstrapperEnabled>true</BootstrapperEnabled> + </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> + <ItemGroup> + <Reference Include="Asterisk.NET, Version=1.0.0.14, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\References\Asterisk.NET.dll</HintPath> + </Reference> + <Reference Include="Bass.Net, Version=2.3.1.2, Culture=neutral, PublicKeyToken=b7566c273e6ef480, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\References\Bass.Net.dll</HintPath> + </Reference> + <Reference Include="Core, Version=0.2.3.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\References\Core.dll</HintPath> + </Reference> + <Reference Include="Dialogs, Version=0.2.3.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\References\Dialogs.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + <Reference Include="Utils, Version=2.2.2.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\References\Utils.dll</HintPath> + </Reference> + <Reference Include="WindowPlugins, Version=0.2.3.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\References\WindowPlugins.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="Call.cs" /> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <Compile Include="AsteriskCID.cs" /> + <Compile Include="CallWatch.cs" /> + <Compile Include="frmConfig.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="frmConfig.designer.cs"> + <DependentUpon>frmConfig.cs</DependentUpon> + </Compile> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Properties\AsteriskCID.png" /> + <EmbeddedResource Include="Properties\AsteriskCIDDisabled.png" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Properties\Resources.resx"> + <SubType>Designer</SubType> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + </EmbeddedResource> + <EmbeddedResource Include="frmConfig.resx"> + <DependentUpon>frmConfig.cs</DependentUpon> + <SubType>Designer</SubType> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <Content Include="Properties\asterisk_logo.png" /> + </ItemGroup> + <ItemGroup> + <BootstrapperPackage Include="Microsoft.Net.Framework.2.0"> + <Visible>False</Visible> + <ProductName>.NET Framework 2.0 %28x86%29</ProductName> + <Install>false</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.0"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.0 %28x86%29</ProductName> + <Install>false</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.5"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5</ProductName> + <Install>true</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1"> + <Visible>False</Visible> + <ProductName>Windows Installer 3.1</ProductName> + <Install>true</Install> + </BootstrapperPackage> + </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> + </PostBuildEvent> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/ACID/ACID.csproj.user =================================================================== --- trunk/plugins/ACID/ACID.csproj.user (rev 0) +++ trunk/plugins/ACID/ACID.csproj.user 2007-12-23 20:05:39 UTC (rev 1166) @@ -0,0 +1,16 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <PublishUrlHistory> + </PublishUrlHistory> + <InstallUrlHistory> + </InstallUrlHistory> + <SupportUrlHistory> + </SupportUrlHistory> + <UpdateUrlHistory> + </UpdateUrlHistory> + <BootstrapperUrlHistory> + </BootstrapperUrlHistory> + <FallbackCulture>en-US</FallbackCulture> + <VerifyUploadedFiles>false</VerifyUploadedFiles> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/ACID/AsteriskCID.cs =================================================================== --- trunk/plugins/ACID/AsteriskCID.cs (rev 0) +++ trunk/plugins/ACID/AsteriskCID.cs 2007-12-23 20:05:39 UTC (rev 1166) @@ -0,0 +1,220 @@ +#region Copyright (C)2007 Sanjin Tro\x9Aelj - Troky, Gregor Verweyen - GregorV + +/* + * Copyright (C)2007 Sanjin Tro\x9Aelj - Troky, Gregor Verweyen - GregorV + * tro...@ya..., gre...@gm... + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + * + * Due credit is extended to the Team Media Portal crew for their great work + * on Media Portal. Elements of this code are lifted from the Media Portal ISDN + * and YAC Caller ID modules. + * + * This plugin is provided as-is. No warranty is extended or implied. Compatibility + * with untested systems is end users responsibility. + * + */ + +#endregion +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Net.Sockets; +using System.Threading; +using System.Windows.Forms; +using System.Xml; +using System.Text; +using MediaPortal.Configuration; +using MediaPortal.Dialogs; +using MediaPortal.GUI.Library; +using MediaPortal.Player; +using MediaPortal.Util; + +namespace AsteriskCID +{ + [PluginIcons("AsteriskCID.Properties.AsteriskCID.png", "AsteriskCID.Properties.AsteriskCIDDisabled.png")] + public class AsteriskCID : IPlugin, ISetupForm + { + #region Variables/Constants + + // plugin constants + const string _version = "0.2.1.0"; + const string _author = "Troky/GregorV"; + const string _name = "AsteriskCID"; + const string _description = "Displays Asterisk CallerId"; + public const int _configversion = 2; + static int _oldversion; + #endregion + + #region Constructors/Destructors + + public AsteriskCID() + { + } + + #endregion + + #region Settings + + public static void LoadSettings() + { + Log.Info("AsteriskCID: LoadSettings"); + + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + _oldversion = xmlreader.GetValueAsInt("AsteriskCID", "Configversion", 0); + + if (_oldversion < 2) // upgrade/cleanup old configuration if neccessary + { + Log.Info("AsteriskCID: Upgrading configuration {0} => 2", _oldversion); + xmlreader.RemoveEntry("AsteriskCID", "fulldebug"); + xmlreader.RemoveEntry("AsteriskCID", "stopMedia"); + xmlreader.RemoveEntry("AsteriskCID", "resumeMedia"); + xmlreader.RemoveEntry("AsteriskCID", "address"); + xmlreader.RemoveEntry("AsteriskCID", "secret"); // needed to avoid Exception on base64Decode + xmlreader.RemoveEntry("AsteriskCID", "port"); + xmlreader.RemoveEntry("AsteriskCID", "username"); + xmlreader.RemoveEntry("AsteriskCID", "channel"); + } + + //Asterisk manager interface settings + CallWatch.AMIAddress = xmlreader.GetValueAsString("AsteriskCID", "Address", "192.168.0.1"); + CallWatch.AMIPort = xmlreader.GetValueAsInt("AsteriskCID", "Port", 5038); + CallWatch.AMIUsername = xmlreader.GetValueAsString("AsteriskCID", "UserName", "maint"); + CallWatch.AMISecret = CallWatch.base64Decode(xmlreader.GetValueAsString("AsteriskCID", "Secret", "")); + // Filter items + CallWatch.Channels = CallWatch.comma2newline(xmlreader.GetValueAsString("AsteriskCID", "Channels", "")); + CallWatch.Extensions = CallWatch.comma2newline(xmlreader.GetValueAsString("AsteriskCID", "Extensions", "")); + + // media settings + CallWatch.MediaStop = xmlreader.GetValueAsBool("AsteriskCID", "MediaStop", true); + CallWatch.MediaResume = xmlreader.GetValueAsBool("AsteriskCID", "MediaResume", true); + CallWatch.MediaResumeReleased = xmlreader.GetValueAsBool("AsteriskCID", "MediaResumeReleased", false ); + // misc + CallWatch.debuglevel = xmlreader.GetValueAsInt("AsteriskCID", "DebugLevel", 0); + CallWatch.RemoveLeadingDigit = xmlreader.GetValueAsBool("AsteriskCID", "RemoveLeadingDigit", false); + CallWatch.LeadingDigit = xmlreader.GetValueAsInt("AsteriskCID", "LeadingDigit", 0); + CallWatch.timeOut = xmlreader.GetValueAsInt("AsteriskCID", "NotifyTimeout", 0); + } + } + + public static void SaveSettings() + { + Log.Info("AsteriskCID: SaveSettings"); + + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + xmlwriter.SetValue("AsteriskCID", "Configversion", _configversion); + //Asterisk manager interface settings + xmlwriter.SetValue("AsteriskCID", "Address", CallWatch.AMIAddress); + xmlwriter.SetValue("AsteriskCID", "Port", CallWatch.AMIPort); + xmlwriter.SetValue("AsteriskCID", "UserName", CallWatch.AMIUsername); + xmlwriter.SetValue("AsteriskCID", "Secret", CallWatch.base64Encode(CallWatch.AMISecret)); + // Filter items + xmlwriter.SetValue("AsteriskCID", "Channels", CallWatch.newline2comma(CallWatch.Channels)); + xmlwriter.SetValue("AsteriskCID", "Extensions", CallWatch.newline2comma(CallWatch.Extensions)); + // media settings + xmlwriter.SetValueAsBool("AsteriskCID", "MediaStop", CallWatch.MediaStop); + xmlwriter.SetValueAsBool("AsteriskCID", "MediaResume", CallWatch.MediaResume); + xmlwriter.SetValueAsBool("AsteriskCID", "MediaResumeReleased", CallWatch.MediaResumeReleased); + // misc + xmlwriter.SetValue("AsteriskCID", "DebugLevel", CallWatch.debuglevel); + xmlwriter.SetValueAsBool("AsteriskCID", "RemoveLeadingDigit", CallWatch.RemoveLeadingDigit); + xmlwriter.SetValue("AsteriskCID", "LeadingDigit", CallWatch.LeadingDigit); + xmlwriter.SetValue("AsteriskCID", "NotifyTimeout", CallWatch.timeOut); + } + } + + #endregion + + #region IPlugin Interface + + public void Start() + { + Log.Info("AsteriskCID: Plugin {0} starting.", _version); + LoadSettings(); + CallWatch.Start(); + } + + public void Stop() + { + lock (this) + { + CallWatch.ast.Logoff(); + } + Log.Info("AsteriskCID: Plugin {0} stop.", _version); + } + + #endregion + + #region ISetupForm Interface + + public bool CanEnable() + { + return true; + } + + public string Description() + { + return _description; + } + + public bool DefaultEnabled() + { + return false; + } + + public int GetWindowId() + { + return -1; + } + + public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, out string strPictureImage) + { + strButtonText = null; + strButtonImage = null; + strButtonImageFocus = null; + strPictureImage = null; + return false; + } + + public string Author() + { + return _author; + } + + public string PluginName() + { + return _name; + } + + public bool HasSetup() + { + return true; + } + + public void ShowPlugin() + { + Form setup = new frmConfig(); + setup.ShowDialog(); + } + + #endregion + + } +} Added: trunk/plugins/ACID/Call.cs =================================================================== --- trunk/plugins/ACID/Call.cs (rev 0) +++ trunk/plugins/ACID/Call.cs 2007-12-23 20:05:39 UTC (rev 1166) @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace AsteriskCID +{ + public class Call + { + string _callid; + string _callid2; + string _callidname; + string _uniqueID; + + public Call() + { + this._callid = string.Empty; + this._callid2 = string.Empty; + this._callidname = string.Empty; + this._uniqueID = string.Empty; + } + public string ID + { + get + { + return _uniqueID; + } + set + { + _uniqueID = value; + } + } + + public string CID + { + get + { + return _callid; + } + set + { + _callid = value; + } + } + + public string CID2 + { + get + { + return _callid2; + } + set + { + _callid2 = value; + } + } + + public string Name + { + get + { + return _callidname; + } + set + { + _callidname = value; + } + } + } +} Added: trunk/plugins/ACID/CallWatch.cs =================================================================== --- trunk/plugins/ACID/CallWatch.cs (rev 0) +++ trunk/plugins/ACID/CallWatch.cs 2007-12-23 20:05:39 UTC (rev 1166) @@ -0,0 +1,401 @@ +using System; +using System.Windows.Forms; +using System.Collections; +using System.Collections.Generic; +using System.Drawing.Design; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Text.RegularExpressions; +using System.IO; +using System.ComponentModel; +using System.Security.Cryptography; +using System.Windows.Forms.Design; +using System.Threading; + +using MediaPortal.Configuration; +using MediaPortal.Dialogs; +using MediaPortal.GUI.Library; +using MediaPortal.Player; +using MediaPortal.Util; + +using Asterisk.NET.Manager; +using Asterisk.NET.FastAGI; + +namespace AsteriskCID +{ + class CallWatch + { + #region Class Variables/Constants + + // Asterisk manager interface settings + public static string AMIAddress; // the asterisk's host address + public static int AMIPort; // AMI port (specified in asterisk config) + public static string AMIUsername; // AMI user (specified in asterisk config) + public static string AMISecret; // AMI password (specified in asterisk config) + public static string Channels = String.Empty; // Asterisk trunk info + public static string Extensions = String.Empty; // Asterisk extensions + // media settings + public static bool MediaStop = true; // stop media when an event happend + public static bool MediaResume = true; // resume media when notify is closed + public static bool MediaResumeReleased = true; // resume media when notify is closed + // misc + public static int debuglevel = 0; + public static int timeOut = -1; // autoclose the dialog after the timeout expired + public static bool RemoveLeadingDigit = false; // flag to remove or not the leading digit from CID + public static int LeadingDigit = 0; // the leading digit can be set to 0 or 9 + static string TrunkInfo = String.Empty; // used to filter multiple messages for one call + static int CallStatus = 0; + public static AsteriskManager ast=null; // Asterisk.NET interface + public static GUIDialogNotify dialogNotify; // Handle to the caller ID notification + static object tmpdlg = null; + static bool IsShown = false; // is set true while message box is open + + #endregion + + #region Threads + + [STAThread] + public static void Start() // start thread watching for Asterisk events + { + if (debuglevel >= 1) + Log.Info("AsteriskCID: Starting CallWatchThread..."); // debuglevel 2 log + // get handle for message window + dialogNotify = (GUIDialogNotify)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_NOTIFY); + Thread workerThread = new Thread(new ThreadStart(CallWatchThread)); + workerThread.Start(); + } + + static void CallWatchThread() + { + ast = new AsteriskManager(AMIAddress,AMIPort,AMIUsername,AMISecret); // AMI connection + ast.Dial += new DialEventHandler(OnDial); // event handlers for dial, hangup, establish + ast.Hangup += new HangupEventHandler(OnHangup); + ast.Link += new LinkEventHandler(OnLink); + + try + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: Asterisk login..."); // debuglevel 2 log + ast.Login(); // try login + } + catch + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: Asterisk login failed!"); // debuglevel 2 log + ast.Logoff(); // do we need to logoff here ? + return; + } + } + + static void ShowMessageThread() + { + if (g_Player.Playing && !g_Player.Paused && MediaStop) // if media is playing & not paused & Stop flag = true + { + if (debuglevel >= 2) // debuglevel 2 log + Log.Info("AsteriskCID: Pause playback"); + MediaPortal.Player.g_Player.Pause(); // pause playing media + } + CallWatch.IsShown = true; // set show flag + + dialogNotify.DoModal(GUIWindowManager.ActiveWindow); // show Notify Window + // funktion stops here, until Window is closed + if (dialogNotify.IsVisible) // by timeout or OK click or closeWindow called + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: Message is closed"); // debuglevel 2 log + if ((g_Player.Paused) && (MediaResume | MediaResumeReleased)) // if media is paused & one of the flags is set + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: Resume playback"); // debuglevel 2 log + MediaPortal.Player.g_Player.Pause(); // continue play media + CallWatch.CallStatus = 0; // set callstatus to 'no call' + CallWatch.TrunkInfo = string.Empty; // clear trunk info from last call + CallWatch.IsShown = false; // clear show flag + } + } + } + + #endregion + + #region Event and Notify handlers + + static void OnDial(object sender, Asterisk.NET.Manager.Event.DialEvent e) // this event can be fired multiple times for a call + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: OnDial() event"); // debuglevel 2 log + if (CallWatch.CheckFilter(e.Src, Channels, Extensions, 1)) // check if event should be ignored + { + CallWatch.ShowMessage(e.CallerIdName, e.CallerId); // show message incoming call + } + } + + static void OnHangup(object sender, Asterisk.NET.Manager.Event.HangupEvent e) // for each dial event we will receive a hangup + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: OnHangup() event"); // debuglevel 2 log + if (CallWatch.CheckFilter(e.Channel, Channels, Extensions, 0)) // check if event should be ignored + { + CallWatch.ClearMessage(); // delete message box + } + } + + static void OnLink(object sender, Asterisk.NET.Manager.Event.LinkEvent e) // this should occur only once + { + string notifyText = GUILocalizeStrings.Get(909); // 909="Connecting..." (from strings_[country].xml + + if (debuglevel >= 2) + Log.Info("AsteriskCID: OnLink() event"); // debuglevel 2 log + if (CallWatch.CheckFilter(e.Channel1, Channels, Extensions, 2)) // check if event should be ignored + { + if (CallWatch.IsShown) // it only changes the message if it is currently shown + { + dialogNotify.SetText("\n" + notifyText + "\n" + e.CallerId2 + "\n\n"); // change notification text (extension that answered) + if (!CallWatch.MediaResumeReleased) // wait for hangup before closing & media resume + { // otherwise, if flag not set + Thread.Sleep(3000); // close message box after 3 seconds + CallWatch.ClearMessage(); // + } + } + } + } + + #endregion + + #region Message functions + + private static void ShowMessage(string CIDname, string CID) // pop up the message box + { + string notifyHeading = GUILocalizeStrings.Get(1023); // 1023="Incoming call" (from strings_[country].xml + string notifyText = String.Empty; // message text + string notifyImage = GetCallerImage(CIDname); // image (CIDname.jpg from \MediaPortal\thumbs\yac) + if (IsShown) // only do something if dialog is not open + return; + // if RemoveDigit is true and the first digit is + // equal to the configured digit + if ((RemoveLeadingDigit) && (string.Compare(Convert.ToString(LeadingDigit),0,CID,0,1) == 0)) + CID = CID.Substring (1); // remove frist char from CID + + if (dialogNotify != null) // if we have a valid window handle + { + if ((!string.IsNullOrEmpty(CIDname)) && (CIDname.ToLower() != "<unknown>")) // if there is a real caller name (from asterisk phonebook) + { + if (string.Compare("NA", 0, CIDname, 0, 2) == 0) // this is needed if Asterisk delivers "NA phonenumber" + notifyText = CIDname + "\n\n"; // for calls where the name cannot be found - show name only + else + notifyText = CIDname + "\n" + CID + "\n"; // show name and CID + } else + { + notifyText = CID + "\n\n"; // otherwise only the CID + } + if (debuglevel >= 3) + Log.Info("AsteriskCID: Notfiy Image=" + notifyImage); // debuglevel 3 log (show path for requested image) + + dialogNotify.SetHeading(notifyHeading); // set message box properties + dialogNotify.SetText(notifyText); + dialogNotify.SetImage(notifyImage); + dialogNotify.TimeOut = timeOut; + // check Mediaportal window is active + GUIWindow m_pParentWindow = GUIWindowManager.GetWindow(GUIWindowManager.ActiveWindow); + if (null == m_pParentWindow) + { + if (debuglevel >= 3) + Log.Info("AsteriskCID: m_pParentWIndow is null!"); // debuglevel 3 log error + return; + } + if (debuglevel >= 2) + Log.Info("AsteriskCID: ShowMessage(" + CIDname + ", " + CID + ")"); // debuglevel 2 log, message details + + tmpdlg = dialogNotify; + Thread showDialogThread = new Thread(new ThreadStart(ShowMessageThread)); // + showDialogThread.Start(); // pop up message box + } + } + + private static void ClearMessage() // close message box + { + if (debuglevel >= 3) + Log.Info("AsteriskCID: ClearMessage()"); // debuglevel 3 + // + Action closeTheWindow = new Action(Action.ActionType.ACTION_CLOSE_DIALOG, 0, 0); + dialogNotify.OnAction(closeTheWindow); // close box, this causes + } // ShowMessageThread()beeing called + + #endregion + + #region Helper functions + + public static bool CheckAsteriskConnection() // can we establish connection to Asterisk ? + { + bool b = false; + ast = new AsteriskManager(AMIAddress, AMIPort, AMIUsername, AMISecret); // connection object + try + { + ast.Login(); // try Asterisk AMI login + b = true; + } catch + { + b = false; + } + ast.Logoff(); // logoff & return success/fail + return b; + } + // here we check if we need to do something + private static bool CheckFilter(string str, string strChan, string strExts, int NewCallStatus) + { + if (CallStatus == NewCallStatus) // if Callstatus did not change, skip event. + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: skip event, CallStatus = " + CallStatus); // debuglevel 2 log + return false; + } + if ((CallStatus == 0) && (NewCallStatus != 1)) // if status is 0 and new status is not "dialed" + { // ignore further events for that call + if (debuglevel >= 2) + Log.Info("AsteriskCID: skip event, Message box is not open"); // debuglevel 2 log + return false; + } + string[] Efilters = Regex.Split(strExts, Environment.NewLine); // load all extensions into the Efiters list + if ((Efilters.GetUpperBound(0) == 0) && (debuglevel >= 3)) // if no extensions, debuglevel 3 log + Log.Info("AsteriskCID: no Extension configured " + str + " OK"); + foreach (string Efilter in Efilters) // search through the list + { + Regex r = new Regex(Efilter); // check extension, if a list item matches + if (r.IsMatch(str)) // then we need to do nothing + { + if (debuglevel >= 3) + Log.Info("AsteriskCID: skip event, Extension(" + Efilter + ") found:" + str); // debuglevel 3 log + return false; // return false + } + } + + if (string.IsNullOrEmpty(TrunkInfo)) // we store the trunk info for a new call + TrunkInfo = str; + if (TrunkInfo != str) // return false if different trunk info for same call + { + if (debuglevel >= 3) + Log.Info("AsteriskCID: skip event, different Trunk(" + str + ")"); // debuglevel 3 log + return false; // return false + } + + string[] Cfilters = Regex.Split(strChan, Environment.NewLine); // load all trunks into the Cfiters list + if (Cfilters.GetUpperBound(0) == 0) // if no trunks configured + { + if (debuglevel >= 3) + Log.Info("AsteriskCID: no Trunks/Channels configured " + str + " OK"); + CallStatus = NewCallStatus; // update CallStatus + return true; // no filter check required, return success + } + foreach (string Cfilter in Cfilters) // search through the list + { + Regex r = new Regex(Cfilter); + if (r.IsMatch(str)) // check trunk, if a list item matches + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: Filter (" + Cfilter + ") MATCH: " + str); // debuglevel 2 log + CallStatus = NewCallStatus; // update CallStatus + return true; // trunk found, return success + } + else + { + if (debuglevel >= 3) // debuglevel 3 log + Log.Info("AsteriskCID: Filter (" + Cfilter + ") noMatch:" + str); + } + } // trunk not found, return false + if (debuglevel >= 2) + Log.Info("AsteriskCID: skip event, Trunk (" + str + ") not found"); + return false; + } + + private static string GetCallerImage(string name) // get image (CIDname.jpg from \MediaPortal\thumbs\yac) + { + if (string.Compare("NA", 0, name, 0, 2) == 0) // this is for a specific Asterisk setup. If the + name = "NA"; // caller name is not in the phonebook and also cannot + // be retrieved from the web, then the name is set to + // "NA phonenumber", so we look for an image NA.jpg + + if ((name == "<unknown>") || (name == "XX")) // for standard configuration and if anomymous calls + name = "unknown"; // set the name to "XX" we look for image unknown.jpg + string strImage = MediaPortal.Util.Utils.GetCoverArtName(Thumbs.Yac, name); // get image path + if (File.Exists(strImage)) // if the image file exists + return strImage; // return the image path + else + return string.Empty; // otherwise an empty string + } + + + public static string base64Encode(string data) + { + try + { + byte[] encData_byte = new byte[data.Length]; + encData_byte = System.Text.Encoding.UTF8.GetBytes(data); + string encodedData = Convert.ToBase64String(encData_byte); + return encodedData; + } + catch (Exception e) + { + throw new Exception("Error in base64Encode" + e.Message); + } + } + + public static string base64Decode(string data) + { + try + { + System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding(); + System.Text.Decoder utf8Decode = encoder.GetDecoder(); + + byte[] todecode_byte = Convert.FromBase64String(data); + int charCount = utf8Decode.GetCharCount(todecode_byte, 0, todecode_byte.Length); + char[] decoded_char = new char[charCount]; + utf8Decode.GetChars(todecode_byte, 0, todecode_byte.Length, decoded_char, 0); + string result = new String(decoded_char); + return result; + } + catch (Exception e) + { + throw new Exception("Error in base64Decode" + e.Message); + } + } + + public static string newline2comma(string data) + { + bool first_item = true; + string result = string.Empty ; + string[] items = Regex.Split(data, Environment.NewLine); + foreach (string item in items) + { + if (first_item) + { + result = item; + first_item = false; + } + else + result = result + ", " + item; + } + return result; + } + + public static string comma2newline(string data) + { + bool first_item = true; + string result = string.Empty; + string[] items = Regex.Split(data, ", "); + foreach (string item in items) + { + if (first_item) + { + result = item; + first_item = false; + } + else + result = result + Environment.NewLine + item; + } + return result; + } + + #endregion + + } +} Added: trunk/plugins/ACID/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/ACID/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/ACID/Properties/AssemblyInfo.cs 2007-12-23 20:05:39 UTC (rev 1166) @@ -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("ACID")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("---")] +[assembly: AssemblyProduct("ACID")] +[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("90329926-be63-447f-86b2-9c288f02c06b")] + +// 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.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] Added: trunk/plugins/ACID/Properties/AsteriskCID.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/ACID/Properties/AsteriskCID.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/ACID/Properties/AsteriskCIDDisabled.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/ACID/Properties/AsteriskCIDDisabled.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/ACID/Properties/Resources.Designer.cs =================================================================== --- trunk/plugins/ACID/Properties/Resources.Designer.cs (rev 0) +++ trunk/plugins/ACID/Properties/Resources.Designer.cs 2007-12-23 20:05:39 UTC (rev 1166) @@ -0,0 +1,84 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:2.0.50727.832 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace AsteriskCID.Properties { + using System; + + + /// <summary> + /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + /// </summary> + // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// <summary> + /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AsteriskCID.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// <summary> + /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap asterisk_logo { + get { + object obj = ResourceManager.GetObject("asterisk_logo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap AsteriskCID { + get { + object obj = ResourceManager.GetObject("AsteriskCID", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap AsteriskCIDDisabled { + get { + object obj = ResourceManager.GetObject("AsteriskCIDDisabled", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} Added: trunk/plugins/ACID/Properties/Resources.resx =================================================================== --- trunk/plugins/ACID/Properties/Resources.resx (rev 0) +++ trunk/plugins/ACID/Properties/Resources.resx 2007-12-23 20:05:39 UTC (rev 1166) @@ -0,0 +1,784 @@ +<?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> + <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="AsteriskCIDDisabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAIAAABKoV4MAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAABYpJREFUWEftl2Vv + JEkQRHf/v+wzMzOzZWaSWSaZmZm9Zt+bC6tcru5pz65Osk66/jCaqa6qSIiMzPn59vb24xsf4L/x+fGN + 2KHA/1fh7+/vd3Z2hoaGmpqaKioq8vLysrKycnJySktL6+vrOzs7FxYWrq+vg937be9fXl62t7dbW1sB + i4mJiY6Ojo2NTUlJEXZ2dnZGRkZCQsJf/zxpaWmNjY27u7uHh4eXl5deU34Pfm1traysDDyAAWtpaZmZ + mSEGt7e3T09Pz8/PfD48PJyens7Pz/MWs6KiopKTk7u7u4nT6uqqY0Gk8FdXV4QUh5KSkoj2xsYGYfiS + N3jc1tZGMDC3oaGhpqZmbm7OPhUR/OLiIh7ExcV1dHT4xjDYDkig49XV1bm5uVtbW2b/F/Cvr6/EDds5 + eXR0ZI7h+i/rIezBFiwvLycmJmIE8AUFBSRI+4PgwYY4WD0xMeHcTnbJfWZmJoxLT0/Hvy8TQe4hTWpq + Khf29vYGwZ+fn1NXdXV1pG1zc9N79cXFBa7Ex8ezgeucjPqagsf5+fns56E6VJM+3u/t7cEsSotwGWwi + YV96c3OD02yAiVwHz+234Vg5MjKCrRzhc3Jy0geeqPb39w8PD+PZysqKLgUb3rJojLi7u8MDwbOT1Br4 + paUlVMiXoScnJwRf8NSRCw+DgBkYGODe0dFRc+Ps7Cxp40xlZaUICO3IuvFeBU31U+ssUp/UiDcFRKWw + sFDxLy4uduFRyvLycjgF48xhkoSWGUdREoiDc3BYi3wiR+gPBim2WlxfX/daQGCIFm/Z/AmecoRNVAV8 + JrXmJLlAuYTEBr6AgcITfCGxKE6ZPSwSAJC88MQceDZw/BM8aiomj42N2cdIM+lAvYm/AEQ3fTE/MUKm + yDmyQPl44auqqrSBiH7AQ11hs0rJ+VZac3Mzx9hmkAy8VpRUnKbH+NYeiyUlJezhkk+5h1MsEVU0LtxJ + 1g8ODjDfxECoJgDQyttU7NsofdwT/AfzqQcllRe+fDFXwDiOGXhF27iOZwF+cwlywlmxBw14Dz41pryG + izz7ACb4IDlZNwEwIkggwxlBZak0qH4E5h2eBsoq9xYVFTnqxg6oNzg4CPV0UniG5PJe7URZ0DZE06Ee + UkFJiz21tbWKaEh0xUYe5iRv4vv6+hhpBCAMALBG+qVFBFh8Nnu8hYfKquTwE534gIeENhsdCwg7SqCr + tQ1RYnhCdvgp1xFaIsR3LDPhMRhcCOmQCjmJtwYi5L3gVXWmE9tG0HAlukCCxCuK0yu6+/v7iCbbmA9I + qH0DIWRdKbOZEYJnlFBYeA05vfGnFzAndXV1GUmAEAoJp+yWA3XGx8cpATvxVJOhRU9Pj31/CB6aiC9c + xHffund6qN1wOcU0Zp+yN1PVmn2BQJGce0LwNDTB4w2cOj4+DlAevcI5qCedDxg3zs7OlHJ2Ei1+OjeH + 4JlizexgV0WAEVykkZ4HO5xxQwdJBA1MKYePNhM/UY8fjMOGtFhAlwsOADEk/eYJN2rSqwQfbhp7H7bw + hgCokESCLy34MkEKADTEgnA6+DHrTU9Pi/96VKDBGu5YABizIYGkdzOSUIdsYDrCJbvWXeab33hsUiUN + IW6IDGl7fHwM5y5/rLAS2UGz2Y9C6F8YPqD/DIwMXqz4NkN30mUalwQZeVc7QK6RB+yjrIkTDyJKatED + tEhKLN3lC2RUj0B6AZYkY4rXAZ9BGzOpFo7ZRqhVSPuEpPlAtgqVFaoLX+lm/BFAKxlcTZshHo48YI3/ + vxzUjX6skjVu2aOchgMZxBf8IzZTU1MMu46LqDjpR1ro10ivT90HJJWst7e3o1ZE2LQ4hl3KndkGSJSY + LoByRFIIlKvT0CP6hxvJ1X+253/4P4vbv3Lqb4P+eVNymAajAAAAAElFTkSuQmCC +</value> + </data> + <data name="AsteriskCID" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAIAAABKoV4MAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAB0tJREFUWEftV2ls + VFUUBkXEyFKgG7SAAqKBiBtCUDSoicYlJkZQNIhGIxrighpR40YptNNOC22hUFoomxCgbGFtKVCQUqiy + tGGHlkIpO5TS9t233jt+573pzHTmTQfwBzHx5f2Y9+bd+53lO985t7XL5Wp1By/A38Gr1R3EpsD/Z+HV + Rn5+n16aoW76Ssl7V859Xs56Ss4erCx5Q137iVb0u3Fig2i8ZLonzNvmunXvheDn9mqFP8hZT0hT2ktx + d0sJHVh6bzzKOUPlnCFy5gCWHClNaiPFt5Uz+qobv+QXDvDLh0XD+UD8W4PnZ3YqS9+SptwvTb5Pzhms + bf7eOLISMRCs1qUzl6HQrTXy2krj+Hr8y9L7SBNbs2k9tR3xeul0XrXdz4KbhYft6rrPpPh2LDVGzR/P + z5a4uBaSN6L+nLblR5bUVUroqG4Yp67+0Di2xnfVTcEbJzextAckR2dt26/YMSSq3wfGifVsWi+W2Eld + 9YE8dyivKfV8EApeCG3HZCmhPVaKq8e8+woulPqm+4bLCBEJXrmFpcYiC/Kcocr84S61wdoqGLxJVMER + MSkxTC9b4OeQuF5FLMt6XJ79pDzjEZA8ZEj0PelIAdjAHJ314qSW4EXdaZdSp64dCw5TmgMuceMsS+vN + kiKYM5oldDCOrg4J79KYMm84S6Yl8sxHReNle+/5xXJeXaIVTmDOCC+24L4AQroiZ/ZnKd3Y1B5glnFi + YzN4bthao+/NZolhtMQRZpQvsoEXtaf0klT9r0yW1IWf2ureBVlY/7n+dxbSYb0R8nV40AQfblRu9uAZ + Ffnq8pG2VS5qK1lGX5baHfFHHQXAc01dN1bfnYbq0vfP8e54ZCVD2kDdvHcsAoJ00BmWEs2mxrLkcKNq + G71k17SC75gzUoq/Vyv6zSYA3FAWvETxT45QFr3iDw+lVJaNADnBOM9i0XhRnj0Im5pB6yynPajvTBD1 + 5/EZc0YRvDMScmQcziODEjsRw1Nj4CI/UxxoAeQZyULYwNlm8LxmD6pTmf+CPOsxpNazUt/llOLucscZ + FqR0R/7k3GdJXAGDN1N7KrnPmZwyTcSdGiNNukfJGxUIr679FD7AOCz3hRdQUzMs4b5ht9KMdMjTHzY9 + s/B6kN+e39YjwmD95eiC3ZEFKp+AS105Gqwi77Of9sKTMCEmyZH0Vq23q7QaLf8bigE+s2D8757kfVIX + 8I5f2B+sDpXFr8FDyv0fr3rhVaQEVieGaTsmtVDB4vIhdcV7JuMC4J3RyoIXucnBoJdaL2eDRtEm88e6 + 4cW1k6TJSKozCiRqCb6+BsuCwEcpi1/nF8paWM6ri82sxcJPfe9sN7y+L4fUAGKUPcil2ESeGFBfoxV8 + C9FuKfgm+9QVo9DgbY3Qtk8kIPAuvQ9k2w2vbfpacoS5a1H4jyVCroNc+1MPofKlHh7d6Yg1iR2jbZ4g + 6qqbGQGpyBlM3iPyaz62/qKWQ+kEoZLClSVvBlqt70qR4tp4Cw8MR/XP6M+m96MwAhV9DEVI1dxkBAov + vi1K3Hc3o3yhaZmpE6f/9MKDhD5KFOB9w3kogVlaPazK1DaM41eOynOfaZKdaKOiABGydMmqe5jrwSAk + tUHJHYbKItdXvu8xi7x3wzujMChiVLIJQNl8NqU9S+wozx3GKwqICmoDZIs47BbdInp56aCyfATaiTS5 + nZY/3ncfvTiZsk7hifUtSzP4lhQgLDC52qa9ugxVXf2Rtj3OIwkghDxroE/LKXSDCW4cmIcSEHVnPPCo + JgoJyWUnfafD1yyCx9gqQdHMPoj50L5yRLMeajbcAd6Ge9Kv4eqeTURtBfVGKJIjDLFxce9fbuphWCDN + IQO7yRkPQQbsLfB5S+MG5hbkEjqY2DHYuAHyU8pJTyOolfiExEs96mme2cGnKlowgoYtjFmZA+AZitg4 + vs7mY8GpvSKuMHFaL1tBc8962paf4IRVu5hoMXGECAA30Iqa7lqQw/Z7ffdU2jY1xm++bsZ8Im1dNQmL + VV0om6Su6LMhUxD6A2HgzIXMBmtC3knXOLSMkoRJyLLALNBg8hmEnhyzIYisLHtbK3agDsmxq8dQbFBi + 2yXNBm29BLGyqtPq3CSf6oYvSEB0OaivhoZOo+/JUBa9DCVAEWE2x0GMUPNGYWDUtv3CEtoHnrDczG+m + D6UziM9oyU1zCxkB3uYMUVeN1kpS9LKFiBNuvXwRUquuHgMtomiBYtRyosiB9D7y9H5kR3xbzPZUoo4u + 6OmBDtgcM3hVkYxqwWwJO9wzDIQ6GtJE8oDmhCqluzM9Qq9Q05gAzDfyzIF0EKutxFkMozTGWdhtpRJS + CG32syDIKUdtQD82VTqC3KJ2Eu3T4qCPGA5otiELksNx0MEpzDi4FMOuv4tao7h6HMKAYSmQzi2e8XSG + rGtbf1aWj6S5FqVBGYnFcRNeoqbVVWOgxEZlIZQjdBXgCxw/mjf0UEfMm9r19j/6H/72Y/evV/4Dr5A+ + HIuaRt4AAAAASUVORK5CYII= +</value> + </data> + <data name="asterisk_logo" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + iVBORw0KGgoAAAANSUhEUgAAAN4AAADKCAYAAADKIP46AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAie1JREFUeF7tnQeY + ZGWV/lEkKgw5Dz2Y8xjWvDjmuDrGXV3DiKur+zeMqGtYw5AkDjMDIiKIQzIjIyCCiowiKqA4MEzsPDnn + 7q6u/H9/t+r0nP763qpbnVuo53mfqq6uuvfWvef9zjnvOd93H1Mul/d59PGIOwOPqfGLHzWI0TAHiPco + JuQ5eIyu23jDo7aUkk+PnqiUJ2oMB6fxRq7BHs+jtuZs7dGTMb6IN1ijjvveYzVYDDeG8/hsW49IG3xE + /ugx9F5x53swxjzchBru7Q3mN/nv/NPb5T/9DxxnJON8N2KU9Qixr7Y3nlDvePl/I7+fz/5T2ug/5Y8a + hxcrjbElGW09Yj1Ov3c8oN5x1iJlmvPzTxWaPkq8kRtR0xhTaIxJxptErP1EurTYX59tFGm3bZ9LOs5a + pIwjZJpzN6Ftd0If/Dj0bPVCyTgjC40yNN44448j0AE6H2lxoD6bhLTb4HNxx5FE1jhSxhFyMESccHY8 + 4Q74n4BsjRAtNGxPijjiHKTzkwYH63NJSPN9PpOWuP43xJEyJGR4fkIi1vKGE8aeJ8yBTjDC1QshvbF5 + YzQjTSKYJ0VInMfrHIV4gt4bLsRtP468/hhDcvrflUTIWkRMS8Jxb9fj/gAnMOFqeTYjWy2imQGbcXvD + 92Q6ROfIcKheh5ik94aKuO36/fLaH5M/Vk9O+02ekEbGNET059STMMkLjlv7HrcHNoEIV8u7xXm2kGxm + hJ5oZrhmzCGxPJEO07kyHK7XHkfo7+FCuG3+9vu2Y/IkteOOI6URMiRjSEQfEdj5nPAEfJR46VTNep0h + 3hDSkq0e0cyAMeiQWEamI/U/cJTD0XptOEavhwt+u7z2+7TjsOMyktpxh6T0hLRBJo6ISST059jOfT0P + OK5sfVwdzDj0coMhXFIYiWcLyeY9GkQzA8VgMV5PMDN0jN7IdKxeg+OqOF7PhhP0OsSJei8t4r7vt2/7 + 5NmOw47LE9OTMo6Q/O4kInpvWI+EE4qAjxIv3uMNlXBmJGnJ5onmvZiRLCQXpDACnaTXYHIVJ+vZ0KTX + HlP0d1qE3+Vv267ti2fbvx0Px2YEDUkZEpKBxZORgceIaIMSHhFvGJLQQnZfQ2wkBB1T2x/Tnetkjrf9 + D5ZwcXkbhoLBYDhxni0kGx4Nj+G9GAZsJDNyYfyQwAh0il6DJwpPcniyXoOnxOCpei8JcZ+3bfFs+2B/ + wPZvx2MENXJy3JAyjpD8XiMjA44RkXMTktCHpFbO8LVECFgrB4y7tmNmf2O243FGuuEgnBdJPOEIoyyM + NLJZXhZ6tFok8+QyQhl5nqZ9PL2KZ+gZPLOKZ+nZ49n6ux7C79i2eLbt2/7Ytx0HpA3JyXFDSk/IkIzm + GY2IaUhoXpDzXo+AtfK/MeHAmOx0ApEuTjRhZPUezsJJI5t5uJBsjOZ4NSMbxmYezXszjNSTDGPGsI1c + RirIAYGeU8Vz9Ty1iufpGTy/ihfo2eOF+jsJ4WdtGzzbdm0/7NP2z7FwTCE5jZhGSPOSnowhEfH6SST0 + oagPQz0B64WfY+79HsnES+vlLHypRzjCSe/dTBxh9PaeLSQbnsCIZp7Mk8wTDEM3QkEQyPMvVbxIzy8W + XlLFS/UMXhbg5fq7HsLv2LZs2+wHsE/bP8fCMRlBIacRE1IaIfGU/D7vHb1XtLzRQlMjIYMW59LKGGkJ + GIaf5v3GlHyPVOKFJ92HIublPOGMdIQ0oYfzhPN5m3k3DKce2fBoGCTeDKLhRTzJjGAYOsZvhIJArxD+ + VTi1ilfqeVoVr9IzeLXDa/S6HvznbRu2TbYP2B/7BRwDxwJhOTaO0RPTE9LIaN4xJCIe0bwhJLT8kAgB + L1iLgHHhZ5z3G3PyPdKIV8vLhWGlLwukJZzlbhiIhZIYDgbUJHjPZmTDE+ARQqJ5khnBMHaM3sgEgV4r + vE54fRVv0PMbhTdV8WY9G96i12nhv2fbYrtsH7A/9gs4Bo4FwnJs0wQjppHSCGleEjLivacKDDQQkYHH + h6ZGQgQlwlG8YBwBJ+l9PCCDYK3wk8E0TdlhxHkx4jvQDx0v+2jUy5HHhWUBy98spAzFEiMcBoKhYDCM + 3hgQYWQS2TBCQja8BAYK0fAknmQYN8aO0UMEiAGJ3ir8m/A24e3CdOEdVbxTz+BdDu/W63rwn7dt2DbZ + PvsB7JN9cwwcC8fEsUFQIybHbYQ0TwkZ8Y7mGfntnIOpQkhCQlKUVAatJAKSP5sSau1rSd7Pkw8SJnm/ + EbXbEd24ftR42P5werlGCYfBYDiM4ozm3rNhaObVMEJPNLwHnsRIZgTD0KcLkABCQKD3CO8V/l34D+F9 + wvur+E89gw9U8UE9p4V9x7Zh22T77AewT/bNMXAsEJZj4xghppHSCMnvMQ8JGacJeEaIyIDDwBOSkIiA + cJRBK4mA5NCmhELA0PuFwkvavG/E7HfENqwfPx62PVgvF5fHmUpJch+GlN7DMTIb4TAYDIdRfKpgno2R + 3pMNI8Qz... [truncated message content] |
From: <gre...@us...> - 2007-12-23 20:11:04
|
Revision: 1169 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1169&view=rev Author: gregorvsf Date: 2007-12-23 12:10:59 -0800 (Sun, 23 Dec 2007) Log Message: ----------- Added Paths: ----------- trunk/plugins/AsteriskCallerID/ trunk/plugins/AsteriskCallerID/ACID/ trunk/plugins/AsteriskCallerID/ACID/ACID.csproj trunk/plugins/AsteriskCallerID/ACID/ACID.csproj.user trunk/plugins/AsteriskCallerID/ACID/AsteriskCID.cs trunk/plugins/AsteriskCallerID/ACID/Call.cs trunk/plugins/AsteriskCallerID/ACID/CallWatch.cs trunk/plugins/AsteriskCallerID/ACID/Properties/ trunk/plugins/AsteriskCallerID/ACID/Properties/AssemblyInfo.cs trunk/plugins/AsteriskCallerID/ACID/Properties/AsteriskCID.png trunk/plugins/AsteriskCallerID/ACID/Properties/AsteriskCIDDisabled.png trunk/plugins/AsteriskCallerID/ACID/Properties/Resources.Designer.cs trunk/plugins/AsteriskCallerID/ACID/Properties/Resources.resx trunk/plugins/AsteriskCallerID/ACID/Properties/asterisk_logo.png trunk/plugins/AsteriskCallerID/ACID/frmConfig.cs trunk/plugins/AsteriskCallerID/ACID/frmConfig.designer.cs trunk/plugins/AsteriskCallerID/ACID/frmConfig.resx trunk/plugins/AsteriskCallerID/ACID.sln trunk/plugins/AsteriskCallerID/ACID.suo trunk/plugins/AsteriskCallerID/References/ trunk/plugins/AsteriskCallerID/References/Asterisk.NET.dll Added: trunk/plugins/AsteriskCallerID/ACID/ACID.csproj =================================================================== --- trunk/plugins/AsteriskCallerID/ACID/ACID.csproj (rev 0) +++ trunk/plugins/AsteriskCallerID/ACID/ACID.csproj 2007-12-23 20:10:59 UTC (rev 1169) @@ -0,0 +1,151 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>9.0.21022</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{2E40473B-F2A8-4B8C-A094-10DA0857682A}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>AsteriskCID</RootNamespace> + <AssemblyName>ACID</AssemblyName> + <FileUpgradeFlags> + </FileUpgradeFlags> + <OldToolsVersion>2.0</OldToolsVersion> + <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> + <UpgradeBackupLocation> + </UpgradeBackupLocation> + <PublishUrl>publish\</PublishUrl> + <Install>true</Install> + <InstallFrom>Disk</InstallFrom> + <UpdateEnabled>false</UpdateEnabled> + <UpdateMode>Foreground</UpdateMode> + <UpdateInterval>7</UpdateInterval> + <UpdateIntervalUnits>Days</UpdateIntervalUnits> + <UpdatePeriodically>false</UpdatePeriodically> + <UpdateRequired>false</UpdateRequired> + <MapFileExtensions>true</MapFileExtensions> + <ApplicationRevision>0</ApplicationRevision> + <ApplicationVersion>1.0.0.%2a</ApplicationVersion> + <IsWebBootstrapper>false</IsWebBootstrapper> + <UseApplicationTrust>false</UseApplicationTrust> + <BootstrapperEnabled>true</BootstrapperEnabled> + </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> + <ItemGroup> + <Reference Include="Asterisk.NET, Version=1.0.0.14, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\References\Asterisk.NET.dll</HintPath> + </Reference> + <Reference Include="Bass.Net, Version=2.3.1.2, Culture=neutral, PublicKeyToken=b7566c273e6ef480, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\References\Bass.Net.dll</HintPath> + </Reference> + <Reference Include="Core, Version=0.2.3.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\References\Core.dll</HintPath> + </Reference> + <Reference Include="Dialogs, Version=0.2.3.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\References\Dialogs.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + <Reference Include="Utils, Version=2.2.2.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\References\Utils.dll</HintPath> + </Reference> + <Reference Include="WindowPlugins, Version=0.2.3.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\References\WindowPlugins.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="Call.cs" /> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <Compile Include="AsteriskCID.cs" /> + <Compile Include="CallWatch.cs" /> + <Compile Include="frmConfig.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="frmConfig.designer.cs"> + <DependentUpon>frmConfig.cs</DependentUpon> + </Compile> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Properties\AsteriskCID.png" /> + <EmbeddedResource Include="Properties\AsteriskCIDDisabled.png" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Properties\Resources.resx"> + <SubType>Designer</SubType> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + </EmbeddedResource> + <EmbeddedResource Include="frmConfig.resx"> + <DependentUpon>frmConfig.cs</DependentUpon> + <SubType>Designer</SubType> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <Content Include="Properties\asterisk_logo.png" /> + </ItemGroup> + <ItemGroup> + <BootstrapperPackage Include="Microsoft.Net.Framework.2.0"> + <Visible>False</Visible> + <ProductName>.NET Framework 2.0 %28x86%29</ProductName> + <Install>false</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.0"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.0 %28x86%29</ProductName> + <Install>false</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.5"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5</ProductName> + <Install>true</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1"> + <Visible>False</Visible> + <ProductName>Windows Installer 3.1</ProductName> + <Install>true</Install> + </BootstrapperPackage> + </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> + </PostBuildEvent> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/AsteriskCallerID/ACID/ACID.csproj.user =================================================================== --- trunk/plugins/AsteriskCallerID/ACID/ACID.csproj.user (rev 0) +++ trunk/plugins/AsteriskCallerID/ACID/ACID.csproj.user 2007-12-23 20:10:59 UTC (rev 1169) @@ -0,0 +1,16 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <PublishUrlHistory> + </PublishUrlHistory> + <InstallUrlHistory> + </InstallUrlHistory> + <SupportUrlHistory> + </SupportUrlHistory> + <UpdateUrlHistory> + </UpdateUrlHistory> + <BootstrapperUrlHistory> + </BootstrapperUrlHistory> + <FallbackCulture>en-US</FallbackCulture> + <VerifyUploadedFiles>false</VerifyUploadedFiles> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/AsteriskCallerID/ACID/AsteriskCID.cs =================================================================== --- trunk/plugins/AsteriskCallerID/ACID/AsteriskCID.cs (rev 0) +++ trunk/plugins/AsteriskCallerID/ACID/AsteriskCID.cs 2007-12-23 20:10:59 UTC (rev 1169) @@ -0,0 +1,220 @@ +#region Copyright (C)2007 Sanjin Tro\x9Aelj - Troky, Gregor Verweyen - GregorV + +/* + * Copyright (C)2007 Sanjin Tro\x9Aelj - Troky, Gregor Verweyen - GregorV + * tro...@ya..., gre...@gm... + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + * + * Due credit is extended to the Team Media Portal crew for their great work + * on Media Portal. Elements of this code are lifted from the Media Portal ISDN + * and YAC Caller ID modules. + * + * This plugin is provided as-is. No warranty is extended or implied. Compatibility + * with untested systems is end users responsibility. + * + */ + +#endregion +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Net.Sockets; +using System.Threading; +using System.Windows.Forms; +using System.Xml; +using System.Text; +using MediaPortal.Configuration; +using MediaPortal.Dialogs; +using MediaPortal.GUI.Library; +using MediaPortal.Player; +using MediaPortal.Util; + +namespace AsteriskCID +{ + [PluginIcons("AsteriskCID.Properties.AsteriskCID.png", "AsteriskCID.Properties.AsteriskCIDDisabled.png")] + public class AsteriskCID : IPlugin, ISetupForm + { + #region Variables/Constants + + // plugin constants + const string _version = "0.2.1.0"; + const string _author = "Troky/GregorV"; + const string _name = "AsteriskCID"; + const string _description = "Displays Asterisk CallerId"; + public const int _configversion = 2; + static int _oldversion; + #endregion + + #region Constructors/Destructors + + public AsteriskCID() + { + } + + #endregion + + #region Settings + + public static void LoadSettings() + { + Log.Info("AsteriskCID: LoadSettings"); + + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + _oldversion = xmlreader.GetValueAsInt("AsteriskCID", "Configversion", 0); + + if (_oldversion < 2) // upgrade/cleanup old configuration if neccessary + { + Log.Info("AsteriskCID: Upgrading configuration {0} => 2", _oldversion); + xmlreader.RemoveEntry("AsteriskCID", "fulldebug"); + xmlreader.RemoveEntry("AsteriskCID", "stopMedia"); + xmlreader.RemoveEntry("AsteriskCID", "resumeMedia"); + xmlreader.RemoveEntry("AsteriskCID", "address"); + xmlreader.RemoveEntry("AsteriskCID", "secret"); // needed to avoid Exception on base64Decode + xmlreader.RemoveEntry("AsteriskCID", "port"); + xmlreader.RemoveEntry("AsteriskCID", "username"); + xmlreader.RemoveEntry("AsteriskCID", "channel"); + } + + //Asterisk manager interface settings + CallWatch.AMIAddress = xmlreader.GetValueAsString("AsteriskCID", "Address", "192.168.0.1"); + CallWatch.AMIPort = xmlreader.GetValueAsInt("AsteriskCID", "Port", 5038); + CallWatch.AMIUsername = xmlreader.GetValueAsString("AsteriskCID", "UserName", "maint"); + CallWatch.AMISecret = CallWatch.base64Decode(xmlreader.GetValueAsString("AsteriskCID", "Secret", "")); + // Filter items + CallWatch.Channels = CallWatch.comma2newline(xmlreader.GetValueAsString("AsteriskCID", "Channels", "")); + CallWatch.Extensions = CallWatch.comma2newline(xmlreader.GetValueAsString("AsteriskCID", "Extensions", "")); + + // media settings + CallWatch.MediaStop = xmlreader.GetValueAsBool("AsteriskCID", "MediaStop", true); + CallWatch.MediaResume = xmlreader.GetValueAsBool("AsteriskCID", "MediaResume", true); + CallWatch.MediaResumeReleased = xmlreader.GetValueAsBool("AsteriskCID", "MediaResumeReleased", false ); + // misc + CallWatch.debuglevel = xmlreader.GetValueAsInt("AsteriskCID", "DebugLevel", 0); + CallWatch.RemoveLeadingDigit = xmlreader.GetValueAsBool("AsteriskCID", "RemoveLeadingDigit", false); + CallWatch.LeadingDigit = xmlreader.GetValueAsInt("AsteriskCID", "LeadingDigit", 0); + CallWatch.timeOut = xmlreader.GetValueAsInt("AsteriskCID", "NotifyTimeout", 0); + } + } + + public static void SaveSettings() + { + Log.Info("AsteriskCID: SaveSettings"); + + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + xmlwriter.SetValue("AsteriskCID", "Configversion", _configversion); + //Asterisk manager interface settings + xmlwriter.SetValue("AsteriskCID", "Address", CallWatch.AMIAddress); + xmlwriter.SetValue("AsteriskCID", "Port", CallWatch.AMIPort); + xmlwriter.SetValue("AsteriskCID", "UserName", CallWatch.AMIUsername); + xmlwriter.SetValue("AsteriskCID", "Secret", CallWatch.base64Encode(CallWatch.AMISecret)); + // Filter items + xmlwriter.SetValue("AsteriskCID", "Channels", CallWatch.newline2comma(CallWatch.Channels)); + xmlwriter.SetValue("AsteriskCID", "Extensions", CallWatch.newline2comma(CallWatch.Extensions)); + // media settings + xmlwriter.SetValueAsBool("AsteriskCID", "MediaStop", CallWatch.MediaStop); + xmlwriter.SetValueAsBool("AsteriskCID", "MediaResume", CallWatch.MediaResume); + xmlwriter.SetValueAsBool("AsteriskCID", "MediaResumeReleased", CallWatch.MediaResumeReleased); + // misc + xmlwriter.SetValue("AsteriskCID", "DebugLevel", CallWatch.debuglevel); + xmlwriter.SetValueAsBool("AsteriskCID", "RemoveLeadingDigit", CallWatch.RemoveLeadingDigit); + xmlwriter.SetValue("AsteriskCID", "LeadingDigit", CallWatch.LeadingDigit); + xmlwriter.SetValue("AsteriskCID", "NotifyTimeout", CallWatch.timeOut); + } + } + + #endregion + + #region IPlugin Interface + + public void Start() + { + Log.Info("AsteriskCID: Plugin {0} starting.", _version); + LoadSettings(); + CallWatch.Start(); + } + + public void Stop() + { + lock (this) + { + CallWatch.ast.Logoff(); + } + Log.Info("AsteriskCID: Plugin {0} stop.", _version); + } + + #endregion + + #region ISetupForm Interface + + public bool CanEnable() + { + return true; + } + + public string Description() + { + return _description; + } + + public bool DefaultEnabled() + { + return false; + } + + public int GetWindowId() + { + return -1; + } + + public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, out string strPictureImage) + { + strButtonText = null; + strButtonImage = null; + strButtonImageFocus = null; + strPictureImage = null; + return false; + } + + public string Author() + { + return _author; + } + + public string PluginName() + { + return _name; + } + + public bool HasSetup() + { + return true; + } + + public void ShowPlugin() + { + Form setup = new frmConfig(); + setup.ShowDialog(); + } + + #endregion + + } +} Added: trunk/plugins/AsteriskCallerID/ACID/Call.cs =================================================================== --- trunk/plugins/AsteriskCallerID/ACID/Call.cs (rev 0) +++ trunk/plugins/AsteriskCallerID/ACID/Call.cs 2007-12-23 20:10:59 UTC (rev 1169) @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace AsteriskCID +{ + public class Call + { + string _callid; + string _callid2; + string _callidname; + string _uniqueID; + + public Call() + { + this._callid = string.Empty; + this._callid2 = string.Empty; + this._callidname = string.Empty; + this._uniqueID = string.Empty; + } + public string ID + { + get + { + return _uniqueID; + } + set + { + _uniqueID = value; + } + } + + public string CID + { + get + { + return _callid; + } + set + { + _callid = value; + } + } + + public string CID2 + { + get + { + return _callid2; + } + set + { + _callid2 = value; + } + } + + public string Name + { + get + { + return _callidname; + } + set + { + _callidname = value; + } + } + } +} Added: trunk/plugins/AsteriskCallerID/ACID/CallWatch.cs =================================================================== --- trunk/plugins/AsteriskCallerID/ACID/CallWatch.cs (rev 0) +++ trunk/plugins/AsteriskCallerID/ACID/CallWatch.cs 2007-12-23 20:10:59 UTC (rev 1169) @@ -0,0 +1,401 @@ +using System; +using System.Windows.Forms; +using System.Collections; +using System.Collections.Generic; +using System.Drawing.Design; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Text.RegularExpressions; +using System.IO; +using System.ComponentModel; +using System.Security.Cryptography; +using System.Windows.Forms.Design; +using System.Threading; + +using MediaPortal.Configuration; +using MediaPortal.Dialogs; +using MediaPortal.GUI.Library; +using MediaPortal.Player; +using MediaPortal.Util; + +using Asterisk.NET.Manager; +using Asterisk.NET.FastAGI; + +namespace AsteriskCID +{ + class CallWatch + { + #region Class Variables/Constants + + // Asterisk manager interface settings + public static string AMIAddress; // the asterisk's host address + public static int AMIPort; // AMI port (specified in asterisk config) + public static string AMIUsername; // AMI user (specified in asterisk config) + public static string AMISecret; // AMI password (specified in asterisk config) + public static string Channels = String.Empty; // Asterisk trunk info + public static string Extensions = String.Empty; // Asterisk extensions + // media settings + public static bool MediaStop = true; // stop media when an event happend + public static bool MediaResume = true; // resume media when notify is closed + public static bool MediaResumeReleased = true; // resume media when notify is closed + // misc + public static int debuglevel = 0; + public static int timeOut = -1; // autoclose the dialog after the timeout expired + public static bool RemoveLeadingDigit = false; // flag to remove or not the leading digit from CID + public static int LeadingDigit = 0; // the leading digit can be set to 0 or 9 + static string TrunkInfo = String.Empty; // used to filter multiple messages for one call + static int CallStatus = 0; + public static AsteriskManager ast=null; // Asterisk.NET interface + public static GUIDialogNotify dialogNotify; // Handle to the caller ID notification + static object tmpdlg = null; + static bool IsShown = false; // is set true while message box is open + + #endregion + + #region Threads + + [STAThread] + public static void Start() // start thread watching for Asterisk events + { + if (debuglevel >= 1) + Log.Info("AsteriskCID: Starting CallWatchThread..."); // debuglevel 2 log + // get handle for message window + dialogNotify = (GUIDialogNotify)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_NOTIFY); + Thread workerThread = new Thread(new ThreadStart(CallWatchThread)); + workerThread.Start(); + } + + static void CallWatchThread() + { + ast = new AsteriskManager(AMIAddress,AMIPort,AMIUsername,AMISecret); // AMI connection + ast.Dial += new DialEventHandler(OnDial); // event handlers for dial, hangup, establish + ast.Hangup += new HangupEventHandler(OnHangup); + ast.Link += new LinkEventHandler(OnLink); + + try + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: Asterisk login..."); // debuglevel 2 log + ast.Login(); // try login + } + catch + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: Asterisk login failed!"); // debuglevel 2 log + ast.Logoff(); // do we need to logoff here ? + return; + } + } + + static void ShowMessageThread() + { + if (g_Player.Playing && !g_Player.Paused && MediaStop) // if media is playing & not paused & Stop flag = true + { + if (debuglevel >= 2) // debuglevel 2 log + Log.Info("AsteriskCID: Pause playback"); + MediaPortal.Player.g_Player.Pause(); // pause playing media + } + CallWatch.IsShown = true; // set show flag + + dialogNotify.DoModal(GUIWindowManager.ActiveWindow); // show Notify Window + // funktion stops here, until Window is closed + if (dialogNotify.IsVisible) // by timeout or OK click or closeWindow called + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: Message is closed"); // debuglevel 2 log + if ((g_Player.Paused) && (MediaResume | MediaResumeReleased)) // if media is paused & one of the flags is set + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: Resume playback"); // debuglevel 2 log + MediaPortal.Player.g_Player.Pause(); // continue play media + CallWatch.CallStatus = 0; // set callstatus to 'no call' + CallWatch.TrunkInfo = string.Empty; // clear trunk info from last call + CallWatch.IsShown = false; // clear show flag + } + } + } + + #endregion + + #region Event and Notify handlers + + static void OnDial(object sender, Asterisk.NET.Manager.Event.DialEvent e) // this event can be fired multiple times for a call + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: OnDial() event"); // debuglevel 2 log + if (CallWatch.CheckFilter(e.Src, Channels, Extensions, 1)) // check if event should be ignored + { + CallWatch.ShowMessage(e.CallerIdName, e.CallerId); // show message incoming call + } + } + + static void OnHangup(object sender, Asterisk.NET.Manager.Event.HangupEvent e) // for each dial event we will receive a hangup + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: OnHangup() event"); // debuglevel 2 log + if (CallWatch.CheckFilter(e.Channel, Channels, Extensions, 0)) // check if event should be ignored + { + CallWatch.ClearMessage(); // delete message box + } + } + + static void OnLink(object sender, Asterisk.NET.Manager.Event.LinkEvent e) // this should occur only once + { + string notifyText = GUILocalizeStrings.Get(909); // 909="Connecting..." (from strings_[country].xml + + if (debuglevel >= 2) + Log.Info("AsteriskCID: OnLink() event"); // debuglevel 2 log + if (CallWatch.CheckFilter(e.Channel1, Channels, Extensions, 2)) // check if event should be ignored + { + if (CallWatch.IsShown) // it only changes the message if it is currently shown + { + dialogNotify.SetText("\n" + notifyText + "\n" + e.CallerId2 + "\n\n"); // change notification text (extension that answered) + if (!CallWatch.MediaResumeReleased) // wait for hangup before closing & media resume + { // otherwise, if flag not set + Thread.Sleep(3000); // close message box after 3 seconds + CallWatch.ClearMessage(); // + } + } + } + } + + #endregion + + #region Message functions + + private static void ShowMessage(string CIDname, string CID) // pop up the message box + { + string notifyHeading = GUILocalizeStrings.Get(1023); // 1023="Incoming call" (from strings_[country].xml + string notifyText = String.Empty; // message text + string notifyImage = GetCallerImage(CIDname); // image (CIDname.jpg from \MediaPortal\thumbs\yac) + if (IsShown) // only do something if dialog is not open + return; + // if RemoveDigit is true and the first digit is + // equal to the configured digit + if ((RemoveLeadingDigit) && (string.Compare(Convert.ToString(LeadingDigit),0,CID,0,1) == 0)) + CID = CID.Substring (1); // remove frist char from CID + + if (dialogNotify != null) // if we have a valid window handle + { + if ((!string.IsNullOrEmpty(CIDname)) && (CIDname.ToLower() != "<unknown>")) // if there is a real caller name (from asterisk phonebook) + { + if (string.Compare("NA", 0, CIDname, 0, 2) == 0) // this is needed if Asterisk delivers "NA phonenumber" + notifyText = CIDname + "\n\n"; // for calls where the name cannot be found - show name only + else + notifyText = CIDname + "\n" + CID + "\n"; // show name and CID + } else + { + notifyText = CID + "\n\n"; // otherwise only the CID + } + if (debuglevel >= 3) + Log.Info("AsteriskCID: Notfiy Image=" + notifyImage); // debuglevel 3 log (show path for requested image) + + dialogNotify.SetHeading(notifyHeading); // set message box properties + dialogNotify.SetText(notifyText); + dialogNotify.SetImage(notifyImage); + dialogNotify.TimeOut = timeOut; + // check Mediaportal window is active + GUIWindow m_pParentWindow = GUIWindowManager.GetWindow(GUIWindowManager.ActiveWindow); + if (null == m_pParentWindow) + { + if (debuglevel >= 3) + Log.Info("AsteriskCID: m_pParentWIndow is null!"); // debuglevel 3 log error + return; + } + if (debuglevel >= 2) + Log.Info("AsteriskCID: ShowMessage(" + CIDname + ", " + CID + ")"); // debuglevel 2 log, message details + + tmpdlg = dialogNotify; + Thread showDialogThread = new Thread(new ThreadStart(ShowMessageThread)); // + showDialogThread.Start(); // pop up message box + } + } + + private static void ClearMessage() // close message box + { + if (debuglevel >= 3) + Log.Info("AsteriskCID: ClearMessage()"); // debuglevel 3 + // + Action closeTheWindow = new Action(Action.ActionType.ACTION_CLOSE_DIALOG, 0, 0); + dialogNotify.OnAction(closeTheWindow); // close box, this causes + } // ShowMessageThread()beeing called + + #endregion + + #region Helper functions + + public static bool CheckAsteriskConnection() // can we establish connection to Asterisk ? + { + bool b = false; + ast = new AsteriskManager(AMIAddress, AMIPort, AMIUsername, AMISecret); // connection object + try + { + ast.Login(); // try Asterisk AMI login + b = true; + } catch + { + b = false; + } + ast.Logoff(); // logoff & return success/fail + return b; + } + // here we check if we need to do something + private static bool CheckFilter(string str, string strChan, string strExts, int NewCallStatus) + { + if (CallStatus == NewCallStatus) // if Callstatus did not change, skip event. + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: skip event, CallStatus = " + CallStatus); // debuglevel 2 log + return false; + } + if ((CallStatus == 0) && (NewCallStatus != 1)) // if status is 0 and new status is not "dialed" + { // ignore further events for that call + if (debuglevel >= 2) + Log.Info("AsteriskCID: skip event, Message box is not open"); // debuglevel 2 log + return false; + } + string[] Efilters = Regex.Split(strExts, Environment.NewLine); // load all extensions into the Efiters list + if ((Efilters.GetUpperBound(0) == 0) && (debuglevel >= 3)) // if no extensions, debuglevel 3 log + Log.Info("AsteriskCID: no Extension configured " + str + " OK"); + foreach (string Efilter in Efilters) // search through the list + { + Regex r = new Regex(Efilter); // check extension, if a list item matches + if (r.IsMatch(str)) // then we need to do nothing + { + if (debuglevel >= 3) + Log.Info("AsteriskCID: skip event, Extension(" + Efilter + ") found:" + str); // debuglevel 3 log + return false; // return false + } + } + + if (string.IsNullOrEmpty(TrunkInfo)) // we store the trunk info for a new call + TrunkInfo = str; + if (TrunkInfo != str) // return false if different trunk info for same call + { + if (debuglevel >= 3) + Log.Info("AsteriskCID: skip event, different Trunk(" + str + ")"); // debuglevel 3 log + return false; // return false + } + + string[] Cfilters = Regex.Split(strChan, Environment.NewLine); // load all trunks into the Cfiters list + if (Cfilters.GetUpperBound(0) == 0) // if no trunks configured + { + if (debuglevel >= 3) + Log.Info("AsteriskCID: no Trunks/Channels configured " + str + " OK"); + CallStatus = NewCallStatus; // update CallStatus + return true; // no filter check required, return success + } + foreach (string Cfilter in Cfilters) // search through the list + { + Regex r = new Regex(Cfilter); + if (r.IsMatch(str)) // check trunk, if a list item matches + { + if (debuglevel >= 2) + Log.Info("AsteriskCID: Filter (" + Cfilter + ") MATCH: " + str); // debuglevel 2 log + CallStatus = NewCallStatus; // update CallStatus + return true; // trunk found, return success + } + else + { + if (debuglevel >= 3) // debuglevel 3 log + Log.Info("AsteriskCID: Filter (" + Cfilter + ") noMatch:" + str); + } + } // trunk not found, return false + if (debuglevel >= 2) + Log.Info("AsteriskCID: skip event, Trunk (" + str + ") not found"); + return false; + } + + private static string GetCallerImage(string name) // get image (CIDname.jpg from \MediaPortal\thumbs\yac) + { + if (string.Compare("NA", 0, name, 0, 2) == 0) // this is for a specific Asterisk setup. If the + name = "NA"; // caller name is not in the phonebook and also cannot + // be retrieved from the web, then the name is set to + // "NA phonenumber", so we look for an image NA.jpg + + if ((name == "<unknown>") || (name == "XX")) // for standard configuration and if anomymous calls + name = "unknown"; // set the name to "XX" we look for image unknown.jpg + string strImage = MediaPortal.Util.Utils.GetCoverArtName(Thumbs.Yac, name); // get image path + if (File.Exists(strImage)) // if the image file exists + return strImage; // return the image path + else + return string.Empty; // otherwise an empty string + } + + + public static string base64Encode(string data) + { + try + { + byte[] encData_byte = new byte[data.Length]; + encData_byte = System.Text.Encoding.UTF8.GetBytes(data); + string encodedData = Convert.ToBase64String(encData_byte); + return encodedData; + } + catch (Exception e) + { + throw new Exception("Error in base64Encode" + e.Message); + } + } + + public static string base64Decode(string data) + { + try + { + System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding(); + System.Text.Decoder utf8Decode = encoder.GetDecoder(); + + byte[] todecode_byte = Convert.FromBase64String(data); + int charCount = utf8Decode.GetCharCount(todecode_byte, 0, todecode_byte.Length); + char[] decoded_char = new char[charCount]; + utf8Decode.GetChars(todecode_byte, 0, todecode_byte.Length, decoded_char, 0); + string result = new String(decoded_char); + return result; + } + catch (Exception e) + { + throw new Exception("Error in base64Decode" + e.Message); + } + } + + public static string newline2comma(string data) + { + bool first_item = true; + string result = string.Empty ; + string[] items = Regex.Split(data, Environment.NewLine); + foreach (string item in items) + { + if (first_item) + { + result = item; + first_item = false; + } + else + result = result + ", " + item; + } + return result; + } + + public static string comma2newline(string data) + { + bool first_item = true; + string result = string.Empty; + string[] items = Regex.Split(data, ", "); + foreach (string item in items) + { + if (first_item) + { + result = item; + first_item = false; + } + else + result = result + Environment.NewLine + item; + } + return result; + } + + #endregion + + } +} Added: trunk/plugins/AsteriskCallerID/ACID/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/AsteriskCallerID/ACID/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/AsteriskCallerID/ACID/Properties/AssemblyInfo.cs 2007-12-23 20:10:59 UTC (rev 1169) @@ -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("ACID")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("---")] +[assembly: AssemblyProduct("ACID")] +[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("90329926-be63-447f-86b2-9c288f02c06b")] + +// 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.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] Added: trunk/plugins/AsteriskCallerID/ACID/Properties/AsteriskCID.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/AsteriskCallerID/ACID/Properties/AsteriskCID.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/AsteriskCallerID/ACID/Properties/AsteriskCIDDisabled.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/AsteriskCallerID/ACID/Properties/AsteriskCIDDisabled.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/AsteriskCallerID/ACID/Properties/Resources.Designer.cs =================================================================== --- trunk/plugins/AsteriskCallerID/ACID/Properties/Resources.Designer.cs (rev 0) +++ trunk/plugins/AsteriskCallerID/ACID/Properties/Resources.Designer.cs 2007-12-23 20:10:59 UTC (rev 1169) @@ -0,0 +1,84 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:2.0.50727.832 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace AsteriskCID.Properties { + using System; + + + /// <summary> + /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + /// </summary> + // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// <summary> + /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AsteriskCID.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// <summary> + /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap asterisk_logo { + get { + object obj = ResourceManager.GetObject("asterisk_logo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap AsteriskCID { + get { + object obj = ResourceManager.GetObject("AsteriskCID", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap AsteriskCIDDisabled { + get { + object obj = ResourceManager.GetObject("AsteriskCIDDisabled", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} Added: trunk/plugins/AsteriskCallerID/ACID/Properties/Resources.resx =================================================================== --- trunk/plugins/AsteriskCallerID/ACID/Properties/Resources.resx (rev 0) +++ trunk/plugins/AsteriskCallerID/ACID/Properties/Resources.resx 2007-12-23 20:10:59 UTC (rev 1169) @@ -0,0 +1,784 @@ +<?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> + <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="AsteriskCIDDisabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAIAAABKoV4MAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAABYpJREFUWEftl2Vv + JEkQRHf/v+wzMzOzZWaSWSaZmZm9Zt+bC6tcru5pz65Osk66/jCaqa6qSIiMzPn59vb24xsf4L/x+fGN + 2KHA/1fh7+/vd3Z2hoaGmpqaKioq8vLysrKycnJySktL6+vrOzs7FxYWrq+vg937be9fXl62t7dbW1sB + i4mJiY6Ojo2NTUlJEXZ2dnZGRkZCQsJf/zxpaWmNjY27u7uHh4eXl5deU34Pfm1traysDDyAAWtpaZmZ + mSEGt7e3T09Pz8/PfD48PJyens7Pz/MWs6KiopKTk7u7u4nT6uqqY0Gk8FdXV4QUh5KSkoj2xsYGYfiS + N3jc1tZGMDC3oaGhpqZmbm7OPhUR/OLiIh7ExcV1dHT4xjDYDkig49XV1bm5uVtbW2b/F/Cvr6/EDds5 + eXR0ZI7h+i/rIezBFiwvLycmJmIE8AUFBSRI+4PgwYY4WD0xMeHcTnbJfWZmJoxLT0/Hvy8TQe4hTWpq + Khf29vYGwZ+fn1NXdXV1pG1zc9N79cXFBa7Ex8ezgeucjPqagsf5+fns56E6VJM+3u/t7cEsSotwGWwi + YV96c3OD02yAiVwHz+234Vg5MjKCrRzhc3Jy0geeqPb39w8PD+PZysqKLgUb3rJojLi7u8MDwbOT1Br4 + paUlVMiXoScnJwRf8NSRCw+DgBkYGODe0dFRc+Ps7Cxp40xlZaUICO3IuvFeBU31U+ssUp/UiDcFRKWw + sFDxLy4uduFRyvLycjgF48xhkoSWGUdREoiDc3BYi3wiR+gPBim2WlxfX/daQGCIFm/Z/AmecoRNVAV8 + JrXmJLlAuYTEBr6AgcITfCGxKE6ZPSwSAJC88MQceDZw/BM8aiomj42N2cdIM+lAvYm/AEQ3fTE/MUKm + yDmyQPl44auqqrSBiH7AQ11hs0rJ+VZac3Mzx9hmkAy8VpRUnKbH+NYeiyUlJezhkk+5h1MsEVU0LtxJ + 1g8ODjDfxECoJgDQyttU7NsofdwT/AfzqQcllRe+fDFXwDiOGXhF27iOZwF+cwlywlmxBw14Dz41pryG + izz7ACb4IDlZNwEwIkggwxlBZak0qH4E5h2eBsoq9xYVFTnqxg6oNzg4CPV0UniG5PJe7URZ0DZE06Ee + UkFJiz21tbWKaEh0xUYe5iRv4vv6+hhpBCAMALBG+qVFBFh8Nnu8hYfKquTwE534gIeENhsdCwg7SqCr + tQ1RYnhCdvgp1xFaIsR3LDPhMRhcCOmQCjmJtwYi5L3gVXWmE9tG0HAlukCCxCuK0yu6+/v7iCbbmA9I + qH0DIWRdKbOZEYJnlFBYeA05vfGnFzAndXV1GUmAEAoJp+yWA3XGx8cpATvxVJOhRU9Pj31/CB6aiC9c + xHffund6qN1wOcU0Zp+yN1PVmn2BQJGce0LwNDTB4w2cOj4+DlAevcI5qCedDxg3zs7OlHJ2Ei1+OjeH + 4JlizexgV0WAEVykkZ4HO5xxQwdJBA1MKYePNhM/UY8fjMOGtFhAlwsOADEk/eYJN2rSqwQfbhp7H7bw + hgCokESCLy34MkEKADTEgnA6+DHrTU9Pi/96VKDBGu5YABizIYGkdzOSUIdsYDrCJbvWXeab33hsUiUN + IW6IDGl7fHwM5y5/rLAS2UGz2Y9C6F8YPqD/DIwMXqz4NkN30mUalwQZeVc7QK6RB+yjrIkTDyJKatED + tEhKLN3lC2RUj0B6AZYkY4rXAZ9BGzOpFo7ZRqhVSPuEpPlAtgqVFaoLX+lm/BFAKxlcTZshHo48YI3/ + vxzUjX6skjVu2aOchgMZxBf8IzZTU1MMu46LqDjpR1ro10ivT90HJJWst7e3o1ZE2LQ4hl3KndkGSJSY + LoByRFIIlKvT0CP6hxvJ1X+253/4P4vbv3Lqb4P+eVNymAajAAAAAElFTkSuQmCC +</value> + </data> + <data name="AsteriskCID" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAIAAABKoV4MAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAB0tJREFUWEftV2ls + VFUUBkXEyFKgG7SAAqKBiBtCUDSoicYlJkZQNIhGIxrighpR40YptNNOC22hUFoomxCgbGFtKVCQUqiy + tGGHlkIpO5TS9t233jt+573pzHTmTQfwBzHx5f2Y9+bd+53lO985t7XL5Wp1By/A38Gr1R3EpsD/Z+HV + Rn5+n16aoW76Ssl7V859Xs56Ss4erCx5Q137iVb0u3Fig2i8ZLonzNvmunXvheDn9mqFP8hZT0hT2ktx + d0sJHVh6bzzKOUPlnCFy5gCWHClNaiPFt5Uz+qobv+QXDvDLh0XD+UD8W4PnZ3YqS9+SptwvTb5Pzhms + bf7eOLISMRCs1qUzl6HQrTXy2krj+Hr8y9L7SBNbs2k9tR3xeul0XrXdz4KbhYft6rrPpPh2LDVGzR/P + z5a4uBaSN6L+nLblR5bUVUroqG4Yp67+0Di2xnfVTcEbJzextAckR2dt26/YMSSq3wfGifVsWi+W2Eld + 9YE8dyivKfV8EApeCG3HZCmhPVaKq8e8+woulPqm+4bLCBEJXrmFpcYiC/Kcocr84S61wdoqGLxJVMER + MSkxTC9b4OeQuF5FLMt6XJ79pDzjEZA8ZEj0PelIAdjAHJ314qSW4EXdaZdSp64dCw5TmgMuceMsS+vN + kiKYM5oldDCOrg4J79KYMm84S6Yl8sxHReNle+/5xXJeXaIVTmDOCC+24L4AQroiZ/ZnKd3Y1B5glnFi + YzN4bthao+/NZolhtMQRZpQvsoEXtaf0klT9r0yW1IWf2ureBVlY/7n+dxbSYb0R8nV40AQfblRu9uAZ + Ffnq8pG2VS5qK1lGX5baHfFHHQXAc01dN1bfnYbq0vfP8e54ZCVD2kDdvHcsAoJ00BmWEs2mxrLkcKNq + G71k17SC75gzUoq/Vyv6zSYA3FAWvETxT45QFr3iDw+lVJaNADnBOM9i0XhRnj0Im5pB6yynPajvTBD1 + 5/EZc0YRvDMScmQcziODEjsRw1Nj4CI/UxxoAeQZyULYwNlm8LxmD6pTmf+CPOsxpNazUt/llOLucscZ + FqR0R/7k3GdJXAGDN1N7KrnPmZwyTcSdGiNNukfJGxUIr679FD7AOCz3hRdQUzMs4b5ht9KMdMjTHzY9 + s/B6kN+e39YjwmD95eiC3ZEFKp+AS105Gqwi77Of9sKTMCEmyZH0Vq23q7QaLf8bigE+s2D8757kfVIX + 8I5f2B+sDpXFr8FDyv0fr3rhVaQEVieGaTsmtVDB4vIhdcV7JuMC4J3RyoIXucnBoJdaL2eDRtEm88e6 + 4cW1k6TJSKozCiRqCb6+BsuCwEcpi1/nF8paWM6ri82sxcJPfe9sN7y+L4fUAGKUPcil2ESeGFBfoxV8 + C9FuKfgm+9QVo9DgbY3Qtk8kIPAuvQ9k2w2vbfpacoS5a1H4jyVCroNc+1MPofKlHh7d6Yg1iR2jbZ4g + 6qqbGQGpyBlM3iPyaz62/qKWQ+kEoZLClSVvBlqt70qR4tp4Cw8MR/XP6M+m96MwAhV9DEVI1dxkBAov + vi1K3Hc3o3yhaZmpE6f/9MKDhD5KFOB9w3kogVlaPazK1DaM41eOynOfaZKdaKOiABGydMmqe5jrwSAk + tUHJHYbKItdXvu8xi7x3wzujMChiVLIJQNl8NqU9S+wozx3GKwqICmoDZIs47BbdInp56aCyfATaiTS5 + nZY/3ncfvTiZsk7hifUtSzP4lhQgLDC52qa9ugxVXf2Rtj3OIwkghDxroE/LKXSDCW4cmIcSEHVnPPCo + JgoJyWUnfafD1yyCx9gqQdHMPoj50L5yRLMeajbcAd6Ge9Kv4eqeTURtBfVGKJIjDLFxce9fbuphWCDN + IQO7yRkPQQbsLfB5S+MG5hbkEjqY2DHYuAHyU8pJTyOolfiExEs96mme2cGnKlowgoYtjFmZA+AZitg4 + vs7mY8GpvSKuMHFaL1tBc8962paf4IRVu5hoMXGECAA30Iqa7lqQw/Z7ffdU2jY1xm++bsZ8Im1dNQmL + VV0om6Su6LMhUxD6A2HgzIXMBmtC3knXOLSMkoRJyLLALNBg8hmEnhyzIYisLHtbK3agDsmxq8dQbFBi + 2yXNBm29BLGyqtPq3CSf6oYvSEB0OaivhoZOo+/JUBa9DCVAEWE2x0GMUPNGYWDUtv3CEtoHnrDczG+m + D6UziM9oyU1zCxkB3uYMUVeN1kpS9LKFiBNuvXwRUquuHgMtomiBYtRyosiB9D7y9H5kR3xbzPZUoo4u + 6OmBDtgcM3hVkYxqwWwJO9wzDIQ6GtJE8oDmhCqluzM9Qq9Q05gAzDfyzIF0EKutxFkMozTGWdhtpRJS + CG32syDIKUdtQD82VTqC3KJ2Eu3T4qCPGA5otiELksNx0MEpzDi4FMOuv4tao7h6HMKAYSmQzi2e8XSG + rGtbf1aWj6S5FqVBGYnFcRNeoqbVVWOgxEZlIZQjdBXgCxw/mjf0UEfMm9r19j/6H/72Y/evV/4Dr5A+ + HIuaRt4AAAAASUVORK5CYII= +</value> + </data> + <data name="asterisk_logo" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + iVBORw0KGgoAAAANSUhEUgAAAN4AAADKCAYAAADKIP46AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAie1JREFUeF7tnQeY + ZGWV/lEkKgw5Dz2Y8xjWvDjmuDrGXV3DiKur+zeMqGtYw5AkDjMDIiKIQzIjIyCCiowiKqA4MEzsPDnn + 7q6u/H9/t+r0nP763qpbnVuo53mfqq6uuvfWvef9zjnvOd93H1Mul/d59PGIOwOPqfGLHzWI0TAHiPco + JuQ5eIyu23jDo7aUkk+PnqiUJ2oMB6fxRq7BHs+jtuZs7dGTMb6IN1ijjvveYzVYDDeG8/hsW49IG3xE + /ugx9F5x53swxjzchBru7Q3mN/nv/NPb5T/9DxxnJON8N2KU9Qixr7Y3nlDvePl/I7+fz/5T2ug/5Y8a + hxcrjbElGW09Yj1Ov3c8oN5x1iJlmvPzTxWaPkq8kRtR0xhTaIxJxptErP1EurTYX59tFGm3bZ9LOs5a + pIwjZJpzN6Ftd0If/Dj0bPVCyTgjC40yNN44448j0AE6H2lxoD6bhLTb4HNxx5FE1jhSxhFyMESccHY8 + 4Q74n4BsjRAtNGxPijjiHKTzkwYH63NJSPN9PpOWuP43xJEyJGR4fkIi1vKGE8aeJ8yBTjDC1QshvbF5 + YzQjTSKYJ0VInMfrHIV4gt4bLsRtP468/hhDcvrflUTIWkRMS8Jxb9fj/gAnMOFqeTYjWy2imQGbcXvD + 92Q6ROfIcKheh5ik94aKuO36/fLaH5M/Vk9O+02ekEbGNET059STMMkLjlv7HrcHNoEIV8u7xXm2kGxm + hJ5oZrhmzCGxPJEO07kyHK7XHkfo7+FCuG3+9vu2Y/IkteOOI6URMiRjSEQfEdj5nPAEfJR46VTNep0h + 3hDSkq0e0cyAMeiQWEamI/U/cJTD0XptOEavhwt+u7z2+7TjsOMyktpxh6T0hLRBJo6ISST059jOfT0P + OK5sfVwdzDj0coMhXFIYiWcLyeY9GkQzA8VgMV5PMDN0jN7IdKxeg+OqOF7PhhP0OsSJei8t4r7vt2/7 + 5NmOw47LE9OTMo6Q/O4kInpvWI+EE4qAjxIv3uMNlXBmJGnJ5onmvZiRLCQXpDACnaTXYHIVJ+vZ0KTX + HlP0d1qE3+Vv267ti2fbvx0Px2YEDUkZEpKBxZORgceIaIMSHhFvGJLQQnZfQ2wkBB1T2x/Tnetkjrf9 + D5ZwcXkbhoLBYDhxni0kGx4Nj+G9GAZsJDNyYfyQwAh0il6DJwpPcniyXoOnxOCpei8JcZ+3bfFs+2B/ + wPZvx2MENXJy3JAyjpD8XiMjA44RkXMTktCHpFbO8LVECFgrB4y7tmNmf2O243FGuuEgnBdJPOEIoyyM + NLJZXhZ6tFok8+QyQhl5nqZ9PL2KZ+gZPLOKZ+nZ49n6ux7C79i2eLbt2/7Ytx0HpA3JyXFDSk/IkIzm + GY2IaUhoXpDzXo+AtfK/MeHAmOx0ApEuTjRhZPUezsJJI5t5uJBsjOZ4NSMbxmYezXszjNSTDGPGsI1c + RirIAYGeU8Vz9Ty1iufpGTy/ihfo2eOF+jsJ4WdtGzzbdm0/7NP2z7FwTCE5jZhGSPOSnowhEfH6SST0 + oagPQz0B64WfY+79HsnES+vlLHypRzjCSe/dTBxh9PaeLSQbnsCIZp7Mk8wTDEM3QkEQyPMvVbxIzy8W + XlLFS/UMXhbg5fq7HsLv2LZs2+wHsE/bP8fCMRlBIacRE1IaIfGU/D7vHb1XtLzRQlMjIYMW59LKGGkJ + GIaf5v3GlHyPVOKFJ92HIublPOGMdIQ0oYfzhPN5m3k3DKce2fBoGCTe... [truncated message content] |
From: <gre...@us...> - 2007-12-23 20:13:29
|
Revision: 1170 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1170&view=rev Author: gregorvsf Date: 2007-12-23 12:13:27 -0800 (Sun, 23 Dec 2007) Log Message: ----------- Datei / Ordner gel?\195?\182scht Removed Paths: ------------- trunk/plugins/ACID.sln trunk/plugins/ACID.suo Deleted: trunk/plugins/ACID.sln =================================================================== --- trunk/plugins/ACID.sln 2007-12-23 20:10:59 UTC (rev 1169) +++ trunk/plugins/ACID.sln 2007-12-23 20:13:27 UTC (rev 1170) @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C# Express 2008 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ACID", "ACID\ACID.csproj", "{2E40473B-F2A8-4B8C-A094-10DA0857682A}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2E40473B-F2A8-4B8C-A094-10DA0857682A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2E40473B-F2A8-4B8C-A094-10DA0857682A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2E40473B-F2A8-4B8C-A094-10DA0857682A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2E40473B-F2A8-4B8C-A094-10DA0857682A}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal Deleted: trunk/plugins/ACID.suo =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2007-12-31 16:55:38
|
Revision: 1200 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1200&view=rev Author: and-81 Date: 2007-12-31 08:55:24 -0800 (Mon, 31 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/MessagePlugin/AssemblyInfo.cs trunk/plugins/TVServerMonitor/Properties/AssemblyInfo.cs trunk/plugins/TVServerMonitor/TVServerMonitor.csproj trunk/plugins/TVServerStatus/Properties/AssemblyInfo.cs trunk/plugins/TVServerStatus/TVServerStatus.cs Added Paths: ----------- trunk/plugins/TVServerMonitor/TVServerMonitor.sln trunk/plugins/TVServerStatus/TVServerStatus.sln Property Changed: ---------------- trunk/plugins/TVServerMonitor/ Modified: trunk/plugins/MessagePlugin/AssemblyInfo.cs =================================================================== --- trunk/plugins/MessagePlugin/AssemblyInfo.cs 2007-12-31 16:54:13 UTC (rev 1199) +++ trunk/plugins/MessagePlugin/AssemblyInfo.cs 2007-12-31 16:55:24 UTC (rev 1200) @@ -33,7 +33,7 @@ // 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.2.0")] -[assembly: AssemblyFileVersion("1.0.2.0")] +[assembly: AssemblyVersion("1.0.3.1")] +[assembly: AssemblyFileVersion("1.0.3.1")] [assembly: CLSCompliant(true)] \ No newline at end of file Property changes on: trunk/plugins/TVServerMonitor ___________________________________________________________________ Name: svn:ignore + bin obj *.suo Modified: trunk/plugins/TVServerMonitor/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/TVServerMonitor/Properties/AssemblyInfo.cs 2007-12-31 16:54:13 UTC (rev 1199) +++ trunk/plugins/TVServerMonitor/Properties/AssemblyInfo.cs 2007-12-31 16:55:24 UTC (rev 1200) @@ -34,8 +34,8 @@ // 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.0")] -[assembly: AssemblyFileVersionAttribute("1.0.3.0")] +[assembly: AssemblyVersion("1.0.3.1")] +[assembly: AssemblyFileVersionAttribute("1.0.3.1")] // // In order to sign your assembly you must specify a key to use. Refer to the Modified: trunk/plugins/TVServerMonitor/TVServerMonitor.csproj =================================================================== --- trunk/plugins/TVServerMonitor/TVServerMonitor.csproj 2007-12-31 16:54:13 UTC (rev 1199) +++ trunk/plugins/TVServerMonitor/TVServerMonitor.csproj 2007-12-31 16:55:24 UTC (rev 1200) @@ -103,11 +103,11 @@ <Reference Include="System.Xml" /> <Reference Include="TvControl, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> - <HintPath>..\TV Engine\TVLibrary\TvControl\bin\Release\TvControl.dll</HintPath> + <HintPath>..\..\TV Engine\TVLibrary\TvService\bin\Release\TvControl.dll</HintPath> </Reference> <Reference Include="TvLibrary.Interfaces, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> - <HintPath>..\TV Engine\TVLibrary\TvControl\bin\Release\TvLibrary.Interfaces.dll</HintPath> + <HintPath>..\..\TV Engine\TVLibrary\TvService\bin\Release\TvLibrary.Interfaces.dll</HintPath> </Reference> </ItemGroup> <ItemGroup> Added: trunk/plugins/TVServerMonitor/TVServerMonitor.sln =================================================================== --- trunk/plugins/TVServerMonitor/TVServerMonitor.sln (rev 0) +++ trunk/plugins/TVServerMonitor/TVServerMonitor.sln 2007-12-31 16:55:24 UTC (rev 1200) @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TVServerMonitor", "TVServerMonitor.csproj", "{C17FD89A-D510-4395-A292-54A17E31AB93}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C17FD89A-D510-4395-A292-54A17E31AB93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C17FD89A-D510-4395-A292-54A17E31AB93}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C17FD89A-D510-4395-A292-54A17E31AB93}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C17FD89A-D510-4395-A292-54A17E31AB93}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Modified: trunk/plugins/TVServerStatus/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/TVServerStatus/Properties/AssemblyInfo.cs 2007-12-31 16:54:13 UTC (rev 1199) +++ trunk/plugins/TVServerStatus/Properties/AssemblyInfo.cs 2007-12-31 16:55:24 UTC (rev 1200) @@ -34,8 +34,8 @@ // 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.0")] -[assembly: AssemblyFileVersionAttribute("1.0.3.0")] +[assembly: AssemblyVersion("1.0.3.1")] +[assembly: AssemblyFileVersionAttribute("1.0.3.1")] // // In order to sign your assembly you must specify a key to use. Refer to the Modified: trunk/plugins/TVServerStatus/TVServerStatus.cs =================================================================== --- trunk/plugins/TVServerStatus/TVServerStatus.cs 2007-12-31 16:54:13 UTC (rev 1199) +++ trunk/plugins/TVServerStatus/TVServerStatus.cs 2007-12-31 16:55:24 UTC (rev 1200) @@ -43,7 +43,7 @@ /// <summary> /// returns the version of the plugin /// </summary> - public string Version { get { return "1.0.3.0"; } } + public string Version { get { return "1.0.3.1"; } } /// <summary> /// returns the author of the plugin /// </summary> Added: trunk/plugins/TVServerStatus/TVServerStatus.sln =================================================================== --- trunk/plugins/TVServerStatus/TVServerStatus.sln (rev 0) +++ trunk/plugins/TVServerStatus/TVServerStatus.sln 2007-12-31 16:55:24 UTC (rev 1200) @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TVServerStatus", "TVServerStatus.csproj", "{C17FD89A-D510-4395-A292-54A17E31AB93}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C17FD89A-D510-4395-A292-54A17E31AB93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C17FD89A-D510-4395-A292-54A17E31AB93}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C17FD89A-D510-4395-A292-54A17E31AB93}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C17FD89A-D510-4395-A292-54A17E31AB93}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2008-01-05 14:28:01
|
Revision: 1208 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1208&view=rev Author: and-81 Date: 2008-01-05 06:27:56 -0800 (Sat, 05 Jan 2008) Log Message: ----------- 1.0.4.1 Modified Paths: -------------- 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/TV2 Blaster Plugin/index.html trunk/plugins/IR Server Suite/Documentation/Plugins/TV3 Blaster Plugin/index.html trunk/plugins/IR Server Suite/Documentation/introduction.html trunk/plugins/IR Server Suite/Documentation/legal.html trunk/plugins/IR Server Suite/Documentation/new.html trunk/plugins/IR Server Suite/Documentation/troubleshooting.html trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.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/IR Server Plugin Interface/IRServerPluginBase.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/Microsoft MCE Transceiver/MicrosoftMceTransceiver.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/WinLirc Transceiver/WinLirc Transceiver.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 - 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/TV2 Blaster Plugin/Forms/ExternalChannels.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/ExternalChannels.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 trunk/plugins/MCEReplacement/Forms/ExternalChannels.cs trunk/plugins/MCEReplacement/Forms/StbSetup.cs trunk/plugins/MCEReplacement/MCEReplacement.cs Added Paths: ----------- trunk/plugins/IR Server Suite/Documentation/Input Service/ trunk/plugins/IR Server Suite/Documentation/Input Service/advanced.png trunk/plugins/IR Server Suite/Documentation/Input Service/configuration.png trunk/plugins/IR Server Suite/Documentation/Input Service/index.html trunk/plugins/IR Server Suite/Documentation/LICENSE.MIT trunk/plugins/IR Server Suite/IR Server Plugins/Ads Tech PTV-335 Receiver/ trunk/plugins/IR Server Suite/IR Server Plugins/Ads Tech PTV-335 Receiver/Ads Tech PTV-335 Receiver.csproj 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/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/Ads Tech PTV-335 Receiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Util Apps/Log File Multi-Viewer/ trunk/plugins/IR Server Suite/Util Apps/Log File Multi-Viewer/FormMain.Designer.cs trunk/plugins/IR Server Suite/Util Apps/Log File Multi-Viewer/FormMain.cs trunk/plugins/IR Server Suite/Util Apps/Log File Multi-Viewer/FormMain.resx trunk/plugins/IR Server Suite/Util Apps/Log File Multi-Viewer/Log File Multi-Viewer.csproj trunk/plugins/IR Server Suite/Util Apps/Log File Multi-Viewer/LogLine.cs trunk/plugins/IR Server Suite/Util Apps/Log File Multi-Viewer/Program.cs trunk/plugins/IR Server Suite/Util Apps/Log File Multi-Viewer/Properties/ trunk/plugins/IR Server Suite/Util Apps/Log File Multi-Viewer/Properties/AssemblyInfo.cs Removed Paths: ------------- trunk/plugins/IR Server Suite/Documentation/IR Server/ Property Changed: ---------------- trunk/plugins/IR Server Suite/IR Server Plugins/Direct Input Receiver/ Modified: trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhc =================================================================== --- trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhc 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhc 2008-01-05 14:27:56 UTC (rev 1208) @@ -14,8 +14,8 @@ <param name="Local" value="introduction.html"> </OBJECT> <LI> <OBJECT type="text/sitemap"> - <param name="Name" value="IR Server"> - <param name="Local" value="IR Server\index.html"> + <param name="Name" value="Input Service"> + <param name="Local" value="Input Service\index.html"> </OBJECT> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="Tray Launcher"> Modified: trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhp =================================================================== --- trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhp 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/Documentation/IR Server Suite.hhp 2008-01-05 14:27:56 UTC (rev 1208) @@ -14,7 +14,7 @@ [FILES] introduction.html new.html -IR Server\index.html +Input Service\index.html Plugins\index.html Plugins\MP Blast Zone Plugin\index.html Plugins\MP Control Plugin\index.html Added: trunk/plugins/IR Server Suite/Documentation/Input Service/advanced.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Documentation/Input Service/advanced.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Documentation/Input Service/configuration.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Documentation/Input Service/configuration.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Documentation/Input Service/index.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/Input Service/index.html (rev 0) +++ trunk/plugins/IR Server Suite/Documentation/Input Service/index.html 2008-01-05 14:27:56 UTC (rev 1208) @@ -0,0 +1,30 @@ +<HTML> +<HEAD><TITLE>Input Service Configuration</TITLE></HEAD> +<BODY> + +<H2>Input Service Configuration<BR><HR COLOR="RED"></H2> + +<IMG SRC="configuration.png"><BR> +This is the Input Service configuration window.<BR> + +<P><B>Device plugin:</B><BR> +Choose the device(s) you want to use for receiving and the device you want to use for transmitting (blasting) by placing a mark in the box under the appropriate column. By double-clicking the device name in the device plugin list you can select both receiving and transmitting cabilities for that device at the same time. Note that you do not need to have a device selected in either column, that is, you can run the Input Service without a transmit, receive or either type of device enabled.<BR> +<BR> +Click "Configure" to set any device specific options.</P> + +<BR> + +<IMG SRC="advanced.png"><BR> +This is the Input Service advanced configuration window.<BR> + +<P><B>Mode:</B><BR> +This option sets the mode that the Input Service will operate in.<BR> +<UL> +<LI><B>Server mode</B> - This is the default option where the program operates as a central server hosting the locally connected IR device's capabilities to other plugins and applications in the suite.</LI> +<LI><B>Button relay mode</B> - When in this mode the server will relay button presses recieved from the IR device to another IR Server.</LI> +<LI><B>Repeater mode</B> - This mode has the server running as a repeater for another Input Service on another machine. When the host Input Service transmits an IR command the repeater mode server will also transmit the same IR command.</LI> +</UL> +</P> + +</BODY> +</HTML> Added: trunk/plugins/IR Server Suite/Documentation/LICENSE.MIT =================================================================== --- trunk/plugins/IR Server Suite/Documentation/LICENSE.MIT (rev 0) +++ trunk/plugins/IR Server Suite/Documentation/LICENSE.MIT 2008-01-05 14:27:56 UTC (rev 1208) @@ -0,0 +1,23 @@ + + +The MIT License + +Copyright (c) <year> <copyright holders> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. Modified: trunk/plugins/IR Server Suite/Documentation/Plugins/TV2 Blaster Plugin/index.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/Plugins/TV2 Blaster Plugin/index.html 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/Documentation/Plugins/TV2 Blaster Plugin/index.html 2008-01-05 14:27:56 UTC (rev 1208) @@ -4,6 +4,10 @@ <H2>TV2 Blaster Plugin<BR><HR COLOR="RED"></H2> +<P>This MediaPortal plugin is for tuning external channels (i.e. on Set Top Boxes) for the MediaPortal TV Engine 2 (the default TV system built into MediaPortal 0.2.3.0).</P> + +<P>You will need to create channels for the Set Top Box channels you want the plugin to handle. They must be marked as "External" and given a channel number to be used by the plugin. This can be done in the MediaPortal Configuration program.</P> + <IMG SRC="configuration.png"><BR> This is the plugin configuration window.<BR> Modified: trunk/plugins/IR Server Suite/Documentation/Plugins/TV3 Blaster Plugin/index.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/Plugins/TV3 Blaster Plugin/index.html 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/Documentation/Plugins/TV3 Blaster Plugin/index.html 2008-01-05 14:27:56 UTC (rev 1208) @@ -4,6 +4,10 @@ <H2>TV3 Blaster Plugin<BR><HR COLOR="RED"></H2> +<P>This MediaPortal plugin is for tuning external channels (i.e. on Set Top Boxes) for the MediaPortal TV Engine 3 (TV Server).</P> + +<P>You will need to create channels for the Set Top Box channels you want the plugin to handle. They must be marked as "External" and given a channel number to be used by the plugin. This can be done in the TV Server Configuration program.</P> + <IMG SRC="configuration.png"><BR> This is the plugin configuration window.<BR> Modified: trunk/plugins/IR Server Suite/Documentation/introduction.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/introduction.html 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/Documentation/introduction.html 2008-01-05 14:27:56 UTC (rev 1208) @@ -8,11 +8,11 @@ <P><B>How does this work?</B><BR> <BR> -You install IR Server on a computer that has an IR Device attached to it. IR Server 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> +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> <BR> You don't have to have a LAN (Network) to use IR Server Suite, because all the applications and plugins can operate on the one machine too.<BR> <BR> -By having one point of access to the IR Device, IR Server regulates the communications with the IR Device. This means that multiple plugins and applications can be accessing the device at effectively the same time without interfering with each other.<BR> +By having one point of access to the IR Device, Input Service regulates the communications with the IR Device. This means that multiple plugins and applications can be accessing the device at effectively the same time without interfering with each other.<BR> <BR> This means, for example, the MediaPortal TV Server as well as the MediaPortal client can share the device. And by using other applications in the suite you can control your whole PC.<BR> @@ -20,11 +20,11 @@ <P><B>Suite Overview</B><BR> <BR> -<A HREF="IR Server\index.html">IR Server</A><BR> -IR Server is the centre-piece of the system. As the name suggests, it is the server of the IR device. Other applications and plugins communicate with the IR Server to receive button press notification and to blast (transmit) or learn IR commands.<BR> +<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="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 IR Server to control MediaPortal.<BR> +This MediaPortal plugin is the equivalent of the MCE Replacement Plugin, it connects to the Input Service 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> @@ -42,7 +42,7 @@ 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 Infrared remote control commands either locally or over a network.<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/legal.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/legal.html 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/Documentation/legal.html 2008-01-05 14:27:56 UTC (rev 1208) @@ -25,9 +25,11 @@ <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> <I>Nintendo</I> and <I>Wii</I> are trademarks of <a href="http://www.nintendo.com/">Nintendo</a>.<br> +<br> +<I>MCE Standby Tool</I> is Copyright 2006, 2007 <a href="http://www.xs4all.nl/~hveijk/mst/indexe.htm">Herman van Eijk</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> +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 by getting in touch with me through the MediaPortal forums <a href="http://forum.team-mediaportal.com/forumdisplay.php?f=165">here</a>. </P> <P>Wii Remote support uses <a href="http://blogs.msdn.com/coding4fun/archive/2007/03/14/1879033.aspx">WiimoteLib</a>.</P> Modified: trunk/plugins/IR Server Suite/Documentation/new.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/new.html 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/Documentation/new.html 2008-01-05 14:27:56 UTC (rev 1208) @@ -4,6 +4,19 @@ <H2>What's new?<BR><HR COLOR="RED"></H2> +<P>Version 1.0.4.1 +<UL> +<LI>Minor bug fixes.</LI> +<LI>Made MCE Remote XP/Replacement driver support more forgiving of malformed/unusual data from device.</LI> +<LI>Raised thread priorities from Below Normal to Normal (Hopefully to improve responsiveness, if there are any ill side effects I'll revert this change) and made all threads "Background" (to prevent them from living on after the thread spawner has closed).</LI> +<LI>Made error logging more uniform (makes code comparisons between similar libraries easier too, this should make it less likely that a change in, for example, TV2 Blaster plugin would not get made in TV3 Blaster plugin).</LI> +<LI>Moved Input Server Plugins from "\IR Server Suite\IR Server" to "\IR Server Suite\Input Service" to bring them in-line with the move from IR Server to Input Service. Existing users will need to move their configuration files (*.xml) across or reconfigure their transceiver.</LI> +<LI>Changed timestamps in log files to same format as MediaPortal's in preperation for new log file analysing tool I'm writing.</LI> +<LI>Added support for the Ads Tech PTV-335's IR Receiver. You must copy the ADS_335_RCPLIB.dll from (usually) "\Program Files\Ulead Systems\Ulead InstaMedia 2.1" to the IR Server Plugins folder in your IR Server Suite install location.</LI> +<LI>Fixed Vista MCE Suspend/Resume handling.</LI> +</UL></P> +<BR> + <P>Version 1.0.4.0 <UL> <LI>Replaced "IR Server" application with "Input Service".</LI> Modified: trunk/plugins/IR Server Suite/Documentation/troubleshooting.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/troubleshooting.html 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/Documentation/troubleshooting.html 2008-01-05 14:27:56 UTC (rev 1208) @@ -1,3 +1,94 @@ -http://www.microsoft.com/downloads/details.aspx?FamilyId=B39D53F1-0AC9-433B-B488-4CAB82F31DC8&displaylang=en +<HTML> +<HEAD><TITLE>Troubleshooting</TITLE></HEAD> +<BODY> -http://www.xs4all.nl/~hveijk/mst/indexe.htm \ No newline at end of file +<H2>Troubleshooting<BR><HR COLOR="RED"></H2> + +<H3>Contents</H3> + +<UL> +<B>Input Service</B> +<LI><A HREF="#1.1">Can't do this</A></LI> +<LI><A HREF="#1.2">Can't do this</A></LI> +</UL> + + +<UL> +<B>Translator</B> +<LI><A HREF="#2.1">Can't do this</A></LI> +<LI><A HREF="#2.2">Can't do this</A></LI> +</UL> + + +<UL> +<B>Microsoft MCE Remote</B> +<LI><A HREF="#3.1">IR Learning</A></LI> +<LI><A HREF="#3.2">IR Blasting</A></LI> +<LI><A HREF="#3.3">Suspend and Resume</A></LI> +</UL> + + +<UL> +<B>Miscellaneous</B> +<LI><A HREF="#4.1">How to get additional help or send a bug report</A></LI> +</UL> + + + +<BR> +<HR COLOR="BLUE" SIZE="1"> + +<H3>Input Service</H3> + +<P><B><A NAME="1.1">Can't do this</A></B><BR> +blah blah blah, blah blah blah</P> + +<P><B><A NAME="1.2">Can't do this</A></B><BR> +blah blah blah, blah blah blah</P> + +<BR> +<HR COLOR="BLUE" SIZE="1"> + +<H3>Translator</H3> + +<P><B><A NAME="2.1">Can't do this</A></B><BR> +blah blah blah, blah blah blah</P> + +<P><B><A NAME="2.2">Can't do this</A></B><BR> +blah blah blah, blah blah blah</P> + +<BR> +<HR COLOR="BLUE" SIZE="1"> + +<H3>Microsoft MCE Remote</H3> + +<P><B><A NAME="3.1">IR Learning</A></B><BR> +blah blah blah, blah blah blah</P> + +<P><B><A NAME="3.2">IR Blasting</A></B><BR> +blah blah blah, blah blah blah</P> + +<P><B><A NAME="3.3">Suspend and Resume</A></B><BR> +For troubleshooting suspend and resume issues you should firstly make sure that you are running the <A HREF="http://www.microsoft.com/downloads/details.aspx?FamilyId=B39D53F1-0AC9-433B-B488-4CAB82F31DC8&displaylang=en">latest Microsoft drivers</A>.<BR> +And then if your problems persist try the <A HREF="http://www.xs4all.nl/~hveijk/mst/indexe.htm">MCE Standby Tool</A>.</P> + +<BR> +<HR COLOR="BLUE" SIZE="1"> + +<H3>Miscellaneous</H3> + +<P><B><A NAME="4.1">How to get additional help or send a bug report</A></B><BR> +If you have tried all the available solutions and still can't get around a problem you've encountered then you may have found a bug in the software. If you feel you have found a bug or would just like some additional assistance then go to the MediaPortal forums and post a new message in the <A HREF="http://forum.team-mediaportal.com/forumdisplay.php?f=165">MCE Replacement Plugin Sub-Forum</A>.</P> + +<P>Please include in your post a full description of the problem you're having along the steps you follow to produce the problem and the following:<BR> +Operating System including Service Pack details<BR> +IR Server Suite version number/date<BR> +All IR Server Suite and MediaPortal log files (where applicable)<BR> +Input Service Receiver/Transmitter device details (For example, "Microsoft MCE Transceiver OEM with European/Australian RC6 MCE Remote")<BR> +Please also include any other relevant software version numbers</P> + + + + +</BODY> +</HTML> Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/Ads Tech PTV-335 Receiver ___________________________________________________________________ Name: svn:ignore + bin obj ADS_335_RCPLIB.dll Added: trunk/plugins/IR Server Suite/IR Server Plugins/Ads Tech PTV-335 Receiver/Ads Tech PTV-335 Receiver.csproj =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Ads Tech PTV-335 Receiver/Ads Tech PTV-335 Receiver.csproj (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Ads Tech PTV-335 Receiver/Ads Tech PTV-335 Receiver.csproj 2008-01-05 14:27:56 UTC (rev 1208) @@ -0,0 +1,57 @@ +<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>{E146C2D8-6842-46C5-B2A9-AFA9D6F1A3BB}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>AdsTechPTV335Receiver</RootNamespace> + <AssemblyName>Ads Tech PTV-335 Receiver</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> + <DocumentationFile>bin\Debug\Ads Tech PTV-335 Receiver.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.Data" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="AdsTechPTV335Receiver.cs" /> + <Compile Include="Properties\AssemblyInfo.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> + --> +</Project> \ No newline at end of file Added: 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 (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Ads Tech PTV-335 Receiver/AdsTechPTV335Receiver.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -0,0 +1,187 @@ +using System; +using System.Text; +using System.Threading; +using System.Runtime.InteropServices; + +using IRServerPluginInterface; + +namespace AdsTechPTV335Receiver +{ + + /// <summary> + /// IR Server plugin to support the Ads Tech PTV-335 Receiver device. + /// </summary> + public class AdsTechPTV335Receiver : IRServerPluginBase, IRemoteReceiver + { + + #region Interop + + // 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); + + //int __cdecl ADS335RCP_Init(void) + [DllImport("ADS_335_RCPLIB.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "?ADS335RCP_Init@@YAHXZ")] + static extern int Init(); + + //int __cdecl ADS335RCP_UnInit(void) + [DllImport("ADS_335_RCPLIB.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "?ADS335RCP_UnInit@@YAHXZ")] + static extern int UnInit(); + + #endregion Interop + + #region Consatnts + + const int PacketTimeout = 100; + + #endregion Constants + + #region Variables + + RemoteHandler _remoteHandler; + + bool _processReadThread; + Thread _readThread; + + #endregion Variables + + + /// <summary> + /// Name of the IR Server plugin. + /// </summary> + /// <value>The name.</value> + public override string Name { get { return "Ads Tech PTV-335"; } } + /// <summary> + /// IR Server plugin version. + /// </summary> + /// <value>The version.</value> + public override string Version { get { return "1.0.4.1"; } } + /// <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 "Support the Ads Tech PTV-335 Receiver."; } } + + /// <summary> + /// Detect the presence of this device. Devices that cannot be detected will always return false. + /// </summary> + /// <returns> + /// <c>true</c> if the device is present, otherwise <c>false</c>. + /// </returns> + public override bool Detect() + { + try + { + return (Init() == 1); + } + catch + { + return false; + } + } + + /// <summary> + /// Start the IR Server plugin. + /// </summary> + /// <returns><c>true</c> if successful, otherwise <c>false</c>.</returns> + public override bool Start() + { + try + { + int retVal = Init(); + if (retVal == 0) + return false; + + StartReadThread(); + + return true; + } + catch + { + return false; + } + } + /// <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() + { + StopReadThread(); + + UnInit(); + } + + /// <summary> + /// Callback for remote button presses. + /// </summary> + public RemoteHandler RemoteCallback + { + get { return _remoteHandler; } + set { _remoteHandler = value; } + } + + + void StartReadThread() + { + if (_readThread != null) + return; + + _processReadThread = true; + + _readThread = new Thread(new ThreadStart(ReadThread)); + _readThread.Name = "AdsTechPTV335Receiver.ReadThread"; + _readThread.IsBackground = true; + _readThread.Start(); + } + + void StopReadThread() + { + if (_readThread == null) + return; + + _processReadThread = false; + + if (!_readThread.Join(PacketTimeout * 2)) + _readThread.Abort(); + + _readThread = null; + } + + void ReadThread() + { + byte key = 0; + int retVal; + + while (_processReadThread) + { + retVal = GetKey(ref key); + + if (retVal == 0) + Thread.Sleep(PacketTimeout); + else if (_remoteHandler != null) + _remoteHandler(key.ToString("X2")); + } + } + + } + +} Added: trunk/plugins/IR Server Suite/IR Server Plugins/Ads Tech PTV-335 Receiver/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Ads Tech PTV-335 Receiver/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Ads Tech PTV-335 Receiver/Properties/AssemblyInfo.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -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("Ads Tech PTV-335 Receiver")] +[assembly: AssemblyDescription("IR Server plugin to support the Ads Tech PTV-335 Receiver")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("and-81")] +[assembly: AssemblyProduct("AdsTechPTV335Receiver")] +[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("6180b3dc-113f-4598-8c98-6a27cf9942f9")] + +// 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.1")] +[assembly: AssemblyFileVersion("1.0.4.1")] 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 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -28,8 +28,6 @@ Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\IR Server Suite\\Input Service\\Custom HID Receiver.xml"; - static readonly string[] Ports = new string[] { "None" }; - const int DeviceBufferSize = 255; #endregion Constants @@ -77,7 +75,7 @@ /// Name of the IR Server plugin. /// </summary> /// <value>The name.</value> - public override string Name { get { return "Custom HID Receiver"; } } + public override string Name { get { return "Custom HID"; } } /// <summary> /// IR Server plugin version. /// </summary> @@ -98,7 +96,7 @@ /// 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. + /// <c>true</c> if the device is present, otherwise <c>false</c>. /// </returns> public override bool Detect() { Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/Direct Input Receiver ___________________________________________________________________ Name: svn:ignore + bin obj 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 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionRemoteReceiver.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -227,7 +227,7 @@ /// 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. + /// <c>true</c> if the device is present, otherwise <c>false</c>. /// </returns> public override bool Detect() { 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 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -69,7 +69,7 @@ /// 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. + /// <c>true</c> if the device is present, otherwise <c>false</c>. /// </returns> public override bool Detect() { Modified: trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/IRServerPluginBase.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/IRServerPluginBase.cs 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/IRServerPluginBase.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -40,7 +40,7 @@ /// <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> + /// <returns><c>true</c> if the device is present, otherwise <c>false</c>.</returns> public virtual bool Detect() { return false; } /// <summary> 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 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/IRMan Receiver.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -75,7 +75,7 @@ /// 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. + /// <c>true</c> if the device is present, otherwise <c>false</c>. /// </returns> public override bool Detect() { 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 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -237,7 +237,7 @@ /// 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. + /// <c>true</c> if the device is present, otherwise <c>false</c>. /// </returns> public override bool Detect() { Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -137,7 +137,7 @@ /// 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. + /// <c>true</c> if the device is present, otherwise <c>false</c>. /// </returns> public override bool Detect() { 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 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Plugins/RedEye Blaster/RedEye Blaster.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -96,7 +96,7 @@ /// 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. + /// <c>true</c> if the device is present, otherwise <c>false</c>. /// </returns> public override bool Detect() { 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 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -68,7 +68,7 @@ /// 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. + /// <c>true</c> if the device is present, otherwise <c>false</c>. /// </returns> public override bool Detect() { 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 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/UirtTransceiver.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -148,7 +148,7 @@ /// 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. + /// <c>true</c> if the device is present, otherwise <c>false</c>. /// </returns> public override bool Detect() { 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 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Wii Remote Receiver/Wii Remote Receiver.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -77,7 +77,7 @@ /// 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. + /// <c>true</c> if the device is present, otherwise <c>false</c>. /// </returns> public override bool Detect() { Modified: trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.cs 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -69,7 +69,7 @@ /// 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. + /// <c>true</c> if the device is present, otherwise <c>false</c>. /// </returns> public override bool Detect() { Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Windows Message Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Windows Message Receiver.cs 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Windows Message Receiver.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -82,7 +82,7 @@ /// 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. + /// <c>true</c> if the device is present, otherwise <c>false</c>. /// </returns> public override bool Detect() { Modified: trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/X10Transceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/X10Transceiver.cs 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/X10Transceiver.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -66,7 +66,7 @@ /// 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. + /// <c>true</c> if the device is present, otherwise <c>false</c>. /// </returns> public override bool Detect() { Modified: trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.cs 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -239,7 +239,7 @@ /// 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. + /// <c>true</c> if the device is present, otherwise <c>false</c>. /// </returns> public override bool Detect() { Modified: trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Suite - Debug.nsi 2008-01-05 14:27:56 UTC (rev 1208) @@ -163,7 +163,9 @@ SetOutPath "$INSTDIR\IR Server Plugins" SetOverwrite ifnewer + File "IR Server Plugins\Ads Tech PTV-335 Receiver\bin\Debug\*.*" File "IR Server Plugins\Custom HID Receiver\bin\Debug\*.*" + ;File "IR Server Plugins\Direct Input 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\*.*" Modified: trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Suite - Release.nsi 2008-01-05 14:27:56 UTC (rev 1208) @@ -163,7 +163,9 @@ SetOutPath "$INSTDIR\IR Server Plugins" SetOverwrite ifnewer + File "IR Server Plugins\Ads Tech PTV-335 Receiver\bin\Release\*.*" File "IR Server Plugins\Custom HID Receiver\bin\Release\*.*" + ;File "IR Server Plugins\Direct Input 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\*.*" Modified: trunk/plugins/IR Server Suite/IR Server Suite.sln =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite.sln 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/IR Server Suite.sln 2008-01-05 14:27:56 UTC (rev 1208) @@ -313,6 +313,8 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Log File Multi-Viewer", "Util Apps\Log File Multi-Viewer\Log File Multi-Viewer.csproj", "{36804FCB-2D2D-4188-9F0E-695FE35AD6E3}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ads Tech PTV-335 Receiver", "IR Server Plugins\Ads Tech PTV-335 Receiver\Ads Tech PTV-335 Receiver.csproj", "{E146C2D8-6842-46C5-B2A9-AFA9D6F1A3BB}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -671,6 +673,12 @@ {36804FCB-2D2D-4188-9F0E-695FE35AD6E3}.Release|Any CPU.ActiveCfg = Release|Any CPU {36804FCB-2D2D-4188-9F0E-695FE35AD6E3}.Release|Any CPU.Build.0 = Release|Any CPU {36804FCB-2D2D-4188-9F0E-695FE35AD6E3}.Release|x86.ActiveCfg = Release|Any CPU + {E146C2D8-6842-46C5-B2A9-AFA9D6F1A3BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E146C2D8-6842-46C5-B2A9-AFA9D6F1A3BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E146C2D8-6842-46C5-B2A9-AFA9D6F1A3BB}.Debug|x86.ActiveCfg = Debug|Any CPU + {E146C2D8-6842-46C5-B2A9-AFA9D6F1A3BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E146C2D8-6842-46C5-B2A9-AFA9D6F1A3BB}.Release|Any CPU.Build.0 = Release|Any CPU + {E146C2D8-6842-46C5-B2A9-AFA9D6F1A3BB}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -704,6 +712,7 @@ {A50080F4-53D1-41CC-9C5F-500AFDDE9E8B} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} {37A555DF-7012-4B99-8A47-1C922A361E52} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} {732CDF64-D047-4D3C-91DA-E2FF27D84179} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} + {E146C2D8-6842-46C5-B2A9-AFA9D6F1A3BB} = {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} Modified: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/ExternalChannels.cs =================================================================== --- trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/ExternalChannels.cs 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/ExternalChannels.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -44,7 +44,7 @@ MediaPortal.TV.Database.TVDatabase.GetCards(ref cards); if (cards.Count == 0) - throw new ApplicationException("Cannot load external channel configurations, there are no TV cards registered"); + cards.Add(0); _tvCardTabs = new TabPage[cards.Count]; _tvCardStbSetups = new StbSetup[cards.Count]; @@ -107,16 +107,10 @@ try { foreach (StbSetup setup in _tvCardStbSetups) + { setup.Save(); - - ArrayList cards = new ArrayList(); - MediaPortal.TV.Database.TVDatabase.GetCards(ref cards); - - if (cards.Count == 0) - throw new ApplicationException("Cannot save external channel configurations, there are no TV cards registered"); - - foreach (int cardId in cards) - TV2BlasterPlugin.GetExternalChannelConfig(cardId).Save(); + TV2BlasterPlugin.GetExternalChannelConfig(setup.CardId).Save(); + } } catch (Exception ex) { Modified: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/StbSetup.cs =================================================================== --- trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/StbSetup.cs 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/StbSetup.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -38,6 +38,11 @@ #region Properties + public int CardId + { + get { return _cardId; } + } + public int PauseTime { get { return Decimal.ToInt32(numericUpDownPauseTime.Value); } @@ -177,6 +182,8 @@ { ExternalChannelConfig config = TV2BlasterPlugin.GetExternalChannelConfig(cardId); + config.CardId = cardId; + config.PauseTime = Decimal.ToInt32(numericUpDownPauseTime.Value); config.SendSelect = checkBoxSendSelect.Checked; config.DoubleChannelSelect = checkBoxDoubleSelect.Checked; 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 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -427,8 +427,12 @@ MediaPortal.TV.Database.TVDatabase.GetCards(ref cards); if (cards.Count == 0) - throw new ApplicationException("Cannot load external channel configurations, there are no TV cards registered"); + { + Log.Warn("Cannot load external channel configurations, there are no TV cards registered"); + cards.Add(0); + } + _externalChannelConfigs = new ExternalChannelConfig[cards.Count]; int index = 0; Modified: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/ExternalChannels.cs =================================================================== --- trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/ExternalChannels.cs 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/ExternalChannels.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -40,6 +40,12 @@ { IList cards = TvDatabase.Card.ListAll(); + if (cards.Count == 0) + { + TvDatabase.Card dummyCard = new TvDatabase.Card(0, "device path", "Dummy TV Card", 0, false, DateTime.Now, "recording folder", 0, false, 0, "timeshifting folder", 0, 0); + cards.Add(dummyCard); + } + _tvCardStbSetups = new StbSetup[cards.Count]; comboBoxCopyFrom.Items.Clear(); Modified: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/StbSetup.cs =================================================================== --- trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/StbSetup.cs 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/StbSetup.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -161,9 +161,6 @@ { ExternalChannelConfig config = TV3BlasterPlugin.GetExternalChannelConfig(cardId); - if (config == null) - return; - // Setup command list. for (int i = 0; i < 10; i++) listViewExternalCommands.Items[i].SubItems[1].Text = config.Digits[i]; @@ -192,9 +189,6 @@ { ExternalChannelConfig config = TV3BlasterPlugin.GetExternalChannelConfig(cardId); - if (config == null) - return; - config.CardId = cardId; config.PauseTime = Decimal.ToInt32(numericUpDownPauseTime.Value); @@ -419,6 +413,9 @@ if (httpMessageCommand.ShowDialog(this) == DialogResult.OK) newCommand = Common.CmdPrefixHttpMsg + httpMessageCommand.CommandString; } + + if (!String.IsNullOrEmpty(newCommand)) + listViewExternalCommands.SelectedItems[0].SubItems[1].Text = newCommand; } catch (Exception ex) { 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 2008-01-05 01:49:51 UTC (rev 1207) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -389,8 +389,13 @@ IList cards = TvDatabase.Card.ListAll(); if (cards.Count == 0) - return; + { + Log.Info("Cannot load external channel configurations, there are no TV cards registered"); + TvDatabase.Card dummyCard = new TvDatabase.Card(0, "device path", "Dummy TV Card", 0, false, DateTime.Now, "recording folder", 0, false, 0, "timeshifting folder", 0, 0); + cards.Add(dummyCard); + } + _externalChannelConfigs = new ExternalChannelConfig[cards.Count]; int index = 0; Property changes on: trunk/plugins/IR Server Suite/Util Apps/Log File Multi-Viewer ___________________________________________________________________ Name: svn:ignore + bin obj Added: trunk/plugins/IR Server Suite/Util Apps/Log File Multi-Viewer/FormMain.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Util Apps/Log File Multi-Viewer/FormMain.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/Util Apps/Log File Multi-Viewer/FormMain.Designer.cs 2008-01-05 14:27:56 UTC (rev 1208) @@ -0,0 +1,108 @@ +namespace LogViewer +{ + 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.listViewLines = new System.Windows.Forms.ListView(); + this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components); + this.refreshToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.clearToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.removeFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.contextMenuStrip.SuspendLayout(); + this.SuspendLayout(); + // + // listViewLines + // + this.listViewLines.AllowDrop = true; + this.listViewLines.ContextMenuStrip = this.contextMenuStrip; + this.listViewLines.Dock = System.Windows.Forms.DockStyle.Fill; + this.listViewLines.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.listViewLines.FullRowSelect = true; + this.listViewLines.GridLines = true; + this.listViewLines.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; + this.listViewLines.HideSelection = false; + this.listViewLines.Location = new System.Drawing.Point(0, 0); + this.listViewLines.Name = "listViewLines"; + this.listViewLines.ShowGroups = false; + this.listViewLines.Size = new System.Drawing.Size(584, 364); + this.listViewLines.TabIndex = 0; + this.listViewLines.UseCompatibleStateImageBehavior = false; + this.listViewLines.View = System.Windows.Forms.View.Details; + this.listViewLines.DragDrop += new System.Windows.Forms.DragEventHandler(this.listViewLines_DragDrop); + // + // contextMenuStrip + // + this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.refreshToolStripMenuItem, + this.clearToolStripMenuItem, + this.removeFileToolStripMenuItem}); + this.contextMenuStrip.Name = "contextMenuStrip"; + this.contextMenuStrip.Size = new System.Drawing.Size(151, 70); + // + // refreshToolStripMenuItem + // + this.refreshToolStripMenuItem.Name = "refreshToolStripMenuItem"; + this.refreshToolStripMenuItem.Size = new System.Drawing.Size(150, 22); + this.refreshToolStripMenuItem.Text = "&Refresh"; + // + // clearToolStripMenuItem + // + this.clearToolStripMenuItem.Name = "clearToolStripMenuItem"; + this.clearToolStripMenuItem.Size = new System.Drawing.Size(150, 22); + this.clearToolStripMenuItem.Text = "&Clear"; + // + // removeFileToolStripMenuItem + // + this.removeFileToolStripMenuItem.Name = "removeFileToolStripMenuItem"; + this.removeFileToolStripMenuItem.Size = new System.Drawing.Size(150, 22); + this.removeFileToolStripMenuItem.Text = "Remove &File ..."; + // + // FormMain + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.F... [truncated message content] |
From: <fr...@us...> - 2008-01-07 03:11:40
|
Revision: 1218 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1218&view=rev Author: framug Date: 2008-01-06 19:11:37 -0800 (Sun, 06 Jan 2008) Log Message: ----------- begin dev, not useable for the moment please, read ReadMe-LisMoi.txt file. Added Paths: ----------- trunk/plugins/kazer/ trunk/plugins/kazer/Properties/ trunk/plugins/kazer/Properties/AssemblyInfo.cs trunk/plugins/kazer/ReadMe-LisMoi.txt trunk/plugins/kazer/kazer.cs trunk/plugins/kazer/kazer.csproj trunk/plugins/kazer/kazer.ico trunk/plugins/kazer/kazer.sln trunk/plugins/kazer/kazerSetup.Designer.cs trunk/plugins/kazer/kazerSetup.cs trunk/plugins/kazer/kazerSetup.resx Added: trunk/plugins/kazer/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/kazer/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/kazer/Properties/AssemblyInfo.cs 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Les informations générales relatives à un assembly dépendent de +// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations +// associées à un assembly. +[assembly: AssemblyTitle("kazer")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("kazer")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly +// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de +// COM, affectez la valeur true à l'attribut ComVisible sur ce type. +[assembly: ComVisible(false)] + +// Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM +[assembly: Guid("b7c11044-8a0c-4235-a346-44787491d5d0")] + +// Les informations de version pour un assembly se composent des quatre valeurs suivantes : +// +// Version principale +// Version secondaire +// Numéro de build +// Révision +// +// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de révision et de build par défaut +// en utilisant '*', comme indiqué ci-dessous : +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] Added: trunk/plugins/kazer/ReadMe-LisMoi.txt =================================================================== --- trunk/plugins/kazer/ReadMe-LisMoi.txt (rev 0) +++ trunk/plugins/kazer/ReadMe-LisMoi.txt 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,23 @@ +English version +- This plugin is not useable for the moment, it is under devlopment. +kazer website www.kazer.org offers free customized XML file by user. +Informations (in french language) are created with xmltv. +1/ Purpose will be to download a TVGuide XML file from kazer. +2/ Modifying kazer xml guide with a correct MediaPortal channels mapping +to avoid creating not needed channels in MediaPortal TVDatabase. +3/ Replacing MediaPortal TVGuide.xml by the downloaded modified one. +Process will be executed in a few seconds maybe in replacement of webepg +wich may take a long time (some minutes or some hours, depending on number +of channels to grab). + +Version fran\xE7aise +- Ce plugin n'est pas utilisable pour le moment, il est en cours de d\xE9veloppement. +Le site de kazer www.kazer.org fourni gratuitement un fichier XML personnalis\xE9 par utilisateur. +Les informations de kazer sont cr\xE9\xE9es avec xmltv. +1/ Le but sera de t\xE9l\xE9charger un fichier XML du Guide t\xE9l\xE9 \xE0 partir de kazer. +2/ Modifier l'xml de kazer avec un mappage correct des cha\xEEnes de MediaPortal +pour \xE9viter de cr\xE9er des cha\xEEnes non d\xE9sir\xE9es dans la base de donn\xE9es TV de MediaPortal. +3/ Remplacer le TVGuide.xml de MediaPortal par celui t\xE9l\xE9charg\xE9 et modifi\xE9. +La proc\xE9dure durera quelque secondes et, si c'est satisfaisant, remplacera peut-\xEAtre \xE0 terme +webepg qui peut prendre pas mal de temps (quelques minutes ou quelques heures, \xE7a d\xE9pend du nombre +de canaux \xE0 r\xE9cup\xE9rer). Added: trunk/plugins/kazer/kazer.cs =================================================================== --- trunk/plugins/kazer/kazer.cs (rev 0) +++ trunk/plugins/kazer/kazer.cs 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,148 @@ +#region using +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; +using MediaPortal.GUI.Library; // sera n\xE9cessaire lorsque le plugin aura son skin +#endregion + +namespace kazer +{ + public class kazer : GUIWindow, ISetupForm + { +// D\xE9finition des boutons du skin +// en commentaire pour l'instant +/* + [SkinControlAttribute(2)] protected GUIButtonControl BoutonDownload = null; + [SkinControlAttribute(3)] protected GUIButtonControl BoutonMaj = null; +*/ + +#region public + +// Retourne le nom du plugin visible dans le menu de configuration + public string PluginName() + { + return "kazer"; + } + +// Retourne la description du plugin visible dans le menu de configuration + public string Description() + { + return "Permet de r\xE9cup\xE9rer un guide t\xE9l\xE9 \xE0 partir du site de kazer"; + } + +// Retourne le nom de l'auteur du plugin + public string Author() + { + return "framug"; + } + +// affichage de la configuration du plugin + public void ShowPlugin() + { +// on appelle la fen\xEAtre de config situ\xE9e dans kazerSetup.cs + Form setup = new kazerSetup(); +// Vas-y, affiche la ! + setup.ShowDialog(); + } + +// Indique si le plugin peut \xEAtre activ\xE9/d\xE9sactiv\xE9 + public bool CanEnable() + { + return true; // oui, dans ce cas-l\xE0 + } + +// Donne l'ID du plugin appartenant \xE0 la config + public int GetWindowId() + { + return 10123; // au hasard mais, pour les plugins, cela doit \xEAtre > 10000 + } + +// Indique si le plugin est activ\xE9 par defaut; + public bool DefaultEnabled() + { + return false; // non + } + +// Indique si le plugin poss\xE8de son propre \xE9cran de configuration + public bool HasSetup() + { + return true; // bien s\xFBr + } + +/// <summary> +/// Si le plugin doit avoir son propre bouton dans le menu principal de Media Portal alors, la +/// methode doit retourner true sinon, on ne le verra que dans le menu plugins +/// </summary> +/// <param name="strButtonText">Le texte du bouton dans MediaPortal</param> +/// <param name="strButtonImage">L'image du bouton ou, vide par d\xE9faut</param> +/// <param name="strButtonImageFocus">L'image du bouton ou, vide par d\xE9faut</param> + /// <param name="strPictureImage">La sous-image du bouton ou, vide par d\xE9faut</param> +/// <returns>true : Le plugin aura son propre bouton sur le menu principal +/// false : Le plugin n'aura pas son propre bouton sur le menu principal</returns> + public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, out string strPictureImage) + { + strButtonText = PluginName(); + strButtonImage = String.Empty; + strButtonImageFocus = String.Empty; + strPictureImage = String.Empty; +// Je pr\xE9f\xE8re true, comme \xE7a, les utilisateurs peuvent choisir s'ils veulent +// le plugin sur l'\xE9cran principal ou, dans le menu plugins + return true; + } +#endregion + +#region override +// N\xE9cessaire pour un plugin windows sinon, c'est consid\xE9r\xE9 comme un plugin process + public override int GetID + { + get + { + return 10123; + } + set + { + } + } + +// Appel\xE9 au d\xE9marrage de MediaPortal + public override bool Init() + { +// en commentaire pour l'instant +/* + return Load(GUIGraphicsContext.Skin + @"\kazer.xml"); +*/ + return true; + } + +// Appel\xE9 \xE0 chaque action utilisateur + protected override void OnClicked(int controlId, GUIControl control, MediaPortal.GUI.Library.Action.ActionType actionType) + { +// en commentaire pour l'instant +/* + if (control == BoutonDownload) + Download(); + if (control == BoutonMaj) + MiseAjour(); +*/ + base.OnClicked(controlId, control, actionType); + } + +#endregion + +#region private + + private void Download() + { + //l\xE0, on fera le traitement du t\xE9l\xE9chargement de l'XML de kazer + } + + private void MiseAjour() + { + //l\xE0, on fera la maj du tvguide + } + +#endregion + + } // fin de la classe kazer +} // fin du namespace Added: trunk/plugins/kazer/kazer.csproj =================================================================== --- trunk/plugins/kazer/kazer.csproj (rev 0) +++ trunk/plugins/kazer/kazer.csproj 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,79 @@ +<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>{1F927022-1A44-432D-B98B-82ECBF9765A7}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>kazer</RootNamespace> + <AssemblyName>kazer</AssemblyName> + <ApplicationIcon>kazer.ico</ApplicationIcon> + </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> + <ItemGroup> + <Reference Include="Core, Version=0.2.3.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\MediaPortal\Core\bin\Release\Core.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.DirectoryServices" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + <Reference Include="Utils, Version=2.2.2.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\MediaPortal\xbmc\bin\Release\Utils.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="kazerSetup.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="kazerSetup.Designer.cs"> + <DependentUpon>kazerSetup.cs</DependentUpon> + </Compile> + <Compile Include="kazer.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="kazerSetup.resx"> + <SubType>Designer</SubType> + <DependentUpon>kazerSetup.cs</DependentUpon> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <Content Include="kazer.ico" /> + <Content Include="ReadMe-LisMoi.txt" /> + </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> + </PostBuildEvent> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/kazer/kazer.ico =================================================================== (Binary files differ) Property changes on: trunk/plugins/kazer/kazer.ico ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/kazer/kazer.sln =================================================================== --- trunk/plugins/kazer/kazer.sln (rev 0) +++ trunk/plugins/kazer/kazer.sln 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "kazer", "kazer.csproj", "{1F927022-1A44-432D-B98B-82ECBF9765A7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1F927022-1A44-432D-B98B-82ECBF9765A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F927022-1A44-432D-B98B-82ECBF9765A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F927022-1A44-432D-B98B-82ECBF9765A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F927022-1A44-432D-B98B-82ECBF9765A7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: trunk/plugins/kazer/kazerSetup.Designer.cs =================================================================== --- trunk/plugins/kazer/kazerSetup.Designer.cs (rev 0) +++ trunk/plugins/kazer/kazerSetup.Designer.cs 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,238 @@ +namespace kazer +{ + partial class kazerSetup + { + /// <summary> + /// Variable nécessaire au concepteur. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Nettoyage des ressources utilisées. + /// </summary> + /// <param name="disposing">true si les ressources managées doivent être supprimées ; sinon, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Code généré par le Concepteur Windows Form + + /// <summary> + /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas + /// le contenu de cette méthode avec l'éditeur de code. + /// </summary> + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(kazerSetup)); + this.label1 = new System.Windows.Forms.Label(); + this.lien_site_kazer = new System.Windows.Forms.LinkLabel(); + this.label2 = new System.Windows.Forms.Label(); + this.kazer_UserName = new System.Windows.Forms.TextBox(); + this.Config_Sauver = new System.Windows.Forms.Button(); + this.Config_Quitter = new System.Windows.Forms.Button(); + this.label3 = new System.Windows.Forms.Label(); + this.Repertoire_XMLTV = new System.Windows.Forms.TextBox(); + this.Config_Parcourir = new System.Windows.Forms.Button(); + this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabGeneral = new System.Windows.Forms.TabPage(); + this.Nom_Fichier_Guide = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.Version = new System.Windows.Forms.Label(); + this.tabMapping = new System.Windows.Forms.TabPage(); + this.tabControl1.SuspendLayout(); + this.tabGeneral.SuspendLayout(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 3); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(342, 78); + this.label1.TabIndex = 1; + this.label1.Text = resources.GetString("label1.Text"); + // + // lien_site_kazer + // + this.lien_site_kazer.AutoSize = true; + this.lien_site_kazer.Location = new System.Drawing.Point(320, 40); + this.lien_site_kazer.Name = "lien_site_kazer"; + this.lien_site_kazer.Size = new System.Drawing.Size(33, 13); + this.lien_site_kazer.TabIndex = 2; + this.lien_site_kazer.TabStop = true; + this.lien_site_kazer.Tag = ""; + this.lien_site_kazer.Text = "kazer"; + this.lien_site_kazer.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(6, 101); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(174, 13); + this.label2.TabIndex = 3; + this.label2.Text = "Nom d\'utilisateur kazer (userhash) : "; + // + // kazer_UserName + // + this.kazer_UserName.Location = new System.Drawing.Point(205, 98); + this.kazer_UserName.Name = "kazer_UserName"; + this.kazer_UserName.Size = new System.Drawing.Size(100, 20); + this.kazer_UserName.TabIndex = 4; + this.kazer_UserName.TextChanged += new System.EventHandler(this.kazer_UserName_TextChanged); + // + // Config_Sauver + // + this.Config_Sauver.Location = new System.Drawing.Point(380, 288); + this.Config_Sauver.Name = "Config_Sauver"; + this.Config_Sauver.Size = new System.Drawing.Size(78, 24); + this.Config_Sauver.TabIndex = 5; + this.Config_Sauver.Text = "Sauver"; + this.Config_Sauver.UseVisualStyleBackColor = true; + this.Config_Sauver.Click += new System.EventHandler(this.Config_Sauver_Click); + // + // Config_Quitter + // + this.Config_Quitter.Location = new System.Drawing.Point(489, 288); + this.Config_Quitter.Name = "Config_Quitter"; + this.Config_Quitter.Size = new System.Drawing.Size(78, 24); + this.Config_Quitter.TabIndex = 6; + this.Config_Quitter.Text = "Quitter"; + this.Config_Quitter.UseVisualStyleBackColor = true; + this.Config_Quitter.Click += new System.EventHandler(this.Config_Quitter_Click); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(6, 142); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(147, 13); + this.label3.TabIndex = 7; + this.label3.Text = "Répertoire XMLTV en sortie : "; + // + // Repertoire_XMLTV + // + this.Repertoire_XMLTV.Location = new System.Drawing.Point(205, 137); + this.Repertoire_XMLTV.Name = "Repertoire_XMLTV"; + this.Repertoire_XMLTV.Size = new System.Drawing.Size(253, 20); + this.Repertoire_XMLTV.TabIndex = 8; + // + // Config_Parcourir + // + this.Config_Parcourir.Location = new System.Drawing.Point(489, 134); + this.Config_Parcourir.Name = "Config_Parcourir"; + this.Config_Parcourir.Size = new System.Drawing.Size(75, 24); + this.Config_Parcourir.TabIndex = 9; + this.Config_Parcourir.Text = "Parcourir"; + this.Config_Parcourir.UseVisualStyleBackColor = true; + this.Config_Parcourir.Click += new System.EventHandler(this.Config_Parcourir_Click); + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabGeneral); + this.tabControl1.Controls.Add(this.tabMapping); + this.tabControl1.Location = new System.Drawing.Point(-4, 1); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(587, 281); + this.tabControl1.TabIndex = 10; + // + // tabGeneral + // + this.tabGeneral.Controls.Add(this.Nom_Fichier_Guide); + this.tabGeneral.Controls.Add(this.label4); + this.tabGeneral.Controls.Add(this.Version); + this.tabGeneral.Controls.Add(this.Config_Parcourir); + this.tabGeneral.Controls.Add(this.Repertoire_XMLTV); + this.tabGeneral.Controls.Add(this.lien_site_kazer); + this.tabGeneral.Controls.Add(this.label3); + this.tabGeneral.Controls.Add(this.label2); + this.tabGeneral.Controls.Add(this.kazer_UserName); + this.tabGeneral.Controls.Add(this.label1); + this.tabGeneral.Location = new System.Drawing.Point(4, 22); + this.tabGeneral.Name = "tabGeneral"; + this.tabGeneral.Padding = new System.Windows.Forms.Padding(3); + this.tabGeneral.Size = new System.Drawing.Size(579, 255); + this.tabGeneral.TabIndex = 0; + this.tabGeneral.Text = "Général"; + this.tabGeneral.UseVisualStyleBackColor = true; + // + // Nom_Fichier_Guide + // + this.Nom_Fichier_Guide.Location = new System.Drawing.Point(205, 176); + this.Nom_Fichier_Guide.Name = "Nom_Fichier_Guide"; + this.Nom_Fichier_Guide.Size = new System.Drawing.Size(127, 20); + this.Nom_Fichier_Guide.TabIndex = 12; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(6, 183); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(110, 13); + this.label4.TabIndex = 11; + this.label4.Text = "Nom du fichier guide :"; + // + // Version + // + this.Version.AutoSize = true; + this.Version.Location = new System.Drawing.Point(483, 14); + this.Version.Name = "Version"; + this.Version.Size = new System.Drawing.Size(93, 39); + this.Version.TabIndex = 10; + this.Version.Text = "Version 1.0\r\nNon fonctionnelle.\r\nEn cours de dev."; + // + // tabMapping + // + this.tabMapping.Location = new System.Drawing.Point(4, 22); + this.tabMapping.Name = "tabMapping"; + this.tabMapping.Padding = new System.Windows.Forms.Padding(3); + this.tabMapping.Size = new System.Drawing.Size(579, 255); + this.tabMapping.TabIndex = 1; + this.tabMapping.Text = "Correspondance de chaînes"; + this.tabMapping.UseVisualStyleBackColor = true; + // + // kazerSetup + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(579, 324); + this.Controls.Add(this.Config_Quitter); + this.Controls.Add(this.Config_Sauver); + this.Controls.Add(this.tabControl1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "kazerSetup"; + this.Text = "Configuration de kazer"; + this.tabControl1.ResumeLayout(false); + this.tabGeneral.ResumeLayout(false); + this.tabGeneral.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.LinkLabel lien_site_kazer; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox kazer_UserName; + private System.Windows.Forms.Button Config_Sauver; + private System.Windows.Forms.Button Config_Quitter; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox Repertoire_XMLTV; + private System.Windows.Forms.Button Config_Parcourir; + private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabGeneral; + private System.Windows.Forms.TabPage tabMapping; + private System.Windows.Forms.Label Version; + private System.Windows.Forms.TextBox Nom_Fichier_Guide; + private System.Windows.Forms.Label label4; + } +} \ No newline at end of file Added: trunk/plugins/kazer/kazerSetup.cs =================================================================== --- trunk/plugins/kazer/kazerSetup.cs (rev 0) +++ trunk/plugins/kazer/kazerSetup.cs 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,153 @@ +#region using +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Diagnostics; +using MediaPortal.Profile; // n\xE9cessaire pour Settings +using MediaPortal.Configuration; // pour lire et ecrire le xml de config +#endregion + +namespace kazer +{ + public partial class kazerSetup : Form + { + public kazerSetup() + { + InitializeComponent(); // g\xE9n\xE9r\xE9 par visual studio, ne pas toucher +// On va lire le XML de configuration + LireXMLConfig(); +// On va initialiser des variables par d\xE9faut + Initialise_variables(); + } + +// On a cliqu\xE9 sur le lien du site kazer + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { +// On cha\xEEne sur le site de kazer + Process.Start("http://www.kazer.org"); + } + +// On a cliqu\xE9 sur le nom d'utilisateur + private void kazer_UserName_TextChanged(object sender, EventArgs e) + { +// Rien pour l'instant mais, si kazer nous donne son hashcode, on pourrait peut-\xEAtre +// faire saisir le nom d'utilisateur en clair et, calculer ainsi le userhash nous-m\xEAme + } + +// On a cliqu\xE9 sur le bouton Parcourir + private void Config_Parcourir_Click(object sender, EventArgs e) + { +// On appelle la fen\xEAtre de s\xE9lection de dossier de windows + using (folderBrowserDialog1 = new FolderBrowserDialog()) + { +// Baratin de la fen\xEAtre + folderBrowserDialog1.Description = "Selectionnez le dossier o\xF9 se trouve votre r\xE9pertoire XMLTV"; +// On ne veut pas de bouton cr\xE9er un nouveau dossier + folderBrowserDialog1.ShowNewFolderButton = false; + folderBrowserDialog1.SelectedPath = Repertoire_XMLTV.Text; + DialogResult dialogResult = folderBrowserDialog1.ShowDialog(this); + +// On a cliqu\xE9 sur OK alors, on renseigne la boite de texte Repertoire_XMLTV + if (dialogResult == DialogResult.OK) + { + Repertoire_XMLTV.Text = folderBrowserDialog1.SelectedPath; + } + } // fin du using + } + +// On a cliqu\xE9 sur le bouton Sauver + private void Config_Sauver_Click(object sender, EventArgs e) + { +// On va \xE9crire le XML de configuration si les contr\xF4les de saisie sont corrects + if (ControleSaisie()) + { + EcrireXMLConfig(); + } + } + +// On a cliqu\xE9 sur le bouton Quitter + private void Config_Quitter_Click(object sender, EventArgs e) + { +// On ferme la fen\xEAtre de configuration + Close(); + } + +// Contr\xF4le de saisie + private bool ControleSaisie() + { +// Le nom d'utilisateur, le r\xE9pertoire XMLTV et le nom du fichier guide sont obligatoires + if (kazer_UserName.Text == "" && Repertoire_XMLTV.Text == "" && Nom_Fichier_Guide.Text == "") + { + MessageBox.Show("Le nom d'utilisateur, le r\xE9pertoire XMLTV et le nom du fichier guide sont obligatoires"); + return false; + } + else + { + if (kazer_UserName.Text == "") + { + MessageBox.Show("Le nom d'utilisateur est obligatoire"); + return false; + } + if (Repertoire_XMLTV.Text == "") + { + MessageBox.Show("Le r\xE9pertoire XMLTV est obligatoire"); + return false; + } + if (Nom_Fichier_Guide.Text == "") + { + MessageBox.Show("Le nom du fichier guide est obligatoire"); + return false; + } + return true; + } + } + +// Ecrire le XML de configuration + private void EcrireXMLConfig() + { + using (Settings ecrirexml = new Settings(Config.GetFile(Config.Dir.Config, "kazer.xml"))) + { + ecrirexml.SetValue("kazer", "userhash", kazer_UserName.Text.ToString()); + ecrirexml.SetValue("kazer", "Repertoire XMLTV", Repertoire_XMLTV.Text.ToString()); + ecrirexml.SetValue("kazer", "Nom du fichier guide", Nom_Fichier_Guide.Text.ToString()); + } + } + +// Lire le XML de configuration + private void LireXMLConfig() + { + using (Settings lirexml = new Settings(Config.GetFile(Config.Dir.Config, "kazer.xml"))) + { + kazer_UserName.Text = lirexml.GetValueAsString("kazer", "userhash", ""); + Repertoire_XMLTV.Text = lirexml.GetValueAsString("kazer", "Repertoire XMLTV", ""); + Nom_Fichier_Guide.Text = lirexml.GetValueAsString("kazer", "Nom du fichier guide", ""); + } + } + +// Initialiser des variables par d\xE9faut + private void Initialise_variables() + { +// Je r\xE9cup\xE8re l'info du r\xE9pertoire XMLTV qui est configur\xE9 dans MediaPortal + if (Repertoire_XMLTV.Text == "") + { + using (Settings lirexml = new Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + Repertoire_XMLTV.Text = lirexml.GetValueAsString("xmltv", "folder", ""); + } + + } + +// Le nom du fichier guide est TVguide.xml par d\xE9faut, dans MediaPortal + if (Nom_Fichier_Guide.Text == "") + { + Nom_Fichier_Guide.Text = "TVguide.xml"; + } + } + + } // fin de la classe kazerSetup + +} // fin du namespace \ No newline at end of file Added: trunk/plugins/kazer/kazerSetup.resx =================================================================== --- trunk/plugins/kazer/kazerSetup.resx (rev 0) +++ trunk/plugins/kazer/kazerSetup.resx 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,218 @@ +<?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> + <data name="label1.Text" xml:space="preserve"> + <value> +Ce plugin est destiné aux utilisateurs francophones. +Il permet de générer un guide télé utilisable par MediaPortal. +Pour cela, vous devez au préalable vous inscrire sur le site de +pour définir les chaînes que vous souhaitez récupérer. + +</value> + </data> + <metadata name="folderBrowserDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>12, 8</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> + AAABAAMAICAQAAAAAADoAgAANgAAABAQEAAAAAAAKAEAAB4DAAAwMAAAAAAAAKgOAABGBAAAKAAAACAA + AABAAAAAAQAEAAAAAACAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA + AADAwMAAgICAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAd3d3d3d3 + d3d3d3d3d3d3cH//////f/////9//////3B/9wAH/3/3AAf/f/cAB/9wf3AAAH9/cAAAf39wAAB/cH8A + AAAPfwAAAA9/AAAAD3B/AAAAD38AAAAPfwAAAA9wfwAAAA9/AAAAD38AAAAPcH9wAAB/f3AAAH9/cAAA + f3B/9wAH/3/3AAf/f/cAB/9wf/////9//////3//////cHd3d3d3d3d3d3d3d3d3d3B//////3////// + f/////9wf/////9//////3/3AAf/cH//////f/////9/cAAAf3B//////3//////fwAAAA9wf/////9/ + /////38AAAAPcH//////f/////9/AAAAD3B//////3//////f3AAAH9wf/////9//////3/3AAf/cH// + ////f/////9//////3B3d3d3d3d3d3d3d3d3d3dwf/////9//////3//////cH//////f/cAB/9///// + /3B//////39wAAB/f/////9wf/////9/AAAAD3//////cH//////fwAAAA9//////3B//////38AAAAP + f/////9wf/////9/cAAAf3//////cH//////f/cAB/9//////3B//////3//////f/////9wd3d3d3d3 + d3d3d3d3d3d3cP////8AAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABKAAAABAAAAAgAAAAAQAEAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAIAAAIAAAACAgACAAAAAgACAAICAAADAwMAAgICAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP// + /wB3d3d3d3d3d38A9/APfwD3cAAHAABwAAdwAAcAAHAAB38A9/APfwD3d3d3d3d3d3d///f//38A93// + 9///cAAHf//3//9wAAd///f//38A93d3d3d3d3d3f//38A9///d///cAAH//93//9wAAf//3f//38A9/ + //d3d3d3d3d3dwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAoAAAAMAAAAGAAAAABAAgAAAAAAIAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + gAAAgAAAAICAAIAAAACAAIAAgIAAAMDAwADA3MAA8MqmAAQEBAAICAgADAwMABEREQAWFhYAHBwcACIi + IgApKSkAVVVVAE1NTQBCQkIAOTk5AIB8/wBQUP8AkwDWAP/szADG1u8A1ufnAJCprQAAADMAAABmAAAA + mQAAAMwAADMAAAAzMwAAM2YAADOZAAAzzAAAM/8AAGYAAABmMwAAZmYAAGaZAABmzAAAZv8AAJkAAACZ + MwAAmWYAAJmZAACZzAAAmf8AAMwAAADMMwAAzGYAAMyZAADMzAAAzP8AAP9mAAD/mQAA/8wAMwAAADMA + MwAzAGYAMwCZADMAzAAzAP8AMzMAADMzMwAzM2YAMzOZADMzzAAzM/8AM2YAADNmMwAzZmYAM2aZADNm + zAAzZv8AM5kAADOZMwAzmWYAM5mZADOZzAAzmf8AM8wAADPMMwAzzGYAM8yZADPMzAAzzP8AM/8zADP/ + ZgAz/5kAM//MADP//wBmAAAAZgAzAGYAZgBmAJkAZgDMAGYA/wBmMwAAZjMzAGYzZgBmM5kAZjPMAGYz + /wBmZgAAZmYzAGZmZgBmZpkAZmbMAGaZAABmmTMAZplmAGaZmQBmmcwAZpn/AGbMAABmzDMAZsyZAGbM + zABmzP8AZv8AAGb/MwBm/5kAZv/MAMwA/wD/AMwAmZkAAJkzmQCZAJkAmQDMAJkAAACZMzMAmQBmAJkz + zACZAP8AmWYAAJlmMwCZM2YAmWaZAJlmzACZM/8AmZkzAJmZZgCZmZkAmZnMAJmZ/wCZzAAAmcwzAGbM + ZgCZzJkAmczMAJnM/wCZ/wAAmf8zAJnMZgCZ/5kAmf/MAJn//wDMAAAAmQAzAMwAZgDMAJkAzADMAJkz + AADMMzMAzDNmAMwzmQDMM8wAzDP/AMxmAADMZjMAmWZmAMxmmQDMZswAmWb/AMyZAADMmTMAzJlmAMyZ + mQDMmcwAzJn/AMzMAADMzDMAzMxmAMzMmQDMzMwAzMz/AMz/AADM/zMAmf9mAMz/mQDM/8wAzP//AMwA + MwD/AGYA/wCZAMwzAAD/MzMA/zNmAP8zmQD/M8wA/zP/AP9mAAD/ZjMAzGZmAP9mmQD/ZswAzGb/AP+Z + AAD/mTMA/5lmAP+ZmQD/mcwA/5n/AP/MAAD/zDMA/8xmAP/MmQD/zMwA/8z/AP//MwDM/2YA//+ZAP// + zABmZv8AZv9mAGb//wD/ZmYA/2b/AP//ZgAhAKUAX19fAHd3dwCGhoYAlpaWAMvLywCysrIA19fXAN3d + 3QDj4+MA6urqAPHx8QD4+PgA8Pv/AKSgoACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAoK + CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK + CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH + BwcHBwcHBwcHBwcHBwcHBwcHBwcKCgf//////////////////wf//////////////////wf///////// + /////////wcKCgf////z7EMKCkPs8////wf////z7EMKCkPs8////wf////z7EMKCkPs8////wcKCgf/ + //BDCgoKCgoKQ/D//wf///BDCgoKCgoKQ/D//wf///BDCgoKCgoKQ/D//wcKCgf/80MKCgoKCgoKCkPz + /wf/80MKCgoKCgoKCkPz/wf/80MKCgoKCgoKCkPz/wcKCgf/7AoKCgoKCgoKCgrs/wf/7AoKCgoKCgoK + Cgrs/wf/7AoKCgoKCgoKCgrs/wcKCgf/QwoKCgoKCgoKCgpD/wf/QwoKCgoKCgoKCgpD/wf/QwoKCgoK + CgoKCgpD/wcKCgf/CgoKCgoKCgoKCgoK/wf/CgoKCgoKCgoKCgoK/wf/CgoKCgoKCgoKCgoK/wcKCgf/ + CgoKCgoKCgoKCgoK/wf/CgoKCgoKCgoKCgoK/wf/CgoKCgoKCgoKCgoK/wcKCgf/QwoKCgoKCgoKCgpD + /wf/QwoKCgoKCgoKCgpD/wf/QwoKCgoKCgoKCgpD/wcKCgf/7AoKCgoKCgoKCgrs/wf/7AoKCgoKCgoK + Cgrs/wf/7AoKCgoKCgoKCgrs/wcKCgf/80MKCgoKCgoKCkPz/wf/80MKCgoKCgoKCkPz/wf/80MKCgoK + CgoKCkPz/wcKCgf///BDCgoKCgoKQ/D//wf///BDCgoKCgoKQ/D//wf///BDCgoKCgoKQ/D//wcKCgf/ + ///z7EMKCkPs8////wf////z7EMKCkPs8////wf////z7EMKCkPs8////wcKCgf///////////////// + /wf//////////////////wf//////////////////wcKCgcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH + BwcHBwcHBwcHBwcHBwcHBwcHBwcKCgf//////////////////wf//////////////////wf///////// + /////////wcKCgf//////////////////wf//////////////////wf////z7EMKCkPs8////wcKCgf/ + /////////////////wf//////////////////wf///BDCgoKCgoKQ/D//wcKCgf///////////////// + /wf//////////////////wf/80MKCgoKCgoKCkPz/wcKCgf//////////////////wf///////////// + /////wf/7AoKCgoKCgoKCgrs/wcKCgf//////////////////wf//////////////////wf/QwoKCgoK + CgoKCgpD/wcKCgf//////////////////wf//////////////////wf/CgoKCgoKCgoKCgoK/wcKCgf/ + /////////////////wf//////////////////wf/CgoKCgoKCgoKCgoK/wcKCgf///////////////// + /wf//////////////////wf/QwoKCgoKCgoKCgpD/wcKCgf//////////////////wf///////////// + /////wf/7AoKCgoKCgoKCgrs/wcKCgf//////////////////wf//////////////////wf/80MKCgoK + CgoKCkPz/wcKCgf//////////////////wf//////////////////wf///BDCgoKCgoKQ/D//wcKCgf/ + /////////////////wf//////////////////wf////z7EMKCkPs8////wcKCgf///////////////// + /wf//////////////////wf//////////////////wcKCgcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH + BwcHBwcHBwcHBwcHBwcHBwcHBwcKCgf//////////////////wf//////////////////wf///////// + /////////wcKCgf//////////////////wf////z7EMKCkPs8////wf//////////////////wcKCgf/ + /////////////////wf///BDCgoKCgoKQ/D//wf//////////////////wcKCgf///////////////// + /wf/80MKCgoKCgoKCkPz/wf//////////////////wcKCgf//////////////////wf/7AoKCgoKCgoK + Cgrs/wf//////////////////wcKCgf//////////////////wf/QwoKCgoKCgoKCgpD/wf///////// + /////////wcKCgf//////////////////wf/CgoKCgoKCgoKCgoK/wf//////////////////wcKCgf/ + /////////////////wf/CgoKCgoKCgoKCgoK/wf//////////////////wcKCgf///////////////// + /wf/QwoKCgoKCgoKCgpD/wf//////////////////wcKCgf//////////////////wf/7AoKCgoKCgoK + Cgrs/wf//////////////////wcKCgf//////////////////wf/80MKCgoKCgoKCkPz/wf///////// + /////////wcKCgf//////////////////wf///BDCgoKCgoKQ/D//wf//////////////////wcKCgf/ + /////////////////wf////z7EMKCkPs8////wf//////////////////wcKCgf///////////////// + /wf//////////////////wf//////////////////wcKCgcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH + BwcHBwcHBwcHBwcHBwcHBwcHBwcKCv///////wAA////////AAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAD + AAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAA + AAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAD + AAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAA + AAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAD + AAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAA + AAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAA== +</value> + </data> +</root> \ 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: <bl...@us...> - 2008-01-07 10:53:22
|
Revision: 1221 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1221&view=rev Author: blaxwan Date: 2008-01-07 02:53:19 -0800 (Mon, 07 Jan 2008) Log Message: ----------- Added Paths: ----------- trunk/plugins/MySkype/ trunk/plugins/MySkype/MPInstaller/ trunk/plugins/MySkype/MPInstaller/MySkype.mpi trunk/plugins/MySkype/MySkype/ trunk/plugins/MySkype/MySkype/MySkype-Icon.png trunk/plugins/MySkype/MySkype/MySkype.cs trunk/plugins/MySkype/MySkype/MySkype.csproj trunk/plugins/MySkype/MySkype/MySkype.csproj.user trunk/plugins/MySkype/MySkype/Properties/ trunk/plugins/MySkype/MySkype/Properties/AssemblyInfo.cs trunk/plugins/MySkype/MySkype/Properties/Resources.Designer.cs trunk/plugins/MySkype/MySkype/Properties/Resources.resx trunk/plugins/MySkype/MySkype/SkypeConnector.cs trunk/plugins/MySkype/MySkype/SkypeControl/ trunk/plugins/MySkype/MySkype/SkypeControl/Common.cs trunk/plugins/MySkype/MySkype/SkypeControl/Platform.cs trunk/plugins/MySkype/MySkype/SkypeControl/Properties/ trunk/plugins/MySkype/MySkype/SkypeControl/Properties/AssemblyInfo.cs trunk/plugins/MySkype/MySkype/SkypeControl/SkypeClient.Designer.cs trunk/plugins/MySkype/MySkype/SkypeControl/SkypeClient.cs trunk/plugins/MySkype/MySkype/SkypeControl/SkypeControl.csproj trunk/plugins/MySkype/MySkype/SkypeControl/SkypeControl.suo trunk/plugins/MySkype/MySkype/SkypeControl/SkypeProxy.cs trunk/plugins/MySkype/MySkype.sln trunk/plugins/MySkype/MySkype.suo trunk/plugins/MySkype/skin/ trunk/plugins/MySkype/skin/BlueTwo/ trunk/plugins/MySkype/skin/BlueTwo/Media/ trunk/plugins/MySkype/skin/BlueTwo/Media/MySkype-ContactStatusAway.png trunk/plugins/MySkype/skin/BlueTwo/Media/MySkype-ContactStatusDoNotDisturb.png trunk/plugins/MySkype/skin/BlueTwo/Media/MySkype-ContactStatusNotAvailable.png trunk/plugins/MySkype/skin/BlueTwo/Media/MySkype-ContactStatusOffline.png trunk/plugins/MySkype/skin/BlueTwo/Media/MySkype-ContactStatusOnline.png trunk/plugins/MySkype/skin/BlueTwo/Media/MySkype-Icon.png trunk/plugins/MySkype/skin/BlueTwo/Media/MySkype-SettingsIcon.png trunk/plugins/MySkype/skin/BlueTwo/Media/MySkype-UserStatusAway.png trunk/plugins/MySkype/skin/BlueTwo/Media/MySkype-UserStatusDoNotDisturb.png trunk/plugins/MySkype/skin/BlueTwo/Media/MySkype-UserStatusInvisible.png trunk/plugins/MySkype/skin/BlueTwo/Media/MySkype-UserStatusNotAvailable.png trunk/plugins/MySkype/skin/BlueTwo/Media/MySkype-UserStatusOffline.png trunk/plugins/MySkype/skin/BlueTwo/Media/MySkype-UserStatusOnline.png trunk/plugins/MySkype/skin/BlueTwo/MySkype.xml Added: trunk/plugins/MySkype/MPInstaller/MySkype.mpi =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySkype/MPInstaller/MySkype.mpi ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MySkype/MySkype/MySkype-Icon.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySkype/MySkype/MySkype-Icon.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MySkype/MySkype/MySkype.cs =================================================================== --- trunk/plugins/MySkype/MySkype/MySkype.cs (rev 0) +++ trunk/plugins/MySkype/MySkype/MySkype.cs 2008-01-07 10:53:19 UTC (rev 1221) @@ -0,0 +1,1343 @@ +#region Copyright (C) 2005-2007 Team MediaPortal + +/* + * Copyright (C) 2005-2007 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; +using System.Collections; +using System.Text; +using System.Xml; +using System.Windows.Forms; + +using MediaPortal.GUI.Library; +using MediaPortal.Dialogs; +using MediaPortal.Configuration; +using MediaPortal.Util; +using MediaPortal.Player; + +namespace MySkype +{ + #region Structs + + // This is to hold the plugin settings + public struct Settings + { + public bool PauseMediaOnCall; + public bool ShowIncomingCall; + public bool StartWebcamAutomatically; + public bool ShowOfflineContacts; + } + + #endregion + [PluginIcons("MySkype.MySkype-Icon.png", "MySkype.MySkype-Icon.png")] + public class GUIWindowSkype : GUIWindow, ISetupForm + { + #region Vars + + // This will hold the plugin settings + Settings MySkypeSettings; + + // This is the instance of the class that acts as Skype interface + SkypeConnector SkypeConn = new SkypeConnector(); + + // This indicates what is actually showing the plugin page + string Displaying; + + // Self-explaining + string ViewAs = "View as list"; + + // This will flag if the plugin is currently notifying an incoming call + bool NotifyingIncoming = false; + + // This is to setup a timer that will check every 1 second if there are incoming calls + // the timer is needed because we want to be warned of new call also when not displaying + // the skype plugin page + private System.Windows.Forms.Timer SleepTimer = new System.Windows.Forms.Timer(); + + // This is used by OnPageLoad to know if this is the first time it get invoked + bool MySkypeGUIInitialized = false; + + // This is used to know if the media has to be resumed after the incoming call + bool MySkypePausedMedia = false; + + #endregion + + # region Control definitions + + // Main Page + [SkinControlAttribute(2)] + protected GUIButtonControl buttonStatus = null; + [SkinControlAttribute(3)] + protected GUIButtonControl buttonHistory = null; + [SkinControlAttribute(4)] + protected GUIButtonControl buttonSettings = null; + [SkinControlAttribute(5)] + protected GUIButtonControl buttonViewAs = null; + [SkinControlAttribute(50)] + protected GUIListControl ContactList = null; + [SkinControlAttribute(51)] + protected GUIThumbnailPanel ContactIcon = null; + + // Settings Page + [SkinControlAttribute(60)] + protected GUIButtonControl buttonSettingsBack = null; + [SkinControlAttribute(62)] + protected GUICheckMarkControl checkShowIncomingCalls = null; + [SkinControlAttribute(63)] + protected GUICheckMarkControl checkDontShowIncomingCalls = null; + [SkinControlAttribute(65)] + protected GUICheckMarkControl checkOnCallPauseMedia = null; + [SkinControlAttribute(66)] + protected GUICheckMarkControl checkOnCallNoAction = null; + [SkinControlAttribute(68)] + protected GUICheckMarkControl checkAutomaticallyStartWebcam = null; + [SkinControlAttribute(69)] + protected GUICheckMarkControl checkDontStartWebcamAutomatically = null; + [SkinControlAttribute(71)] + protected GUICheckMarkControl checkShowOfflineContact = null; + [SkinControlAttribute(72)] + protected GUICheckMarkControl checkDontShowOfflineContact = null; + + // Call Page + [SkinControlAttribute(82)] + protected GUIButtonControl buttonPauseCall = null; + [SkinControlAttribute(83)] + protected GUIButtonControl buttonHangupCall = null; + [SkinControlAttribute(90)] + + // History Page + protected GUIListControl RecentCallList = null; + [SkinControlAttribute(91)] + protected GUIButtonControl buttonMissedCalls = null; + [SkinControlAttribute(92)] + protected GUIButtonControl buttonReceivedCalls = null; + [SkinControlAttribute(93)] + protected GUIButtonControl buttonCallsDone = null; + [SkinControlAttribute(94)] + protected GUIButtonControl buttonCallsBack = null; + + #endregion + + #region ISetupForm Members + + public GUIWindowSkype() + { + // get ID of windowplugin belonging to this setup + // enter your own unique code + GetID = 109144; + } + + // Returns the name of the plugin which is shown in the plugin menu + public string PluginName() + { + return "My Skype"; + } + + // Returns the description of the plugin is shown in the plugin menu + public string Description() + { + return "Skype plugin for MediaPortal"; + } + + // Returns the author of the plugin which is shown in the plugin menu + public string Author() + { + return "BlaXwan (Fabio Di Niro)"; + } + + // show the setup dialog + public void ShowPlugin() + { + MessageBox.Show("Nothing to configure. When starting MediaPortal make sure to authorize PERMANENTLY MediaPortal to access Skype and to put it in silent mode while running"); + } + + // Indicates whether plugin can be enabled/disabled + public bool CanEnable() + { + return true; + } + + // get ID of windowplugin belonging to this setup + public int GetWindowId() + { + return 109144; + } + + // Indicates if plugin is enabled by default; + public bool DefaultEnabled() + { + return true; + } + + // indicates if a plugin has it's own setup screen + public bool HasSetup() + { + return true; + } + + /// <summary> + /// If the plugin should have it's own button on the main menu of Mediaportal then it + /// should return true to this method, otherwise if it should not be on home + /// it should return false + /// </summary> + /// <param name="strButtonText">text the button should have</param> + /// <param name="strButtonImage">image for the button, or empty for default</param> + /// <param name="strButtonImageFocus">image for the button, or empty for default</param> + /// <param name="strPictureImage">subpicture for the button or empty for none</param> + /// <returns>true : plugin needs it's own button on home + /// false : plugin does not need it's own button on home</returns> + + public bool GetHome(out string strButtonText, out string strButtonImage, + out string strButtonImageFocus, out string strPictureImage) + { + strButtonText = PluginName(); + strButtonImage = ""; + strButtonImageFocus = ""; + strPictureImage = @"MySkype-Icon.png"; + return true; + } + + #endregion + + #region Init and Shutdown + + // Plugin initialization + public override bool Init() + { + Log.Info("MySkype: initializing"); + LoadSettings(); + // Initialize the class SkypeConnector + SkypeConn.Initialize(); + + // Nothing is displayed so... + Displaying = "None"; + + // We're not notifying anything yet + NotifyingIncoming = false; + + // Setup the timer needed to check the incoming calls periodically + SleepTimer.Tick += new EventHandler(OnTimer); + SleepTimer.Interval = 1000; // every 1 second + SleepTimer.Enabled = true; + SleepTimer.Start(); + + // Success if the skin file is found + return Load(GUIGraphicsContext.Skin + @"\MySkype.xml"); + } + + // Plugin shutdown + public override void DeInit() + { + // Shutdown the class SkypeConnector + SkypeConn.Shutdown(); + } + + protected override void OnPageLoad() + { + Log.Info("MySkype page load"); + if (!MySkypeGUIInitialized) + InitializeGUI(); + + HideSettingsPage(); + HideRecentCallPage(); + + // If there's a call already running, we want to go directly to the call page + // as the plugin is shown + if (SkypeConn.Call.IsCalling) + { + Displaying = "Call"; + ShowCallPage(); + } + else + { + Displaying = "Contacts"; + HideCallPage(); + } + RefreshWindow(); + } + + protected override void OnPageDestroy(int new_windowId) + { + Displaying = "None"; + } + + void LoadSettings() + { + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + // Load the saved settings filling the MySkypeSettings struct + MySkypeSettings.PauseMediaOnCall = xmlreader.GetValueAsBool("MySkype", "PauseMediaOnCall", true); + MySkypeSettings.ShowIncomingCall = xmlreader.GetValueAsBool("MySkype", "ShowIncomingCall", true); + MySkypeSettings.StartWebcamAutomatically = xmlreader.GetValueAsBool("MySkype", "StartWebcamAutomatically", true); + MySkypeSettings.ShowOfflineContacts = xmlreader.GetValueAsBool("MySkype", "ShowOfflineContacts", true); + } + } + + void SaveSettings() + { + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + // Save the settings from the MySkypeSettings struct + xmlwriter.SetValueAsBool("MySkype", "PauseMediaOnCall", MySkypeSettings.PauseMediaOnCall); + xmlwriter.SetValueAsBool("MySkype", "ShowIncomingCall", MySkypeSettings.ShowIncomingCall); + xmlwriter.SetValueAsBool("MySkype", "StartWebcamAutomatically", MySkypeSettings.StartWebcamAutomatically); + xmlwriter.SetValueAsBool("MySkype", "ShowOfflineContacts", MySkypeSettings.ShowOfflineContacts); + } + } + + #endregion + + #region Process + + public override void Process() + { + // Invoke RefreshWindow() if there are new data to be shown + if (SkypeConn.NewData) + { + RefreshWindow(); + } + } + + // Once the timer has been setup, this function is invoked every second + private void OnTimer(Object sender, EventArgs e) + { + // Prepare next run + SleepTimer.Enabled = true; + + // If there's a new incoming call ringing and we're not warning yet... + if (SkypeConn.Call.CallStatus == "RINGING" && + SkypeConn.Call.CallDirection == "INCOMING" && + MySkypeSettings.ShowIncomingCall + && !NotifyingIncoming) + { + // This flag is used to avoid to notify again when the + // incoming call menu is already shown + NotifyingIncoming = true; + + // Put in pause the currently playing media if the user + // choose it + if (g_Player.Playing && !g_Player.Paused && MySkypeSettings.PauseMediaOnCall) + { + MediaPortal.Player.g_Player.Pause(); + MySkypePausedMedia = true; + } + IncomingCall(); + } + // Reset the flag if there's no call ringing + if (SkypeConn.Call.CallStatus != "RINGING") + NotifyingIncoming = false; + } + + #endregion + + #region Button Control + + // Here we define what to do on every button press + protected override void OnClicked(int controlId, GUIControl control, + MediaPortal.GUI.Library.Action.ActionType actionType) + { + if (control == buttonStatus) + OnButtonStatus(); + if (control == buttonHistory) + OnButtonHistory(); + if (control == buttonSettings) + OnButtonSettings(); + if (control == buttonViewAs) + OnButtonViewAs(); + if (control == ContactList) + CallContact(); + if (control == ContactIcon) + CallContact(); + if (control == buttonSettingsBack) + OnButtonSettingsBack(); + if (control == checkShowIncomingCalls) + SetShowIncomingCalls(); + if (control == checkDontShowIncomingCalls) + SetDontShowIncomingCalls(); + if (control == checkOnCallPauseMedia) + SetOnCallPauseMedia(); + if (control == checkOnCallNoAction) + SetOnCallNoAction(); + if (control == checkAutomaticallyStartWebcam) + SetAutomaticallyStartWebcam(); + if (control == checkDontStartWebcamAutomatically) + SetDontStartWebcamAutomatically(); + if (control == checkShowOfflineContact) + SetShowOfflineContact(); + if (control == checkDontShowOfflineContact) + SetDontShowOfflineContact(); + if (control == buttonPauseCall) + PauseTheCall(); + if (control == buttonHangupCall) + HangupTheCall(); + if (control == RecentCallList) + ShowCallDetails(); + if (control == buttonMissedCalls) + OnButtonMissedCalls(); + if (control == buttonReceivedCalls) + OnButtonReceivedCalls(); + if (control == buttonCallsDone) + OnButtonCallsDone(); + if (control == buttonCallsBack) + OnButtonCallsBack(); + base.OnClicked(controlId, control, actionType); + } + + // When the buttonStatus is pressed we will show a menu in which the user can + // choose which new status he wants to go in + private void OnButtonStatus() + { + GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); + if (dlg == null) return; + dlg.Reset(); + dlg.SetHeading("Set status"); + dlg.Add("Online"); + dlg.Add("Away"); + dlg.Add("Do not disturb"); + dlg.Add("Not available"); + dlg.Add("Invisible"); + dlg.Add("Offline"); + dlg.DoModal(GetID); + if (dlg.SelectedLabelText == null) return; + switch (dlg.SelectedLabelText) + { + case "Online": + SkypeConn.SetStatus("ONLINE"); + break; + case "Away": + SkypeConn.SetStatus("AWAY"); + break; + case "Do not disturb": + SkypeConn.SetStatus("DND"); + break; + case "Not available": + SkypeConn.SetStatus("NA"); + break; + case "Invisible": + SkypeConn.SetStatus("INVISIBLE"); + break; + case "Offline": + SkypeConn.SetStatus("OFFLINE"); + break; + } + } + + // When the buttonHistory is pressed we go to the history page, + // missed calls are shown as default + private void OnButtonHistory() + { + Displaying = "MissedCalls"; + ShowRecentCallPage(); + } + + private void OnButtonSettings() + { + ShowSettingsPage(); + } + + // If the button "View as list" is pressed, the button itself changes in "View as icon" + // and the variable ViewAs is set as "View as list" + // If the button "View as icons" is pressed, the button itself changes in "View as list" + // and the variable ViewAs is set as "View as icons" + private void OnButtonViewAs() + { + if (ViewAs == "View as list") + { + // Button label = View as list + GUIControl.SetControlLabel(GetID, buttonViewAs.GetID, GUILocalizeStrings.Get(101)); + ViewAs = "View as icons"; + } + else + { + // Button label = View as icons + GUIControl.SetControlLabel(GetID, buttonViewAs.GetID, GUILocalizeStrings.Get(100)); + ViewAs = "View as list"; + } + RefreshWindow(); + } + + // If the user click on a shown contact, a confirm dialog is shown, if the user + // choose Yes the call will be done through the method PlaceACall of the + // SkypeConnector class + private void CallContact() + { + GUIListItem item = GUIControl.GetSelectedListItem(GetID, ContactList.GetID); + GUIDialogYesNo dlg = (GUIDialogYesNo)GUIWindowManager.GetWindow( + (int)GUIWindow.Window.WINDOW_DIALOG_YES_NO); + dlg.SetHeading("Call confirmation"); + dlg.SetLine(1, string.Format("Call {0}?", item.Label, item.Label2)); + dlg.DoModal(GUIWindowManager.ActiveWindow); + if (dlg.IsConfirmed) + { + // Let's call the contact + SkypeConn.PlaceACall(item.Label2); + ShowCallPage(); + } + } + + // Go back to the Contacts page + private void OnButtonSettingsBack() + { + HideSettingsPage(); + SaveSettings(); + } + + // As this is a RadioButton, when selected it will deselect the other choice + private void SetShowIncomingCalls() + { + checkShowIncomingCalls.Selected = true; + checkDontShowIncomingCalls.Selected = false; + MySkypeSettings.ShowIncomingCall = true; + // In addition, if the user choose to be notified about incoming call, + // he will have also the option to automatically put in pause the playing + // media, so let's enable the checkmark where he will make this choice + GUIControl.EnableControl(GetID, checkOnCallPauseMedia.GetID); + GUIControl.EnableControl(GetID, checkOnCallNoAction.GetID); + } + + // As this is a RadioButton, when selected it will deselect the other choice + private void SetDontShowIncomingCalls() + { + checkShowIncomingCalls.Selected = false; + checkDontShowIncomingCalls.Selected = true; + MySkypeSettings.ShowIncomingCall = false; + // In addition, when the user choose to not to be notified about incoming call, + // the option to pause media on call is deselected and disabled + MySkypeSettings.PauseMediaOnCall = false; + checkOnCallPauseMedia.Selected = false; + checkOnCallNoAction.Selected = true; + GUIControl.DisableControl(GetID, checkOnCallPauseMedia.GetID); + GUIControl.DisableControl(GetID, checkOnCallNoAction.GetID); + } + + // As this is a RadioButton, when selected it will deselect the other choice + private void SetOnCallPauseMedia() + { + checkOnCallPauseMedia.Selected = true; + checkOnCallNoAction.Selected = false; + MySkypeSettings.PauseMediaOnCall = true; + } + + // As this is a RadioButton, when selected it will deselect the other choice + private void SetOnCallNoAction() + { + checkOnCallPauseMedia.Selected = false; + checkOnCallNoAction.Selected = true; + MySkypeSettings.PauseMediaOnCall = false; + } + + // As this is a RadioButton, when selected it will deselect the other choice + private void SetAutomaticallyStartWebcam() + { + checkAutomaticallyStartWebcam.Selected = true; + checkDontStartWebcamAutomatically.Selected = false; + MySkypeSettings.StartWebcamAutomatically = true; + } + + // As this is a RadioButton, when selected it will deselect the other choice + private void SetDontStartWebcamAutomatically() + { + checkAutomaticallyStartWebcam.Selected = false; + checkDontStartWebcamAutomatically.Selected = true; + MySkypeSettings.StartWebcamAutomatically = false; + } + + // As this is a RadioButton, when selected it will deselect the other choice + private void SetShowOfflineContact() + { + checkShowOfflineContact.Selected = true; + checkDontShowOfflineContact.Selected = false; + MySkypeSettings.ShowOfflineContacts = true; + } + + // As this is a RadioButton, when selected it will deselect the other choice + private void SetDontShowOfflineContact() + { + checkShowOfflineContact.Selected = false; + checkDontShowOfflineContact.Selected = true; + MySkypeSettings.ShowOfflineContacts = false; + } + + // This will put a running call in pause or resume it if it was already "ONHOLD" + // then it changes the button label accordingly + private void PauseTheCall() + { + // Check if the call was already paused + if (SkypeConn.Call.CallStatus == "ONHOLD") + { + GUIControl.SetControlLabel(GetID, buttonPauseCall.GetID, "Pause call"); + SkypeConn.ResumeCall(); + return; + } + // Change the PauseCall button in ResumeCall button + GUIControl.SetControlLabel(GetID, buttonPauseCall.GetID, "Resume call"); + SkypeConn.PauseCall(); + } + + private void HangupTheCall() + { + SkypeConn.HangupCall(); + HideCallPage(); + // If the user was watching something and got here for an incoming call + // then resume the media he was looking at + if (g_Player.Playing && g_Player.Paused && MySkypePausedMedia) + { + MediaPortal.Player.g_Player.Pause(); + GUIWindowManager.ShowPreviousWindow(); + MySkypePausedMedia = false; + } + else + // Otherwise, if it was playing and was not paused by MySkype, then just + // go back in the previous window + if (g_Player.Playing) + GUIWindowManager.ShowPreviousWindow(); + } + + // This will popup the details of the selected call + private void ShowCallDetails() + { + // We need some variable to fill with data that needs to be shown + CallStruct SelectedCall = new CallStruct(); + string NameToShow; + DateTime ConvertedTimeStamp; + int minutes, seconds; + + // Let's get which call was selected + GUIListItem item = GUIControl.GetSelectedListItem(GetID, RecentCallList.GetID); + + // Prepare an ok dialog + GUIDialogOK dlg = (GUIDialogOK)GUIWindowManager.GetWindow( + (int)GUIWindow.Window.WINDOW_DIALOG_OK); + + // Let's find the right call in the call history list + for (int x = 0; x < SkypeConn.CallHistory.Count; x++) + { + if (((CallStruct)SkypeConn.CallHistory[x]).CallId == Convert.ToInt32(item.AlbumInfoTag)) + { + SelectedCall.CallId = ((CallStruct)SkypeConn.CallHistory[x]).CallId; + SelectedCall.CallTimeStamp = ((CallStruct)SkypeConn.CallHistory[x]).CallTimeStamp; + SelectedCall.CallDuration = ((CallStruct)SkypeConn.CallHistory[x]).CallDuration; + SelectedCall.CallDirection = ((CallStruct)SkypeConn.CallHistory[x]).CallDirection; + SelectedCall.CallStatus = ((CallStruct)SkypeConn.CallHistory[x]).CallStatus; + SelectedCall.ContactCalledName = ((CallStruct)SkypeConn.CallHistory[x]).ContactCalledName; + SelectedCall.ContactCalledFullName = ((CallStruct)SkypeConn.CallHistory[x]).ContactCalledFullName; + break; + } + } + + // Now that we have the selected call, let's get the name to show which is + // just the Skype name if the user has not filled in the Skype full name + // or in the "Fullname (name)" + if (SelectedCall.ContactCalledFullName == "") + NameToShow = SelectedCall.ContactCalledName; + else + NameToShow = SelectedCall.ContactCalledFullName + " (" + SelectedCall.ContactCalledName + ")"; + + // Let's get an human readable version of the call time + ConvertedTimeStamp = DateTime.Parse("01/01/1970 00:00"); + ConvertedTimeStamp = (DateTime)ConvertedTimeStamp.AddSeconds(SelectedCall.CallTimeStamp); + + dlg.SetHeading("Call details"); + if (SelectedCall.CallDirection == "INCOMING") + { + dlg.SetLine(1, "Call from " + NameToShow); + dlg.SetLine(2, "received on " + ConvertedTimeStamp.ToString()); + } + else + { + dlg.SetLine(1, "Call to " + NameToShow); + dlg.SetLine(2, "done on " + ConvertedTimeStamp.ToString()); + } + + // Print the call duration if there was any + minutes = SelectedCall.CallDuration / 60; + seconds = SelectedCall.CallDuration % 60; + + if (SelectedCall.CallStatus == "FINISHED") + if (minutes > 0) + dlg.SetLine(3, "call duration: " + Convert.ToString(minutes) + ":" + Convert.ToString(seconds)); + else + dlg.SetLine(3, "call duration: " + Convert.ToString(seconds) + " seconds"); + + if (SelectedCall.CallStatus == "MISSED") + dlg.SetLine(3, "the call was missed"); + + if (SelectedCall.CallStatus == "FAILED") + dlg.SetLine(3, "failed call."); + + dlg.DoModal(GUIWindowManager.ActiveWindow); + } + + // Sets what needs to be shown at the next refresh + private void OnButtonMissedCalls() + { + Displaying = "MissedCalls"; + RefreshWindow(); + } + + // Sets what needs to be shown at the next refresh + private void OnButtonReceivedCalls() + { + Displaying = "ReceivedCalls"; + RefreshWindow(); + } + + // Sets what needs to be shown at the next refresh + private void OnButtonCallsDone() + { + Displaying = "CallsDone"; + RefreshWindow(); + } + + // Go back to the Contacts page + private void OnButtonCallsBack() + { + Displaying = "Contacts"; + HideRecentCallPage(); + } + + #endregion + + #region Window control + + private void InitializeGUI() + { + // Main (Contacts) Page + GUIControl.SetControlLabel(GetID, buttonStatus.GetID, GUILocalizeStrings.Get(126)); + //GUIControl.SetControlLabel(GetID, buttonHistory.GetID, GUILocalizeStrings.Get + GUIControl.SetControlLabel(GetID, buttonSettings.GetID, GUILocalizeStrings.Get(1048)); + GUIControl.SetControlLabel(GetID, buttonViewAs.GetID, GUILocalizeStrings.Get(100)); + + // Settings Page + GUIControl.SetControlLabel(GetID, buttonSettingsBack.GetID, GUILocalizeStrings.Get(712)); + + // Recent Call Page + GUIControl.SetControlLabel(GetID, buttonCallsBack.GetID, GUILocalizeStrings.Get(712)); + + MySkypeGUIInitialized = true; + } + + private void ShowSettingsPage() + { + // Set the Displaying var + Displaying = "Settings"; + // Change the page title + GUIPropertyManager.SetProperty("#PageTitle", "My Skype settings"); + // Hide buttons + GUIControl.HideControl(GetID, buttonStatus.GetID); + GUIControl.HideControl(GetID, buttonHistory.GetID); + GUIControl.HideControl(GetID, buttonSettings.GetID); + GUIControl.HideControl(GetID, buttonViewAs.GetID); + // Hide Contacts + GUIControl.HideControl(GetID, ContactList.GetID); + GUIControl.HideControl(GetID, ContactIcon.GetID); + GUIPropertyManager.SetProperty("#NumberOfContacts", ""); + // Hide user status + GUIPropertyManager.SetProperty("#UserFullName", ""); + GUIPropertyManager.SetProperty("#UserOnline", ""); + GUIPropertyManager.SetProperty("#UserStatusIcon", @"\MySkype-SettingsIcon.png"); + // Show Settings + GUIControl.ShowControl(GetID, buttonSettingsBack.GetID); + GUIControl.ShowControl(GetID, 61); + GUIControl.ShowControl(GetID, checkOnCallPauseMedia.GetID); + GUIControl.ShowControl(GetID, checkOnCallNoAction.GetID); + GUIControl.ShowControl(GetID, 64); + GUIControl.ShowControl(GetID, checkShowIncomingCalls.GetID); + GUIControl.ShowControl(GetID, checkDontShowIncomingCalls.GetID); + // disabled for now... + // GUIControl.ShowControl(GetID, 67); + // GUIControl.ShowControl(GetID, AutomaticallyStartWebcam.GetID); + // GUIControl.ShowControl(GetID, DontStartWebcamAutomatically.GetID); + GUIControl.ShowControl(GetID, 70); + GUIControl.ShowControl(GetID, checkShowOfflineContact.GetID); + GUIControl.ShowControl(GetID, checkDontShowOfflineContact.GetID); + GUIControl.FocusControl(GetID, buttonSettingsBack.GetID); + RefreshWindow(); + } + + private void HideSettingsPage() + { + // Set the Displaying var + Displaying = "Contacts"; + // Change the page title + GUIPropertyManager.SetProperty("#PageTitle", "My Skype main"); + // Show buttons + GUIControl.ShowControl(GetID, buttonStatus.GetID); + GUIControl.ShowControl(GetID, buttonHistory.GetID); + GUIControl.ShowControl(GetID, buttonSettings.GetID); + GUIControl.ShowControl(GetID, buttonViewAs.GetID); + // Show Contacts + if (ViewAs == "View as list") + GUIControl.ShowControl(GetID, ContactList.GetID); + else + GUIControl.ShowControl(GetID, ContactIcon.GetID); + // Hide Settings + GUIControl.HideControl(GetID, buttonSettingsBack.GetID); + GUIControl.HideControl(GetID, 61); + GUIControl.HideControl(GetID, checkOnCallPauseMedia.GetID); + GUIControl.HideControl(GetID, checkOnCallNoAction.GetID); + GUIControl.HideControl(GetID, 64); + GUIControl.HideControl(GetID, checkShowIncomingCalls.GetID); + GUIControl.HideControl(GetID, checkDontShowIncomingCalls.GetID); + GUIControl.HideControl(GetID, 67); + GUIControl.HideControl(GetID, checkAutomaticallyStartWebcam.GetID); + GUIControl.HideControl(GetID, checkDontStartWebcamAutomatically.GetID); + GUIControl.HideControl(GetID, 70); + GUIControl.HideControl(GetID, checkShowOfflineContact.GetID); + GUIControl.HideControl(GetID, checkDontShowOfflineContact.GetID); + GUIControl.FocusControl(GetID, buttonStatus.GetID); + RefreshWindow(); + } + + private void ShowCallPage() + { + // Set the Displaying var + Displaying = "Call"; + // Change the page title + GUIPropertyManager.SetProperty("#PageTitle", "Calling..."); + // Hide buttons + GUIControl.HideControl(GetID, buttonStatus.GetID); + GUIControl.HideControl(GetID, buttonHistory.GetID); + GUIControl.HideControl(GetID, buttonSettings.GetID); + GUIControl.HideControl(GetID, buttonViewAs.GetID); + // Hide Contacts + GUIControl.HideControl(GetID, ContactList.GetID); + GUIControl.HideControl(GetID, ContactIcon.GetID); + GUIPropertyManager.SetProperty("#NumberOfContacts", ""); + // Hide user status + //GUIPropertyManager.SetProperty("#UserFullName", ""); + //GUIPropertyManager.SetProperty("#UserOnline", ""); + //GUIPropertyManager.SetProperty("#UserStatusIcon", @"\MySkype-SettingsIcon.png"); + // Show Call controls + GUIControl.ShowControl(GetID, 80); + GUIControl.ShowControl(GetID, 81); + GUIControl.ShowControl(GetID, buttonPauseCall.GetID); + GUIControl.DisableControl(GetID, buttonPauseCall.GetID); + GUIControl.ShowControl(GetID, buttonHangupCall.GetID); + GUIControl.FocusControl(GetID, buttonHangupCall.GetID); + RefreshWindow(); + } + + private void HideCallPage() + { + // Set the Displaying var + Displaying = "Contacts"; + // Change the page title + GUIPropertyManager.SetProperty("#PageTitle", "My Skype main"); + // Show buttons + GUIControl.ShowControl(GetID, buttonStatus.GetID); + GUIControl.ShowControl(GetID, buttonHistory.GetID); + GUIControl.ShowControl(GetID, buttonSettings.GetID); + GUIControl.ShowControl(GetID, buttonViewAs.GetID); + // Show Contacts + if (ViewAs == "View as list") + GUIControl.ShowControl(GetID, ContactList.GetID); + else + GUIControl.ShowControl(GetID, ContactIcon.GetID); + // Hide Call control + GUIControl.HideControl(GetID, 80); + GUIControl.HideControl(GetID, 81); + GUIControl.HideControl(GetID, buttonPauseCall.GetID); + GUIControl.HideControl(GetID, buttonHangupCall.GetID); + GUIControl.FocusControl(GetID, buttonStatus.GetID); + RefreshWindow(); + } + + private void ShowRecentCallPage() + { + // Hide buttons + GUIControl.HideControl(GetID, buttonStatus.GetID); + GUIControl.HideControl(GetID, buttonHistory.GetID); + GUIControl.HideControl(GetID, buttonSettings.GetID); + GUIControl.HideControl(GetID, buttonViewAs.GetID); + // Hide Contacts + GUIControl.HideControl(GetID, ContactList.GetID); + GUIControl.HideControl(GetID, ContactIcon.GetID); + GUIPropertyManager.SetProperty("#NumberOfContacts", ""); + // Show recent call list and buttons + GUIControl.ShowControl(GetID, RecentCallList.GetID); + GUIControl.ShowControl(GetID, buttonMissedCalls.GetID); + GUIControl.ShowControl(GetID, buttonReceivedCalls.GetID); + GUIControl.ShowControl(GetID, buttonCallsDone.GetID); + GUIControl.ShowControl(GetID, buttonCallsBack.GetID); + GUIControl.ShowControl(GetID, buttonCallsBack.GetID); + GUIControl.FocusControl(GetID, buttonCallsBack.GetID); + RefreshWindow(); + } + + private void HideRecentCallPage() + { + // Set the Displaying var + Displaying = "Contacts"; + // Change the page title + GUIPropertyManager.SetProperty("#PageTitle", "My Skype main"); + // Show buttons + GUIControl.ShowControl(GetID, buttonStatus.GetID); + GUIControl.ShowControl(GetID, buttonHistory.GetID); + GUIControl.ShowControl(GetID, buttonSettings.GetID); + GUIControl.ShowControl(GetID, buttonViewAs.GetID); + // Show Contacts + if (ViewAs == "View as list") + GUIControl.ShowControl(GetID, ContactList.GetID); + else + GUIControl.ShowControl(GetID, ContactIcon.GetID); + // Hide recent call list and button + GUIControl.HideControl(GetID, RecentCallList.GetID); + GUIControl.HideControl(GetID, buttonMissedCalls.GetID); + GUIControl.HideControl(GetID, buttonReceivedCalls.GetID); + GUIControl.HideControl(GetID, buttonCallsDone.GetID); + GUIControl.HideControl(GetID, buttonCallsBack.GetID); + GUIControl.FocusControl(GetID, buttonStatus.GetID); + RefreshWindow(); + } + + // This is launched by the timer handler when there's a new incoming call + private void IncomingCall() + { + // Who is calling? + string NameToShow; + if (SkypeConn.Call.ContactCalledFullName == "") + NameToShow = SkypeConn.Call.ContactCalledName; + else + NameToShow = SkypeConn.Call.ContactCalledFullName + " (" + SkypeConn.Call.ContactCalledName + ")"; + + // Warns about an incoming call with a bottom right menu + GUIDialogMenuBottomRight IncomingCallMenu = (GUIDialogMenuBottomRight)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU_BOTTOM_RIGHT); + IncomingCallMenu.Reset(); + IncomingCallMenu.SetHeading("Call from " + NameToShow); + IncomingCallMenu.Add("Accept"); + IncomingCallMenu.Add("Reject"); + IncomingCallMenu.Add("Do nothing"); + // If the user close the dialog, the last option highlighted will be the result, + // so this is to give "Do nothing" result as default option + IncomingCallMenu.selectOption("Do nothing"); + IncomingCallMenu.DoModal(GetID); + switch (IncomingCallMenu.SelectedLabelText) + { + case "Accept": + SkypeConn.AcceptCall(); + GUIWindowManager.ActivateWindow(GetWindowId()); + break; + case "Reject": + SkypeConn.HangupCall(); + // If the user was watching something and MySkype paused the media for the + // incoming call then resume the media he was looking at + if (g_Player.Playing && g_Player.Paused && MySkypePausedMedia) + { + // If MySkype paused it then resume it + MediaPortal.Player.g_Player.Pause(); + MySkypePausedMedia = false; + } + break; + case "Do nothing": + // If the user was watching something and MySkype paused the media for the + // incoming call then resume the media he was looking at + if (g_Player.Playing && g_Player.Paused && MySkypePausedMedia) + { + // If MySkype paused it then resume it + MediaPortal.Player.g_Player.Pause(); + MySkypePausedMedia = false; + } + break; + } + } + + // This is the longest function, it has the hard task of redraw the plugin screen + // on every condition, for all the four main pages: Settings, Call, History and Contacts + private void RefreshWindow() + { + + #region Settings Page + + // If the Settings page is shown just the settings control will be refreshed + if (Displaying == "Settings") + { + // Sets the option flagged accordingly to what is stored in the MySkypeSettings + // variables + if (MySkypeSettings.PauseMediaOnCall) + SetOnCallPauseMedia(); + else + SetOnCallNoAction(); + + if (MySkypeSettings.ShowIncomingCall) + SetShowIncomingCalls(); + else + SetDontShowIncomingCalls(); + + if (MySkypeSettings.StartWebcamAutomatically) + SetAutomaticallyStartWebcam(); + else + SetDontStartWebcamAutomatically(); + + if (MySkypeSettings.ShowOfflineContacts) + SetShowOfflineContact(); + else + SetDontShowOfflineContact(); + + return; + } + #endregion + + #region Call Page + + // If the Call page is shown just the call controls will be refreshed + if (Displaying == "Call") + { + // Shows the "Fullname (name)" of the called contact + string CalledNameToShow; + if (SkypeConn.Call.ContactCalledFullName == "") + CalledNameToShow = SkypeConn.Call.ContactCalledName; + else + CalledNameToShow = SkypeConn.Call.ContactCalledFullName + " (" + SkypeConn.Call.ContactCalledName + ")"; + GUIPropertyManager.SetProperty("#Calling", "Calling " + CalledNameToShow); + + // Enables the PauseCall button if the call is in progress + if (!buttonPauseCall.IsEnabled && SkypeConn.Call.CallDuration > 0) + GUIControl.EnableControl(GetID, buttonPauseCall.GetID); + + // Get the call duration (if any) + string CallDurationToShow; + int minutes = SkypeConn.Call.CallDuration / 60; + int seconds = SkypeConn.Call.CallDuration % 60; + if (minutes > 0) + CallDurationToShow = Convert.ToString(minutes) + ":" + Convert.ToString(seconds); + else + CallDurationToShow = Convert.ToString(seconds); + + /* This was actually to experiment what I could do with Skype video + * unfortunately actually there is no video support at all in the + * Skype API, so, basically we can enable video in and out but there + * is no way to get the video out of the Skype window, so we cannot + * show it in a MediaPortal window..... :-S + if (SkypeConn.Call.CallDuration == 5) + SkypeConn.StartVideo(); + if (SkypeConn.Call.CallDuration == 25) + SkypeConn.StopVideo();*/ + + // Shows the call status + GUIDialogOK guidialogCall; + switch (SkypeConn.Call.CallStatus) + { + case "RINGING": + GUIPropertyManager.SetProperty("#CallStatus", "Ringing..."); + break; + case "INPROGRESS": + GUIPropertyManager.SetProperty("#CallStatus", "Call duration " + CallDurationToShow); + break; + case "ONHOLD": + GUIPropertyManager.SetProperty("#CallStatus", "Call on hold (" + CallDurationToShow + ")"); + break; + // If the call has been refused, it will pop-up a message and go back to main page + case "REFUSED": + HideCallPage(); + guidialogCall = (GUIDialogOK)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_OK); + guidialogCall.SetHeading("Call refused"); + guidialogCall.SetLine(1, CalledNameToShow + " refused the call."); + guidialogCall.DoModal(GUIWindowManager.ActiveWindow); + break; + // If the call has failed, it will pop-up a message and go back to main page + case "FAILED": + HideCallPage(); + guidialogCall = (GUIDialogOK)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_OK); + guidialogCall.SetHeading("Call failed"); + guidialogCall.SetLine(1, "Failed to call " + CalledNameToShow + "."); + guidialogCall.SetLine(2, SkypeConn.GetFailureReason()); + guidialogCall.DoModal(GUIWindowManager.ActiveWindow); + break; + // If the call is finished go back to the main page + case "FINISHED": + case "MISSED": + HideCallPage(); + break; + // If the status is undefining (sometimes Skype says ROUTING) + // we will lie waiting for a good status statement :o) + default: + GUIPropertyManager.SetProperty("#CallStatus", "Connecting..."); + break; + } + // We have shown the data so we can reset the flag + SkypeConn.NewData = false; + return; + } + + #endregion + + #region Recent Calls Page + + // Here we will refresh the call history page. This page may show MissedCalls, + // ReceivedCalls or CallsDone. + DateTime ConvertedTimeStamp; + GUIControl.ClearControl(GetID, RecentCallList.GetID); + string NameToShow; + + if (Displaying == "MissedCalls") + { + // Change the page title + GUIPropertyManager.SetProperty("#PageTitle", "Missed calls"); + + // Sort the list before showing it + SkypeConn.SortCallHistory(); + + // Let's go through the whole call history list to find the right calls to show + foreach (CallStruct MissedCall in SkypeConn.CallHistory) + { + if (MissedCall.CallStatus == "MISSED") + { + GUIListItem item = new GUIListItem(); + // Compose the name to show + if (MissedCall.ContactCalledFullName == "") + NameToShow = MissedCall.ContactCalledName; + else + NameToShow = MissedCall.ContactCalledFullName + " (" + MissedCall.ContactCalledName + ")"; + item.Label = NameToShow; + ConvertedTimeStamp = DateTime.Parse("01/01/1970 00:00"); + ConvertedTimeStamp = (DateTime)ConvertedTimeStamp.AddSeconds(MissedCall.CallTimeStamp); + + if (ConvertedTimeStamp.Date == DateTime.Today) + item.Label2 = "Today at " + ConvertedTimeStamp.ToShortTimeString(); + else + item.Label2 = ConvertedTimeStamp.ToString(); + item.IsFolder = false; + + // This will be used for retrieving call details if the user choose to see them + item.AlbumInfoTag = MissedCall.CallId; + // As this is the missed call list, we will show them all with the red flag on + item.IconImage = "MySkype-ContactStatusDoNotDisturb.png"; + item.IconImageBig = "MySkype-ContactStatusDoNotDisturb.png"; + GUIControl.AddListItemControl(GetID, RecentCallList.GetID, item); + } + } + SkypeConn.NewData = false; + return; + } + + if (Displaying == "ReceivedCalls") + { + // Change the page title + GUIPropertyManager.SetProperty("#PageTitle", "Received calls"); + + // Sort the list before showing it + SkypeConn.SortCallHistory(); + + // Let's go through the whole call history list to find the right calls to show + foreach (CallStruct ReceivedCall in SkypeConn.CallHistory) + { + if (ReceivedCall.CallStatus == "FINISHED" && ReceivedCall.CallDirection == "INCOMING") + { + GUIListItem item = new GUIListItem(); + // Compose the name to show + if (ReceivedCall.ContactCalledFullName == "") + NameToShow = ReceivedCall.ContactCalledName; + else + NameToShow = ReceivedCall.ContactCalledFullName + " (" + ReceivedCall.ContactCalledName + ")"; + item.Label = NameToShow; + + ConvertedTimeStamp = DateTime.Parse("01/01/1970 00:00"); + ConvertedTimeStamp = (DateTime)ConvertedTimeStamp.AddSeconds(ReceivedCall.CallTimeStamp); + if (ConvertedTimeStamp.Date == DateTime.Today) + item.Label2 = "Today at " + ConvertedTimeStamp.ToShortTimeString(); + else + item.Label2 = ConvertedTimeStamp.ToString(); + item.IsFolder = false; + + // This will be used for retrieving call details if the user choose to see them + item.AlbumInfoTag = ReceivedCall.CallId; + + // As this is the successfully received call list, we will show them all with + // the green icon + item.IconImage = "MySkype-ContactStatusOnline.png"; + item.IconImageBig = "MySkype-ContactStatusOnline.png"; + GUIControl.AddListItemControl(GetID, RecentCallList.GetID, item); + } + } + SkypeConn.NewData = false; + return; + } + if (Displaying == "CallsDone") + { + // Change the page title + GUIPropertyManager.SetProperty("#PageTitle", "Calls done"); + SkypeConn.SortCallHistory(); + foreach (CallStruct CallDone in SkypeConn.CallHistory) + { + if ((CallDone.CallStatus == "FINISHED" || CallDone.CallStatus == "FAILED") && CallDone.CallDirection == "OUTGOING") + { + GUIListItem item = new GUIListItem(); + // Compose the name to show + if (CallDone.ContactCalledFullName == "") + NameToShow = CallDone.ContactCalledName; + else + NameToShow = CallDone.ContactCalledFullName + " (" + CallDone.ContactCalledName + ")"; + item.Label = NameToShow; + + ConvertedTimeStamp = DateTime.Parse("01/01/1970 00:00"); + ConvertedTimeStamp = (DateTime)ConvertedTimeStamp.AddSeconds(CallDone.CallTimeStamp); + + if (ConvertedTimeStamp.Date == DateTime.Today) + item.Label2 = "Today at " + ConvertedTimeStamp.ToShortTimeString(); + else + item.Label2 = ConvertedTimeStamp.ToString(); + item.IsFolder = false; + + // This will be used for retrieving call details if the user choose to see them + item.AlbumInfoTag = CallDone.CallId; + + // The calls done may be successfully done or failed (for example calls made to + // guys that were offline), so we will put an icon with the red flag on those calls + if (CallDone.CallStatus == "FAILED") + { + item.IconImage = "MySkype-ContactStatusDoNotDisturb.png"; + item.IconImageBig = "MySkype-ContactStatusDoNotDisturb.png"; + } + else + { + item.IconImage = "MySkype-ContactStatusOnline.png"; + item.IconImageBig = "MySkype-ContactStatusOnline.png"; + } + GUIControl.AddListItemControl(GetID, RecentCallList.GetID, item); + } + } + SkypeConn.NewData = false; + return; + } + + #endregion + + #region Contacts Page + + // If it reaches this point it means that the Contacts page is shown, so we will refresh it + // Refresh user name + GUIPropertyManager.SetProperty("#UserFullName", "User " + SkypeConn.Myself.FullName); + // Refresh user status + switch (SkypeConn.Myself.OnlineStatus) + { + case "ONLINE": + GUIPropertyManager.SetProperty("#UserOnline", "is online"); + GUIPropertyManager.SetProperty("#UserStatusIcon", @"\MySkype-UserStatusOnline.png"); + break; + case "AWAY": + GUIPropertyManager.SetProperty("#UserOnline", "is away"); + GUIPropertyManager.SetProperty("#UserStatusIcon", @"\MySkype-UserStatusAway.png"); + break; + case "DND": + GUIPropertyManager.SetProperty("#UserOnline", "don't want to be disturbed"); + GUIPropertyManager.SetProperty("#UserStatusIcon", @"\MySkype-UserStatusDoNotDisturb.png"); + break; + case "NA": + GUIPropertyManager.SetProperty("#UserOnline", "is not available"); + GUIPropertyManager.SetProperty("#UserStatusIcon", @"\MySkype-UserStatusNotAvailable.png"); + break; + case "INVISIBLE": + GUIPropertyManager.SetProperty("#UserOnline", "is invisible"); + GUIPropertyManager.SetProperty("#UserStatusIcon", @"\MySkype-UserStatusInvisible.png"); + break; + case "OFFLINE": + GUIPropertyManager.SetProperty("#UserOnline", "is offline"); + GUIPropertyManager.SetProperty("#UserStatusIcon", @"\MySkype-UserStatusOffline.png"); + break; + case "NotAvailable": + GUIPropertyManager.SetProperty("#UserOnline", "can't get status"); + GUIPropertyManager.SetProperty("#UserStatusIcon", null); + break; + } + // Refresh contact list + GUIControl.ClearControl(GetID, ContactList.GetID); + GUIControl.ClearControl(GetID, ContactIcon.GetID); + + foreach (Contact buddy in SkypeConn.MyContacts) + { + // If the settings is to not show offline contacts and this is an offline + // contact then jump to the next contact + if (!MySkypeSettings.ShowOfflineContacts && buddy.OnlineStatus == "OFFLINE") + continue; + GUIListItem item = new GUIListItem(); + if (buddy.FullName == "") + { + item.Label = buddy.Name; + item.Label2 = buddy.Name; + } + else + { + item.Label = buddy.FullName; //+ " (" + buddy.Name + ")"; + item.Label2 = buddy.Name; + } + item.IsFolder = false; + item.AlbumInfoTag = buddy; + + // Put the right icon near the username + switch (buddy.OnlineStatus) + { + case "ONLINE": + item.IconImage = "MySkype-ContactStatusOnline.png"; + item.IconImageBig = "MySkype-ContactStatusOnline.png"; + break; + case "AWAY": + item.IconImage = "MySkype-ContactStatusAway.png"; + item.IconImageBig = "MySkype-ContactStatusAway.png"; + break; + case "DND": + item.IconImage = "MySkype-ContactStatusDoNotDisturb.png"; + item.IconImageBig = "MySkype-ContactStatusDoNotDisturb.png"; + break; + case "NA": + item.IconImage = "MySkype-ContactStatusNotAvailable.png"; + item.IconImageBig = "MySkype-ContactStatusNotAvailable.png"; + break; + case "OFFLINE": + item.IconImage = "MySkype-ContactStatusOffline.png"; + item.IconImageBig = "MySkype-ContactStatusOffline.png"; + break; + default: + item.IconImage = "MySkype-ContactStatusOffline.png"; + item.IconImageBig = "MySkype-ContactStatusOffline.png"; + break; + } + GUIControl.AddListItemControl(GetID, ContactList.GetID, item); + GUIControl.AddListItemControl(GetID, ContactIcon.GetID, item); + + // Show the right view: list or thumbs icons? + if (ViewAs == "View as list") + { + GUIControl.HideControl(GetID, ContactIcon.GetID); + GUIControl.ShowControl(GetID, ContactList.GetID); + } + else + { + GUIControl.HideControl(GetID, ContactList.GetID); + GUIControl.ShowControl(GetID, ContactIcon.GetID); + } + } + // Update addressbook stats + GUIPropertyManager.SetProperty("#NumberOfContacts", string.Format("Found {0} contacts, {1} may be called", SkypeConn.AddressBookStats.ContactsCount, SkypeConn.AddressBookStats.OnlineCount)); + + #endregion + + // We've done, no more data to be shown + SkypeConn.NewData = false; + } + + #endregion + + } + +} Added: trunk/plugins/MySkype/MySkype/MySkype.csproj =================================================================== --- trunk/plugins/MySkype/MySkype/MySkype.csproj (rev 0) +++ trunk/plugins/MySkype/MySkype/MySkype.csproj 2008-01-07 10:53:19 UTC (rev 1221) @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>9.0.21022</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{FD5DFBBB-FDA6-4D1A-81B5-181DD0E01DEF}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>MySkype</RootNamespace> + <AssemblyName>MySkype</AssemblyName> + <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + </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> + <ItemGroup> + <Reference Include="Core, Version=0.2.3.0, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>C:\Program Files\Team MediaPortal\MediaPortal\Core.dll</HintPath> + </Reference> + <Reference Include="Dialogs, Version=0.2.3.0, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>C:\Program Files\Team MediaPortal\MediaPortal\plugins\Windows\Dialogs.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + <Reference Include="Utils, Version=2.2.2.0, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>C:\Program Files\Team MediaPortal\MediaPortal\Utils.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <Compile Include="SkypeConnector.cs" /> + <Compile Include="MySkype.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="SkypeControl\SkypeControl.csproj"> + <Project>{7929F278-3A47-4FF1-A96F-44121E759261}</Project> + <Name>SkypeControl</Name> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Properties\Resources.resx"> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="MySkype-Icon.png" /> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\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/MySkype/MySkype/MySkype.csproj.user =================================================================== --- trunk/plugins/MySkype/MySkype/MySkype.csproj.user (rev 0) +++ trunk/plugins/MySkype/MySkype/MySkype.csproj.user 2008-01-07 10:53:19 UTC (rev 1221) @@ -0,0 +1,5 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectView>ShowAllFiles</ProjectView> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/MySkype/MySkype/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/MySkype/MySkype/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/MySkype/MySkype/Properties/AssemblyInfo.cs 2008-01-07 10:53:19 UTC (rev 1221) @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled t... [truncated message content] |
From: <an...@us...> - 2008-01-16 14:45:32
|
Revision: 1253 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1253&view=rev Author: and-81 Date: 2008-01-16 06:45:22 -0800 (Wed, 16 Jan 2008) 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/IR Server/Program.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/MacroEditor.Designer.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/Tray Launcher/Program.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/Program.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/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/LearnIR.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/TcpMessageCommand.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/MPUtils/MPCommon.cs trunk/plugins/IR Server Suite/Common/MPUtils/MPUtils.csproj trunk/plugins/IR Server Suite/Documentation/Common/macro_editor.html trunk/plugins/IR Server Suite/Documentation/new.html trunk/plugins/IR Server Suite/Documentation/troubleshooting.html trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.Designer.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Config.resx 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/HCW Transceiver/HcwTransceiver.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/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/WinLirc Transceiver/WinLirc Transceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Windows Message Receiver.cs 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 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 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/TV2BlasterPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs trunk/plugins/IR Server Suite/Util Apps/IR File Tool/FormMain.cs trunk/plugins/MCEReplacement/Forms/MacroEditor.cs trunk/plugins/MCEReplacement/Forms/SetupForm.cs trunk/plugins/MCEReplacement/MCEReplacement.cs Added Paths: ----------- trunk/plugins/IR Server Suite/Applications/MacroScope/ trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.Designer.cs trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.cs trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.resx trunk/plugins/IR Server Suite/Applications/MacroScope/MacroScope.csproj trunk/plugins/IR Server Suite/Applications/MacroScope/Program.cs trunk/plugins/IR Server Suite/Applications/MacroScope/Properties/ trunk/plugins/IR Server Suite/Applications/MacroScope/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Exceptions/ trunk/plugins/IR Server Suite/Common/IrssUtils/Exceptions/CommandExecutionException.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Exceptions/CommandStructureException.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Exceptions/MacroStructureException.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/IfCommand.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/IfCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/IfCommand.resx trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/LabelNameDialog.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/LabelNameDialog.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/LabelNameDialog.resx trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SetVariableCommand.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SetVariableCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SetVariableCommand.resx 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/VariablesFileDialog.resx trunk/plugins/IR Server Suite/Common/IrssUtils/IrssMacro.cs trunk/plugins/IR Server Suite/Common/IrssUtils/VariableList.cs trunk/plugins/IR Server Suite/Common/MPUtils/Forms/MPAction.Designer.cs trunk/plugins/IR Server Suite/Common/MPUtils/Forms/MPAction.cs trunk/plugins/IR Server Suite/Common/MPUtils/Forms/MPAction.resx Modified: trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs 2008-01-16 13:45:22 UTC (rev 1252) +++ trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs 2008-01-16 14:45:22 UTC (rev 1253) @@ -297,20 +297,20 @@ case MessageType.RegisterClient: if ((received.Flags & MessageFlags.Success) == MessageFlags.Success) { - Info("Registered to IR Server"); + Info("Registered to Input Service"); _registered = true; //_irServerInfo = TransceiverInfo.FromString(received.Data); } else if ((received.Flags & MessageFlags.Failure) == MessageFlags.Failure) { _registered = false; - Warn("IR Server refused to register"); + Warn("Input Service refused to register"); } break; case MessageType.ServerShutdown: _registered = false; - Warn("IR Server Shutdown - Blasting disabled until IR Server returns"); + Warn("Input Service Shutdown - Blasting disabled until Input Service returns"); break; case MessageType.Error: 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 2008-01-16 13:45:22 UTC (rev 1252) +++ trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs 2008-01-16 14:45:22 UTC (rev 1253) @@ -261,20 +261,20 @@ case MessageType.RegisterClient: if ((received.Flags & MessageFlags.Success) == MessageFlags.Success) { - IrssLog.Info("Registered to IR Server"); + IrssLog.Info("Registered to Input Service"); _registered = true; //_irServerInfo = TransceiverInfo.FromString(received.Data); } else if ((received.Flags & MessageFlags.Failure) == MessageFlags.Failure) { _registered = false; - IrssLog.Warn("IR Server refused to register"); + IrssLog.Warn("Input Service refused to register"); } break; case MessageType.ServerShutdown: _registered = false; - IrssLog.Warn("IR Server Shutdown - Blasting disabled until IR Server returns"); + IrssLog.Warn("Input Service Shutdown - Blasting disabled until Input Service returns"); break; case MessageType.Error: Modified: trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs 2008-01-16 13:45:22 UTC (rev 1252) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs 2008-01-16 14:45:22 UTC (rev 1253) @@ -69,7 +69,7 @@ /// <param name="e">Event args.</param> public static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) { - IrssLog.Error(e.Exception.ToString()); + IrssLog.Error(e.Exception); } /// <summary> Property changes on: trunk/plugins/IR Server Suite/Applications/MacroScope ___________________________________________________________________ Name: svn:ignore + bin obj Added: trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.Designer.cs 2008-01-16 14:45:22 UTC (rev 1253) @@ -0,0 +1,395 @@ +namespace MacroScope +{ + 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.statusStrip = new System.Windows.Forms.StatusStrip(); + this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); + 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.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.quitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.debugToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.stepToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.resetDebugToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.endDebugToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.contentsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.richTextBoxMacro = new System.Windows.Forms.RichTextBox(); + this.treeViewCommandList = new System.Windows.Forms.TreeView(); + this.splitContainer = new System.Windows.Forms.SplitContainer(); + this.tabControl = new System.Windows.Forms.TabControl(); + this.tabPageCommands = new System.Windows.Forms.TabPage(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.listViewVariables = new System.Windows.Forms.ListView(); + this.columnHeaderVarName = new System.Windows.Forms.ColumnHeader(); + this.columnHeaderVarValue = new System.Windows.Forms.ColumnHeader(); + this.contextMenuStripVariables = new System.Windows.Forms.ContextMenuStrip(this.components); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.saveFileDialog = new System.Windows.Forms.SaveFileDialog(); + this.statusStrip.SuspendLayout(); + this.menuStrip.SuspendLayout(); + this.splitContainer.Panel1.SuspendLayout(); + this.splitContainer.Panel2.SuspendLayout(); + this.splitContainer.SuspendLayout(); + this.tabControl.SuspendLayout(); + this.tabPageCommands.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.SuspendLayout(); + // + // statusStrip + // + this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripStatusLabel}); + this.statusStrip.Location = new System.Drawing.Point(0, 351); + this.statusStrip.Name = "statusStrip"; + this.statusStrip.Size = new System.Drawing.Size(592, 22); + this.statusStrip.TabIndex = 2; + this.statusStrip.Text = "statusStrip"; + // + // toolStripStatusLabel + // + this.toolStripStatusLabel.Name = "toolStripStatusLabel"; + this.toolStripStatusLabel.Size = new System.Drawing.Size(124, 17); + this.toolStripStatusLabel.Text = "Welcome to MacroScope"; + // + // menuStrip + // + this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem, + this.debugToolStripMenuItem, + this.helpToolStripMenuItem}); + this.menuStrip.Location = new System.Drawing.Point(0, 0); + this.menuStrip.Name = "menuStrip"; + this.menuStrip.Size = new System.Drawing.Size(592, 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.closeToolStripMenuItem, + 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(139, 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(139, 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(139, 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(139, 22); + this.saveAsToolStripMenuItem.Text = "Save &As ..."; + this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click); + // + // closeToolStripMenuItem + // + this.closeToolStripMenuItem.Name = "closeToolStripMenuItem"; + this.closeToolStripMenuItem.Size = new System.Drawing.Size(139, 22); + this.closeToolStripMenuItem.Text = "&Close"; + this.closeToolStripMenuItem.Click += new System.EventHandler(this.closeToolStripMenuItem_Click); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(136, 6); + // + // quitToolStripMenuItem + // + this.quitToolStripMenuItem.Name = "quitToolStripMenuItem"; + this.quitToolStripMenuItem.Size = new System.Drawing.Size(139, 22); + this.quitToolStripMenuItem.Text = "&Quit"; + this.quitToolStripMenuItem.Click += new System.EventHandler(this.quitToolStripMenuItem_Click); + // + // debugToolStripMenuItem + // + this.debugToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.stepToolStripMenuItem, + this.resetDebugToolStripMenuItem, + this.endDebugToolStripMenuItem}); + this.debugToolStripMenuItem.Name = "debugToolStripMenuItem"; + this.debugToolStripMenuItem.Size = new System.Drawing.Size(50, 20); + this.debugToolStripMenuItem.Text = "Debug"; + // + // stepToolStripMenuItem + // + this.stepToolStripMenuItem.Name = "stepToolStripMenuItem"; + this.stepToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.stepToolStripMenuItem.Text = "&Step Over"; + this.stepToolStripMenuItem.Click += new System.EventHandler(this.stepDebugToolStripMenuItem_Click); + // + // resetDebugToolStripMenuItem + // + this.resetDebugToolStripMenuItem.Name = "resetDebugToolStripMenuItem"; + this.resetDebugToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.resetDebugToolStripMenuItem.Text = "&Reset"; + this.resetDebugToolStripMenuItem.Click += new System.EventHandler(this.resetDebugToolStripMenuItem_Click); + // + // endDebugToolStripMenuItem + // + this.endDebugToolStripMenuItem.Name = "endDebugToolStripMenuItem"; + this.endDebugToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.endDebugToolStripMenuItem.Text = "&End"; + this.endDebugToolStripMenuItem.Click += new System.EventHandler(this.endDebugToolStripMenuItem_Click); + // + // helpToolStripMenuItem + // + this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.contentsToolStripMenuItem, + this.aboutToolStripMenuItem}); + this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; + this.helpToolStripMenuItem.Size = new System.Drawing.Size(40, 20); + this.helpToolStripMenuItem.Text = "&Help"; + // + // contentsToolStripMenuItem + // + this.contentsToolStripMenuItem.Name = "contentsToolStripMenuItem"; + this.contentsToolStripMenuItem.Size = new System.Drawing.Size(129, 22); + this.contentsToolStripMenuItem.Text = "&Contents"; + this.contentsToolStripMenuItem.Click += new System.EventHandler(this.contentsToolStripMenuItem_Click); + // + // aboutToolStripMenuItem + // + this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; + this.aboutToolStripMenuItem.Size = new System.Drawing.Size(129, 22); + this.aboutToolStripMenuItem.Text = "&About"; + this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); + // + // richTextBoxMacro + // + this.richTextBoxMacro.AcceptsTab = true; + this.richTextBoxMacro.AutoWordSelection = true; + this.richTextBoxMacro.Dock = System.Windows.Forms.DockStyle.Fill; + this.richTextBoxMacro.Font = new System.Drawing.Font("Consolas", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.richTextBoxMacro.HideSelection = false; + this.richTextBoxMacro.Location = new System.Drawing.Point(0, 0); + this.richTextBoxMacro.Name = "richTextBoxMacro"; + this.richTextBoxMacro.ShowSelectionMargin = true; + this.richTextBoxMacro.Size = new System.Drawing.Size(400, 327); + this.richTextBoxMacro.TabIndex = 0; + this.richTextBoxMacro.Text = ""; + this.richTextBoxMacro.WordWrap = false; + // + // treeViewCommandList + // + this.treeViewCommandList.Dock = System.Windows.Forms.DockStyle.Fill; + this.treeViewCommandList.Location = new System.Drawing.Point(3, 3); + this.treeViewCommandList.Name = "treeViewCommandList"; + this.treeViewCommandList.Size = new System.Drawing.Size(174, 295); + this.treeViewCommandList.TabIndex = 0; + this.treeViewCommandList.DoubleClick += new System.EventHandler(this.treeViewCommandList_DoubleClick); + // + // splitContainer + // + this.splitContainer.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer.Location = new System.Drawing.Point(0, 24); + this.splitContainer.Name = "splitContainer"; + // + // splitContainer.Panel1 + // + this.splitContainer.Panel1.Controls.Add(this.richTextBoxMacro); + this.splitContainer.Panel1MinSize = 128; + // + // splitContainer.Panel2 + // + this.splitContainer.Panel2.Controls.Add(this.tabControl); + this.splitContainer.Panel2MinSize = 128; + this.splitContainer.Size = new System.Drawing.Size(592, 327); + this.splitContainer.SplitterDistance = 400; + this.splitContainer.TabIndex = 1; + // + // tabControl + // + this.tabControl.Alignment = System.Windows.Forms.TabAlignment.Bottom; + this.tabControl.Controls.Add(this.tabPageCommands); + this.tabControl.Controls.Add(this.tabPage2); + this.tabControl.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl.Location = new System.Drawing.Point(0, 0); + this.tabControl.Multiline = true; + this.tabControl.Name = "tabControl"; + this.tabControl.SelectedIndex = 0; + this.tabControl.Size = new System.Drawing.Size(188, 327); + this.tabControl.TabIndex = 1; + // + // tabPageCommands + // + this.tabPageCommands.Controls.Add(this.treeViewCommandList); + this.tabPageCommands.Location = new System.Drawing.Point(4, 4); + this.tabPageCommands.Name = "tabPageCommands"; + this.tabPageCommands.Padding = new System.Windows.Forms.Padding(3); + this.tabPageCommands.Size = new System.Drawing.Size(180, 301); + this.tabPageCommands.TabIndex = 0; + this.tabPageCommands.Text = "Commands"; + this.tabPageCommands.UseVisualStyleBackColor = true; + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.listViewVariables); + this.tabPage2.Location = new System.Drawing.Point(4, 4); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(180, 301); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "Variables"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // listViewVariables + // + this.listViewVariables.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeaderVarName, + this.columnHeaderVarValue}); + this.listViewVariables.ContextMenuStrip = this.contextMenuStripVariables; + this.listViewVariables.Dock = System.Windows.Forms.DockStyle.Fill; + this.listViewVariables.GridLines = true; + this.listViewVariables.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; + this.listViewVariables.Location = new System.Drawing.Point(3, 3); + this.listViewVariables.Name = "listViewVariables"; + this.listViewVariables.Size = new System.Drawing.Size(174, 295); + this.listViewVariables.TabIndex = 0; + this.listViewVariables.UseCompatibleStateImageBehavior = false; + this.listViewVariables.View = System.Windows.Forms.View.Details; + // + // columnHeaderVarName + // + this.columnHeaderVarName.Text = "Name"; + this.columnHeaderVarName.Width = 64; + // + // columnHeaderVarValue + // + this.columnHeaderVarValue.Text = "Value"; + this.columnHeaderVarValue.Width = 85; + // + // contextMenuStripVariables + // + this.contextMenuStripVariables.Name = "contextMenuStripVariables"; + this.contextMenuStripVariables.Size = new System.Drawing.Size(61, 4); + // + // openFileDialog + // + this.openFileDialog.DefaultExt = "Macro"; + this.openFileDialog.Filter = "Macro Files|*.Macro|All Files|*.*"; + // + // saveFileDialog + // + this.saveFileDialog.DefaultExt = "Macro"; + this.saveFileDialog.Filter = "Macro Files|*.Macro|All Files|*.*"; + // + // FormMain + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(592, 373); + this.Controls.Add(this.splitContainer); + this.Controls.Add(this.statusStrip); + this.Controls.Add(this.menuStrip); + this.MainMenuStrip = this.menuStrip; + this.Name = "FormMain"; + this.Text = "MacroScope"; + this.statusStrip.ResumeLayout(false); + this.statusStrip.PerformLayout(); + this.menuStrip.ResumeLayout(false); + this.menuStrip.PerformLayout(); + this.splitContainer.Panel1.ResumeLayout(false); + this.splitContainer.Panel2.ResumeLayout(false); + this.splitContainer.ResumeLayout(false); + this.tabControl.ResumeLayout(false); + this.tabPageCommands.ResumeLayout(false); + this.tabPage2.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.StatusStrip statusStrip; + 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.ToolStripMenuItem closeToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripMenuItem quitToolStripMenuItem; + private System.Windows.Forms.RichTextBox richTextBoxMacro; + private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem contentsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem debugToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem stepToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem resetDebugToolStripMenuItem; + private System.Windows.Forms.TreeView treeViewCommandList; + private System.Windows.Forms.SplitContainer splitContainer; + private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.SaveFileDialog saveFileDialog; + private System.Windows.Forms.TabControl tabControl; + private System.Windows.Forms.TabPage tabPageCommands; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.ListView listViewVariables; + private System.Windows.Forms.ColumnHeader columnHeaderVarName; + private System.Windows.Forms.ColumnHeader columnHeaderVarValue; + private System.Windows.Forms.ContextMenuStrip contextMenuStripVariables; + private System.Windows.Forms.ToolStripMenuItem endDebugToolStripMenuItem; + } +} + Added: trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.cs (rev 0) +++ trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.cs 2008-01-16 14:45:22 UTC (rev 1253) @@ -0,0 +1,330 @@ +using System; +using System.Collections; +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; +using IrssUtils.Forms; + +namespace MacroScope +{ + + + public partial class FormMain : Form + { + + #region Variables + + string _macroFile; + VariableList _variables; + + bool _isDebugging; + int _debugLine; + + #endregion Variables + + #region Constructor + + public FormMain() + { + InitializeComponent(); + + PopulateCommandList(); + + _variables = new VariableList(); + + } + + #endregion Constructor + + + /// <summary> + /// Write the macro in the RichTextBox to a macro name provided. + /// </summary> + /// <param name="fileName">Name of Macro to write (macro name, not file path).</param> + void WriteToFile(string fileName) + { + _macroFile = fileName; + + try + { + using (XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.UTF8)) + { + writer.Formatting = Formatting.Indented; + writer.WriteStartDocument(true); + writer.WriteStartElement("macro"); + + foreach (string item in richTextBoxMacro.Lines) + { + if (String.IsNullOrEmpty(item)) + continue; + + writer.WriteStartElement("item"); + writer.WriteAttributeString("command", item); + writer.WriteEndElement(); + } + + writer.WriteEndElement(); + writer.WriteEndDocument(); + } + } + catch (Exception ex) + { + IrssLog.Error(ex); + } + } + + /// <summary> + /// Read a macro into the listBox from the macro name provided. + /// </summary> + /// <param name="fileName">Name of Macro to read (macro name, not file path).</param> + void ReadFromFile(string fileName) + { + _macroFile = fileName; + + try + { + XmlDocument doc = new XmlDocument(); + doc.Load(fileName); + + XmlNodeList commandSequence = doc.DocumentElement.SelectNodes("item"); + + richTextBoxMacro.Clear(); + + foreach (XmlNode item in commandSequence) + richTextBoxMacro.AppendText(item.Attributes["command"].Value + '\n'); + } + catch (Exception ex) + { + IrssLog.Error(ex); + } + } + + + void ResetVariables() + { + _variables.Clear(); + listViewVariables.Clear(); + } + + void LoadVariables(string fileName) + { + // Dictionary<string, string>.Enumerator enumerator = _variables.GetEnumerator(); + } + + void SaveVariables(string fileName) + { + + } + + void ProcessCurrentLine() + { + + } + + + void DebugStep() + { + if (_isDebugging) + { + ProcessCurrentLine(); + + + _debugLine++; + HighlightDebugLine(); + + + + } + else + { + _isDebugging = true; + _debugLine = 0; + + HighlightDebugLine(); + } + } + + void DebugReset() + { + _isDebugging = true; + _debugLine = 0; + + HighlightDebugLine(); + } + + void DebugEnd() + { + _isDebugging = false; + + HighlightDebugLine(); + } + + + void HighlightDebugLine() + { + if (_isDebugging) + { + + } + else + { + + } + + } + + + void PopulateCommandList() + { + TreeNode macroCommands = new TreeNode("Macro Commands"); + macroCommands.Nodes.Add(Common.UITextSetVar); + macroCommands.Nodes.Add(Common.UITextLabel); + macroCommands.Nodes.Add(Common.UITextGotoLabel); + macroCommands.Nodes.Add(Common.UITextIf); + treeViewCommandList.Nodes.Add(macroCommands); + + TreeNode generalCommands = new TreeNode("General Commands"); + generalCommands.Nodes.Add(Common.UITextBeep); + generalCommands.Nodes.Add(Common.UITextCloseProgram); + generalCommands.Nodes.Add(Common.UITextDisplay); + generalCommands.Nodes.Add(Common.UITextEject); + generalCommands.Nodes.Add(Common.UITextHibernate); + generalCommands.Nodes.Add(Common.UITextHttpMsg); + generalCommands.Nodes.Add(Common.UITextKeys); + generalCommands.Nodes.Add(Common.UITextLogOff); + generalCommands.Nodes.Add(Common.UITextMouse); + generalCommands.Nodes.Add(Common.UITextMouseMode); + generalCommands.Nodes.Add(Common.UITextPause); + generalCommands.Nodes.Add(Common.UITextPopup); + generalCommands.Nodes.Add(Common.UITextReboot); + generalCommands.Nodes.Add(Common.UITextRun); + generalCommands.Nodes.Add(Common.UITextSerial); + generalCommands.Nodes.Add(Common.UITextShutdown); + generalCommands.Nodes.Add(Common.UITextSmsKB); + generalCommands.Nodes.Add(Common.UITextSound); + generalCommands.Nodes.Add(Common.UITextStandby); + generalCommands.Nodes.Add(Common.UITextTcpMsg); + generalCommands.Nodes.Add(Common.UITextTranslator); + generalCommands.Nodes.Add(Common.UITextVirtualKB); + generalCommands.Nodes.Add(Common.UITextWindowMsg); + treeViewCommandList.Nodes.Add(generalCommands); + + TreeNode mediaPortalCommands = new TreeNode("MediaPortal Only Commands"); + mediaPortalCommands.Nodes.Add(Common.UITextExit); + mediaPortalCommands.Nodes.Add(Common.UITextFocus); + mediaPortalCommands.Nodes.Add(Common.UITextGotoScreen); + mediaPortalCommands.Nodes.Add(Common.UITextInputLayer); + mediaPortalCommands.Nodes.Add(Common.UITextMultiMap); + mediaPortalCommands.Nodes.Add(Common.UITextSendMPAction); + mediaPortalCommands.Nodes.Add(Common.UITextSendMPMsg); + treeViewCommandList.Nodes.Add(mediaPortalCommands); + } + + + void InsertCommand(string commandUiText) + { + string newCommand = String.Empty; + + switch (commandUiText) + { + case Common.UITextBeep: + BeepCommand beepCommand = new BeepCommand(); + if (beepCommand.ShowDialog(this) == DialogResult.OK) + InsertText(beepCommand.CommandString); + + break; + + + + + } + + if (!String.IsNullOrEmpty(newCommand)) + InsertText(newCommand); + } + + void InsertText(string text) + { + richTextBoxMacro.Text.Insert(richTextBoxMacro.SelectionStart, text); + } + + void UpdateStatus(string text) + { + toolStripStatusLabel.Text = text; + } + + + private void newToolStripMenuItem_Click(object sender, EventArgs e) + { + _macroFile = String.Empty; + richTextBoxMacro.Clear(); + } + + private void openToolStripMenuItem_Click(object sender, EventArgs e) + { + if (openFileDialog.ShowDialog(this) == DialogResult.OK) + ReadFromFile(openFileDialog.FileName); + } + + private void saveAsToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void saveToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void closeToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void quitToolStripMenuItem_Click(object sender, EventArgs e) + { + Application.Exit(); + } + + private void contentsToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void aboutToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void treeViewCommandList_DoubleClick(object sender, EventArgs e) + { + if (treeViewCommandList.SelectedNode != null && treeViewCommandList.SelectedNode.Level == 1) + InsertCommand(treeViewCommandList.SelectedNode.Text); + } + + private void stepDebugToolStripMenuItem_Click(object sender, EventArgs e) + { + DebugStep(); + } + + private void resetDebugToolStripMenuItem_Click(object sender, EventArgs e) + { + DebugReset(); + } + + private void endDebugToolStripMenuItem_Click(object sender, EventArgs e) + { + DebugEnd(); + } + + + } + +} Added: trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.resx =================================================================== --- trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.resx (rev 0) +++ trunk/plugins/IR Server Suite/Applications/MacroScope/FormMain.resx 2008-01-16 14:45:22 UTC (rev 1253) @@ -0,0 +1,135 @@ +<?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="statusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> + <metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>121, 17</value> + </metadata> + <metadata name="contextMenuStripVariables.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>469, 17</value> + </metadata> + <metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>223, 17</value> + </metadata> + <metadata name="saveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>347, 17</value> + </metadata> +</root> \ No newline at end of file Added: trunk/plugins/IR Server Suite/Applications/MacroScope/MacroScope.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/MacroScope/MacroScope.csproj (rev 0) +++ trunk/plugins/IR Server Suite/Applications/MacroScope/MacroScope.csproj 2008-01-16 14:45:22 UTC (rev 1253) @@ -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>{2F296C09-627B-4D6E-A041-1601A8C030C7}</ProjectGuid> + <OutputType>WinExe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>MacroScope</RootNamespace> + <AssemblyName>MacroScope</AssemblyName> + <StartupObject>MacroScope.Program</StartupObject> + <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> + </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.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="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/Applications/MacroScope/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/MacroScope/Program.cs (rev 0) +++ trunk/plugins/IR Server Suite/Applications/MacroScope/Program.cs 2008-01-16 14:45:22 UTC (rev 1253) @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Threading; +using System.Windows.Forms; + +using IrssUtils; + +namespace MacroScope +{ + + static class Program + { + + /// <summary> + /// The main entry point for the application. + /// </summary> + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + +#if DEBUG + IrssLog.LogLevel = IrssLog.Level.Debug; +#else + IrssLog.LogLevel = IrssLog.Level.Info; +#endif + IrssLog.Open(Common.FolderIrssLogs + "MacroScope.log"); + + Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); + + Application.Run(new FormMain()); + + Application.ThreadException -= new ThreadExceptionEventHandler(Application_ThreadException); + + IrssLog.Close(); + } + + /// <summary> + /// Handles unhandled exceptions. + /// </summary> + /// <param name="sender">Sender.</param> + /// <param name="e">Event args.</param> + static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) + { + IrssLog.Error(e.Exception); + } + + } + +} Added: trunk/plugins/IR Server Suite/Applications/MacroScope/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/MacroScope/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/IR Server Suite/Applications/MacroScope/Properties/AssemblyInfo.cs 2008-01-16 14:45:22 UTC (rev 1253) @@ -0,0 +1,38 @@ +using System; +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("MacroScope")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("and-81")] +[assembly: AssemblyProduct("MacroScope")] +[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("3b4dbc18-a931-42eb-aa55-fc96a32f215f")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.4.2")] +[assembly: AssemblyFileVersion("1.0.4.2")] + +[assembly: CLSCompliant(true)] Modified: trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs 2008-01-16 13:45:22 UTC (rev 1252) +++ trunk/plugins/IR Server Suite/Applications/Translator/CopyDataWM.cs 2008-01-16 14:45:22 UTC (rev 1253) @@ -122,7 +122,7 @@ byte[] dataBytes = new byte[dataStructure.cbData]; IntPtr lpData = new IntPtr(dataStructure.lpData); Marshal.Copy(lpData, dataBytes, 0, dataStructure.cbData); - string strData = Encoding.ASCII.GetString(dataBytes); + string strData = Encoding.Default.GetString(dataBytes); Program.ProcessCommand(strData, true); } @@ -145,7 +145,7 @@ { Win32.COPYDATASTRUCT copyData; - byte[] dataBytes = Encoding.ASCII.GetBytes(data); + byte[] dataBytes = Encoding.Default.GetBytes(data); copyData.dwData = CopyDataID; copyData.lpData = Win32.VarPtr(dataBytes).ToInt32(); Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2008-01-16 13:45:22 UTC (rev 1252) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2008-01-16 14:45:22 UTC (rev 1253) @@ -89,7 +89,7 @@ { comboBoxMacro.Items.Clear(); - string[] macroList = Program.GetMacroList(false); + string[] macroList = IrssMacro.GetMacroList(Program.FolderMacros, false); if (macroList != null && macroList.Length > 0) { comboBoxMacro.Items.AddRange(macroList); Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.Designer.cs 2008-01-16 13:45:22 UTC (rev 1252) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.Designer.cs 2008-01-16 14:45:22 UTC (rev 1253) @@ -49,7 +49,7 @@ // this.labelName.Location = new System.Drawing.Point(8, 8); this.labelName.Name = "labelName"; - this.labelName.Size = new System.Drawing.Size(48, 20); + this.labelName.Size = new System.Drawing.Size(56, 20); this.labelName.TabIndex = 0; this.labelName.Text = "Name:"; this.labelName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -164,9 +164,9 @@ // 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(256, 296); + this.buttonCancel.Location = new System.Drawing.Point(248, 296); this.buttonCancel.Name = "buttonCancel"; - this.buttonCancel.Size = new System.Drawing.Size(48, 24); + this.buttonCancel.Size = new System.Drawing.Size(56, 24); this.buttonCancel.TabIndex = 6; this.buttonCancel.Text = "Cancel"; this.buttonCancel.UseVisualStyleBackColor = true; @@ -177,7 +177,7 @@ this.buttonTest.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.buttonTest.Location = new System.Drawing.Point(8, 296); this.buttonTest.Name = "buttonTest"; - this.buttonTest.Size = new System.Drawing.Size(48, 24); + this.buttonTest.Size = new System.Drawing.Size(56, 24); this.buttonTest.TabIndex = 4; this.buttonTest.Text = "Test"; this.buttonTest.UseVisualStyleBackColor = true; @@ -186,9 +186,9 @@ // 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(200, 296); + this.buttonOK.Location = new System.Drawing.Point(184, 296); this.buttonOK.Name = "buttonOK"; - this.buttonOK.Size = new System.Drawing.Size(48, 24); + this.buttonOK.Size = new System.Drawing.Size(56, 24); this.buttonOK.TabIndex = 5; this.buttonOK.Text = "OK"; this.buttonOK.UseVisualStyleBackColor = true; Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2008-01-16 13:45:22 UTC (rev 1252) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2008-01-16 14:45:22 UTC (rev 1253) @@ -38,22 +38,28 @@ /// </summary> /// <param name="name">The name of an existing macro.</param> public MacroEditor(string name) - : this() { if (String.IsNullOrEmpty(name)) throw new ArgumentNullException("name"); + InitializeComponent(); + textBoxName.Text = name; textBoxName.Enabled = false; string fileName = Program.FolderMacros + name + Common.FileExtensionMacro; - ReadFromFile(fileName); + string[] commands = IrssMacro.ReadFromFile(fileName); + + listBoxMacro.Items.AddRange(commands); } #endregion Constructor #region Implementation + /// <summary> + /// Refreshes the macro command list. + /// </summary> void RefreshCommandList() { comboBoxCommands.Items.Clear(); @@ -77,8 +83,15 @@ comboBoxCommands.Items.Add(Common.UITextHibernate); comboBoxCommands.Items.Add(Common.UITextReboot); comboBoxCommands.Items.Add(Common.UITextShutdown); + comboBoxCommands.Items.Add(Common.UITextLabel); + comboBoxCommands.Items.Add(Common.UITextGotoLabel); + comboBoxCommands.Items.Add(Common.UITextIf); + comboBoxCommands.Items.Add(Common.UITextSetVar); + comboBoxCommands.Items.Add(Common.UITextClearVars); + comboBoxCommands.Items.Add(Common.UITextLoadVars); + comboBoxCommands.Items.Add(Common.UITextSaveVars); - string[] macroList = Program.GetMacroList(true); + string[] macroList = IrssMacro.GetMacroList(Program.FolderMacros, true); if (macroList != null && macroList.Length > 0) comboBoxCommands.Items.AddRange(macroList); @@ -87,61 +100,6 @@ comboBoxCommands.Items.AddRange(irList); } - /// <summary> - /// Write the macro in the listBox to a macro name provided. - /// </summary> - /// <param name="fileName">Name of Macro to write (macro name, not file path).</param> - void WriteToFile(string fileName) - { - try - { - using (XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.UTF8)) - { - writer.Formatting = Formatting.Indented; - writer.WriteStartDocument(true); - writer.WriteStartElement("macro"); - - foreach (string item in listBoxMacro.Items) - { - writer.WriteStartElement("item"); - writer.WriteAttributeString("command", item); - writer.WriteEndElement(); - } - - writer.WriteEndElement(); - writer.WriteEndDocument(); - } - } - catch (Exception ex) - { - IrssLog.Error(ex); - } - } - - /// <summary> - /// Read a macro into the listBox from the macro name provided. - /// </summary> - /// <param name="fileName">Name of Macro to read (macro name, not file path).</param> - void ReadFromFile(string fileName) - { - try - { - XmlDocument doc = new XmlDocument(); - doc.Load(fileName); - - XmlNodeList commandSequence = doc.DocumentElement.SelectNodes("item"); - - listBoxMacro.Items.Clear(); - - foreach (XmlNode item in commandSequence) - listBoxMacro.Items.Add(item.Attributes["command"].Value); - } - catch (Exception ex) - { - IrssLog.Error(ex); - } - } - private void MacroEditor_Load(object sender, EventArgs e) { RefreshCommandList(); @@ -157,8 +115,48 @@ string selected = comboBoxCommands.SelectedItem as string; string newCommand = null; - if (selected.Equals(Common.UITextRun, StringComparison.OrdinalIgnoreCase)) + if (selected.Equals(Common.UITextIf, StringComparison.OrdinalIgnoreCase)) { + IfCommand ifCommand = new IfCommand(); + if (ifCommand.ShowDialog(this) == D... [truncated message content] |
From: <moi...@us...> - 2008-01-17 01:31:19
|
Revision: 1256 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1256&view=rev Author: moiristo Date: 2008-01-16 17:31:14 -0800 (Wed, 16 Jan 2008) Log Message: ----------- Renamed project Added Paths: ----------- trunk/plugins/TVGemist/ trunk/plugins/TVGemist/TVGemist.sln trunk/plugins/TVGemist/skin/Xface/ Removed Paths: ------------- trunk/plugins/TVGemist/UitGemist/ trunk/plugins/TVGemist/UitGemist.sln Copied: trunk/plugins/TVGemist (from rev 1197, trunk/plugins/UitzendingGemist) Copied: trunk/plugins/TVGemist/TVGemist.sln (from rev 1255, trunk/plugins/UitzendingGemist/TVGemist.sln) =================================================================== --- trunk/plugins/TVGemist/TVGemist.sln (rev 0) +++ trunk/plugins/TVGemist/TVGemist.sln 2008-01-17 01:31:14 UTC (rev 1256) @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C# Express 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TVGemist", "TVGemist\TVGemist.csproj", "{ED97F6CB-D6CB-4503-97BB-CD1F3FA8D9D2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {ED97F6CB-D6CB-4503-97BB-CD1F3FA8D9D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ED97F6CB-D6CB-4503-97BB-CD1F3FA8D9D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ED97F6CB-D6CB-4503-97BB-CD1F3FA8D9D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ED97F6CB-D6CB-4503-97BB-CD1F3FA8D9D2}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Deleted: trunk/plugins/TVGemist/UitGemist.sln =================================================================== --- trunk/plugins/UitzendingGemist/UitGemist.sln 2007-12-29 07:35:31 UTC (rev 1197) +++ trunk/plugins/TVGemist/UitGemist.sln 2008-01-17 01:31:14 UTC (rev 1256) @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C# Express 2008 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UitGemist", "UitGemist\UitGemist.csproj", "{ED97F6CB-D6CB-4503-97BB-CD1F3FA8D9D2}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {ED97F6CB-D6CB-4503-97BB-CD1F3FA8D9D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ED97F6CB-D6CB-4503-97BB-CD1F3FA8D9D2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ED97F6CB-D6CB-4503-97BB-CD1F3FA8D9D2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ED97F6CB-D6CB-4503-97BB-CD1F3FA8D9D2}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal Copied: trunk/plugins/TVGemist/skin/Xface (from rev 1255, trunk/plugins/UitzendingGemist/skin/Xface) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2008-01-19 09:25:46
|
Revision: 1273 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1273&view=rev Author: and-81 Date: 2008-01-19 01:25:43 -0800 (Sat, 19 Jan 2008) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Commands/TestApp/Program.cs trunk/plugins/IgorPlugUSB/IgorPlugUSB.csproj trunk/plugins/MessagePlugin/AssemblyInfo.cs trunk/plugins/MessagePlugin/MessagePlugin.csproj trunk/plugins/XBCDRC/AssemblyInfo.cs trunk/plugins/XBCDRC/XBCDRC Plugin.csproj Modified: trunk/plugins/IR Server Suite/Commands/TestApp/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Commands/TestApp/Program.cs 2008-01-19 09:11:17 UTC (rev 1272) +++ trunk/plugins/IR Server Suite/Commands/TestApp/Program.cs 2008-01-19 09:25:43 UTC (rev 1273) @@ -32,4 +32,4 @@ } -} \ No newline at end of file +} Modified: trunk/plugins/IgorPlugUSB/IgorPlugUSB.csproj =================================================================== --- trunk/plugins/IgorPlugUSB/IgorPlugUSB.csproj 2008-01-19 09:11:17 UTC (rev 1272) +++ trunk/plugins/IgorPlugUSB/IgorPlugUSB.csproj 2008-01-19 09:25:43 UTC (rev 1273) @@ -56,14 +56,14 @@ <Compile Include="MappedKeyCode.cs" /> </ItemGroup> <ItemGroup> - <Reference Include="Core, Version=1.0.2546.32606, Culture=neutral, processorArchitecture=x86"> + <Reference Include="Core, Version=0.2.3.0, Culture=neutral, processorArchitecture=x86"> <SpecificVersion>False</SpecificVersion> - <HintPath>..\..\MediaPortal 0.2.2.0\Core.DLL</HintPath> + <HintPath>..\..\MediaPortal\Core\bin\Release\Core.dll</HintPath> <Private>False</Private> </Reference> - <Reference Include="RemotePlugins, Version=1.0.2546.32615, Culture=neutral, processorArchitecture=x86"> + <Reference Include="RemotePlugins, Version=0.2.3.0, Culture=neutral, processorArchitecture=x86"> <SpecificVersion>False</SpecificVersion> - <HintPath>..\..\MediaPortal 0.2.2.0\RemotePlugins.DLL</HintPath> + <HintPath>..\..\MediaPortal\RemotePlugins\bin\Release\RemotePlugins.dll</HintPath> <Private>False</Private> </Reference> <Reference Include="System" /> @@ -71,6 +71,11 @@ <Reference Include="System.Drawing" /> <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> + <Reference Include="Utils, Version=2.2.4.0, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\MediaPortal\Core\bin\Release\Utils.dll</HintPath> + <Private>False</Private> + </Reference> </ItemGroup> <PropertyGroup> <PostBuildEvent>copy "*.*" "\MediaPortal Development\Plugin Releases\IgorPlugUSB\"</PostBuildEvent> Modified: trunk/plugins/MessagePlugin/AssemblyInfo.cs =================================================================== --- trunk/plugins/MessagePlugin/AssemblyInfo.cs 2008-01-19 09:11:17 UTC (rev 1272) +++ trunk/plugins/MessagePlugin/AssemblyInfo.cs 2008-01-19 09:25:43 UTC (rev 1273) @@ -33,7 +33,7 @@ // 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.1")] -[assembly: AssemblyFileVersion("1.0.3.1")] +[assembly: AssemblyVersion("1.0.4.2")] +[assembly: AssemblyFileVersion("1.0.4.2")] [assembly: CLSCompliant(true)] \ No newline at end of file Modified: trunk/plugins/MessagePlugin/MessagePlugin.csproj =================================================================== --- trunk/plugins/MessagePlugin/MessagePlugin.csproj 2008-01-19 09:11:17 UTC (rev 1272) +++ trunk/plugins/MessagePlugin/MessagePlugin.csproj 2008-01-19 09:25:43 UTC (rev 1273) @@ -36,7 +36,7 @@ <HintPath>..\..\MediaPortal\Core\bin\Release\Core.dll</HintPath> <Private>False</Private> </Reference> - <Reference Include="RemotePlugins, Version=1.0.2581.1913, Culture=neutral, processorArchitecture=MSIL"> + <Reference Include="RemotePlugins, Version=0.2.3.0, Culture=neutral, processorArchitecture=x86"> <SpecificVersion>False</SpecificVersion> <HintPath>..\..\MediaPortal\RemotePlugins\bin\Release\RemotePlugins.dll</HintPath> <Private>False</Private> Modified: trunk/plugins/XBCDRC/AssemblyInfo.cs =================================================================== --- trunk/plugins/XBCDRC/AssemblyInfo.cs 2008-01-19 09:11:17 UTC (rev 1272) +++ trunk/plugins/XBCDRC/AssemblyInfo.cs 2008-01-19 09:25:43 UTC (rev 1273) @@ -29,7 +29,7 @@ // 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.2.0")] +[assembly: AssemblyVersion("1.0.4.2")] // // In order to sign your assembly you must specify a key to use. Refer to the @@ -60,7 +60,7 @@ [assembly: AssemblyKeyFile("")] [assembly: AssemblyKeyName("")] [assembly: ComVisibleAttribute(false)] -[assembly: AssemblyFileVersionAttribute("1.0.2.0")] +[assembly: AssemblyFileVersionAttribute("1.0.4.2")] [assembly: CLSCompliant(true)] Modified: trunk/plugins/XBCDRC/XBCDRC Plugin.csproj =================================================================== --- trunk/plugins/XBCDRC/XBCDRC Plugin.csproj 2008-01-19 09:11:17 UTC (rev 1272) +++ trunk/plugins/XBCDRC/XBCDRC Plugin.csproj 2008-01-19 09:25:43 UTC (rev 1273) @@ -54,7 +54,7 @@ <HintPath>..\..\MediaPortal\Core\bin\Release\Core.dll</HintPath> <Private>False</Private> </Reference> - <Reference Include="RemotePlugins, Version=1.0.2581.1913, Culture=neutral, processorArchitecture=MSIL"> + <Reference Include="RemotePlugins, Version=0.2.3.0, Culture=neutral, processorArchitecture=x86"> <SpecificVersion>False</SpecificVersion> <HintPath>..\..\MediaPortal\RemotePlugins\bin\Release\RemotePlugins.dll</HintPath> <Private>False</Private> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yk...@us...> - 2008-01-19 22:27:38
|
Revision: 1277 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1277&view=rev Author: ykamchi Date: 2008-01-19 14:27:31 -0800 (Sat, 19 Jan 2008) Log Message: ----------- Added Paths: ----------- trunk/plugins/MediaServer.sln trunk/plugins/MediaServerConfiguration/ trunk/plugins/MediaServerConfiguration/AddShare.Designer.cs trunk/plugins/MediaServerConfiguration/AddShare.cs trunk/plugins/MediaServerConfiguration/AddShare.resx trunk/plugins/MediaServerConfiguration/Main.Designer.cs trunk/plugins/MediaServerConfiguration/Main.cs trunk/plugins/MediaServerConfiguration/Main.resx trunk/plugins/MediaServerConfiguration/MediaServerConfiguration.csproj trunk/plugins/MediaServerConfiguration/MediaServerConfiguration.csproj.user trunk/plugins/MediaServerConfiguration/Program.cs trunk/plugins/MediaServerConfiguration/Properties/ trunk/plugins/MediaServerConfiguration/Properties/AssemblyInfo.cs trunk/plugins/MediaServerConfiguration/Properties/Resources.Designer.cs trunk/plugins/MediaServerConfiguration/Properties/Resources.resx trunk/plugins/MediaServerConfiguration/Properties/Settings.Designer.cs trunk/plugins/MediaServerConfiguration/Properties/Settings.settings trunk/plugins/MediaServerConfiguration/SettingsUtil.cs trunk/plugins/MediaServerConfiguration/SharingUtil.cs trunk/plugins/MediaServerConfiguration/Test.Designer.cs trunk/plugins/MediaServerConfiguration/Test.cs trunk/plugins/MediaServerConfiguration/Test.resx trunk/plugins/MediaServerConfiguration/bin/ trunk/plugins/MediaServerConfiguration/bin/Debug/ trunk/plugins/MediaServerConfiguration/bin/Release/ trunk/plugins/MediaServerConfiguration/obj/ trunk/plugins/MediaServerConfiguration/obj/Debug/ trunk/plugins/MediaServerConfiguration/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/MediaServerConfiguration/obj/Debug/TempPE/ trunk/plugins/MediaServerConfiguration/obj/Release/ trunk/plugins/MediaServerConfiguration/obj/Release/ResolveAssemblyReference.cache trunk/plugins/MediaServerConfiguration/obj/Release/TempPE/ trunk/plugins/MediaServerPlugin/ trunk/plugins/MediaServerPlugin/Loader.cs trunk/plugins/MediaServerPlugin/MediaServerPlugin.csproj trunk/plugins/MediaServerPlugin/MediaServerPlugin.csproj.user trunk/plugins/MediaServerPlugin/MediaServerPluginSetup.cs trunk/plugins/MediaServerPlugin/MediaServerPluginSetup.resx trunk/plugins/MediaServerPlugin/Properties/ trunk/plugins/MediaServerPlugin/Properties/AssemblyInfo.cs trunk/plugins/MediaServerPlugin/Properties/Resources.Designer.cs trunk/plugins/MediaServerPlugin/Properties/Resources.resx trunk/plugins/MediaServerPlugin/bin/ trunk/plugins/MediaServerPlugin/bin/Debug/ trunk/plugins/MediaServerPlugin/bin/Release/ trunk/plugins/MediaServerPlugin/obj/ trunk/plugins/MediaServerPlugin/obj/Debug/ trunk/plugins/MediaServerPlugin/obj/Debug/TempPE/ trunk/plugins/MediaServerPlugin/obj/Release/ trunk/plugins/MediaServerPlugin/obj/Release/TempPE/ trunk/plugins/MediaServerPlugin/obj/Release/TempPE/Properties.Resources.Designer.cs.dll trunk/plugins/MediaServerService/ trunk/plugins/MediaServerService/MediaPortal.xml trunk/plugins/MediaServerService/MediaServerService.cs trunk/plugins/MediaServerService/MediaServerService.csproj trunk/plugins/MediaServerService/Program.cs trunk/plugins/MediaServerService/ProjectInstaller.Designer.cs trunk/plugins/MediaServerService/ProjectInstaller.cs trunk/plugins/MediaServerService/ProjectInstaller.resx trunk/plugins/MediaServerService/Properties/ trunk/plugins/MediaServerService/Properties/AssemblyInfo.cs trunk/plugins/MediaServerService/Server.cs trunk/plugins/MediaServerService/Service1.Designer.cs trunk/plugins/MediaServerService/bin/ trunk/plugins/MediaServerService/bin/Debug/ trunk/plugins/MediaServerService/bin/Release/ trunk/plugins/MediaServerService/obj/ trunk/plugins/MediaServerService/obj/Debug/ trunk/plugins/MediaServerService/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/MediaServerService/obj/Debug/TempPE/ trunk/plugins/MediaServerService/obj/Release/ trunk/plugins/MediaServerService/obj/Release/ResolveAssemblyReference.cache trunk/plugins/MediaServerService/obj/Release/TempPE/ trunk/plugins/ServerTest/ trunk/plugins/ServerTest/Properties/ trunk/plugins/ServerTest/Properties/AssemblyInfo.cs trunk/plugins/ServerTest/ServerTest.cs trunk/plugins/ServerTest/ServerTest.csproj trunk/plugins/ServerTest/bin/ trunk/plugins/ServerTest/bin/Debug/ trunk/plugins/ServerTest/bin/Debug/ServerTest.vshost.exe trunk/plugins/ServerTest/bin/Debug/ServerTest.vshost.exe.manifest trunk/plugins/ServerTest/bin/Release/ trunk/plugins/ServerTest/bin/Release/ServerTest.vshost.exe trunk/plugins/ServerTest/bin/Release/ServerTest.vshost.exe.manifest trunk/plugins/ServerTest/obj/ trunk/plugins/ServerTest/obj/Debug/ trunk/plugins/ServerTest/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/ServerTest/obj/Debug/TempPE/ trunk/plugins/ServerTest/obj/Release/ trunk/plugins/ServerTest/obj/Release/ResolveAssemblyReference.cache trunk/plugins/ServerTest/obj/Release/TempPE/ trunk/plugins/SetupMediaServerService/ trunk/plugins/SetupMediaServerService/Debug/ trunk/plugins/SetupMediaServerService/Release/ trunk/plugins/SetupMediaServerService/SetupMediaServerService.vdproj Added: trunk/plugins/MediaServer.sln =================================================================== --- trunk/plugins/MediaServer.sln (rev 0) +++ trunk/plugins/MediaServer.sln 2008-01-19 22:27:31 UTC (rev 1277) @@ -0,0 +1,42 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerTest", "ServerTest\ServerTest.csproj", "{00437BD6-C1BF-4CC0-8D82-CE11BB4861A1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaServerService", "MediaServerService\MediaServerService.csproj", "{577FBB83-4D3D-439E-BB85-9912F11EFC50}" +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "SetupMediaServerService", "SetupMediaServerService\SetupMediaServerService.vdproj", "{012AC200-1334-4D51-9481-97388CA9DA12}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaServerConfiguration", "MediaServerConfiguration\MediaServerConfiguration.csproj", "{FF5B0AA2-49A1-4F1A-8209-C7F52AD1CA93}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaServerPlugin", "MediaServerPlugin\MediaServerPlugin.csproj", "{CCC78D26-D4EA-4259-ABEB-2550207E7944}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {00437BD6-C1BF-4CC0-8D82-CE11BB4861A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {00437BD6-C1BF-4CC0-8D82-CE11BB4861A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00437BD6-C1BF-4CC0-8D82-CE11BB4861A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {00437BD6-C1BF-4CC0-8D82-CE11BB4861A1}.Release|Any CPU.Build.0 = Release|Any CPU + {577FBB83-4D3D-439E-BB85-9912F11EFC50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {577FBB83-4D3D-439E-BB85-9912F11EFC50}.Debug|Any CPU.Build.0 = Debug|Any CPU + {577FBB83-4D3D-439E-BB85-9912F11EFC50}.Release|Any CPU.ActiveCfg = Release|Any CPU + {577FBB83-4D3D-439E-BB85-9912F11EFC50}.Release|Any CPU.Build.0 = Release|Any CPU + {012AC200-1334-4D51-9481-97388CA9DA12}.Debug|Any CPU.ActiveCfg = Debug + {012AC200-1334-4D51-9481-97388CA9DA12}.Release|Any CPU.ActiveCfg = Release + {FF5B0AA2-49A1-4F1A-8209-C7F52AD1CA93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF5B0AA2-49A1-4F1A-8209-C7F52AD1CA93}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF5B0AA2-49A1-4F1A-8209-C7F52AD1CA93}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF5B0AA2-49A1-4F1A-8209-C7F52AD1CA93}.Release|Any CPU.Build.0 = Release|Any CPU + {CCC78D26-D4EA-4259-ABEB-2550207E7944}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CCC78D26-D4EA-4259-ABEB-2550207E7944}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CCC78D26-D4EA-4259-ABEB-2550207E7944}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CCC78D26-D4EA-4259-ABEB-2550207E7944}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: trunk/plugins/MediaServerConfiguration/AddShare.Designer.cs =================================================================== --- trunk/plugins/MediaServerConfiguration/AddShare.Designer.cs (rev 0) +++ trunk/plugins/MediaServerConfiguration/AddShare.Designer.cs 2008-01-19 22:27:31 UTC (rev 1277) @@ -0,0 +1,117 @@ +namespace MediaServerConfiguration +{ + partial class AddShare + { + /// <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.label1 = new System.Windows.Forms.Label(); + this.txtShareName = new System.Windows.Forms.TextBox(); + this.txtPath = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.btnCancel = new System.Windows.Forms.Button(); + this.btnOk = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 84); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(69, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Share Name:"; + // + // txtShareName + // + this.txtShareName.Location = new System.Drawing.Point(81, 81); + this.txtShareName.Name = "txtShareName"; + this.txtShareName.Size = new System.Drawing.Size(261, 20); + this.txtShareName.TabIndex = 1; + this.txtShareName.TextChanged += new System.EventHandler(this.textBox1_TextChanged); + // + // txtPath + // + this.txtPath.Location = new System.Drawing.Point(81, 117); + this.txtPath.Name = "txtPath"; + this.txtPath.Size = new System.Drawing.Size(261, 20); + this.txtPath.TabIndex = 3; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(12, 120); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(32, 13); + this.label2.TabIndex = 2; + this.label2.Text = "Path:"; + // + // btnCancel + // + this.btnCancel.Location = new System.Drawing.Point(267, 170); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 4; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // btnOk + // + this.btnOk.Location = new System.Drawing.Point(177, 170); + this.btnOk.Name = "btnOk"; + this.btnOk.Size = new System.Drawing.Size(75, 23); + this.btnOk.TabIndex = 5; + this.btnOk.Text = "Ok"; + this.btnOk.UseVisualStyleBackColor = true; + // + // AddShare + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(359, 224); + this.Controls.Add(this.btnOk); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.txtPath); + this.Controls.Add(this.label2); + this.Controls.Add(this.txtShareName); + this.Controls.Add(this.label1); + this.Name = "AddShare"; + this.Text = "AddShare"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox txtShareName; + private System.Windows.Forms.TextBox txtPath; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Button btnOk; + } +} \ No newline at end of file Added: trunk/plugins/MediaServerConfiguration/AddShare.cs =================================================================== --- trunk/plugins/MediaServerConfiguration/AddShare.cs (rev 0) +++ trunk/plugins/MediaServerConfiguration/AddShare.cs 2008-01-19 22:27:31 UTC (rev 1277) @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace MediaServerConfiguration +{ + public partial class AddShare : Form + { + public AddShare() + { + InitializeComponent(); + } + + private void textBox1_TextChanged(object sender, EventArgs e) + { + + } + } +} Added: trunk/plugins/MediaServerConfiguration/AddShare.resx =================================================================== --- trunk/plugins/MediaServerConfiguration/AddShare.resx (rev 0) +++ trunk/plugins/MediaServerConfiguration/AddShare.resx 2008-01-19 22:27:31 UTC (rev 1277) @@ -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/MediaServerConfiguration/Main.Designer.cs =================================================================== --- trunk/plugins/MediaServerConfiguration/Main.Designer.cs (rev 0) +++ trunk/plugins/MediaServerConfiguration/Main.Designer.cs 2008-01-19 22:27:31 UTC (rev 1277) @@ -0,0 +1,288 @@ +namespace MediaServerConfiguration +{ + partial class u + { + /// <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.groupBox1 = new System.Windows.Forms.GroupBox(); + this.btnShare = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.txtShareName = new System.Windows.Forms.TextBox(); + this.txtInput = new System.Windows.Forms.TextBox(); + this.btnFind = new System.Windows.Forms.Button(); + this.fidFind = new System.Windows.Forms.FolderBrowserDialog(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.txtLabel = new System.Windows.Forms.TextBox(); + this.btnSetNmaeMovies = new System.Windows.Forms.Button(); + this.btnUnshare = new System.Windows.Forms.Button(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.tbMedia = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.lstMovies = new System.Windows.Forms.ListView(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.lstMusic = new System.Windows.Forms.ListView(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.lstPictures = new System.Windows.Forms.ListView(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.tbMedia.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.tabPage3.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.btnShare); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Controls.Add(this.txtShareName); + this.groupBox1.Controls.Add(this.txtInput); + this.groupBox1.Controls.Add(this.btnFind); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox1.Location = new System.Drawing.Point(0, 0); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(593, 66); + this.groupBox1.TabIndex = 3; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Create New Share"; + // + // btnShare + // + this.btnShare.Location = new System.Drawing.Point(406, 22); + this.btnShare.Name = "btnShare"; + this.btnShare.Size = new System.Drawing.Size(61, 23); + this.btnShare.TabIndex = 9; + this.btnShare.Text = "Share"; + this.btnShare.UseVisualStyleBackColor = true; + this.btnShare.Click += new System.EventHandler(this.btnShare_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(212, 25); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(69, 13); + this.label1.TabIndex = 8; + this.label1.Text = "Share Name:"; + // + // txtShareName + // + this.txtShareName.Location = new System.Drawing.Point(287, 22); + this.txtShareName.Name = "txtShareName"; + this.txtShareName.Size = new System.Drawing.Size(101, 20); + this.txtShareName.TabIndex = 7; + // + // txtInput + // + this.txtInput.Location = new System.Drawing.Point(39, 22); + this.txtInput.Name = "txtInput"; + this.txtInput.Size = new System.Drawing.Size(167, 20); + this.txtInput.TabIndex = 6; + // + // btnFind + // + this.btnFind.Location = new System.Drawing.Point(9, 22); + this.btnFind.Name = "btnFind"; + this.btnFind.Size = new System.Drawing.Size(24, 20); + this.btnFind.TabIndex = 5; + this.btnFind.Text = "..."; + this.btnFind.UseVisualStyleBackColor = true; + this.btnFind.Click += new System.EventHandler(this.btnFind_Click); + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.txtLabel); + this.groupBox2.Controls.Add(this.btnSetNmaeMovies); + this.groupBox2.Controls.Add(this.btnUnshare); + this.groupBox2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.groupBox2.Location = new System.Drawing.Point(0, 396); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(593, 60); + this.groupBox2.TabIndex = 15; + this.groupBox2.TabStop = false; + // + // txtLabel + // + this.txtLabel.Location = new System.Drawing.Point(89, 21); + this.txtLabel.Name = "txtLabel"; + this.txtLabel.Size = new System.Drawing.Size(191, 20); + this.txtLabel.TabIndex = 16; + // + // btnSetNmaeMovies + // + this.btnSetNmaeMovies.Location = new System.Drawing.Point(9, 19); + this.btnSetNmaeMovies.Name = "btnSetNmaeMovies"; + this.btnSetNmaeMovies.Size = new System.Drawing.Size(74, 23); + this.btnSetNmaeMovies.TabIndex = 17; + this.btnSetNmaeMovies.Text = "Set Name"; + this.btnSetNmaeMovies.UseVisualStyleBackColor = true; + this.btnSetNmaeMovies.Click += new System.EventHandler(this.btnSetNmaeMovies_Click); + // + // btnUnshare + // + this.btnUnshare.Location = new System.Drawing.Point(319, 19); + this.btnUnshare.Name = "btnUnshare"; + this.btnUnshare.Size = new System.Drawing.Size(87, 23); + this.btnUnshare.TabIndex = 15; + this.btnUnshare.Text = "Remove Share"; + this.btnUnshare.UseVisualStyleBackColor = true; + this.btnUnshare.Click += new System.EventHandler(this.btnUnshare_Click); + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.tbMedia); + this.groupBox3.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox3.Location = new System.Drawing.Point(0, 66); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(593, 330); + this.groupBox3.TabIndex = 16; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Shares"; + // + // tbMedia + // + this.tbMedia.Controls.Add(this.tabPage1); + this.tbMedia.Controls.Add(this.tabPage2); + this.tbMedia.Controls.Add(this.tabPage3); + this.tbMedia.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbMedia.Location = new System.Drawing.Point(3, 16); + this.tbMedia.Name = "tbMedia"; + this.tbMedia.SelectedIndex = 0; + this.tbMedia.Size = new System.Drawing.Size(587, 311); + this.tbMedia.TabIndex = 5; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.lstMovies); + this.tabPage1.Location = new System.Drawing.Point(4, 22); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(579, 285); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Movies"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // lstMovies + // + this.lstMovies.Dock = System.Windows.Forms.DockStyle.Fill; + this.lstMovies.Location = new System.Drawing.Point(3, 3); + this.lstMovies.Name = "lstMovies"; + this.lstMovies.Size = new System.Drawing.Size(573, 279); + this.lstMovies.TabIndex = 1; + this.lstMovies.UseCompatibleStateImageBehavior = false; + this.lstMovies.SelectedIndexChanged += new System.EventHandler(this.lstMovies_SelectedIndexChanged); + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.lstMusic); + this.tabPage2.Location = new System.Drawing.Point(4, 22); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(579, 285); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "Music"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // lstMusic + // + this.lstMusic.Dock = System.Windows.Forms.DockStyle.Fill; + this.lstMusic.Location = new System.Drawing.Point(3, 3); + this.lstMusic.Name = "lstMusic"; + this.lstMusic.Size = new System.Drawing.Size(573, 279); + this.lstMusic.TabIndex = 2; + this.lstMusic.UseCompatibleStateImageBehavior = false; + this.lstMusic.SelectedIndexChanged += new System.EventHandler(this.lstMusic_SelectedIndexChanged); + // + // tabPage3 + // + this.tabPage3.Controls.Add(this.lstPictures); + this.tabPage3.Location = new System.Drawing.Point(4, 22); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Size = new System.Drawing.Size(579, 285); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "Pictures"; + this.tabPage3.UseVisualStyleBackColor = true; + // + // lstPictures + // + this.lstPictures.Dock = System.Windows.Forms.DockStyle.Fill; + this.lstPictures.Location = new System.Drawing.Point(0, 0); + this.lstPictures.Name = "lstPictures"; + this.lstPictures.Size = new System.Drawing.Size(579, 285); + this.lstPictures.TabIndex = 2; + this.lstPictures.UseCompatibleStateImageBehavior = false; + this.lstPictures.SelectedIndexChanged += new System.EventHandler(this.lstPictures_SelectedIndexChanged); + // + // u + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(593, 456); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.Name = "u"; + this.Text = "Media Server Configuration"; + this.Load += new System.EventHandler(this.Main_Load); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.groupBox3.ResumeLayout(false); + this.tbMedia.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage2.ResumeLayout(false); + this.tabPage3.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button btnShare; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox txtShareName; + private System.Windows.Forms.TextBox txtInput; + private System.Windows.Forms.Button btnFind; + private System.Windows.Forms.FolderBrowserDialog fidFind; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.TextBox txtLabel; + private System.Windows.Forms.Button btnSetNmaeMovies; + private System.Windows.Forms.Button btnUnshare; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.TabControl tbMedia; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.ListView lstMovies; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.ListView lstMusic; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.ListView lstPictures; + } +} + Added: trunk/plugins/MediaServerConfiguration/Main.cs =================================================================== --- trunk/plugins/MediaServerConfiguration/Main.cs (rev 0) +++ trunk/plugins/MediaServerConfiguration/Main.cs 2008-01-19 22:27:31 UTC (rev 1277) @@ -0,0 +1,253 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using MediaPortal.GUI.Library; +using MediaPortal.Util; +using MediaPortal.Configuration; +using System.Management; +using System.IO; +using System.Net; + +using System.Collections; + +namespace MediaServerConfiguration +{ + public partial class u : Form + { + private enum TYPE + { + movies = 0, + music = 1, + pictures = 2 + } + + public u() + { + InitializeComponent(); + buildLst(lstMovies); + buildLst(lstMusic); + buildLst(lstPictures); + + + } + + private void buildLst(ListView lst) + { + lst.View = View.Details; + lst.FullRowSelect = true; + lst.HideSelection = false; + lst.Columns.Add("Share"); + lst.Columns.Add("Name"); + lst.Columns.Add("Path"); + lst.Columns[0].Width = 100; + lst.Columns[1].Width = 100; + lst.Columns[2].Width = 300; + } + + private void Main_Load(object sender, EventArgs e) + { + reloadLists(); + } + + private void btnFind_Click(object sender, EventArgs e) + { + fidFind.ShowDialog(); + if (fidFind.SelectedPath != null) + { + + txtInput.Text = fidFind.SelectedPath; + } + } + + private void btnShare_Click(object sender, EventArgs e) + { + if (!SharingUtil.shareFolder(txtInput.Text, txtShareName.Text)) + { + MessageBox.Show("Unable to share directory", "Share Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + else + { + reloadLists(); + } + + } + + private void btnUnshare_Click(object sender, EventArgs e) + { + + unshare(TYPE.movies); + unshare(TYPE.music); + unshare(TYPE.pictures); + reloadLists(); + + } + + private ListView getListView(TYPE type) + { + ListView lst = null; + switch (type) + { + case TYPE.movies: + { + lst = lstMovies; + break; + } + case TYPE.music: + { + lst = lstMusic; + break; + } + case TYPE.pictures: + { + lst = lstPictures; + break; + } + } + return lst; + } + + private void unshare(TYPE type) + { + ListView lst = getListView(type); + foreach (ListViewItem item in lst.SelectedItems) + { + if (!SharingUtil.unShareFolder(item.Text)) + { + MessageBox.Show("Unable to remove share directory", "Share Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + SettingsUtil.SaveShare(getVirtualShares(type), type.ToString()); + } + + private void reloadLists() + { + reloadList(TYPE.movies); + reloadList(TYPE.music); + reloadList(TYPE.pictures); + } + + private void reloadList(TYPE type) + { + ListView lst = getListView(type); + lst.Items.Clear(); + ManagementObjectCollection shares = SharingUtil.getShares(); + VirtualDirectory vd = new VirtualDirectory(); + vd.LoadSettings(type.ToString()); + + foreach (ManagementObject share in shares) + { + if (SharingUtil.getShareType(share) == 0) + { + String shareName = SharingUtil.getSahreName(share); + + ListViewItem lvi = new ListViewItem(); + lvi.Text = shareName; + lst.Items.Add(lvi); + + + Share virtualShare = vd.GetShare("\\\\127.0.0.1\\" + shareName); + + if (virtualShare != null && virtualShare.Path.Equals("\\\\127.0.0.1\\" + shareName)) + { + lvi.SubItems.Add(virtualShare.Name); + } + else + { + lvi.SubItems.Add(""); + } + + lvi.SubItems.Add(SharingUtil.getSahrePath(share)); + } + } + } + + private ArrayList getVirtualShares(TYPE type) + { + ArrayList ret = new ArrayList(); + ListView lst = getListView(type); + foreach (ListViewItem item in lst.Items) + { + String shareName = item.SubItems[1].Text; + if (shareName != null && !shareName.Equals("")) + { + Share virtualShare = new Share(shareName, "\\\\127.0.0.1\\" + item.Text); + ret.Add(virtualShare); + } + } + return ret; + + } + + + private void lstMovies_SelectedIndexChanged(object sender, EventArgs e) + { + selectionChanged(TYPE.movies); + } + + private void selectionChanged(TYPE type) + { + ListView lst = getListView(type); + if (lst.SelectedItems.Count != 1) + { + txtLabel.Text = ""; + } + else + { + txtLabel.Text = lst.SelectedItems[0].SubItems[1].Text; + } + } + + private void btnSetNmaeMovies_Click(object sender, EventArgs e) + { + switch (tbMedia.SelectedIndex) + { + case 0: + { + setName(TYPE.movies); + break; + } + case 1: + { + setName(TYPE.music); + break; + } + case 2: + { + setName(TYPE.pictures); + break; + } + } + } + + private void setName(TYPE type) + { + ListView lst = getListView(type); + + if (lst.SelectedItems.Count != 1) return; + lst.SelectedItems[0].SubItems[1].Text = txtLabel.Text; + + int selecetd = lst.SelectedIndices[0]; + + SettingsUtil.SaveShare(getVirtualShares(type), type.ToString()); + reloadLists(); + + lst.SelectedIndices.Add(selecetd); + } + + private void lstMusic_SelectedIndexChanged(object sender, EventArgs e) + { + selectionChanged(TYPE.music); + } + + private void lstPictures_SelectedIndexChanged(object sender, EventArgs e) + { + selectionChanged(TYPE.pictures); + } + + } +} Added: trunk/plugins/MediaServerConfiguration/Main.resx =================================================================== --- trunk/plugins/MediaServerConfiguration/Main.resx (rev 0) +++ trunk/plugins/MediaServerConfiguration/Main.resx 2008-01-19 22:27:31 UTC (rev 1277) @@ -0,0 +1,123 @@ +<?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="fidFind.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> +</root> \ No newline at end of file Added: trunk/plugins/MediaServerConfiguration/MediaServerConfiguration.csproj =================================================================== --- trunk/plugins/MediaServerConfiguration/MediaServerConfiguration.csproj (rev 0) +++ trunk/plugins/MediaServerConfiguration/MediaServerConfiguration.csproj 2008-01-19 22:27:31 UTC (rev 1277) @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>9.0.21022</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{FF5B0AA2-49A1-4F1A-8209-C7F52AD1CA93}</ProjectGuid> + <OutputType>WinExe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>MediaServerConfiguration</RootNamespace> + <AssemblyName>MediaServerConfiguration</AssemblyName> + <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + </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> + <ItemGroup> + <Reference Include="Core, Version=0.2.3.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>D:\mp\mediaportal\xbmc\bin\Release\Core.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Core"> + <RequiredTargetFramework>3.5</RequiredTargetFramework> + </Reference> + <Reference Include="System.Management" /> + <Reference Include="System.Xml.Linq"> + <RequiredTargetFramework>3.5</RequiredTargetFramework> + </Reference> + <Reference Include="System.Data.DataSetExtensions"> + <RequiredTargetFramework>3.5</RequiredTargetFramework> + </Reference> + <Reference Include="System.Data" /> + <Reference Include="System.Deployment" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + <Reference Include="Utils, Version=2.2.4.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>D:\mp\mediaportal\xbmc\bin\Release\Utils.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="AddShare.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="AddShare.Designer.cs"> + <DependentUpon>AddShare.cs</DependentUpon> + </Compile> + <Compile Include="Main.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="Main.Designer.cs"> + <DependentUpon>Main.cs</DependentUpon> + </Compile> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <EmbeddedResource Include="AddShare.resx"> + <DependentUpon>AddShare.cs</DependentUpon> + <SubType>Designer</SubType> + </EmbeddedResource> + <EmbeddedResource Include="Main.resx"> + <DependentUpon>Main.cs</DependentUpon> + <SubType>Designer</SubType> + </EmbeddedResource> + <EmbeddedResource Include="Properties\Resources.resx"> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + <SubType>Designer</SubType> + </EmbeddedResource> + <EmbeddedResource Include="Test.resx"> + <DependentUpon>Test.cs</DependentUpon> + <SubType>Designer</SubType> + </EmbeddedResource> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <None Include="Properties\Settings.settings"> + <Generator>SettingsSingleFileGenerator</Generator> + <LastGenOutput>Settings.Designer.cs</LastGenOutput> + </None> + <Compile Include="Properties\Settings.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Settings.settings</DependentUpon> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + </Compile> + <Compile Include="SettingsUtil.cs" /> + <Compile Include="SharingUtil.cs" /> + <Compile Include="Test.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="Test.Designer.cs"> + <DependentUpon>Test.cs</DependentUpon> + </Compile> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\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/MediaServerConfiguration/MediaServerConfiguration.csproj.user =================================================================== --- trunk/plugins/MediaServerConfiguration/MediaServerConfiguration.csproj.user (rev 0) +++ trunk/plugins/MediaServerConfiguration/MediaServerConfiguration.csproj.user 2008-01-19 22:27:31 UTC (rev 1277) @@ -0,0 +1,5 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectView>ProjectFiles</ProjectView> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/MediaServerConfiguration/Program.cs =================================================================== --- trunk/plugins/MediaServerConfiguration/Program.cs (rev 0) +++ trunk/plugins/MediaServerConfiguration/Program.cs 2008-01-19 22:27:31 UTC (rev 1277) @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace MediaServerConfiguration +{ + static class Program + { + /// <summary> + /// The main entry point for the application. + /// </summary> + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new u()); + } + } +} Added: trunk/plugins/MediaServerConfiguration/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/MediaServerConfiguration/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/MediaServerConfiguration/Properties/AssemblyInfo.cs 2008-01-19 22:27:31 UTC (rev 1277) @@ -0,0 +1,36 @@ +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("MediaServerConfiguration")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Cisco Systems, Inc.")] +[assembly: AssemblyProduct("MediaServerConfiguration")] +[assembly: AssemblyCopyright("Copyright © Cisco Systems, Inc. 2008")] +[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("66f1e3e8-3117-4b3b-a0e7-611d0b43854e")] + +// 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 Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] Added: trunk/plugins/MediaServerConfiguration/Properties/Resources.Designer.cs =================================================================== --- trunk/plugins/MediaServerConfiguration/Properties/Resources.Designer.cs (rev 0) +++ trunk/plugins/MediaServerConfiguration/Properties/Resources.Designer.cs 2008-01-19 22:27:31 UTC (rev 1277) @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace MediaServerConfiguration.Properties +{ + + + /// <summary> + /// A strongly-typed resource class, for looking up localized strings, etc. + /// </summary> + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// <summary> + /// Returns the cached ResourceManager instance used by this class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MediaServerConfiguration.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// <summary> + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} Added: trunk/plugins/MediaServerConfiguration/Properties/Resources.resx =================================================================== --- trunk/plugins/MediaServerConfiguration/Properties/Resources.resx (rev 0) +++ trunk/plugins/MediaServerConfigurat... [truncated message content] |
From: <yk...@us...> - 2008-01-19 22:34:10
|
Revision: 1284 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1284&view=rev Author: ykamchi Date: 2008-01-19 14:34:08 -0800 (Sat, 19 Jan 2008) Log Message: ----------- Added items remotely C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\MediaServer Added Paths: ----------- trunk/plugins/MediaServer/ trunk/plugins/MediaServer/MediaServer.sln trunk/plugins/MediaServer/MediaServerConfiguration/ trunk/plugins/MediaServer/MediaServerConfiguration/AddShare.Designer.cs trunk/plugins/MediaServer/MediaServerConfiguration/AddShare.cs trunk/plugins/MediaServer/MediaServerConfiguration/AddShare.resx trunk/plugins/MediaServer/MediaServerConfiguration/Main.Designer.cs trunk/plugins/MediaServer/MediaServerConfiguration/Main.cs trunk/plugins/MediaServer/MediaServerConfiguration/Main.resx trunk/plugins/MediaServer/MediaServerConfiguration/MediaServerConfiguration.csproj trunk/plugins/MediaServer/MediaServerConfiguration/MediaServerConfiguration.csproj.user trunk/plugins/MediaServer/MediaServerConfiguration/Program.cs trunk/plugins/MediaServer/MediaServerConfiguration/Properties/ trunk/plugins/MediaServer/MediaServerConfiguration/Properties/AssemblyInfo.cs trunk/plugins/MediaServer/MediaServerConfiguration/Properties/Resources.Designer.cs trunk/plugins/MediaServer/MediaServerConfiguration/Properties/Resources.resx trunk/plugins/MediaServer/MediaServerConfiguration/Properties/Settings.Designer.cs trunk/plugins/MediaServer/MediaServerConfiguration/Properties/Settings.settings trunk/plugins/MediaServer/MediaServerConfiguration/SettingsUtil.cs trunk/plugins/MediaServer/MediaServerConfiguration/SharingUtil.cs trunk/plugins/MediaServer/MediaServerConfiguration/Test.Designer.cs trunk/plugins/MediaServer/MediaServerConfiguration/Test.cs trunk/plugins/MediaServer/MediaServerConfiguration/Test.resx trunk/plugins/MediaServer/MediaServerConfiguration/bin/ trunk/plugins/MediaServer/MediaServerConfiguration/bin/Debug/ trunk/plugins/MediaServer/MediaServerConfiguration/bin/Release/ trunk/plugins/MediaServer/MediaServerConfiguration/obj/ trunk/plugins/MediaServer/MediaServerConfiguration/obj/Debug/ trunk/plugins/MediaServer/MediaServerConfiguration/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/MediaServer/MediaServerConfiguration/obj/Debug/TempPE/ trunk/plugins/MediaServer/MediaServerConfiguration/obj/Release/ trunk/plugins/MediaServer/MediaServerConfiguration/obj/Release/ResolveAssemblyReference.cache trunk/plugins/MediaServer/MediaServerConfiguration/obj/Release/TempPE/ trunk/plugins/MediaServer/MediaServerPlugin/ trunk/plugins/MediaServer/MediaServerPlugin/Loader.cs trunk/plugins/MediaServer/MediaServerPlugin/MediaServerPlugin.csproj trunk/plugins/MediaServer/MediaServerPlugin/MediaServerPlugin.csproj.user trunk/plugins/MediaServer/MediaServerPlugin/MediaServerPluginSetup.cs trunk/plugins/MediaServer/MediaServerPlugin/MediaServerPluginSetup.resx trunk/plugins/MediaServer/MediaServerPlugin/Properties/ trunk/plugins/MediaServer/MediaServerPlugin/Properties/AssemblyInfo.cs trunk/plugins/MediaServer/MediaServerPlugin/Properties/Resources.Designer.cs trunk/plugins/MediaServer/MediaServerPlugin/Properties/Resources.resx trunk/plugins/MediaServer/MediaServerPlugin/bin/ trunk/plugins/MediaServer/MediaServerPlugin/bin/Debug/ trunk/plugins/MediaServer/MediaServerPlugin/bin/Release/ trunk/plugins/MediaServer/MediaServerPlugin/obj/ trunk/plugins/MediaServer/MediaServerPlugin/obj/Debug/ trunk/plugins/MediaServer/MediaServerPlugin/obj/Debug/TempPE/ trunk/plugins/MediaServer/MediaServerPlugin/obj/Release/ trunk/plugins/MediaServer/MediaServerPlugin/obj/Release/TempPE/ trunk/plugins/MediaServer/MediaServerPlugin/obj/Release/TempPE/Properties.Resources.Designer.cs.dll trunk/plugins/MediaServer/MediaServerService/ trunk/plugins/MediaServer/MediaServerService/MediaPortal.xml trunk/plugins/MediaServer/MediaServerService/MediaServerService.cs trunk/plugins/MediaServer/MediaServerService/MediaServerService.csproj trunk/plugins/MediaServer/MediaServerService/Program.cs trunk/plugins/MediaServer/MediaServerService/ProjectInstaller.Designer.cs trunk/plugins/MediaServer/MediaServerService/ProjectInstaller.cs trunk/plugins/MediaServer/MediaServerService/ProjectInstaller.resx trunk/plugins/MediaServer/MediaServerService/Properties/ trunk/plugins/MediaServer/MediaServerService/Properties/AssemblyInfo.cs trunk/plugins/MediaServer/MediaServerService/Server.cs trunk/plugins/MediaServer/MediaServerService/Service1.Designer.cs trunk/plugins/MediaServer/MediaServerService/bin/ trunk/plugins/MediaServer/MediaServerService/bin/Debug/ trunk/plugins/MediaServer/MediaServerService/bin/Release/ trunk/plugins/MediaServer/MediaServerService/obj/ trunk/plugins/MediaServer/MediaServerService/obj/Debug/ trunk/plugins/MediaServer/MediaServerService/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/MediaServer/MediaServerService/obj/Debug/TempPE/ trunk/plugins/MediaServer/MediaServerService/obj/Release/ trunk/plugins/MediaServer/MediaServerService/obj/Release/ResolveAssemblyReference.cache trunk/plugins/MediaServer/MediaServerService/obj/Release/TempPE/ trunk/plugins/MediaServer/ServerTest/ trunk/plugins/MediaServer/ServerTest/Properties/ trunk/plugins/MediaServer/ServerTest/Properties/AssemblyInfo.cs trunk/plugins/MediaServer/ServerTest/ServerTest.cs trunk/plugins/MediaServer/ServerTest/ServerTest.csproj trunk/plugins/MediaServer/ServerTest/bin/ trunk/plugins/MediaServer/ServerTest/bin/Debug/ trunk/plugins/MediaServer/ServerTest/bin/Debug/ServerTest.vshost.exe trunk/plugins/MediaServer/ServerTest/bin/Debug/ServerTest.vshost.exe.manifest trunk/plugins/MediaServer/ServerTest/bin/Release/ trunk/plugins/MediaServer/ServerTest/bin/Release/ServerTest.vshost.exe trunk/plugins/MediaServer/ServerTest/bin/Release/ServerTest.vshost.exe.manifest trunk/plugins/MediaServer/ServerTest/obj/ trunk/plugins/MediaServer/ServerTest/obj/Debug/ trunk/plugins/MediaServer/ServerTest/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/MediaServer/ServerTest/obj/Debug/TempPE/ trunk/plugins/MediaServer/ServerTest/obj/Release/ trunk/plugins/MediaServer/ServerTest/obj/Release/ResolveAssemblyReference.cache trunk/plugins/MediaServer/ServerTest/obj/Release/TempPE/ trunk/plugins/MediaServer/SetupMediaServerService/ trunk/plugins/MediaServer/SetupMediaServerService/Debug/ trunk/plugins/MediaServer/SetupMediaServerService/Release/ trunk/plugins/MediaServer/SetupMediaServerService/SetupMediaServerService.vdproj Added: trunk/plugins/MediaServer/MediaServer.sln =================================================================== --- trunk/plugins/MediaServer/MediaServer.sln (rev 0) +++ trunk/plugins/MediaServer/MediaServer.sln 2008-01-19 22:34:08 UTC (rev 1284) @@ -0,0 +1,42 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerTest", "ServerTest\ServerTest.csproj", "{00437BD6-C1BF-4CC0-8D82-CE11BB4861A1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaServerService", "MediaServerService\MediaServerService.csproj", "{577FBB83-4D3D-439E-BB85-9912F11EFC50}" +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "SetupMediaServerService", "SetupMediaServerService\SetupMediaServerService.vdproj", "{012AC200-1334-4D51-9481-97388CA9DA12}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaServerConfiguration", "MediaServerConfiguration\MediaServerConfiguration.csproj", "{FF5B0AA2-49A1-4F1A-8209-C7F52AD1CA93}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaServerPlugin", "MediaServerPlugin\MediaServerPlugin.csproj", "{CCC78D26-D4EA-4259-ABEB-2550207E7944}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {00437BD6-C1BF-4CC0-8D82-CE11BB4861A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {00437BD6-C1BF-4CC0-8D82-CE11BB4861A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00437BD6-C1BF-4CC0-8D82-CE11BB4861A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {00437BD6-C1BF-4CC0-8D82-CE11BB4861A1}.Release|Any CPU.Build.0 = Release|Any CPU + {577FBB83-4D3D-439E-BB85-9912F11EFC50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {577FBB83-4D3D-439E-BB85-9912F11EFC50}.Debug|Any CPU.Build.0 = Debug|Any CPU + {577FBB83-4D3D-439E-BB85-9912F11EFC50}.Release|Any CPU.ActiveCfg = Release|Any CPU + {577FBB83-4D3D-439E-BB85-9912F11EFC50}.Release|Any CPU.Build.0 = Release|Any CPU + {012AC200-1334-4D51-9481-97388CA9DA12}.Debug|Any CPU.ActiveCfg = Debug + {012AC200-1334-4D51-9481-97388CA9DA12}.Release|Any CPU.ActiveCfg = Release + {FF5B0AA2-49A1-4F1A-8209-C7F52AD1CA93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF5B0AA2-49A1-4F1A-8209-C7F52AD1CA93}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF5B0AA2-49A1-4F1A-8209-C7F52AD1CA93}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF5B0AA2-49A1-4F1A-8209-C7F52AD1CA93}.Release|Any CPU.Build.0 = Release|Any CPU + {CCC78D26-D4EA-4259-ABEB-2550207E7944}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CCC78D26-D4EA-4259-ABEB-2550207E7944}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CCC78D26-D4EA-4259-ABEB-2550207E7944}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CCC78D26-D4EA-4259-ABEB-2550207E7944}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: trunk/plugins/MediaServer/MediaServerConfiguration/AddShare.Designer.cs =================================================================== --- trunk/plugins/MediaServer/MediaServerConfiguration/AddShare.Designer.cs (rev 0) +++ trunk/plugins/MediaServer/MediaServerConfiguration/AddShare.Designer.cs 2008-01-19 22:34:08 UTC (rev 1284) @@ -0,0 +1,117 @@ +namespace MediaServerConfiguration +{ + partial class AddShare + { + /// <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.label1 = new System.Windows.Forms.Label(); + this.txtShareName = new System.Windows.Forms.TextBox(); + this.txtPath = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.btnCancel = new System.Windows.Forms.Button(); + this.btnOk = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 84); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(69, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Share Name:"; + // + // txtShareName + // + this.txtShareName.Location = new System.Drawing.Point(81, 81); + this.txtShareName.Name = "txtShareName"; + this.txtShareName.Size = new System.Drawing.Size(261, 20); + this.txtShareName.TabIndex = 1; + this.txtShareName.TextChanged += new System.EventHandler(this.textBox1_TextChanged); + // + // txtPath + // + this.txtPath.Location = new System.Drawing.Point(81, 117); + this.txtPath.Name = "txtPath"; + this.txtPath.Size = new System.Drawing.Size(261, 20); + this.txtPath.TabIndex = 3; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(12, 120); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(32, 13); + this.label2.TabIndex = 2; + this.label2.Text = "Path:"; + // + // btnCancel + // + this.btnCancel.Location = new System.Drawing.Point(267, 170); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 4; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // btnOk + // + this.btnOk.Location = new System.Drawing.Point(177, 170); + this.btnOk.Name = "btnOk"; + this.btnOk.Size = new System.Drawing.Size(75, 23); + this.btnOk.TabIndex = 5; + this.btnOk.Text = "Ok"; + this.btnOk.UseVisualStyleBackColor = true; + // + // AddShare + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(359, 224); + this.Controls.Add(this.btnOk); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.txtPath); + this.Controls.Add(this.label2); + this.Controls.Add(this.txtShareName); + this.Controls.Add(this.label1); + this.Name = "AddShare"; + this.Text = "AddShare"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox txtShareName; + private System.Windows.Forms.TextBox txtPath; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Button btnOk; + } +} \ No newline at end of file Added: trunk/plugins/MediaServer/MediaServerConfiguration/AddShare.cs =================================================================== --- trunk/plugins/MediaServer/MediaServerConfiguration/AddShare.cs (rev 0) +++ trunk/plugins/MediaServer/MediaServerConfiguration/AddShare.cs 2008-01-19 22:34:08 UTC (rev 1284) @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace MediaServerConfiguration +{ + public partial class AddShare : Form + { + public AddShare() + { + InitializeComponent(); + } + + private void textBox1_TextChanged(object sender, EventArgs e) + { + + } + } +} Added: trunk/plugins/MediaServer/MediaServerConfiguration/AddShare.resx =================================================================== --- trunk/plugins/MediaServer/MediaServerConfiguration/AddShare.resx (rev 0) +++ trunk/plugins/MediaServer/MediaServerConfiguration/AddShare.resx 2008-01-19 22:34:08 UTC (rev 1284) @@ -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/MediaServer/MediaServerConfiguration/Main.Designer.cs =================================================================== --- trunk/plugins/MediaServer/MediaServerConfiguration/Main.Designer.cs (rev 0) +++ trunk/plugins/MediaServer/MediaServerConfiguration/Main.Designer.cs 2008-01-19 22:34:08 UTC (rev 1284) @@ -0,0 +1,288 @@ +namespace MediaServerConfiguration +{ + partial class u + { + /// <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.groupBox1 = new System.Windows.Forms.GroupBox(); + this.btnShare = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.txtShareName = new System.Windows.Forms.TextBox(); + this.txtInput = new System.Windows.Forms.TextBox(); + this.btnFind = new System.Windows.Forms.Button(); + this.fidFind = new System.Windows.Forms.FolderBrowserDialog(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.txtLabel = new System.Windows.Forms.TextBox(); + this.btnSetNmaeMovies = new System.Windows.Forms.Button(); + this.btnUnshare = new System.Windows.Forms.Button(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.tbMedia = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.lstMovies = new System.Windows.Forms.ListView(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.lstMusic = new System.Windows.Forms.ListView(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.lstPictures = new System.Windows.Forms.ListView(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.tbMedia.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.tabPage3.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.btnShare); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Controls.Add(this.txtShareName); + this.groupBox1.Controls.Add(this.txtInput); + this.groupBox1.Controls.Add(this.btnFind); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox1.Location = new System.Drawing.Point(0, 0); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(593, 66); + this.groupBox1.TabIndex = 3; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Create New Share"; + // + // btnShare + // + this.btnShare.Location = new System.Drawing.Point(406, 22); + this.btnShare.Name = "btnShare"; + this.btnShare.Size = new System.Drawing.Size(61, 23); + this.btnShare.TabIndex = 9; + this.btnShare.Text = "Share"; + this.btnShare.UseVisualStyleBackColor = true; + this.btnShare.Click += new System.EventHandler(this.btnShare_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(212, 25); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(69, 13); + this.label1.TabIndex = 8; + this.label1.Text = "Share Name:"; + // + // txtShareName + // + this.txtShareName.Location = new System.Drawing.Point(287, 22); + this.txtShareName.Name = "txtShareName"; + this.txtShareName.Size = new System.Drawing.Size(101, 20); + this.txtShareName.TabIndex = 7; + // + // txtInput + // + this.txtInput.Location = new System.Drawing.Point(39, 22); + this.txtInput.Name = "txtInput"; + this.txtInput.Size = new System.Drawing.Size(167, 20); + this.txtInput.TabIndex = 6; + // + // btnFind + // + this.btnFind.Location = new System.Drawing.Point(9, 22); + this.btnFind.Name = "btnFind"; + this.btnFind.Size = new System.Drawing.Size(24, 20); + this.btnFind.TabIndex = 5; + this.btnFind.Text = "..."; + this.btnFind.UseVisualStyleBackColor = true; + this.btnFind.Click += new System.EventHandler(this.btnFind_Click); + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.txtLabel); + this.groupBox2.Controls.Add(this.btnSetNmaeMovies); + this.groupBox2.Controls.Add(this.btnUnshare); + this.groupBox2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.groupBox2.Location = new System.Drawing.Point(0, 396); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(593, 60); + this.groupBox2.TabIndex = 15; + this.groupBox2.TabStop = false; + // + // txtLabel + // + this.txtLabel.Location = new System.Drawing.Point(89, 21); + this.txtLabel.Name = "txtLabel"; + this.txtLabel.Size = new System.Drawing.Size(191, 20); + this.txtLabel.TabIndex = 16; + // + // btnSetNmaeMovies + // + this.btnSetNmaeMovies.Location = new System.Drawing.Point(9, 19); + this.btnSetNmaeMovies.Name = "btnSetNmaeMovies"; + this.btnSetNmaeMovies.Size = new System.Drawing.Size(74, 23); + this.btnSetNmaeMovies.TabIndex = 17; + this.btnSetNmaeMovies.Text = "Set Name"; + this.btnSetNmaeMovies.UseVisualStyleBackColor = true; + this.btnSetNmaeMovies.Click += new System.EventHandler(this.btnSetNmaeMovies_Click); + // + // btnUnshare + // + this.btnUnshare.Location = new System.Drawing.Point(319, 19); + this.btnUnshare.Name = "btnUnshare"; + this.btnUnshare.Size = new System.Drawing.Size(87, 23); + this.btnUnshare.TabIndex = 15; + this.btnUnshare.Text = "Remove Share"; + this.btnUnshare.UseVisualStyleBackColor = true; + this.btnUnshare.Click += new System.EventHandler(this.btnUnshare_Click); + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.tbMedia); + this.groupBox3.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox3.Location = new System.Drawing.Point(0, 66); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(593, 330); + this.groupBox3.TabIndex = 16; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Shares"; + // + // tbMedia + // + this.tbMedia.Controls.Add(this.tabPage1); + this.tbMedia.Controls.Add(this.tabPage2); + this.tbMedia.Controls.Add(this.tabPage3); + this.tbMedia.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbMedia.Location = new System.Drawing.Point(3, 16); + this.tbMedia.Name = "tbMedia"; + this.tbMedia.SelectedIndex = 0; + this.tbMedia.Size = new System.Drawing.Size(587, 311); + this.tbMedia.TabIndex = 5; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.lstMovies); + this.tabPage1.Location = new System.Drawing.Point(4, 22); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(579, 285); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Movies"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // lstMovies + // + this.lstMovies.Dock = System.Windows.Forms.DockStyle.Fill; + this.lstMovies.Location = new System.Drawing.Point(3, 3); + this.lstMovies.Name = "lstMovies"; + this.lstMovies.Size = new System.Drawing.Size(573, 279); + this.lstMovies.TabIndex = 1; + this.lstMovies.UseCompatibleStateImageBehavior = false; + this.lstMovies.SelectedIndexChanged += new System.EventHandler(this.lstMovies_SelectedIndexChanged); + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.lstMusic); + this.tabPage2.Location = new System.Drawing.Point(4, 22); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(579, 285); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "Music"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // lstMusic + // + this.lstMusic.Dock = System.Windows.Forms.DockStyle.Fill; + this.lstMusic.Location = new System.Drawing.Point(3, 3); + this.lstMusic.Name = "lstMusic"; + this.lstMusic.Size = new System.Drawing.Size(573, 279); + this.lstMusic.TabIndex = 2; + this.lstMusic.UseCompatibleStateImageBehavior = false; + this.lstMusic.SelectedIndexChanged += new System.EventHandler(this.lstMusic_SelectedIndexChanged); + // + // tabPage3 + // + this.tabPage3.Controls.Add(this.lstPictures); + this.tabPage3.Location = new System.Drawing.Point(4, 22); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Size = new System.Drawing.Size(579, 285); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "Pictures"; + this.tabPage3.UseVisualStyleBackColor = true; + // + // lstPictures + // + this.lstPictures.Dock = System.Windows.Forms.DockStyle.Fill; + this.lstPictures.Location = new System.Drawing.Point(0, 0); + this.lstPictures.Name = "lstPictures"; + this.lstPictures.Size = new System.Drawing.Size(579, 285); + this.lstPictures.TabIndex = 2; + this.lstPictures.UseCompatibleStateImageBehavior = false; + this.lstPictures.SelectedIndexChanged += new System.EventHandler(this.lstPictures_SelectedIndexChanged); + // + // u + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(593, 456); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.Name = "u"; + this.Text = "Media Server Configuration"; + this.Load += new System.EventHandler(this.Main_Load); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.groupBox3.ResumeLayout(false); + this.tbMedia.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage2.ResumeLayout(false); + this.tabPage3.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button btnShare; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox txtShareName; + private System.Windows.Forms.TextBox txtInput; + private System.Windows.Forms.Button btnFind; + private System.Windows.Forms.FolderBrowserDialog fidFind; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.TextBox txtLabel; + private System.Windows.Forms.Button btnSetNmaeMovies; + private System.Windows.Forms.Button btnUnshare; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.TabControl tbMedia; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.ListView lstMovies; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.ListView lstMusic; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.ListView lstPictures; + } +} + Added: trunk/plugins/MediaServer/MediaServerConfiguration/Main.cs =================================================================== --- trunk/plugins/MediaServer/MediaServerConfiguration/Main.cs (rev 0) +++ trunk/plugins/MediaServer/MediaServerConfiguration/Main.cs 2008-01-19 22:34:08 UTC (rev 1284) @@ -0,0 +1,253 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using MediaPortal.GUI.Library; +using MediaPortal.Util; +using MediaPortal.Configuration; +using System.Management; +using System.IO; +using System.Net; + +using System.Collections; + +namespace MediaServerConfiguration +{ + public partial class u : Form + { + private enum TYPE + { + movies = 0, + music = 1, + pictures = 2 + } + + public u() + { + InitializeComponent(); + buildLst(lstMovies); + buildLst(lstMusic); + buildLst(lstPictures); + + + } + + private void buildLst(ListView lst) + { + lst.View = View.Details; + lst.FullRowSelect = true; + lst.HideSelection = false; + lst.Columns.Add("Share"); + lst.Columns.Add("Name"); + lst.Columns.Add("Path"); + lst.Columns[0].Width = 100; + lst.Columns[1].Width = 100; + lst.Columns[2].Width = 300; + } + + private void Main_Load(object sender, EventArgs e) + { + reloadLists(); + } + + private void btnFind_Click(object sender, EventArgs e) + { + fidFind.ShowDialog(); + if (fidFind.SelectedPath != null) + { + + txtInput.Text = fidFind.SelectedPath; + } + } + + private void btnShare_Click(object sender, EventArgs e) + { + if (!SharingUtil.shareFolder(txtInput.Text, txtShareName.Text)) + { + MessageBox.Show("Unable to share directory", "Share Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + else + { + reloadLists(); + } + + } + + private void btnUnshare_Click(object sender, EventArgs e) + { + + unshare(TYPE.movies); + unshare(TYPE.music); + unshare(TYPE.pictures); + reloadLists(); + + } + + private ListView getListView(TYPE type) + { + ListView lst = null; + switch (type) + { + case TYPE.movies: + { + lst = lstMovies; + break; + } + case TYPE.music: + { + lst = lstMusic; + break; + } + case TYPE.pictures: + { + lst = lstPictures; + break; + } + } + return lst; + } + + private void unshare(TYPE type) + { + ListView lst = getListView(type); + foreach (ListViewItem item in lst.SelectedItems) + { + if (!SharingUtil.unShareFolder(item.Text)) + { + MessageBox.Show("Unable to remove share directory", "Share Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + SettingsUtil.SaveShare(getVirtualShares(type), type.ToString()); + } + + private void reloadLists() + { + reloadList(TYPE.movies); + reloadList(TYPE.music); + reloadList(TYPE.pictures); + } + + private void reloadList(TYPE type) + { + ListView lst = getListView(type); + lst.Items.Clear(); + ManagementObjectCollection shares = SharingUtil.getShares(); + VirtualDirectory vd = new VirtualDirectory(); + vd.LoadSettings(type.ToString()); + + foreach (ManagementObject share in shares) + { + if (SharingUtil.getShareType(share) == 0) + { + String shareName = SharingUtil.getSahreName(share); + + ListViewItem lvi = new ListViewItem(); + lvi.Text = shareName; + lst.Items.Add(lvi); + + + Share virtualShare = vd.GetShare("\\\\127.0.0.1\\" + shareName); + + if (virtualShare != null && virtualShare.Path.Equals("\\\\127.0.0.1\\" + shareName)) + { + lvi.SubItems.Add(virtualShare.Name); + } + else + { + lvi.SubItems.Add(""); + } + + lvi.SubItems.Add(SharingUtil.getSahrePath(share)); + } + } + } + + private ArrayList getVirtualShares(TYPE type) + { + ArrayList ret = new ArrayList(); + ListView lst = getListView(type); + foreach (ListViewItem item in lst.Items) + { + String shareName = item.SubItems[1].Text; + if (shareName != null && !shareName.Equals("")) + { + Share virtualShare = new Share(shareName, "\\\\127.0.0.1\\" + item.Text); + ret.Add(virtualShare); + } + } + return ret; + + } + + + private void lstMovies_SelectedIndexChanged(object sender, EventArgs e) + { + selectionChanged(TYPE.movies); + } + + private void selectionChanged(TYPE type) + { + ListView lst = getListView(type); + if (lst.SelectedItems.Count != 1) + { + txtLabel.Text = ""; + } + else + { + txtLabel.Text = lst.SelectedItems[0].SubItems[1].Text; + } + } + + private void btnSetNmaeMovies_Click(object sender, EventArgs e) + { + switch (tbMedia.SelectedIndex) + { + case 0: + { + setName(TYPE.movies); + break; + } + case 1: + { + setName(TYPE.music); + break; + } + case 2: + { + setName(TYPE.pictures); + break; + } + } + } + + private void setName(TYPE type) + { + ListView lst = getListView(type); + + if (lst.SelectedItems.Count != 1) return; + lst.SelectedItems[0].SubItems[1].Text = txtLabel.Text; + + int selecetd = lst.SelectedIndices[0]; + + SettingsUtil.SaveShare(getVirtualShares(type), type.ToString()); + reloadLists(); + + lst.SelectedIndices.Add(selecetd); + } + + private void lstMusic_SelectedIndexChanged(object sender, EventArgs e) + { + selectionChanged(TYPE.music); + } + + private void lstPictures_SelectedIndexChanged(object sender, EventArgs e) + { + selectionChanged(TYPE.pictures); + } + + } +} Added: trunk/plugins/MediaServer/MediaServerConfiguration/Main.resx =================================================================== --- trunk/plugins/MediaServer/MediaServerConfiguration/Main.resx (rev 0) +++ trunk/plugins/MediaServer/MediaServerConfiguration/Main.resx 2008-01-19 22:34:08 UTC (rev 1284) @@ -0,0 +1,123 @@ +<?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="fidFind.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> +</root> \ No newline at end of file Added: trunk/plugins/MediaServer/MediaServerConfiguration/MediaServerConfiguration.csproj =================================================================== --- trunk/plugins/MediaServer/MediaServerConfiguration/MediaServerConfiguration.csproj (rev 0) +++ trunk/plugins/MediaServer/MediaServerConfiguration/MediaServerConfiguration.csproj 2008-01-19 22:34:08 UTC (rev 1284) @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>9.0.21022</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{FF5B0AA2-49A1-4F1A-8209-C7F52AD1CA93}</ProjectGuid> + <OutputType>WinExe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>MediaServerConfiguration</RootNamespace> + <AssemblyName>MediaServerConfiguration</AssemblyName> + <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + </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> + <ItemGroup> + <Reference Include="Core, Version=0.2.3.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>D:\mp\mediaportal\xbmc\bin\Release\Core.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Core"> + <RequiredTargetFramework>3.5</RequiredTargetFramework> + </Reference> + <Reference Include="System.Management" /> + <Reference Include="System.Xml.Linq"> + <RequiredTargetFramework>3.5</RequiredTargetFramework> + </Reference> + <Reference Include="System.Data.DataSetExtensions"> + <RequiredTargetFramework>3.5</RequiredTargetFramework> + </Reference> + <Reference Include="System.Data" /> + <Reference Include="System.Deployment" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + <Reference Include="Utils, Version=2.2.4.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>D:\mp\mediaportal\xbmc\bin\Release\Utils.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="AddShare.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="AddShare.Designer.cs"> + <DependentUpon>AddShare.cs</DependentUpon> + </Compile> + <Compile Include="Main.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="Main.Designer.cs"> + <DependentUpon>Main.cs</DependentUpon> + </Compile> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <EmbeddedResource Include="AddShare.resx"> + <DependentUpon>AddShare.cs</DependentUpon> + <SubType>Designer</SubType> + </EmbeddedResource> + <EmbeddedResource Include="Main.resx"> + <DependentUpon>Main.cs</DependentUpon> + <SubType>Designer</SubType> + </EmbeddedResource> + <EmbeddedResource Include="Properties\Resources.resx"> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + <SubType>Designer</SubType> + </EmbeddedResource> + <EmbeddedResource Include="Test.resx"> + <DependentUpon>Test.cs</DependentUpon> + <SubType>Designer</SubType> + </EmbeddedResource> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <None Include="Properties\Settings.settings"> + <Generator>SettingsSingleFileGenerator</Generator> + <LastGenOutput>Settings.Designer.cs</LastGenOutput> + </None> + <Compile Include="Properties\Settings.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Settings.settings</DependentUpon> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + </Compile> + <Compile Include="SettingsUtil.cs" /> + <Compile Include="SharingUtil.cs" /> + <Compile Include="Test.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="Test.Designer.cs"> + <DependentUpon>Test.cs</DependentUpon> + </Compile> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\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/MediaServer/MediaServerConfiguration/MediaServerConfiguration.csproj.user =================================================================== --- trunk/plugins/MediaServer/MediaServerConfiguration/MediaServerConfiguration.csproj.user (rev 0) +++ trunk/plugins/MediaServer/MediaServerConfiguration/MediaServerConfiguration.csproj.user 2008-01-19 22:34:08 UTC (rev 1284) @@ -0,0 +1,5 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectView>ProjectFiles</ProjectView> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/MediaServer/MediaServerConfiguration/Program.cs =================================================================== --- trunk/plugins/MediaServer/MediaServerConfiguration/Program.cs (rev 0) +++ trunk/plugins/MediaServer/MediaServerConfiguration/Program.cs 2008-01-19 22:34:08 UTC (rev 1284) @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace MediaServerConfiguration +{ + static class Program + { + /// <summary> + /// The main entry point for the application. + /// </summary> + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new u()); + } + } +} Added: trunk/plugins/MediaServer/MediaServerConfiguration/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/MediaServer/MediaServerConfiguration/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/MediaServer/MediaServerConfiguration/Properties/AssemblyInfo.cs 2008-01-19 22:34:08 UTC (rev 1284) @@ -0,0 +1,36 @@ +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("MediaServerConfiguration")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Cisco Systems, Inc.")] +[assembly: AssemblyProduct("MediaServerConfiguration")] +[assembly: AssemblyCopyright("Copyright © Cisco Systems, Inc. 2008")] +[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("66f1e3e8-3117-4b3b-a0e7-611d0b43854e")] + +// 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 Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] Added: trunk/plugins/MediaServer/MediaServerConfiguration/Properties/Resources.Designer.cs =================================================================== --- trunk/plugins/MediaServer/MediaServerConfiguration/Properties/Resources.Designer.cs (rev 0) +++ trunk/plugins/MediaServer/MediaServerConfiguration/Properties/Resources.Designer.cs 2008-01-19 22:34:08 UTC (rev 1284) @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace MediaServerConfiguration.Properties +{ + + + /// <summary> + /// A strongly-typed resource class, for looking up localized strings, etc. + /// </summary> + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUnca... [truncated message content] |
From: <an...@us...> - 2008-02-10 13:10:22
|
Revision: 1358 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1358&view=rev Author: and-81 Date: 2008-02-10 05:10:18 -0800 (Sun, 10 Feb 2008) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Configure.Designer.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Configure.resx 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/IR Server Suite.sln trunk/plugins/TVServerMonitor/Properties/AssemblyInfo.cs trunk/plugins/TVServerMonitor/TVServerMonitor.csproj Added Paths: ----------- trunk/plugins/IR Server Suite/IR Server Plugins/General HID Receiver/ trunk/plugins/IR Server Suite/IR Server Plugins/General HID Receiver/General HID Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/General HID Receiver/General HID Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/General HID Receiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/General HID Receiver/Properties/AssemblyInfo.cs Added: trunk/plugins/IR Server Suite/IR Server Plugins/General HID Receiver/General HID Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/General HID Receiver/General HID Receiver.cs (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/General HID Receiver/General HID Receiver.cs 2008-02-10 13:10:18 UTC (rev 1358) @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace GeneralHIDReceiver +{ + + public class GeneralHIDReceiver + { + + public GeneralHIDReceiver() + { + + } + + } + +} Added: trunk/plugins/IR Server Suite/IR Server Plugins/General HID Receiver/General HID Receiver.csproj =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/General HID Receiver/General HID Receiver.csproj (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/General HID Receiver/General HID Receiver.csproj 2008-02-10 13:10:18 UTC (rev 1358) @@ -0,0 +1,47 @@ +<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>{26DEDF6D-F60D-4311-9A9E-DDF64500D5BF}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>General_HID_Receiver</RootNamespace> + <AssemblyName>General HID Receiver</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> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="General HID Receiver.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </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/IR Server Plugins/General HID Receiver/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/General HID Receiver/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/IR Server Suite/IR Server Plugins/General HID Receiver/Properties/AssemblyInfo.cs 2008-02-10 13:10:18 UTC (rev 1358) @@ -0,0 +1,38 @@ +using System; +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("General HID Receiver")] +[assembly: AssemblyDescription("IR Server plugin to support custom HID USB devices")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("and-81")] +[assembly: AssemblyProduct("GeneralHIDReceiver")] +[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("27b720ed-6766-47e8-add5-2a8bf9b73978")] + +// 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")] + +[assembly: CLSCompliant(true)] Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Configure.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Configure.Designer.cs 2008-02-10 13:09:14 UTC (rev 1357) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Configure.Designer.cs 2008-02-10 13:10:18 UTC (rev 1358) @@ -44,21 +44,21 @@ this.checkBoxHandleMouseLocal = new System.Windows.Forms.CheckBox(); this.numericUpDownMouseSensitivity = new System.Windows.Forms.NumericUpDown(); this.checkBoxDisableMCEServices = new System.Windows.Forms.CheckBox(); + this.checkBoxEnableRemote = new System.Windows.Forms.CheckBox(); + this.checkBoxEnableKeyboard = new System.Windows.Forms.CheckBox(); + this.checkBoxEnableMouse = new System.Windows.Forms.CheckBox(); + this.checkBoxUseSystemRatesRemote = new System.Windows.Forms.CheckBox(); + this.checkBoxUseSystemRatesKeyboard = new System.Windows.Forms.CheckBox(); this.labelLearnIRTimeout = new System.Windows.Forms.Label(); this.tabControl = new System.Windows.Forms.TabControl(); this.tabPageBasic = new System.Windows.Forms.TabPage(); this.tabPageRemote = new System.Windows.Forms.TabPage(); - this.checkBoxEnableRemote = new System.Windows.Forms.CheckBox(); this.tabPageKeyboard = new System.Windows.Forms.TabPage(); - this.checkBoxEnableKeyboard = new System.Windows.Forms.CheckBox(); this.groupBoxKeypressTiming = new System.Windows.Forms.GroupBox(); this.labelKeyRepeatDelay = new System.Windows.Forms.Label(); this.labelKeyHeldDelay = new System.Windows.Forms.Label(); this.tabPageMouse = new System.Windows.Forms.TabPage(); this.labelMouseSensitivity = new System.Windows.Forms.Label(); - this.checkBoxEnableMouse = new System.Windows.Forms.CheckBox(); - this.checkBoxUseSystemRatesRemote = new System.Windows.Forms.CheckBox(); - this.checkBoxUseSystemRatesKeyboard = new System.Windows.Forms.CheckBox(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownButtonRepeatDelay)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownButtonHeldDelay)).BeginInit(); this.groupBoxRemoteTiming.SuspendLayout(); @@ -145,6 +145,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(128, 240); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(64, 24); @@ -155,6 +156,7 @@ // // 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(200, 240); this.buttonCancel.Name = "buttonCancel"; @@ -327,6 +329,69 @@ "erver"); this.checkBoxDisableMCEServices.UseVisualStyleBackColor = true; // + // checkBoxEnableRemote + // + this.checkBoxEnableRemote.AutoSize = true; + this.checkBoxEnableRemote.Checked = true; + this.checkBoxEnableRemote.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxEnableRemote.Location = new System.Drawing.Point(8, 8); + this.checkBoxEnableRemote.Name = "checkBoxEnableRemote"; + this.checkBoxEnableRemote.Size = new System.Drawing.Size(155, 17); + this.checkBoxEnableRemote.TabIndex = 0; + this.checkBoxEnableRemote.Text = "Enable remote control input"; + this.toolTips.SetToolTip(this.checkBoxEnableRemote, "Decode remote control button presses"); + this.checkBoxEnableRemote.UseVisualStyleBackColor = true; + // + // checkBoxEnableKeyboard + // + this.checkBoxEnableKeyboard.AutoSize = true; + this.checkBoxEnableKeyboard.Checked = true; + this.checkBoxEnableKeyboard.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxEnableKeyboard.Location = new System.Drawing.Point(8, 8); + this.checkBoxEnableKeyboard.Name = "checkBoxEnableKeyboard"; + this.checkBoxEnableKeyboard.Size = new System.Drawing.Size(132, 17); + this.checkBoxEnableKeyboard.TabIndex = 0; + this.checkBoxEnableKeyboard.Text = "Enable keyboard input"; + this.toolTips.SetToolTip(this.checkBoxEnableKeyboard, "Decode remote keyboard input"); + this.checkBoxEnableKeyboard.UseVisualStyleBackColor = true; + // + // checkBoxEnableMouse + // + this.checkBoxEnableMouse.AutoSize = true; + this.checkBoxEnableMouse.Checked = true; + this.checkBoxEnableMouse.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxEnableMouse.Location = new System.Drawing.Point(8, 8); + this.checkBoxEnableMouse.Name = "checkBoxEnableMouse"; + this.checkBoxEnableMouse.Size = new System.Drawing.Size(119, 17); + this.checkBoxEnableMouse.TabIndex = 0; + this.checkBoxEnableMouse.Text = "Enable mouse input"; + this.toolTips.SetToolTip(this.checkBoxEnableMouse, "Decode remote mouse input"); + this.checkBoxEnableMouse.UseVisualStyleBackColor = true; + // + // checkBoxUseSystemRatesRemote + // + this.checkBoxUseSystemRatesRemote.AutoSize = true; + this.checkBoxUseSystemRatesRemote.Location = new System.Drawing.Point(8, 40); + this.checkBoxUseSystemRatesRemote.Name = "checkBoxUseSystemRatesRemote"; + this.checkBoxUseSystemRatesRemote.Size = new System.Drawing.Size(187, 17); + this.checkBoxUseSystemRatesRemote.TabIndex = 0; + this.checkBoxUseSystemRatesRemote.Text = "Use system keyboard rate settings"; + this.toolTips.SetToolTip(this.checkBoxUseSystemRatesRemote, "Use the system keyboard repeat rate settings for remote button timing"); + this.checkBoxUseSystemRatesRemote.UseVisualStyleBackColor = true; + this.checkBoxUseSystemRatesRemote.CheckedChanged += new System.EventHandler(this.checkBoxUseSystemRatesRemote_CheckedChanged); + // + // checkBoxUseSystemRatesKeyboard + // + this.checkBoxUseSystemRatesKeyboard.AutoSize = true; + this.checkBoxUseSystemRatesKeyboard.Location = new System.Drawing.Point(8, 40); + this.checkBoxUseSystemRatesKeyboard.Name = "checkBoxUseSystemRatesKeyboard"; + this.checkBoxUseSystemRatesKeyboard.Size = new System.Drawing.Size(187, 17); + this.checkBoxUseSystemRatesKeyboard.TabIndex = 0; + this.checkBoxUseSystemRatesKeyboard.Text = "Use system keyboard rate settings"; + this.toolTips.SetToolTip(this.checkBoxUseSystemRatesKeyboard, "Use the system keyboard repeat rate settings for remote keyboard repeat rates"); + this.checkBoxUseSystemRatesKeyboard.UseVisualStyleBackColor = true; + this.checkBoxUseSystemRatesKeyboard.CheckedChanged += new System.EventHandler(this.checkBoxUseSystemRatesKeyboard_CheckedChanged); + // // labelLearnIRTimeout // this.labelLearnIRTimeout.Location = new System.Drawing.Point(8, 72); @@ -338,6 +403,9 @@ // // tabControl // + this.tabControl.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.tabControl.Controls.Add(this.tabPageBasic); this.tabControl.Controls.Add(this.tabPageRemote); this.tabControl.Controls.Add(this.tabPageKeyboard); @@ -374,19 +442,6 @@ this.tabPageRemote.Text = "Remote"; this.tabPageRemote.UseVisualStyleBackColor = true; // - // checkBoxEnableRemote - // - this.checkBoxEnableRemote.AutoSize = true; - this.checkBoxEnableRemote.Checked = true; - this.checkBoxEnableRemote.CheckState = System.Windows.Forms.CheckState.Checked; - this.checkBoxEnableRemote.Location = new System.Drawing.Point(8, 8); - this.checkBoxEnableRemote.Name = "checkBoxEnableRemote"; - this.checkBoxEnableRemote.Size = new System.Drawing.Size(155, 17); - this.checkBoxEnableRemote.TabIndex = 0; - this.checkBoxEnableRemote.Text = "Enable remote control input"; - this.toolTips.SetToolTip(this.checkBoxEnableRemote, "Decode remote control button presses"); - this.checkBoxEnableRemote.UseVisualStyleBackColor = true; - // // tabPageKeyboard // this.tabPageKeyboard.Controls.Add(this.checkBoxUseSystemRatesKeyboard); @@ -401,19 +456,6 @@ this.tabPageKeyboard.Text = "Keyboard"; this.tabPageKeyboard.UseVisualStyleBackColor = true; // - // checkBoxEnableKeyboard - // - this.checkBoxEnableKeyboard.AutoSize = true; - this.checkBoxEnableKeyboard.Checked = true; - this.checkBoxEnableKeyboard.CheckState = System.Windows.Forms.CheckState.Checked; - this.checkBoxEnableKeyboard.Location = new System.Drawing.Point(8, 8); - this.checkBoxEnableKeyboard.Name = "checkBoxEnableKeyboard"; - this.checkBoxEnableKeyboard.Size = new System.Drawing.Size(132, 17); - this.checkBoxEnableKeyboard.TabIndex = 0; - this.checkBoxEnableKeyboard.Text = "Enable keyboard input"; - this.toolTips.SetToolTip(this.checkBoxEnableKeyboard, "Decode remote keyboard input"); - this.checkBoxEnableKeyboard.UseVisualStyleBackColor = true; - // // groupBoxKeypressTiming // this.groupBoxKeypressTiming.Controls.Add(this.labelKeyRepeatDelay); @@ -468,47 +510,6 @@ this.labelMouseSensitivity.Text = "Mouse sensitivity:"; this.labelMouseSensitivity.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // - // checkBoxEnableMouse - // - this.checkBoxEnableMouse.AutoSize = true; - this.checkBoxEnableMouse.Checked = true; - this.checkBoxEnableMouse.CheckState = System.Windows.Forms.CheckState.Checked; - this.checkBoxEnableMouse.Location = new System.Drawing.Point(8, 8); - this.checkBoxEnableMouse.Name = "checkBoxEnableMouse"; - this.checkBoxEnableMouse.Size = new System.Drawing.Size(119, 17); - this.checkBoxEnableMouse.TabIndex = 0; - this.checkBoxEnableMouse.Text = "Enable mouse input"; - this.toolTips.SetToolTip(this.checkBoxEnableMouse, "Decode remote mouse input"); - this.checkBoxEnableMouse.UseVisualStyleBackColor = true; - // - // checkBoxUseSystemRatesRemote - // - this.checkBoxUseSystemRatesRemote.AutoSize = true; - this.checkBoxUseSystemRatesRemote.Checked = true; - this.checkBoxUseSystemRatesRemote.CheckState = System.Windows.Forms.CheckState.Checked; - this.checkBoxUseSystemRatesRemote.Location = new System.Drawing.Point(8, 40); - this.checkBoxUseSystemRatesRemote.Name = "checkBoxUseSystemRatesRemote"; - this.checkBoxUseSystemRatesRemote.Size = new System.Drawing.Size(187, 17); - this.checkBoxUseSystemRatesRemote.TabIndex = 0; - this.checkBoxUseSystemRatesRemote.Text = "Use system keyboard rate settings"; - this.toolTips.SetToolTip(this.checkBoxUseSystemRatesRemote, "Use the system keyboard repeat rate settings for remote button timing"); - this.checkBoxUseSystemRatesRemote.UseVisualStyleBackColor = true; - this.checkBoxUseSystemRatesRemote.CheckedChanged += new System.EventHandler(this.checkBoxUseSystemRatesRemote_CheckedChanged); - // - // checkBoxUseSystemRatesKeyboard - // - this.checkBoxUseSystemRatesKeyboard.AutoSize = true; - this.checkBoxUseSystemRatesKeyboard.Checked = true; - this.checkBoxUseSystemRatesKeyboard.CheckState = System.Windows.Forms.CheckState.Checked; - this.checkBoxUseSystemRatesKeyboard.Location = new System.Drawing.Point(8, 40); - this.checkBoxUseSystemRatesKeyboard.Name = "checkBoxUseSystemRatesKeyboard"; - this.checkBoxUseSystemRatesKeyboard.Size = new System.Drawing.Size(187, 17); - this.checkBoxUseSystemRatesKeyboard.TabIndex = 0; - this.checkBoxUseSystemRatesKeyboard.Text = "Use system keyboard rate settings"; - this.toolTips.SetToolTip(this.checkBoxUseSystemRatesKeyboard, "Use the system keyboard repeat rate settings for remote keyboard repeat rates"); - this.checkBoxUseSystemRatesKeyboard.UseVisualStyleBackColor = true; - this.checkBoxUseSystemRatesKeyboard.CheckedChanged += new System.EventHandler(this.checkBoxUseSystemRatesKeyboard_CheckedChanged); - // // Configure // this.AcceptButton = this.buttonOK; @@ -520,8 +521,7 @@ this.Controls.Add(this.tabControl); this.Controls.Add(this.buttonCancel); this.Controls.Add(this.buttonOK); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MinimumSize = new System.Drawing.Size(278, 298); + this.MinimumSize = new System.Drawing.Size(280, 300); this.Name = "Configure"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Microsoft MCE Configuration"; Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Configure.resx =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Configure.resx 2008-02-10 13:09:14 UTC (rev 1357) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Configure.resx 2008-02-10 13:10:18 UTC (rev 1358) @@ -120,6 +120,9 @@ <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> <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>58</value> </metadata> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs 2008-02-10 13:09:14 UTC (rev 1357) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs 2008-02-10 13:10:18 UTC (rev 1358) @@ -259,10 +259,12 @@ config.DisableMceServices = _disableMceServices; config.EnableRemote = _enableRemoteInput; + config.UseSystemRatesForRemote = _useSystemRatesRemote; config.RemoteRepeatDelay = _remoteFirstRepeat; config.RemoteHeldDelay = _remoteHeldRepeats; config.EnableKeyboard = _enableKeyboardInput; + config.UseSystemRatesForKeyboard = _useSystemRatesKeyboard; config.KeyboardRepeatDelay = _keyboardFirstRepeat; config.KeyboardHeldDelay = _keyboardHeldRepeats; config.HandleKeyboardLocal = _handleKeyboardLocally; @@ -277,10 +279,12 @@ _disableMceServices = config.DisableMceServices; _enableRemoteInput = config.EnableRemote; + _useSystemRatesRemote = config.UseSystemRatesForRemote; _remoteFirstRepeat = config.RemoteRepeatDelay; _remoteHeldRepeats = config.RemoteHeldDelay; _enableKeyboardInput = config.EnableKeyboard; + _useSystemRatesKeyboard = config.UseSystemRatesForKeyboard; _keyboardFirstRepeat = config.KeyboardRepeatDelay; _keyboardHeldRepeats = config.KeyboardHeldDelay; _handleKeyboardLocally = config.HandleKeyboardLocal; Modified: trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.cs 2008-02-10 13:09:14 UTC (rev 1357) +++ trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.cs 2008-02-10 13:10:18 UTC (rev 1358) @@ -22,6 +22,7 @@ #region Constants const int DeviceBufferSize = 7; + const string DevicePathVidPid = "vid_045e&pid_0284"; #endregion Constants @@ -396,7 +397,7 @@ throw new Win32Exception(Marshal.GetLastWin32Error()); } - if (deviceInterfaceDetailData.DevicePath.IndexOf("vid_045e&pid_0284") != -1) + if (deviceInterfaceDetailData.DevicePath.IndexOf(DevicePathVidPid, StringComparison.OrdinalIgnoreCase) != -1) { SetupDiDestroyDeviceInfoList(handle); devicePath = deviceInterfaceDetailData.DevicePath; @@ -427,7 +428,7 @@ string keyCode = ((int)_deviceBuffer[3]).ToString(); - if (keyCode != _lastCode || timeSpan.Milliseconds > 250) + if (keyCode != _lastCode || timeSpan.Milliseconds >= 250) { _remoteButtonHandler(keyCode); Modified: trunk/plugins/IR Server Suite/IR Server Suite.sln =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite.sln 2008-02-10 13:09:14 UTC (rev 1357) +++ trunk/plugins/IR Server Suite/IR Server Suite.sln 2008-02-10 13:10:18 UTC (rev 1358) @@ -175,12 +175,6 @@ 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" - Release.AspNetCompiler.Debug = "False" - EndProjectSection -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinLirc Transceiver", "IR Server Plugins\WinLirc Transceiver\WinLirc Transceiver.csproj", "{E6A68244-8C31-44A9-9F85-B4A102B5F209}" ProjectSection(WebsiteProperties) = preProject Debug.AspNetCompiler.Debug = "True" @@ -383,6 +377,12 @@ Release.AspNetCompiler.Debug = "False" EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HCW Receiver", "IR Server Plugins\HCW Receiver\HCW Receiver.csproj", "{EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB}" + ProjectSection(WebsiteProperties) = preProject + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.Debug = "False" + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -591,14 +591,6 @@ {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 - {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 @@ -801,6 +793,14 @@ {26DEDF6D-F60D-4311-9A9E-DDF64500D5BF}.Release|Any CPU.ActiveCfg = Release|Any CPU {26DEDF6D-F60D-4311-9A9E-DDF64500D5BF}.Release|Any CPU.Build.0 = Release|Any CPU {26DEDF6D-F60D-4311-9A9E-DDF64500D5BF}.Release|x86.ActiveCfg = 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}.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 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -827,7 +827,6 @@ {9FDD649E-0502-4FED-9AC1-AA0346394375} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} {D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} {0F6576B4-C88E-4E79-B7E9-9480498C5A32} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} - {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} {E6A68244-8C31-44A9-9F85-B4A102B5F209} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} {0C291BE9-5D15-4097-9119-4FFE19C23113} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} {1D4B9ABE-F37D-4C38-9BC5-EDD43F271F4E} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} @@ -838,6 +837,7 @@ {732CDF64-D047-4D3C-91DA-E2FF27D84179} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} {E146C2D8-6842-46C5-B2A9-AFA9D6F1A3BB} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} {26DEDF6D-F60D-4311-9A9E-DDF64500D5BF} = {0D1620EE-01B9-43B5-9FAA-E983BD9EBDBD} + {EE8F2C22-8BD3-4832-85F0-E6F67ED3AADB} = {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} Modified: trunk/plugins/TVServerMonitor/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/TVServerMonitor/Properties/AssemblyInfo.cs 2008-02-10 13:09:14 UTC (rev 1357) +++ trunk/plugins/TVServerMonitor/Properties/AssemblyInfo.cs 2008-02-10 13:10:18 UTC (rev 1358) @@ -34,8 +34,8 @@ // 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.1")] -[assembly: AssemblyFileVersionAttribute("1.0.3.1")] +[assembly: AssemblyVersion("1.0.4.2")] +[assembly: AssemblyFileVersionAttribute("1.0.4.2")] // // In order to sign your assembly you must specify a key to use. Refer to the Modified: trunk/plugins/TVServerMonitor/TVServerMonitor.csproj =================================================================== --- trunk/plugins/TVServerMonitor/TVServerMonitor.csproj 2008-02-10 13:09:14 UTC (rev 1357) +++ trunk/plugins/TVServerMonitor/TVServerMonitor.csproj 2008-02-10 13:10:18 UTC (rev 1358) @@ -169,6 +169,7 @@ <PropertyGroup> <PreBuildEvent> </PreBuildEvent> - <PostBuildEvent>copy "$(TargetPath)" "\MediaPortal Development\"</PostBuildEvent> + <PostBuildEvent> + </PostBuildEvent> </PropertyGroup> </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...> - 2008-02-11 13:40:28
|
Revision: 1362 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1362&view=rev Author: and-81 Date: 2008-02-11 05:40:23 -0800 (Mon, 11 Feb 2008) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Documentation/new.html trunk/plugins/IR Server Suite/IR Server Plugins/HCW Receiver/IrRemoteWrapper.cs trunk/plugins/IR Server Suite/IR Server Suite.sln 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/MCEReplacement/MCEReplacement.cs Modified: trunk/plugins/IR Server Suite/Documentation/new.html =================================================================== --- trunk/plugins/IR Server Suite/Documentation/new.html 2008-02-10 20:49:15 UTC (rev 1361) +++ trunk/plugins/IR Server Suite/Documentation/new.html 2008-02-11 13:40:23 UTC (rev 1362) @@ -33,6 +33,7 @@ <LI>Translator: Can create a shortcut on the users desktop to launch a macro.</LI> <LI>Documentation: New documentation areas (Troubleshooting FAQ) and improvements.</LI> <LI>MCE Remote Receiver: Can now set remote and keyboard repeat rates to mimic system keyboard repeat rate settings.</LI> +<LI>IR Server Plugin: Added support for HCW (Hauppauge) Receiver.</LI> </UL></P> <BR> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/HCW Receiver/IrRemoteWrapper.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/HCW Receiver/IrRemoteWrapper.cs 2008-02-10 20:49:15 UTC (rev 1361) +++ trunk/plugins/IR Server Suite/IR Server Plugins/HCW Receiver/IrRemoteWrapper.cs 2008-02-11 13:40:23 UTC (rev 1362) @@ -118,6 +118,9 @@ /// </summary> public IrRemoteWrapper() { + string dllPath = GetDllPath(); + IRSetDllDirectory(dllPath); + _window = new ReceiverWindow(); _window.ProcMsg = new ProcessMessage(WndProc); } Modified: trunk/plugins/IR Server Suite/IR Server Suite.sln =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite.sln 2008-02-10 20:49:15 UTC (rev 1361) +++ trunk/plugins/IR Server Suite/IR Server Suite.sln 2008-02-11 13:40:23 UTC (rev 1362) @@ -383,6 +383,24 @@ Release.AspNetCompiler.Debug = "False" EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Media Center Plugins", "Media Center Plugins", "{A4526325-E80D-492A-8D7A-5E791EAF6C73}" + ProjectSection(WebsiteProperties) = preProject + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.Debug = "False" + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MCE Control Plugin", "Media Center Plugins\MCE Control Plugin\MCE Control Plugin.csproj", "{4355D0D7-2DF3-437D-90C3-FFD96347D9ED}" + ProjectSection(WebsiteProperties) = preProject + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.Debug = "False" + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "STB Blaster Plugin", "Media Center Plugins\STB Blaster Plugin\STB Blaster Plugin.csproj", "{EC9F3A8D-3FB5-49EF-B10C-65DB9831B32F}" + ProjectSection(WebsiteProperties) = preProject + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.Debug = "False" + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -801,6 +819,22 @@ {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 + {4355D0D7-2DF3-437D-90C3-FFD96347D9ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4355D0D7-2DF3-437D-90C3-FFD96347D9ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4355D0D7-2DF3-437D-90C3-FFD96347D9ED}.Debug|x86.ActiveCfg = Debug|x86 + {4355D0D7-2DF3-437D-90C3-FFD96347D9ED}.Debug|x86.Build.0 = Debug|x86 + {4355D0D7-2DF3-437D-90C3-FFD96347D9ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4355D0D7-2DF3-437D-90C3-FFD96347D9ED}.Release|Any CPU.Build.0 = Release|Any CPU + {4355D0D7-2DF3-437D-90C3-FFD96347D9ED}.Release|x86.ActiveCfg = Release|x86 + {4355D0D7-2DF3-437D-90C3-FFD96347D9ED}.Release|x86.Build.0 = Release|x86 + {EC9F3A8D-3FB5-49EF-B10C-65DB9831B32F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC9F3A8D-3FB5-49EF-B10C-65DB9831B32F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC9F3A8D-3FB5-49EF-B10C-65DB9831B32F}.Debug|x86.ActiveCfg = Debug|x86 + {EC9F3A8D-3FB5-49EF-B10C-65DB9831B32F}.Debug|x86.Build.0 = Debug|x86 + {EC9F3A8D-3FB5-49EF-B10C-65DB9831B32F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC9F3A8D-3FB5-49EF-B10C-65DB9831B32F}.Release|Any CPU.Build.0 = Release|Any CPU + {EC9F3A8D-3FB5-49EF-B10C-65DB9831B32F}.Release|x86.ActiveCfg = Release|x86 + {EC9F3A8D-3FB5-49EF-B10C-65DB9831B32F}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -860,5 +894,7 @@ {D1BAC7A9-FFB6-44BA-825F-32506831DC3D} = {F0D3A774-FE5E-4419-B9B6-C11FF1C4BB50} {966281F9-3898-4CB7-9940-99D49C21F170} = {F0D3A774-FE5E-4419-B9B6-C11FF1C4BB50} {49CF376E-811C-4EB4-817F-A39C9529B608} = {F0D3A774-FE5E-4419-B9B6-C11FF1C4BB50} + {4355D0D7-2DF3-437D-90C3-FFD96347D9ED} = {A4526325-E80D-492A-8D7A-5E791EAF6C73} + {EC9F3A8D-3FB5-49EF-B10C-65DB9831B32F} = {A4526325-E80D-492A-8D7A-5E791EAF6C73} EndGlobalSection EndGlobal 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 2008-02-10 20:49:15 UTC (rev 1361) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs 2008-02-11 13:40:23 UTC (rev 1362) @@ -398,6 +398,9 @@ Log.Info("TV2BlasterPlugin: Tune request - Card: {0}, Channel: {1}", msg.Label2, msg.Label); + if (_externalChannelConfigs == null) + throw new ApplicationException("Cannot process tune request, no STB settings are loaded"); + try { Thread newThread = new Thread(new ParameterizedThreadStart(ProcessExternalChannel)); @@ -480,9 +483,12 @@ int card = int.Parse(data[1]); - // To work around a known bug in MediaPortal scheduled recording (Added: 25-Feb-2007) + // To work around a known bug in MediaPortal scheduled recording if (card < 0) - card = 0; + { + card = _externalChannelConfigs[0].CardId; + Log.Warn("TV2BlasterPlugin: MediaPortal reports invalid TV Card ID ({0}), using STB settings for first TV Card ({1})", data[1], card); + } ExternalChannelConfig config = GetExternalChannelConfig(card); 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 2008-02-10 20:49:15 UTC (rev 1361) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs 2008-02-11 13:40:23 UTC (rev 1362) @@ -363,6 +363,9 @@ Log.Info("TV3BlasterPlugin: Tune request - Card: {0}, Channel: {1}, {2}", tvEvent.Card.Id, analogChannel.ChannelNumber, analogChannel.Name); + if (_externalChannelConfigs == null) + throw new ApplicationException("Cannot process tune request, no STB settings are loaded"); + Thread newThread = new Thread(new ParameterizedThreadStart(ProcessExternalChannel)); newThread.Name = "ProcessExternalChannel"; newThread.IsBackground = true; Modified: trunk/plugins/MCEReplacement/MCEReplacement.cs =================================================================== --- trunk/plugins/MCEReplacement/MCEReplacement.cs 2008-02-10 20:49:15 UTC (rev 1361) +++ trunk/plugins/MCEReplacement/MCEReplacement.cs 2008-02-11 13:40:23 UTC (rev 1362) @@ -1006,9 +1006,12 @@ int card = int.Parse(data[1]); - // To work around a known bug in MediaPortal scheduled recording (Added: 25-Feb-2007) + // To work around a known bug in MediaPortal scheduled recording if (card < 0) - card = 0; + { + card = _externalChannelConfigs[0].CardId; + Log.Warn("TV2BlasterPlugin: MediaPortal reports invalid TV Card ID ({0}), using STB settings for first TV Card ({1})", data[1], card); + } ExternalChannelConfig config = GetExternalChannelConfig(card); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-02-12 20:38:25
|
Revision: 1364 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1364&view=rev Author: framug Date: 2008-02-12 12:38:22 -0800 (Tue, 12 Feb 2008) Log Message: ----------- new plugin, please read readme.txt Added Paths: ----------- trunk/plugins/WebEPGfr/ trunk/plugins/WebEPGfr/InfosSuivantSites.cs trunk/plugins/WebEPGfr/Properties/ trunk/plugins/WebEPGfr/Properties/AssemblyInfo.cs trunk/plugins/WebEPGfr/Properties/Resources.Designer.cs trunk/plugins/WebEPGfr/Properties/Resources.resx trunk/plugins/WebEPGfr/ReadMe.txt trunk/plugins/WebEPGfr/Resources/ trunk/plugins/WebEPGfr/Resources/calendrier.png trunk/plugins/WebEPGfr/Resources/exclamation.gif trunk/plugins/WebEPGfr/Resources/horloge.png trunk/plugins/WebEPGfr/WebEPGfr.cs trunk/plugins/WebEPGfr/WebEPGfr.csproj trunk/plugins/WebEPGfr/WebEPGfr.ico trunk/plugins/WebEPGfr/WebEPGfr.sln trunk/plugins/WebEPGfr/WebEPGfr.suo trunk/plugins/WebEPGfr/WebEPGfrSetup.Designer.cs trunk/plugins/WebEPGfr/WebEPGfrSetup.cs trunk/plugins/WebEPGfr/WebEPGfrSetup.resx trunk/plugins/WebEPGfr/WebEPGfr_planification/ trunk/plugins/WebEPGfr/WebEPGfr_planification/Properties/ trunk/plugins/WebEPGfr/WebEPGfr_planification/Properties/AssemblyInfo.cs trunk/plugins/WebEPGfr/WebEPGfr_planification/WebEPGfr_planification.cs trunk/plugins/WebEPGfr/WebEPGfr_planification/WebEPGfr_planification.csproj trunk/plugins/WebEPGfr/XmlToolBox.cs trunk/plugins/WebEPGfr/skin/ trunk/plugins/WebEPGfr/skin/BlueTwo/ trunk/plugins/WebEPGfr/skin/BlueTwo/Media/ trunk/plugins/WebEPGfr/skin/BlueTwo/Media/hover_kazer.png trunk/plugins/WebEPGfr/skin/BlueTwo/Media/kazer_logo.png trunk/plugins/WebEPGfr/skin/BlueTwo/ZguideTV.xml trunk/plugins/WebEPGfr/skin/BlueTwo/kazer.xml trunk/plugins/WebEPGfr/skin/BlueTwo wide/ trunk/plugins/WebEPGfr/skin/BlueTwo wide/Media/ trunk/plugins/WebEPGfr/skin/BlueTwo wide/Media/hover_kazer.png trunk/plugins/WebEPGfr/skin/BlueTwo wide/Media/kazer_logo.png trunk/plugins/WebEPGfr/skin/BlueTwo wide/ZguideTV.xml trunk/plugins/WebEPGfr/skin/BlueTwo wide/kazer.xml trunk/plugins/WebEPGfr/skin/Xface/ trunk/plugins/WebEPGfr/skin/Xface/Media/ trunk/plugins/WebEPGfr/skin/Xface/Media/hover_WebEPGfr.png trunk/plugins/WebEPGfr/skin/Xface/Media/hover_kazer.png trunk/plugins/WebEPGfr/skin/Xface/Media/kazer_logo.png trunk/plugins/WebEPGfr/skin/Xface/ZguideTV.xml trunk/plugins/WebEPGfr/skin/Xface/common.window.ZguideTV.xml trunk/plugins/WebEPGfr/skin/Xface/common.window.kazer.xml trunk/plugins/WebEPGfr/skin/Xface/kazer.xml Added: trunk/plugins/WebEPGfr/InfosSuivantSites.cs =================================================================== --- trunk/plugins/WebEPGfr/InfosSuivantSites.cs (rev 0) +++ trunk/plugins/WebEPGfr/InfosSuivantSites.cs 2008-02-12 20:38:22 UTC (rev 1364) @@ -0,0 +1,124 @@ +#region Banni\xE8re +/* + * Copyright (C) 2008 framug + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ +#endregion + +#region using +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; +using MediaPortal.Profile; // n\xE9cessaire pour Settings +using MediaPortal.Configuration; // pour lire le xml de config +#endregion + +namespace WebEPGfr +{ + public class InfosSuivantSites + { +#region <declarations> + // D\xE9finition des d\xE9claratives + bool _Kazer = false; + bool _ZguideTV = false; + bool _ZguideTV_TNT = false; + bool _ZguideTV_complet = false; + String _userhash = ""; +#endregion + +#region <<CONSTRUCTOR>> + public InfosSuivantSites() + { +// On va lire le XML de configuration + Lire_xml(); + } +#endregion + + // Initialisation des variables globales a la classe InfosSuivantSites + public void Lire_xml() + { + using (Settings lirexml = new Settings(Config.GetFile(Config.Dir.Config, "WebEPGfr.xml"))) + { + _Kazer = lirexml.GetValueAsBool("WebEPGfr", "Kazer", false); + _ZguideTV = lirexml.GetValueAsBool("WebEPGfr", "ZguideTV", false); + _ZguideTV_TNT = lirexml.GetValueAsBool("ZguideTV", "TNT", false); + _ZguideTV_complet = lirexml.GetValueAsBool("ZguideTV", "complet", false); + _userhash = lirexml.GetValueAsString("Kazer", "userhash", ""); + } + } + + // Retourne le nom du skin a afficher + public String skin_a_afficher() + { + String xml_du_skin = ""; + if (_Kazer) + { + xml_du_skin = "kazer"; + } + if (_ZguideTV) + { + xml_du_skin = "ZguideTV"; + } + + xml_du_skin = xml_du_skin + ".xml"; + + return xml_du_skin; + } + + // Retourne l'URL de verification + public String URL_de_verification() + { + String URL_de_verification = @"http://www.google.fr"; + if (_Kazer) + { + URL_de_verification = @"http://www.kazer.org"; + } + if (_ZguideTV) + { + URL_de_verification = @"http://xmltv.myftp.org/download/"; + } + + return URL_de_verification; + } + + // Retourne l'URL de download + public String URL_de_download() + { + String URL_de_download = ""; + if (_Kazer) + { + URL_de_download = @"http://www.kazer.org/gen_xml.php?u=" + _userhash; + } + if (_ZguideTV) + { + if (_ZguideTV_TNT) + { + URL_de_download = @"http://xmltv.myftp.org/download/tnt.zip"; + } + if (_ZguideTV_complet) + { + URL_de_download = @"http://xmltv.myftp.org/download/complet.zip"; + } + } + + return URL_de_download; + } + + } // fin de la classe InfosSuivantSites +} // fin du namespace Added: trunk/plugins/WebEPGfr/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/WebEPGfr/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/WebEPGfr/Properties/AssemblyInfo.cs 2008-02-12 20:38:22 UTC (rev 1364) @@ -0,0 +1,37 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Resources; + +// Les informations générales relatives à un assembly dépendent de +// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations +// associées à un assembly. +[assembly: AssemblyTitle("WebEPGfr")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("WebEPGfr")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly +// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de +// COM, affectez la valeur true à l'attribut ComVisible sur ce type. +[assembly: ComVisible(false)] + +// Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM +[assembly: Guid("b7c11044-8a0c-4235-a346-44787491d5d0")] + +// Les informations de version pour un assembly se composent des quatre valeurs suivantes : +// +// Version principale +// Version secondaire +// Numéro de build +// Révision +// +// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de révision et de build par défaut +// en utilisant '*', comme indiqué ci-dessous : +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: NeutralResourcesLanguageAttribute("fr-FR")] Added: trunk/plugins/WebEPGfr/Properties/Resources.Designer.cs =================================================================== --- trunk/plugins/WebEPGfr/Properties/Resources.Designer.cs (rev 0) +++ trunk/plugins/WebEPGfr/Properties/Resources.Designer.cs 2008-02-12 20:38:22 UTC (rev 1364) @@ -0,0 +1,98 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// Ce code a été généré par un outil. +// Version du runtime :2.0.50727.1433 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace WebEPGfr.Properties { + using System; + + + /// <summary> + /// Une classe de ressource fortement typée destinée, entre autres, à la consultation des chaînes localisées. + /// </summary> + // Cette classe a été générée automatiquement par la classe StronglyTypedResourceBuilder + // à l'aide d'un outil, tel que ResGen ou Visual Studio. + // Pour ajouter ou supprimer un membre, modifiez votre fichier .ResX, puis réexécutez ResGen + // avec l'option /str ou régénérez votre projet VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// <summary> + /// Retourne l'instance ResourceManager mise en cache utilisée par cette classe. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WebEPGfr.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// <summary> + /// Remplace la propriété CurrentUICulture du thread actuel pour toutes + /// les recherches de ressources à l'aide de cette classe de ressource fortement typée. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap calendrier { + get { + object obj = ResourceManager.GetObject("calendrier", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap exclamation { + get { + object obj = ResourceManager.GetObject("exclamation", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap horloge { + get { + object obj = ResourceManager.GetObject("horloge", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap hover_kazer { + get { + object obj = ResourceManager.GetObject("hover_kazer", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap hover_WebEPGfr { + get { + object obj = ResourceManager.GetObject("hover_WebEPGfr", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} Added: trunk/plugins/WebEPGfr/Properties/Resources.resx =================================================================== --- trunk/plugins/WebEPGfr/Properties/Resources.resx (rev 0) +++ trunk/plugins/WebEPGfr/Properties/Resources.resx 2008-02-12 20:38:22 UTC (rev 1364) @@ -0,0 +1,136 @@ +<?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> + <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> + <data name="horloge" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\horloge.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="exclamation" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\exclamation.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="hover_kazer" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\skin\Xface\Media\hover_kazer.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="calendrier" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\calendrier.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="hover_WebEPGfr" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\skin\Xface\Media\hover_WebEPGfr.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> +</root> \ No newline at end of file Added: trunk/plugins/WebEPGfr/ReadMe.txt =================================================================== --- trunk/plugins/WebEPGfr/ReadMe.txt (rev 0) +++ trunk/plugins/WebEPGfr/ReadMe.txt 2008-02-12 20:38:22 UTC (rev 1364) @@ -0,0 +1,38 @@ +English version. + +WebEPGfr V1.0 +WebEPGfr is an EPG/TV plugin for french users +It can eventually replace MediaPortal webepg plugin by downloading TVGuide on Websites instead of grabbing it. +Process is executed in a few seconds instead of some minutes or some hours, depending on number of channels to grab. + +Since it appears that kazer website can't assure correct EPG all the time, we decide to create another project. + +WebEPGfr will leave the choice between kazer (as same as Kazer plugin) and ZguideTV download, both with schedule. +With this new plugin, it will be easy to add others websites in the future, if never.... + +At this stage : + +Working : +- WebEPGfr plugin is properly executing kazer website download. +- WebEPGfr plugin is able to display other skins (i.e. ZguideTV) +- The setup is OK for ZguideTV (except missing ZguideTV picture). +- WebEPGfr.cs is OK for ZguideTV and other Websites. +- The schedule WebEPGfr_planification.cs is OK. +- xml skins for ZguideTV are OK (except hover and logo). + +Informations : +- InfosSuivantSites.cs give names for http requests, skins to display, download URL depending on Websites choosen in Setup. + +To do : +- Re-working XmlToolBox.cs for others sites than kazer. (lopeztuparles) +- TVGuide only with MediaPortal mapped channels to avoid not needed records in MP TVDatabase, if possible. (lopeztuparles) +- Delete temp files (lopeztemp.txt, lopeztemp.zip, tnt.xml, complet.xml). (lopeztuparles) +- schedule : Replace download sleep by thread because of bigger download size. (lopeztuparles) +- Missing picture for ZguideTV in Setup. (-ltb-) +- Missing hover_WebEPGfr for B2 and B2 Wide. (-ltb-) +- Missing ZguideTV_logo for B2, B2 Wide and Xface. (-ltb-) + + +When WebEPGfr development will be finished, we will remove Kazer plugin folder on sourceforge. +But, for the moment, it will be great, if possible, to leave older Kazer folder. +If we had to improve older Kazer plugin, depending on users requests, it will be more convenient to keep them separate. \ No newline at end of file Added: trunk/plugins/WebEPGfr/Resources/calendrier.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/WebEPGfr/Resources/calendrier.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/WebEPGfr/Resources/exclamation.gif =================================================================== (Binary files differ) Property changes on: trunk/plugins/WebEPGfr/Resources/exclamation.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/WebEPGfr/Resources/horloge.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/WebEPGfr/Resources/horloge.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/WebEPGfr/WebEPGfr.cs =================================================================== --- trunk/plugins/WebEPGfr/WebEPGfr.cs (rev 0) +++ trunk/plugins/WebEPGfr/WebEPGfr.cs 2008-02-12 20:38:22 UTC (rev 1364) @@ -0,0 +1,669 @@ +#region Banni\xE8re +/* + * Copyright (C) 2008 framug, Lopez.Tuparles + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ +#endregion + +#region using +using System; +using System.IO; // pour les entr\xE9es/sorties fichier +using System.Net; // pour requ\xEAte http +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; +using System.Runtime.InteropServices; // n\xE9cessaire pour DllImport +using MediaPortal.Profile; // n\xE9cessaire pour Settings +using MediaPortal.Configuration; // pour lire le xml de config +using MediaPortal.GUI.Library; // pour g\xE9rer les \xE9crans MediaPortal +using MediaPortal.Dialogs; +using System.Threading; // pour g\xE9rer les dialogues MediaPortal +#endregion + +namespace WebEPGfr +{ + public class WebEPGfr : GUIWindow, ISetupForm + { + +#region <<imports>> + [DllImport("wininet.dll")] + private extern static bool InternetGetConnectedState(out int Description, int ReservedValue); +#endregion + +#region <<declarations>> + InfosSuivantSites InfosSuivantSites = new InfosSuivantSites(); + XMLGrabber oIntegration; + /// <summary> + /// sInfoEtatEnCours et sInfoEtatBackup forme une minipile MRU. + /// permettant de ne mettre \xE0 jour (process()) la partie graphique que si + /// sInfoEtatEnCours a \xE9t\xE9 mis \xE0 jour. + /// </summary> + private string _sInfoEtatEnCours = ""; + private string _sInfoEtatBackup = ""; + + /// <summary> + /// tTransport assure le telechargement via oIntegration. + /// le d\xE9legu\xE9 mCtransport permet de savoir quand le processus est termin\xE9 + /// Ce qui permet entre autre de detruire le thread. + /// </summary> + private Thread tTransport; + private delegate void CloseTransportDelegate(); + private CloseTransportDelegate mCTransport; + +// D\xE9finition des d\xE9claratives + String _Blanc = " "; + String _Chemin_guide_MP = ""; + String _Chemin_guide_MP_bak = ""; + String _Chemin_guide_WebEPGfr = ""; + bool _copie_tvguide = false; + bool _backup = false; + bool _backup_ok = false; + +#endregion + +#region enums + // correspondance entre ID du XML du skin et les variables programme + enum ctrl + { + date_MP = 6, + message_info = 8, + lib_date_WebEPGfr = 5, + var_date_WebEPGfr = 7, + lib_date_save = 10, + lib_guide_save = 11, + var_date_save = 12, + var_guide_save = 13 + } +#endregion + +#region skin +// D\xE9finition des boutons du skin + [SkinControlAttribute(2)] protected GUIButtonControl BoutonDownload = null; + [SkinControlAttribute(3)] protected GUIButtonControl BoutonMaj = null; + [SkinControlAttribute(9)] protected GUIButtonControl BoutonRestore = null; + // D\xE9finition des labels du skin + [SkinControlAttribute((int)ctrl.date_MP)] protected GUILabelControl date_mp = null; + [SkinControlAttribute((int)ctrl.lib_date_WebEPGfr)] protected GUILabelControl lib_date_WebEPGfr = null; + [SkinControlAttribute((int)ctrl.var_date_WebEPGfr)] protected GUILabelControl var_date_WebEPGfr = null; + [SkinControlAttribute((int)ctrl.message_info)] protected GUILabelControl message_info = null; + [SkinControlAttribute((int)ctrl.lib_date_save)] protected GUILabelControl lib_date_save = null; + [SkinControlAttribute((int)ctrl.lib_guide_save)] protected GUILabelControl lib_guide_save = null; + [SkinControlAttribute((int)ctrl.var_date_save)] protected GUILabelControl var_date_save = null; + [SkinControlAttribute((int)ctrl.var_guide_save)] protected GUILabelControl var_guide_save = null; +#endregion + +#region public + +#region n\xE9cessaire pour MediaPortal + // Retourne le nom du plugin visible dans le menu de configuration + public string PluginName() + { + return "WebEPGfr"; + } + +// Retourne la description du plugin visible dans le menu de configuration + public string Description() + { + return "Permet de r\xE9cup\xE9rer un guide t\xE9l\xE9 \xE0 partir d'un site d'EPG fran\xE7ais"; + } + +// Retourne le nom de l'auteur du plugin + public string Author() + { + return "framug, lopeztuparles"; + } + +// affichage de la configuration du plugin + public void ShowPlugin() + { +// V\xE9rifier si on a une connexion \xE0 Internet active (\xE9vite le plantage du setup) + if (!Connexion_Internet_active()) + { + return; + } +// on appelle la fen\xEAtre de config situ\xE9e dans WebEPGfrSetup.cs + Form setup = new WebEPGfrSetup(); +// Vas-y, affiche la ! + setup.ShowDialog(); + } + +// Indique si le plugin peut \xEAtre activ\xE9/d\xE9sactiv\xE9 + public bool CanEnable() + { + return true; // oui, dans ce cas-l\xE0 + } + +// Donne l'ID du plugin appartenant \xE0 la config + public int GetWindowId() + { + return 10124; // au hasard mais, pour les plugins, cela doit \xEAtre > 10000 + } + +// Indique si le plugin est activ\xE9 par defaut; + public bool DefaultEnabled() + { + return false; // non + } + +// Indique si le plugin poss\xE8de son propre \xE9cran de configuration + public bool HasSetup() + { + return true; // bien s\xFBr + } + +/// <summary> +/// Si le plugin doit avoir son propre bouton dans le menu principal de Media Portal alors, la +/// methode doit retourner true sinon, on ne le verra que dans le menu plugins +/// </summary> +/// <param name="strButtonText">Le texte du bouton dans MediaPortal</param> +/// <param name="strButtonImage">L'image du bouton ou, vide par d\xE9faut</param> +/// <param name="strButtonImageFocus">L'image du bouton ou, vide par d\xE9faut</param> + /// <param name="strPictureImage">La sous-image du bouton ou, vide par d\xE9faut</param> +/// <returns>true : Le plugin aura son propre bouton sur le menu principal +/// false : Le plugin n'aura pas son propre bouton sur le menu principal</returns> + public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, out string strPictureImage) + { + strButtonText = PluginName(); + strButtonImage = String.Empty; + strButtonImageFocus = String.Empty; + strPictureImage = String.Format("hover_{0}.png", "WebEPGfr"); + // Je pr\xE9f\xE8re true, comme \xE7a, les utilisateurs peuvent choisir s'ils veulent +// le plugin sur l'\xE9cran principal ou, dans le menu plugins + return true; + } + +#endregion + + // Initialisation des zones n\xE9cessaires \xE0 la classe WebEPGfr + public void Initialise_zones_WebEPGfr() + { + oIntegration = new XMLGrabber(); + String Nom_Fichier_Guide_MP = "TVguide.xml"; + + using (Settings lirexml = new Settings(Config.GetFile(Config.Dir.Config, "WebEPGfr.xml"))) + { + oIntegration.Configuration.UserHash = lirexml.GetValueAsString("Kazer", "userhash", ""); + oIntegration.Configuration.DownloadUri = new Uri(InfosSuivantSites.URL_de_download()); + oIntegration.Configuration.Fichier_Guide_Mediaportal = Nom_Fichier_Guide_MP; + oIntegration.Configuration.Fichier_Guide_WebEPGfr = lirexml.GetValueAsString("WebEPGfr", "Nom du fichier guide de WebEPGfr", oIntegration.Configuration.Fichier_Guide_WebEPGfr); + oIntegration.Configuration.Repertoire_XMLTV_Mediaportal = lirexml.GetValueAsString("WebEPGfr", "Repertoire XMLTV de MP", oIntegration.Configuration.Repertoire_XMLTV_Mediaportal); + oIntegration.Configuration.Repertoire_XMLTV_WebEPGfr = lirexml.GetValueAsString("WebEPGfr", "Repertoire XMLTV de WebEPGfr", ""); + + _backup = lirexml.GetValueAsBool("WebEPGfr", "backup", false); + } + _Chemin_guide_MP = oIntegration.Configuration.Repertoire_XMLTV_Mediaportal + oIntegration.Configuration.Fichier_Guide_Mediaportal; + _Chemin_guide_MP_bak = _Chemin_guide_MP + ".bak"; + _Chemin_guide_WebEPGfr = oIntegration.Configuration.Repertoire_XMLTV_WebEPGfr + oIntegration.Configuration.Fichier_Guide_WebEPGfr; + _copie_tvguide = _Chemin_guide_WebEPGfr != _Chemin_guide_MP; + } + + // On a cliqu\xE9 sur le bouton T\xE9l\xE9charger + public void Download() + { + //Creation d'un Delegate ce qui fourni un callback du Thread vers la classe + //Cela permet de savoir quand se finit le telechargement + if (tTransport == null) + { //Pas d'autre action en cours + mCTransport = new CloseTransportDelegate(CloseThreadedTransport); + tTransport = new Thread(new ThreadStart(TransportCacheFolder)); + tTransport.IsBackground = true; + tTransport.Start(); + } + else + { + _sInfoEtatEnCours = "T\xE9l\xE9chargement impossible: Une action est deja en cours"; + Log.Info("T\xE9l\xE9chargement impossible: Une action est deja en cours"); + } + } + + // On a cliqu\xE9 sur le bouton Mise \xE0 jour + public void MiseAjour() + { + if (tTransport == null) + { //Si pas de telechargement en cours + _sInfoEtatEnCours = "Mise \xE0 jour en cours"; + Log.Info("Mise \xE0 jour en cours"); + mCTransport = new CloseTransportDelegate(CloseThreadedTransport); + tTransport = new Thread(new ThreadStart(Execute_MiseAJour)); + tTransport.IsBackground = true; + tTransport.Start(); + } + else + { + _sInfoEtatEnCours = "Mise \xE0 jour impossible: Une action est deja en cours"; + Log.Info("Mise \xE0 jour impossible: Une action est deja en cours"); + } + } + +#endregion + +#region override +// N\xE9cessaire pour un plugin windows sinon, c'est consid\xE9r\xE9 comme un plugin process + public override int GetID + { + get + { + return 10124; + } + set + { + } + } + +// Appel\xE9 au d\xE9marrage de MediaPortal + public override bool Init() + { + return Load(GUIGraphicsContext.Skin + @"\" + InfosSuivantSites.skin_a_afficher()); + } + +// Appel\xE9 \xE0 chaque affichage de page, quand l'utilisateur clique sur le nom du plugin + protected override void OnPageLoad() + { + Initialise_zones_WebEPGfr(); + Initialise_zones_ecran(); + } + +// Appel\xE9 \xE0 chaque action utilisateur + protected override void OnClicked(int controlId, GUIControl control, MediaPortal.GUI.Library.Action.ActionType actionType) + { + if (control == BoutonDownload) + Download(); + if (control == BoutonMaj) + MiseAjour(); + if (control == BoutonRestore) + Restaure_TVGuide(); + base.OnClicked(controlId, control, actionType); + } + + /// <summary> + /// On passe ici de facon cyclique + /// </summary> + public override void Process() + { + //mise \xE0 jour de la partie graphique. + if (_sInfoEtatEnCours != _sInfoEtatBackup) + { + GUIControl.SetControlLabel(GetID, (int)ctrl.message_info, _sInfoEtatEnCours.ToString() ); + _sInfoEtatBackup = _sInfoEtatEnCours; + } + + } + +#endregion + +#region private + +//V\xE9rifier si on a une connexion \xE0 Internet active + private bool Connexion_Internet_active() + { + // Verifier s'il y a une connexion \xE0 Internet + int desc; + if (InternetGetConnectedState(out desc,0)) + { + // Cr\xE9er une requ\xEAte sur un site + try + { + HttpWebRequest requete = (HttpWebRequest)WebRequest.Create(InfosSuivantSites.URL_de_verification()); + } + catch (Exception ex) + { + MessageBox.Show("Probl\xE8me d'acc\xE8s aux sites Web : " + ex.ToString()); + return false; + } + return true; + } + else + { + MessageBox.Show("Probl\xE8me de connexion \xE0 Internet"); + return false; + } + } + +// Initialisation des zones de l'\xE9cran + private void Initialise_zones_ecran() + { + Initialise_date_MP(); + + // La visibilit\xE9 des boutons, variables et libell\xE9s de restore d\xE9pend du setup (chemin de sortie diff\xE9rent ou non) + BoutonMaj.IsVisible = _copie_tvguide; + lib_date_WebEPGfr.IsVisible = _copie_tvguide; + var_date_WebEPGfr.IsVisible = _copie_tvguide; + + if (_copie_tvguide) + { + Initialise_date_WebEPGfr(); + } + + // La visibilit\xE9 des boutons, variables et libell\xE9s de restore d\xE9pend du setup (sauvegarde ou non) + BoutonRestore.IsVisible = _backup; + lib_date_save.IsVisible = _backup; + lib_guide_save.IsVisible = _backup; + var_date_save.IsVisible = _backup; + var_guide_save.IsVisible = _backup; + + if (_backup) + { + Initialise_var_date_save(); + Initialise_var_guide_save(); + } + + // D\xE9placement des boutons, variables et libell\xE9s pour \xE9viter les trous \xE0 l'affichage + if (_backup && !_copie_tvguide) + { + BoutonRestore.YPosition = BoutonMaj.YPosition; + lib_guide_save.YPosition = lib_date_save.YPosition; + var_guide_save.YPosition = var_date_save.YPosition; + lib_date_save.YPosition = lib_date_WebEPGfr.YPosition; + var_date_save.YPosition = var_date_WebEPGfr.YPosition; + } + + + Initialise_message_info(); + } + +// Initialisation de la date du fichier guide de MediaPortal + + private void Initialise_date_MP() + { + String date_MP = ""; + if (File.Exists(_Chemin_guide_MP)) + { + DateTime date = File.GetLastWriteTime(_Chemin_guide_MP); + date_MP = date.ToString("dd MMMM yyyy \xE0 HH:mm:ss"); + } + else + { + date_MP = "Guide t\xE9l\xE9 inexistant"; + } + GUIControl.SetControlLabel(GetID, (int)ctrl.date_MP, date_MP); + } + +// Initialisation de la date du fichier guide de WebEPGfr + private void Initialise_date_WebEPGfr() + { + String date_WebEPGfr = ""; + if (File.Exists(_Chemin_guide_WebEPGfr)) + { + DateTime date = File.GetLastWriteTime(_Chemin_guide_WebEPGfr); + date_WebEPGfr = date.ToString("dd MMMM yyyy \xE0 HH:mm:ss"); + } + else + { + date_WebEPGfr = "Guide t\xE9l\xE9 inexistant"; + } + GUIControl.SetControlLabel(GetID, (int)ctrl.var_date_WebEPGfr, date_WebEPGfr); + } + +// Initialisation de la date de sauvegarde + private void Initialise_var_date_save() + { + String var_date_save = ""; + if (File.Exists(_Chemin_guide_MP_bak)) + { + DateTime date = File.GetCreationTime(_Chemin_guide_MP_bak); + var_date_save = date.ToString("dd MMMM yyyy \xE0 HH:mm:ss"); + } + else + { + var_date_save = "Sauvegarde inexistante"; + } + GUIControl.SetControlLabel(GetID, (int)ctrl.var_date_save, var_date_save); + } + +// Initialisation de la date du guide T\xE9l\xE9 correspondant \xE0 la sauvegarde + private void Initialise_var_guide_save() + { + String var_guide_save = ""; + if (File.Exists(_Chemin_guide_MP_bak)) + { + DateTime date = File.GetLastWriteTime(_Chemin_guide_MP_bak); + var_guide_save = date.ToString("dd MMMM yyyy \xE0 HH:mm:ss"); + } + else + { + var_guide_save = "Sauvegarde inexistante"; + } + GUIControl.SetControlLabel(GetID, (int)ctrl.var_guide_save, var_guide_save); + } + +// Initialisation du message d'information + private void Initialise_message_info() + { + GUIControl.SetControlLabel(GetID, (int)ctrl.message_info, _Blanc); + } + +#region <<THREADED TRANSPORT & DELEGATE>> + /// <summary> + /// Execute le transport du site de WebEPGfr vers le repertoire de destination + /// </summary> + private void TransportCacheFolder() + { + // Traitement du t\xE9l\xE9chargement de l'XML de WebEPGfr + _sInfoEtatEnCours = "T\xE9l\xE9chargement en cours"; + Log.Info("T\xE9l\xE9chargement en cours"); + long lDownloded = -1; + //Debut du telechargement + if ((oIntegration.Configuration.DownloadUri.ToString().Length > 3)) + { // Verification de base + lDownloded = oIntegration.DownloadXmlTvFile(); + if (lDownloded == 0) //telechargement r\xE9ussi + { + try + { + if (oIntegration.ValidateXmlTvFile() == true) + { // Le fichier semble correct + // si on est en backup sur le meme fichier guide ==> backup + if (_backup && !_copie_tvguide) + { + Backup_TVGuide(out _backup_ok); + if (!_backup_ok) + { + return; + } + } + oIntegration.GetMappings(); //etablit la liste des mappings + if (oIntegration.DoMapping() == 0) // R\xE9alise le mapping + { + Initialise_date_WebEPGfr(); + if (!_copie_tvguide) + { + Initialise_date_MP(); + } + _sInfoEtatEnCours = "T\xE9l\xE9chargement termin\xE9"; + Log.Info("T\xE9l\xE9chargement termin\xE9"); + } + else + { + // si on est en backup sur le meme fichier guide ==> restore + if (_backup && !_copie_tvguide) + { + Restaure_TVGuide(); + } + _sInfoEtatEnCours = "le Mapping a \xE9chou\xE9"; + Log.Info("le Mapping a \xE9chou\xE9"); + } + } + else + { + _sInfoEtatEnCours = "Fichier non Conforme"; + Log.Info("Fichier non Conforme"); + } + } + catch + { + _sInfoEtatEnCours = "Probleme durant le telechargement"; + Log.Info("Probleme durant le telechargement"); + } + + } + else + { + _sInfoEtatEnCours = "le T\xE9l\xE9chargement a \xE9chou\xE9"; + Log.Info("le T\xE9l\xE9chargement a \xE9chou\xE9"); + } + } + //Fin du thread + mCTransport(); + } + + /// <summary> + /// R\xE9alise une Copie du fichier issu de WebEPGfr vers TvGuide.xml + /// </summary> + private void Execute_MiseAJour() + { + bool copie_ok = false; + Copie_TVGuide(out copie_ok); + if (copie_ok) + { + _sInfoEtatEnCours = "Mise \xE0 jour termin\xE9e"; + Log.Info("Mise \xE0 jour termin\xE9e"); + } + //Fin du thread + mCTransport(); + } + + private void CloseThreadedTransport() + {//On Passe ici a la fin du thread + try { tTransport.Abort(); } + finally { tTransport = null; } + } +#endregion + +// Copie du fichier TVGuide + private void Copie_TVGuide(out bool copie_ok) + { + if (!File.Exists(_Chemin_guide_WebEPGfr)) + { + _sInfoEtatEnCours = "Le guide t\xE9l\xE9 de WebEPGfr n'existe pas"; + copie_ok = false; + Log.Info("Le guide t\xE9l\xE9 de WebEPGfr n'existe pas"); + return; + } + if (File.GetLastWriteTime(_Chemin_guide_WebEPGfr) > File.GetLastWriteTime(_Chemin_guide_MP)) + { + // Sauvegarde du guide t\xE9l\xE9 de MediaPortal en .bak + if (_backup) + { + Backup_TVGuide(out _backup_ok); + if (!_backup_ok) + { + copie_ok = _backup_ok; + return; + } + } + _sInfoEtatEnCours = "Copie du Guide T\xE9l\xE9 en cours"; + Log.Info("Copie du Guide T\xE9l\xE9 en cours"); + + try + { + File.Copy(_Chemin_guide_WebEPGfr, _Chemin_guide_MP, File.Exists(_Chemin_guide_MP)); + Initialise_date_MP(); + _sInfoEtatEnCours = "Copie du Guide T\xE9l\xE9 termin\xE9e"; + Log.Info("Copie du Guide T\xE9l\xE9 termin\xE9e"); + // Pour traiter le cas du backup premi\xE8re fois + if (_backup && !File.Exists(_Chemin_guide_MP_bak)) + { + Backup_TVGuide(out _backup_ok); + } + copie_ok = true; + return; + } + catch + { + _sInfoEtatEnCours = "Erreur de copie du Guide T\xE9l\xE9"; + copie_ok = false; + Log.Info("Erreur de copie du Guide T\xE9l\xE9"); + return; + } + } + else + { + _sInfoEtatEnCours = "Guide T\xE9l\xE9 de MediaPortal d\xE9j\xE0 \xE0 jour"; + copie_ok = false; + Log.Info("Guide T\xE9l\xE9 de MediaPortal d\xE9j\xE0 \xE0 jour"); + return; + } + } + +// Sauvegarde du guide t\xE9l\xE9 de MediaPortal en .bak + private void Backup_TVGuide(out bool backup_ok) + { + // Pour traiter le cas du backup premi\xE8re fois + if (File.Exists(_Chemin_guide_MP)) + { + try + { + _sInfoEtatEnCours = "Sauvegarde du Guide T\xE9l\xE9 en cours"; + File.Copy(_Chemin_guide_MP, _Chemin_guide_MP_bak, File.Exists(_Chemin_guide_MP_bak)); + Initialise_var_date_save(); + Initialise_var_guide_save(); + _sInfoEtatEnCours = "Sauvegarde du Guide T\xE9l\xE9 termin\xE9e"; + backup_ok = true; + Log.Info("Sauvegarde du Guide T\xE9l\xE9 termin\xE9e"); + return; + } + catch + { + _sInfoEtatEnCours = "Erreur de sauvegarde du Guide T\xE9l\xE9"; + backup_ok = false; + Log.Info("Erreur de sauvegarde du Guide T\xE9l\xE9"); + return; + } + } + else + { + _sInfoEtatEnCours = "Le guide t\xE9l\xE9 de MediaPortal n'existe pas"; + // backup_ok ne veut pas dire que le backup a forc\xE9ment \xE9t\xE9 fait mais, qu'on est + // pass\xE9 dans le processus normal de backup. + Log.Info("Le guide t\xE9l\xE9 de MediaPortal n'existe pas"); + backup_ok = true; + } + } + +// Restauration du .bak + private void Restaure_TVGuide() + { + if (File.Exists(_Chemin_guide_MP_bak)) + { + try + { + _sInfoEtatEnCours = "Restauration du Guide T\xE9l\xE9 en cours"; + Log.Info("Restauration du Guide T\xE9l\xE9 en cours"); + File.Copy(_Chemin_guide_MP_bak, _Chemin_guide_MP, File.Exists(_Chemin_guide_MP)); + Initialise_date_MP(); + _sInfoEtatEnCours = "Restauration du Guide T\xE9l\xE9 termin\xE9e"; + Log.Info("Restauration du Guide T\xE9l\xE9 termin\xE9e"); + } + catch + { + _sInfoEtatEnCours = "Erreur de restauration du Guide T\xE9l\xE9"; + Log.Info("Erreur de restauration du Guide T\xE9l\xE9"); + } + } + else + { + _sInfoEtatEnCours = "La sauvegarde du Guide T\xE9l\xE9 n'existe pas"; + Log.Info("La sauvegarde du Guide T\xE9l\xE9 n'existe pas"); + } + } + +#endregion + + } // fin de la classe WebEPGfr + +} // fin du namespace Added: trunk/plugins/WebEPGfr/WebEPGfr.csproj =================================================================== --- trunk/plugins/WebEPGfr/WebEPGfr.csproj (rev 0) +++ trunk/plugins/WebEPGfr/WebEPGfr.csproj 2008-02-12 20:38:22 UTC (rev 1364) @@ -0,0 +1,123 @@ +<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>{1F927022-1A44-432D-B98B-82ECBF9765A7}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>WebEPGfr</RootNamespace> + <AssemblyName>WebEPGfr</AssemblyName> + <ApplicationIcon> + </ApplicationIcon> + </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> + <ItemGroup> + <Reference Include="Core, Version=0.2.3.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\MediaPortal\Core\bin\Release\Core.dll</HintPath> + </Reference> + <Reference Include="Databases, Version=0.2.3.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\MediaPortal\Databases\bin\Release\Databases.dll</HintPath> + </Reference> + <Reference Include="Dialogs, Version=0.2.3.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\MediaPortal\Dialogs\bin\Release\Dialogs.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.DirectoryServices" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + <Reference Include="TVCapture, Version=0.2.3.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\MediaPortal\TVCapture\bin\Release\TVCapture.dll</HintPath> + </Reference> + <Reference Include="Utils, Version=2.2.4.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\MediaPortal\Utils\bin\Release\Utils.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="InfosSuivantSites.cs" /> + <Compile Include="WebEPGfrSetup.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="WebEPGfrSetup.Designer.cs"> + <DependentUpon>WebEPGfrSetup.cs</DependentUpon> + </Compile> + <Compile Include="WebEPGfr.cs"> + </Compile> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <Compile Include="XmlToolBox.cs" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="WebEPGfrSetup.resx"> + <SubType>Designer</SubType> + <DependentUpon>WebEPGfrSetup.cs</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="Properties\Resources.resx"> + <SubType>Designer</SubType> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <Content Include="ReadMe.txt" /> + <Content Include="skin\BlueTwo wide\ZguideTV.xml" /> + <Content Include="skin\BlueTwo\kazer.xml" /> + <Content Include="skin\BlueTwo\Media\hover_kazer.png" /> + <Content Include="skin\BlueTwo\Media\kazer_logo.png" /> + <Content Include="skin\BlueTwo wide\kazer.xml" /> + <Content Include="skin\BlueTwo wide\Media\hover_kazer.png" /> + <Content Include="skin\BlueTwo wide\Media\kazer_logo.png" /> + <Content Include="skin\BlueTwo\ZguideTV.xml" /> + <Content Include="skin\Xface\common.window.kazer.xml" /> + <Content Include="skin\Xface\common.window.ZguideTV.xml" /> + <Content Include="skin\Xface\kazer.xml" /> + <Content Include="skin\Xface\Media\hover_kazer.png" /> + <None Include="skin\Xface\Media\hover_WebEPGfr.png" /> + <Content Include="skin\Xface\Media\kazer_logo.png" /> + <Content Include="skin\Xface\ZguideTV.xml" /> + <Content Include="WebEPGfr.ico" /> + </ItemGroup> + <ItemGroup> + <Folder Include="Resources\" /> + </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> + </PostBuildEvent> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/WebEPGfr/WebEPGfr.ico =================================================================== (Binary files differ) Property changes on: trunk/plugins/WebEPGfr/WebEPGfr.ico ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/WebEPGfr/WebEPGfr.sln =================================================================== --- trunk/plugins/WebEPGfr/WebEPGfr.sln (rev 0) +++ trunk/plugins/WebEPGfr/WebEPGfr.sln 2008-02-12 20:38:22 UTC (rev 1364) @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebEPGfr", "WebEPGfr.csproj", "{1F927022-1A44-432D-B98B-82ECBF9765A7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebEPGfr_planification", "WebEPGfr_planification\WebEPGfr_planification.csproj", "{91C8D605-35D6-4CFF-B36D-95C6E7AD6E99}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1F927022-1A44-432D-B98B-82ECBF9765A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F927022-1A44-432D-B98B-82ECBF9765A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F927022-1A44-432D-B98B-82ECBF9765A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F927022-1A44-432D-B98B-82ECBF9765A7}.Release|Any CPU.Build.0 = Release|Any CPU + {91C8D605-35D6-4CFF-B36D-95C6E7AD6E99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91C8D605-35D6-4CFF-B36D-95C6E7AD6E99}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91C8D605-35D6-4CFF-B36D-95C6E7AD6E99}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91C8D605-35D6-4CFF-B36D-95C6E7AD6E99}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: trunk/plugins/WebEPGfr/WebEPGfr.suo =================================================================== (Binary files differ) Property changes on: trunk/plugins/WebEPGfr/WebEPGfr.suo ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/WebEPGfr/WebEPGfrSetup.Designer.cs =================================================================== --- trunk/plugins/WebEPGfr/WebEPGfrSetup.Designer.cs (rev 0) +++ trunk/plugins/WebEPGfr/WebEPGfrSetup.Designer.cs 2008-02-12 20:38:22 UTC (rev 1364) @@ -0,0 +1,843 @@ +namespace WebEPGfr +{ + partial class WebEPGfrSetup + { + /// <summary> + /// Variable nécessaire au concepteur. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Nettoyage des ressources utilisées. + /// </summary> + /// <param name="disposing">true si les ressources managées doivent être supprimées ; sinon, false.</param> + ... [truncated message content] |
From: <yk...@us...> - 2008-02-16 21:19:20
|
Revision: 1374 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1374&view=rev Author: ykamchi Date: 2008-02-16 13:19:11 -0800 (Sat, 16 Feb 2008) Log Message: ----------- Added Paths: ----------- trunk/plugins/HCWBlaster/ trunk/plugins/HCWBlaster/HCWBlaster.cs trunk/plugins/HCWBlaster/HCWBlaster.csproj trunk/plugins/HCWBlaster/HCWBlaster.csproj.user trunk/plugins/HCWBlaster/HCWIRBlaster.cs trunk/plugins/HCWBlaster/Properties/ trunk/plugins/HCWBlaster/Properties/AssemblyInfo.cs trunk/plugins/HCWBlaster/Service References/ trunk/plugins/HCWBlaster/Setup/ trunk/plugins/HCWBlaster/Setup/HCWBlasterSetup.Designer.cs trunk/plugins/HCWBlaster/Setup/HCWBlasterSetup.cs trunk/plugins/HCWBlaster/Setup/HCWBlasterSetup.resx trunk/plugins/HCWBlaster/bin/ trunk/plugins/HCWBlaster/bin/Debug/ trunk/plugins/HCWBlaster/bin/Release/ trunk/plugins/HCWBlaster/obj/ trunk/plugins/HCWBlaster/obj/Debug/ trunk/plugins/HCWBlaster/obj/Debug/TempPE/ trunk/plugins/HCWBlaster/obj/Release/ trunk/plugins/HCWBlaster/obj/Release/HCWBlaster.csproj.FileListAbsolute.txt trunk/plugins/HCWBlaster/obj/Release/HCWBlaster.csproj.GenerateResource.Cache trunk/plugins/HCWBlaster/obj/Release/HCWBlaster.dll trunk/plugins/HCWBlaster/obj/Release/HCWBlaster.pdb trunk/plugins/HCWBlaster/obj/Release/ResolveAssemblyReference.cache trunk/plugins/HCWBlaster/obj/Release/SetupTv.Sections.HCWBlasterSetup.resources trunk/plugins/HCWBlaster/obj/Release/TempPE/ trunk/plugins/HCWBlaster.sln trunk/plugins/HCWBlaster.suo trunk/plugins/SetupHCWBlaster/ trunk/plugins/SetupHCWBlaster/Debug/ trunk/plugins/SetupHCWBlaster/Release/ trunk/plugins/SetupHCWBlaster/SetupHCWBlaster.vdproj Added: trunk/plugins/HCWBlaster/HCWBlaster.cs =================================================================== --- trunk/plugins/HCWBlaster/HCWBlaster.cs (rev 0) +++ trunk/plugins/HCWBlaster/HCWBlaster.cs 2008-02-16 21:19:11 UTC (rev 1374) @@ -0,0 +1,137 @@ +using System; +using System.Collections.Generic; +using System.Text; +using TvLibrary.Log; +using TvLibrary.Interfaces; +using TvLibrary.Implementations; +using TvEngine; +using TvEngine.Events; +using TvControl; +using SetupTv.Sections; +using TvDatabase; +using SetupTv; + + +namespace Hauppauge +{ + public class HCWBlaster : TvEngine.ITvServerPlugin, ITvServerPluginStartedAll + { + + #region Members + + static bool _runAtStart = true; + static string _program = "ykamchi"; + static string _parameters = "yohay"; + + #endregion Members + + #region Properties + + /// <summary> + /// returns the name of the plugin + /// </summary> + public string Name + { + get { return "Hauppauge Blaster"; } + } + /// <summary> + /// returns the version of the plugin + /// </summary> + public string Version + { + get { return "1.0.0.0"; } + } + /// <summary> + /// returns the author of the plugin + /// </summary> + public string Author + { + get { return "ykamchi"; } + } + /// <summary> + /// returns if the plugin should only run on the master server + /// or also on slave servers + /// </summary> + public bool MasterOnly + { + get { return false; } + } + + internal static bool RunAtStart + { + get { return _runAtStart; } + set { _runAtStart = value; } + } + internal static string Program + { + get { return _program; } + set { _program = value; } + } + internal static string Parameters + { + get { return _parameters; } + set { _parameters = value; } + } + + #endregion Properties + + #region IPlugin Members + + [CLSCompliant(false)] + public void Start(IController controller) + { + Log.Info("HCWBlaster.Start: Starting"); + ITvServerEvent events = GlobalServiceProvider.Instance.Get<ITvServerEvent>(); + events.OnTvServerEvent += new TvServerEventHandler(events_OnTvServerEvent); + Log.Info("HCWBlaster.Start: Started"); + } + + public void Stop() + { + Log.Info("HCWBlaster.Stop: Stopping"); + ITvServerEvent events = GlobalServiceProvider.Instance.Get<ITvServerEvent>(); + events.OnTvServerEvent -= new TvServerEventHandler(events_OnTvServerEvent); + Log.Info("HCWBlaster.Stop: Stopped"); + } + [CLSCompliant(false)] + + public SetupTv.SectionSettings Setup + { + get { return new SetupTv.Sections.HCWBlasterSetup(); } + } + + #endregion + + #region ITvServerPluginStartedAll Members + + public void StartedAll() + { + Log.Info("HCWBlaster.StartedAll: Started All"); + } + + #endregion + + void events_OnTvServerEvent(object sender, EventArgs eventArgs) + { + try + { + TvServerEventArgs tvEvent = (TvServerEventArgs)eventArgs; + AnalogChannel analogChannel = tvEvent.channel as AnalogChannel; + if (analogChannel == null) return; + if (tvEvent.EventType == TvServerEventType.StartZapChannel) + { + Log.WriteFile("ServerBlaster - CardId: {0}, Channel: {1} - Channel:{2}", tvEvent.Card.Id, analogChannel.ChannelNumber, analogChannel.Name); + HCWIRBlaster blaster = new HCWIRBlaster(); + blaster.blastChannel(analogChannel); + Log.WriteFile("ServerBlaster - Done"); + + } + } + catch (Exception e) + { + Log.WriteFile("ServerBlaster - Exception occured on events_OnTvServerEvent, sender = {0}, eventArgs = {1}, Exception = {2}", sender, eventArgs, e); + } + } + + } +} Added: trunk/plugins/HCWBlaster/HCWBlaster.csproj =================================================================== --- trunk/plugins/HCWBlaster/HCWBlaster.csproj (rev 0) +++ trunk/plugins/HCWBlaster/HCWBlaster.csproj 2008-02-16 21:19:11 UTC (rev 1374) @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>9.0.21022</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{22B8AB41-D4A5-43FE-9C03-CDEBF262405F}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>HCWBlaster</RootNamespace> + <AssemblyName>HCWBlaster</AssemblyName> + <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + </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> + <ItemGroup> + <Reference Include="Gentle.Common, Version=1.2.9.1285, Culture=neutral, PublicKeyToken=80b5de62e27be49b"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\TVLibrary\bin\Release\Gentle.Common.dll</HintPath> + </Reference> + <Reference Include="Gentle.Framework, Version=1.2.9.1286, Culture=neutral, PublicKeyToken=80b5de62e27be49b"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\TVLibrary\bin\Release\Gentle.Framework.dll</HintPath> + </Reference> + <Reference Include="PluginBase, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\Plugins\PluginBase\bin\Release\PluginBase.dll</HintPath> + </Reference> + <Reference Include="SetupControls, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\Plugins\PluginBase\bin\Release\SetupControls.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Core"> + <RequiredTargetFramework>3.5</RequiredTargetFramework> + </Reference> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml.Linq"> + <RequiredTargetFramework>3.5</RequiredTargetFramework> + </Reference> + <Reference Include="System.Data.DataSetExtensions"> + <RequiredTargetFramework>3.5</RequiredTargetFramework> + </Reference> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + <Reference Include="TvControl, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\TvControl\bin\Release\TvControl.dll</HintPath> + </Reference> + <Reference Include="TVDatabase, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\TVDatabase\bin\Release\TVDatabase.dll</HintPath> + </Reference> + <Reference Include="TVLibrary, Version=1.0.0.1, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\TVLibrary\bin\Release\TVLibrary.dll</HintPath> + </Reference> + <Reference Include="TvLibrary.Interfaces, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\TVLibrary\bin\Release\TvLibrary.Interfaces.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="HCWIRBlaster.cs" /> + <Compile Include="HCWBlaster.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="Setup\HCWBlasterSetup.cs"> + <SubType>UserControl</SubType> + </Compile> + <Compile Include="Setup\HCWBlasterSetup.Designer.cs"> + <DependentUpon>HCWBlasterSetup.cs</DependentUpon> + </Compile> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Setup\HCWBlasterSetup.resx"> + <DependentUpon>HCWBlasterSetup.cs</DependentUpon> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <WCFMetadata Include="Service References\" /> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\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/HCWBlaster/HCWBlaster.csproj.user =================================================================== --- trunk/plugins/HCWBlaster/HCWBlaster.csproj.user (rev 0) +++ trunk/plugins/HCWBlaster/HCWBlaster.csproj.user 2008-02-16 21:19:11 UTC (rev 1374) @@ -0,0 +1,5 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectView>ProjectFiles</ProjectView> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/HCWBlaster/HCWIRBlaster.cs =================================================================== --- trunk/plugins/HCWBlaster/HCWIRBlaster.cs (rev 0) +++ trunk/plugins/HCWBlaster/HCWIRBlaster.cs 2008-02-16 21:19:11 UTC (rev 1374) @@ -0,0 +1,146 @@ +#region Copyright (C) 2005-2007 Team MediaPortal + +/* + * Copyright (C) 2005-2007 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; +using System.Runtime.InteropServices; + +using TvLibrary.Log; +using TvControl; +using SetupTv; +using TvEngine.Events; +using TvEngine; +using TvLibrary.Interfaces; +using TvLibrary.Implementations; + +namespace Hauppauge +{ + /// <summary> + /// Summary description for HCWIRBlaster. + /// </summary> + public class HCWIRBlaster + { + + [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] + private static extern IntPtr LoadLibraryEx(string fileName, IntPtr dummy, int flags); + + [DllImport("hcwIRblast.dll")] + private static extern int UIR_Close(); + + [DllImport("hcwIRblast.dll")] + private static extern int UIR_GetConfig(int device, int codeset, ref UIR_CFG cfgPtr); + + [DllImport("hcwIRblast.dll")] + private static extern int UIR_GotoChannel(int device, int codeset, int channel); + + [DllImport("hcwIRblast.dll")] + private static extern ushort UIR_Open(uint bVerbose, ushort wIRPort); + + private static int HCWRetVal; + private static UIR_CFG HCWIRConfig; + + [StructLayout(LayoutKind.Sequential, Pack = 8)] + public struct UIR_CFG + { + public int a; // 0x38; + public int b; + public int c; //Region + public int d; //Device + public int e; //Vendor + public int f; //Code Set + public int g; + public int h; + public int i; //Minimum Digits + public int j; //Digit Delay + public int k; //Need Enter + public int l; //Enter Delay + public int m; //Tune Delay + public int n; //One Digit Delay + } + + + public HCWIRBlaster() + { + } + + static HCWIRBlaster() + { + HCWIRBlaster.HCWRetVal = 0; + HCWIRBlaster.HCWIRConfig = new UIR_CFG(); + } + + + + public void blastChannel(IChannel channel) + { + + Log.Info("HCWIRBlaster: In blastChannel, trying to change to external id {0}", channel); + AnalogChannel analogChannel = channel as AnalogChannel; + + + + if (HCWIRBlaster.HCWRetVal == 0) + { + + HCWIRBlaster.HCWRetVal = HCWIRBlaster.UIR_Open(0, 0); + if (HCWIRBlaster.HCWRetVal == 0) + { + Log.Info("HCWIRBlaster: Failed to get Blaster Handle"); + return; + } + + HCWIRBlaster.HCWIRConfig.a = 0x38; + int RetCfg = HCWIRBlaster.UIR_GetConfig(-1, -1, ref HCWIRBlaster.HCWIRConfig); + if (RetCfg == 0) + { + string devset1 = "Device : " + HCWIRBlaster.HCWIRConfig.d.ToString() + " Vendor : " + HCWIRBlaster.HCWIRConfig.e.ToString(); + string devset2 = "Region : " + HCWIRBlaster.HCWIRConfig.c.ToString() + " Code set : " + HCWIRBlaster.HCWIRConfig.f.ToString(); + string devset3 = "Digit Delay : " + HCWIRBlaster.HCWIRConfig.j.ToString() + " Minimum Digits: " + HCWIRBlaster.HCWIRConfig.i.ToString(); + string devset4 = "OneDigitDelay: " + HCWIRBlaster.HCWIRConfig.n.ToString() + " Tune Delay : " + HCWIRBlaster.HCWIRConfig.m.ToString(); + string devset5 = "Need Enter : " + HCWIRBlaster.HCWIRConfig.k.ToString() + " Enter Delay : " + HCWIRBlaster.HCWIRConfig.l.ToString(); + + Log.Info("HCWBlaster: " + devset1); + Log.Info("HCWBlaster: " + devset2); + Log.Info("HCWBlaster: " + devset3); + Log.Info("HCWBlaster: " + devset4); + Log.Info("HCWBlaster: " + devset5); + + } + else + { + HCWIRBlaster.UIR_Close(); + HCWIRBlaster.HCWRetVal = 0; + } + } + int RetChg = HCWIRBlaster.UIR_GotoChannel(HCWIRBlaster.HCWIRConfig.d, HCWIRBlaster.HCWIRConfig.f, analogChannel.ChannelNumber); + if (RetChg != 0) + { + Log.Info("HCWBlaster: UIR_GotoChannel() failed: " + RetChg.ToString()); + } + + Log.Info("HCWBlaster: Finished Changing channels: {0}", channel); + } + + } +} Added: trunk/plugins/HCWBlaster/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/HCWBlaster/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/HCWBlaster/Properties/AssemblyInfo.cs 2008-02-16 21:19:11 UTC (rev 1374) @@ -0,0 +1,36 @@ +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("HCWBlaster")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Cisco Systems, Inc.")] +[assembly: AssemblyProduct("HCWBlaster")] +[assembly: AssemblyCopyright("Copyright © Cisco Systems, Inc. 2008")] +[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("2b8f7d0e-925e-4501-9ee8-ec085a1676a3")] + +// 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 Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] Added: trunk/plugins/HCWBlaster/Setup/HCWBlasterSetup.Designer.cs =================================================================== --- trunk/plugins/HCWBlaster/Setup/HCWBlasterSetup.Designer.cs (rev 0) +++ trunk/plugins/HCWBlaster/Setup/HCWBlasterSetup.Designer.cs 2008-02-16 21:19:11 UTC (rev 1374) @@ -0,0 +1,99 @@ +namespace SetupTv.Sections +{ + partial class HCWBlasterSetup + { + /// <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 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.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.SuspendLayout(); + // + // tabControl1 + // + this.tabControl1.AccessibleRole = System.Windows.Forms.AccessibleRole.HelpBalloon; + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Location = new System.Drawing.Point(3, 3); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(574, 308); + this.tabControl1.TabIndex = 8; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.label2); + this.tabPage1.Controls.Add(this.label1); + this.tabPage1.Location = new System.Drawing.Point(4, 22); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(566, 282); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "General Setup"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(16, 16); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(400, 13); + this.label1.TabIndex = 9; + this.label1.Text = "This plugin sends command to the huappuage IR blaster upon TV channel change"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(16, 251); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(208, 13); + this.label2.TabIndex = 10; + this.label2.Text = "* Currently there is no configuration options"; + // + // HCWBlasterSetup + // + this.Controls.Add(this.tabControl1); + this.Name = "HCWBlasterSetup"; + this.Size = new System.Drawing.Size(590, 325); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + + } +} Added: trunk/plugins/HCWBlaster/Setup/HCWBlasterSetup.cs =================================================================== --- trunk/plugins/HCWBlaster/Setup/HCWBlasterSetup.cs (rev 0) +++ trunk/plugins/HCWBlaster/Setup/HCWBlasterSetup.cs 2008-02-16 21:19:11 UTC (rev 1374) @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using TvControl; +using TvDatabase; +using TvLibrary.Log; + +namespace SetupTv.Sections +{ + public partial class HCWBlasterSetup : SetupTv.SectionSettings + { + public HCWBlasterSetup() + { + Log.Error("HCWBlasterSetup - Configuration created"); + InitializeComponent(); + } + + public override void OnSectionDeActivated() + { + base.OnSectionDeActivated(); + } + + public override void OnSectionActivated() + { + base.OnSectionActivated(); + } + + } +} + Added: trunk/plugins/HCWBlaster/Setup/HCWBlasterSetup.resx =================================================================== --- trunk/plugins/HCWBlaster/Setup/HCWBlasterSetup.resx (rev 0) +++ trunk/plugins/HCWBlaster/Setup/HCWBlasterSetup.resx 2008-02-16 21:19:11 UTC (rev 1374) @@ -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/HCWBlaster/obj/Release/HCWBlaster.csproj.FileListAbsolute.txt =================================================================== --- trunk/plugins/HCWBlaster/obj/Release/HCWBlaster.csproj.FileListAbsolute.txt (rev 0) +++ trunk/plugins/HCWBlaster/obj/Release/HCWBlaster.csproj.FileListAbsolute.txt 2008-02-16 21:19:11 UTC (rev 1374) @@ -0,0 +1,60 @@ +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\obj\Release\ResolveAssemblyReference.cache +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\obj\Release\HCWBlaster.csproj.GenerateResource.Cache +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\HCWBlaster.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\HCWBlaster.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\Gentle.Common.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\Gentle.Framework.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\PluginBase.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\SetupControls.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvBusinessLayer.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvControl.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TVDatabase.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TVLibrary.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvLibrary.Interfaces.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\log4net.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\DirectShowLib.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\MySql.Data.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TVDatabase.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\DirectShowLib.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvControl.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvControl.xml +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\SetupControls.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvBusinessLayer.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvLibrary.Interfaces.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvLibrary.Interfaces.xml +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\PluginBase.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TVLibrary.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TVLibrary.xml +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\obj\Release\HCWBlaster.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\obj\Release\HCWBlaster.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\obj\Release\SetupTv.Sections.HCWBlasterSetup.resources +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\HCWBlaster.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\HCWBlaster.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\log4net.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\DirectShowLib.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\MySql.Data.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TVDatabase.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\DirectShowLib.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvControl.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvControl.xml +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\SetupControls.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvLibrary.Interfaces.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvLibrary.Interfaces.xml +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\PluginBase.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TVLibrary.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TVLibrary.xml +D:\MediaPortal\HCWBlaster\HCWBlaster\obj\Release\ResolveAssemblyReference.cache +D:\MediaPortal\HCWBlaster\HCWBlaster\obj\Release\SetupTv.Sections.HCWBlasterSetup.resources +D:\MediaPortal\HCWBlaster\HCWBlaster\obj\Release\HCWBlaster.csproj.GenerateResource.Cache +D:\MediaPortal\HCWBlaster\HCWBlaster\obj\Release\HCWBlaster.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\obj\Release\HCWBlaster.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\Gentle.Common.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\Gentle.Framework.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\PluginBase.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\SetupControls.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvControl.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TVDatabase.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TVLibrary.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvLibrary.Interfaces.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvBusinessLayer.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvBusinessLayer.pdb Added: trunk/plugins/HCWBlaster/obj/Release/HCWBlaster.csproj.GenerateResource.Cache =================================================================== (Binary files differ) Property changes on: trunk/plugins/HCWBlaster/obj/Release/HCWBlaster.csproj.GenerateResource.Cache ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/HCWBlaster/obj/Release/HCWBlaster.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/HCWBlaster/obj/Release/HCWBlaster.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/HCWBlaster/obj/Release/HCWBlaster.pdb =================================================================== (Binary files differ) Property changes on: trunk/plugins/HCWBlaster/obj/Release/HCWBlaster.pdb ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/HCWBlaster/obj/Release/ResolveAssemblyReference.cache =================================================================== (Binary files differ) Property changes on: trunk/plugins/HCWBlaster/obj/Release/ResolveAssemblyReference.cache ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/HCWBlaster/obj/Release/SetupTv.Sections.HCWBlasterSetup.resources =================================================================== (Binary files differ) Property changes on: trunk/plugins/HCWBlaster/obj/Release/SetupTv.Sections.HCWBlasterSetup.resources ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/HCWBlaster.sln =================================================================== --- trunk/plugins/HCWBlaster.sln (rev 0) +++ trunk/plugins/HCWBlaster.sln 2008-02-16 21:19:11 UTC (rev 1374) @@ -0,0 +1,24 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HCWBlaster", "HCWBlaster\HCWBlaster.csproj", "{22B8AB41-D4A5-43FE-9C03-CDEBF262405F}" +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "SetupHCWBlaster", "SetupHCWBlaster\SetupHCWBlaster.vdproj", "{171DE429-9D22-4469-A6D2-7932B183B59A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {22B8AB41-D4A5-43FE-9C03-CDEBF262405F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22B8AB41-D4A5-43FE-9C03-CDEBF262405F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {22B8AB41-D4A5-43FE-9C03-CDEBF262405F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {22B8AB41-D4A5-43FE-9C03-CDEBF262405F}.Release|Any CPU.Build.0 = Release|Any CPU + {171DE429-9D22-4469-A6D2-7932B183B59A}.Debug|Any CPU.ActiveCfg = Debug + {171DE429-9D22-4469-A6D2-7932B183B59A}.Release|Any CPU.ActiveCfg = Release + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: trunk/plugins/HCWBlaster.suo =================================================================== (Binary files differ) Property changes on: trunk/plugins/HCWBlaster.suo ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/SetupHCWBlaster/SetupHCWBlaster.vdproj =================================================================== --- trunk/plugins/SetupHCWBlaster/SetupHCWBlaster.vdproj (rev 0) +++ trunk/plugins/SetupHCWBlaster/SetupHCWBlaster.vdproj 2008-02-16 21:19:11 UTC (rev 1374) @@ -0,0 +1,1353 @@ +"DeployProject" +{ +"VSVersion" = "3:800" +"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:SetupHCWBlaster" +"LanguageId" = "3:1033" +"CodePage" = "3:1252" +"UILanguageId" = "3:1033" +"SccProjectName" = "8:" +"SccLocalPath" = "8:" +"SccAuxPath" = "8:" +"SccProvider" = "8:" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_217BFC0B23AFF18CF32CCA44F4837B36" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_217BFC0B23AFF18CF32CCA44F4837B36" + "OwnerKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_352BEEFD5321FFA92B861BF06B62CF1A" + "OwnerKey" = "8:_DC22536393A72D89F8986609207E0727" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_352BEEFD5321FFA92B861BF06B62CF1A" + "OwnerKey" = "8:_DDB3683FB35DAB44839C8D70874FE50F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_352BEEFD5321FFA92B861BF06B62CF1A" + "OwnerKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_352BEEFD5321FFA92B861BF06B62CF1A" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_4B4613234B6FF31FC74526CA3B340692" + "OwnerKey" = "8:_8C4EC91CF117C198007385833014407F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_4B4613234B6FF31FC74526CA3B340692" + "OwnerKey" = "8:_DDB3683FB35DAB44839C8D70874FE50F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_4B4613234B6FF31FC74526CA3B340692" + "OwnerKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_4B4613234B6FF31FC74526CA3B340692" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_6035123B9E1D61D4957DCEE1C02E7910" + "OwnerKey" = "8:_B17F05FE65A0CF50B689C1E0DB3D1AB4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_6035123B9E1D61D4957DCEE1C02E7910" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_696654F179DD59B12B6F8832D34B365D" + "OwnerKey" = "8:_DC22536393A72D89F8986609207E0727" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_696654F179DD59B12B6F8832D34B365D" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_83162D8D54EC4E8013E60AF54500F2B6" + "OwnerKey" = "8:_352BEEFD5321FFA92B861BF06B62CF1A" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_83162D8D54EC4E8013E60AF54500F2B6" + "OwnerKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_83162D8D54EC4E8013E60AF54500F2B6" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_8C4EC91CF117C198007385833014407F" + "OwnerKey" = "8:_696654F179DD59B12B6F8832D34B365D" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_8C4EC91CF117C198007385833014407F" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_8C4EC91CF117C198007385833014407F" + "OwnerKey" = "8:_DDB3683FB35DAB44839C8D70874FE50F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_8C4EC91CF117C198007385833014407F" + "OwnerKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_8C4EC91CF117C198007385833014407F" + "OwnerKey" = "8:_DC22536393A72D89F8986609207E0727" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "OwnerKey" = "8:_DDB3683FB35DAB44839C8D70874FE50F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_B17F05FE65A0CF50B689C1E0DB3D1AB4" + "OwnerKey" = "8:_352BEEFD5321FFA92B861BF06B62CF1A" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_B17F05FE65A0CF50B689C1E0DB3D1AB4" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_B17F05FE65A0CF50B689C1E0DB3D1AB4" + "OwnerKey" = "8:_83162D8D54EC4E8013E60AF54500F2B6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_CEF06AFF46A9DF3333D7902E590297E5" + "OwnerKey" = "8:_DC22536393A72D89F8986609207E0727" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_CEF06AFF46A9DF3333D7902E590297E5" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_DC22536393A72D89F8986609207E0727" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_DDB3683FB35DAB44839C8D70874FE50F" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_DDB3683FB35DAB44839C8D70874FE50F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_217BFC0B23AFF18CF32CCA44F4837B36" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_DC22536393A72D89F8986609207E0727" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_352BEEFD5321FFA92B861BF06B62CF1A" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_83162D8D54EC4E8013E60AF54500F2B6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_B17F05FE65A0CF50B689C1E0DB3D1AB4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_6035123B9E1D61D4957DCEE1C02E7910" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_696654F179DD59B12B6F8832D34B365D" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_8C4EC91CF117C198007385833014407F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_4B4613234B6FF31FC74526CA3B340692" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_CEF06AFF46A9DF3333D7902E590297E5" + "MsmSig" = "8:_UNDEFINED" + } + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\SetupHCWBlaster.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + } + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:Release\\SetupHCWBlaster.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + } + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "ExternalPersistence" + { + "LaunchCondition" + { + "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_48342472FF724E81A96E13F4164D6B3E" + { + "Name" = "8:.NET Framework" + "Message" = "8:[VSDNETMSG]" + "Version" = "8:3.5.21022" + "AllowLaterVersions" = "11:FALSE" + "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=76617" + } + } + } + "File" + { + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_217BFC0B23AFF18CF32CCA44F4837B36" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:MySql.Data, Version=1.0.7.30072, Culture=neutral, PublicKeyToken=c5687fc88969c44d" + "ScatterAssemblies" + { + "_217BFC0B23AFF18CF32CCA44F4837B36" + { + "Name" = "8:MySql.Data.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:MySql.Data.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_34EB8F5B58B0481AAD20D7B8BE8FF867" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_352BEEFD5321FFA92B861BF06B62CF1A" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:TVDatabase, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_352BEEFD5321FFA92B861BF06B62CF1A" + { + "Name" = "8:TVDatabase.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:TVDatabase.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_34EB8F5B58B0481AAD20D7B8BE8FF867" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4B4613234B6FF31FC74526CA3B340692" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:DirectShowLib, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_4B4613234B6FF31FC74526CA3B340692" + { + "Name" = "8:DirectShowLib.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:DirectShowLib.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_34EB8F5B58B0481AAD20D7B8BE8FF867" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6035123B9E1D61D4957DCEE1C02E7910" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:log4net, Version=1.2.9.0, Culture=neutral, PublicKeyToken=b32731d11ce58905" + "ScatterAssemblies" + { + "_6035123B9E1D61D4957DCEE1C02E7910" + { + "Name" = "8:log4net.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:log4net.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_34EB8F5B58B0481AAD20D7B8BE8FF867" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_696654F179DD59B12B6F8832D34B365D" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:TvControl, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_696654F179DD59B12B6F8832D34B365D" + { + "Name" = "8:TvControl.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:TvControl.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_34EB8F5B58B0481AAD20D7B8BE8FF867" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_83162D8D54EC4E8013E60AF54500F2B6" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Gentle.Framework, Version=1.2.9.1286, Culture=neutral, PublicKeyToken=80b5de62e27be49b" + "ScatterAssemblies" + { + "_83162D8D54EC4E8013E60AF54500F2B6" + { + "Name" = "8:Gentle.Framework.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:Gentle.Framework.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_34EB8F5B58B0481AAD20D7B8BE8FF867" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_8C4EC91CF117C198007385833014407F" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:TvLibrary.Interfaces, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_8C4EC91CF117C198007385833014407F" + { + "Name" = "8:TvLibrary.Interfaces.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:TvLibrary.Interfaces.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_34EB8F5B58B0481AA... [truncated message content] |
From: <yk...@us...> - 2008-02-16 21:34:23
|
Revision: 1379 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1379&view=rev Author: ykamchi Date: 2008-02-16 13:34:22 -0800 (Sat, 16 Feb 2008) Log Message: ----------- Added items remotely D:\MediaPortal\HCWBlaster Added Paths: ----------- trunk/plugins/HCWBlaster/ trunk/plugins/HCWBlaster/HCWBlaster/ trunk/plugins/HCWBlaster/HCWBlaster/HCWBlaster.cs trunk/plugins/HCWBlaster/HCWBlaster/HCWBlaster.csproj trunk/plugins/HCWBlaster/HCWBlaster/HCWBlaster.csproj.user trunk/plugins/HCWBlaster/HCWBlaster/HCWIRBlaster.cs trunk/plugins/HCWBlaster/HCWBlaster/Properties/ trunk/plugins/HCWBlaster/HCWBlaster/Properties/AssemblyInfo.cs trunk/plugins/HCWBlaster/HCWBlaster/Service References/ trunk/plugins/HCWBlaster/HCWBlaster/Setup/ trunk/plugins/HCWBlaster/HCWBlaster/Setup/HCWBlasterSetup.Designer.cs trunk/plugins/HCWBlaster/HCWBlaster/Setup/HCWBlasterSetup.cs trunk/plugins/HCWBlaster/HCWBlaster/Setup/HCWBlasterSetup.resx trunk/plugins/HCWBlaster/HCWBlaster/bin/ trunk/plugins/HCWBlaster/HCWBlaster/bin/Debug/ trunk/plugins/HCWBlaster/HCWBlaster/bin/Release/ trunk/plugins/HCWBlaster/HCWBlaster/obj/ trunk/plugins/HCWBlaster/HCWBlaster/obj/Debug/ trunk/plugins/HCWBlaster/HCWBlaster/obj/Debug/TempPE/ trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/ trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/HCWBlaster.csproj.FileListAbsolute.txt trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/HCWBlaster.csproj.GenerateResource.Cache trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/HCWBlaster.dll trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/HCWBlaster.pdb trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/ResolveAssemblyReference.cache trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/SetupTv.Sections.HCWBlasterSetup.resources trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/TempPE/ trunk/plugins/HCWBlaster/HCWBlaster.sln trunk/plugins/HCWBlaster/HCWBlaster.suo trunk/plugins/HCWBlaster/SetupHCWBlaster/ trunk/plugins/HCWBlaster/SetupHCWBlaster/Debug/ trunk/plugins/HCWBlaster/SetupHCWBlaster/Release/ trunk/plugins/HCWBlaster/SetupHCWBlaster/SetupHCWBlaster.vdproj Added: trunk/plugins/HCWBlaster/HCWBlaster/HCWBlaster.cs =================================================================== --- trunk/plugins/HCWBlaster/HCWBlaster/HCWBlaster.cs (rev 0) +++ trunk/plugins/HCWBlaster/HCWBlaster/HCWBlaster.cs 2008-02-16 21:34:22 UTC (rev 1379) @@ -0,0 +1,137 @@ +using System; +using System.Collections.Generic; +using System.Text; +using TvLibrary.Log; +using TvLibrary.Interfaces; +using TvLibrary.Implementations; +using TvEngine; +using TvEngine.Events; +using TvControl; +using SetupTv.Sections; +using TvDatabase; +using SetupTv; + + +namespace Hauppauge +{ + public class HCWBlaster : TvEngine.ITvServerPlugin, ITvServerPluginStartedAll + { + + #region Members + + static bool _runAtStart = true; + static string _program = "ykamchi"; + static string _parameters = "yohay"; + + #endregion Members + + #region Properties + + /// <summary> + /// returns the name of the plugin + /// </summary> + public string Name + { + get { return "Hauppauge Blaster"; } + } + /// <summary> + /// returns the version of the plugin + /// </summary> + public string Version + { + get { return "1.0.0.0"; } + } + /// <summary> + /// returns the author of the plugin + /// </summary> + public string Author + { + get { return "ykamchi"; } + } + /// <summary> + /// returns if the plugin should only run on the master server + /// or also on slave servers + /// </summary> + public bool MasterOnly + { + get { return false; } + } + + internal static bool RunAtStart + { + get { return _runAtStart; } + set { _runAtStart = value; } + } + internal static string Program + { + get { return _program; } + set { _program = value; } + } + internal static string Parameters + { + get { return _parameters; } + set { _parameters = value; } + } + + #endregion Properties + + #region IPlugin Members + + [CLSCompliant(false)] + public void Start(IController controller) + { + Log.Info("HCWBlaster.Start: Starting"); + ITvServerEvent events = GlobalServiceProvider.Instance.Get<ITvServerEvent>(); + events.OnTvServerEvent += new TvServerEventHandler(events_OnTvServerEvent); + Log.Info("HCWBlaster.Start: Started"); + } + + public void Stop() + { + Log.Info("HCWBlaster.Stop: Stopping"); + ITvServerEvent events = GlobalServiceProvider.Instance.Get<ITvServerEvent>(); + events.OnTvServerEvent -= new TvServerEventHandler(events_OnTvServerEvent); + Log.Info("HCWBlaster.Stop: Stopped"); + } + [CLSCompliant(false)] + + public SetupTv.SectionSettings Setup + { + get { return new SetupTv.Sections.HCWBlasterSetup(); } + } + + #endregion + + #region ITvServerPluginStartedAll Members + + public void StartedAll() + { + Log.Info("HCWBlaster.StartedAll: Started All"); + } + + #endregion + + void events_OnTvServerEvent(object sender, EventArgs eventArgs) + { + try + { + TvServerEventArgs tvEvent = (TvServerEventArgs)eventArgs; + AnalogChannel analogChannel = tvEvent.channel as AnalogChannel; + if (analogChannel == null) return; + if (tvEvent.EventType == TvServerEventType.StartZapChannel) + { + Log.WriteFile("ServerBlaster - CardId: {0}, Channel: {1} - Channel:{2}", tvEvent.Card.Id, analogChannel.ChannelNumber, analogChannel.Name); + HCWIRBlaster blaster = new HCWIRBlaster(); + blaster.blastChannel(analogChannel); + Log.WriteFile("ServerBlaster - Done"); + + } + } + catch (Exception e) + { + Log.WriteFile("ServerBlaster - Exception occured on events_OnTvServerEvent, sender = {0}, eventArgs = {1}, Exception = {2}", sender, eventArgs, e); + } + } + + } +} Added: trunk/plugins/HCWBlaster/HCWBlaster/HCWBlaster.csproj =================================================================== --- trunk/plugins/HCWBlaster/HCWBlaster/HCWBlaster.csproj (rev 0) +++ trunk/plugins/HCWBlaster/HCWBlaster/HCWBlaster.csproj 2008-02-16 21:34:22 UTC (rev 1379) @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>9.0.21022</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{22B8AB41-D4A5-43FE-9C03-CDEBF262405F}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>HCWBlaster</RootNamespace> + <AssemblyName>HCWBlaster</AssemblyName> + <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + </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> + <ItemGroup> + <Reference Include="Gentle.Common, Version=1.2.9.1285, Culture=neutral, PublicKeyToken=80b5de62e27be49b"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\TVLibrary\bin\Release\Gentle.Common.dll</HintPath> + </Reference> + <Reference Include="Gentle.Framework, Version=1.2.9.1286, Culture=neutral, PublicKeyToken=80b5de62e27be49b"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\TVLibrary\bin\Release\Gentle.Framework.dll</HintPath> + </Reference> + <Reference Include="PluginBase, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\Plugins\PluginBase\bin\Release\PluginBase.dll</HintPath> + </Reference> + <Reference Include="SetupControls, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\Plugins\PluginBase\bin\Release\SetupControls.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Core"> + <RequiredTargetFramework>3.5</RequiredTargetFramework> + </Reference> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml.Linq"> + <RequiredTargetFramework>3.5</RequiredTargetFramework> + </Reference> + <Reference Include="System.Data.DataSetExtensions"> + <RequiredTargetFramework>3.5</RequiredTargetFramework> + </Reference> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + <Reference Include="TvControl, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\TvControl\bin\Release\TvControl.dll</HintPath> + </Reference> + <Reference Include="TVDatabase, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\TVDatabase\bin\Release\TVDatabase.dll</HintPath> + </Reference> + <Reference Include="TVLibrary, Version=1.0.0.1, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\TVLibrary\bin\Release\TVLibrary.dll</HintPath> + </Reference> + <Reference Include="TvLibrary.Interfaces, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\TvEngine3\TVLibrary\TVLibrary\bin\Release\TvLibrary.Interfaces.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="HCWIRBlaster.cs" /> + <Compile Include="HCWBlaster.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="Setup\HCWBlasterSetup.cs"> + <SubType>UserControl</SubType> + </Compile> + <Compile Include="Setup\HCWBlasterSetup.Designer.cs"> + <DependentUpon>HCWBlasterSetup.cs</DependentUpon> + </Compile> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Setup\HCWBlasterSetup.resx"> + <DependentUpon>HCWBlasterSetup.cs</DependentUpon> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <WCFMetadata Include="Service References\" /> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\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/HCWBlaster/HCWBlaster/HCWBlaster.csproj.user =================================================================== --- trunk/plugins/HCWBlaster/HCWBlaster/HCWBlaster.csproj.user (rev 0) +++ trunk/plugins/HCWBlaster/HCWBlaster/HCWBlaster.csproj.user 2008-02-16 21:34:22 UTC (rev 1379) @@ -0,0 +1,5 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectView>ProjectFiles</ProjectView> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/HCWBlaster/HCWBlaster/HCWIRBlaster.cs =================================================================== --- trunk/plugins/HCWBlaster/HCWBlaster/HCWIRBlaster.cs (rev 0) +++ trunk/plugins/HCWBlaster/HCWBlaster/HCWIRBlaster.cs 2008-02-16 21:34:22 UTC (rev 1379) @@ -0,0 +1,146 @@ +#region Copyright (C) 2005-2007 Team MediaPortal + +/* + * Copyright (C) 2005-2007 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; +using System.Runtime.InteropServices; + +using TvLibrary.Log; +using TvControl; +using SetupTv; +using TvEngine.Events; +using TvEngine; +using TvLibrary.Interfaces; +using TvLibrary.Implementations; + +namespace Hauppauge +{ + /// <summary> + /// Summary description for HCWIRBlaster. + /// </summary> + public class HCWIRBlaster + { + + [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] + private static extern IntPtr LoadLibraryEx(string fileName, IntPtr dummy, int flags); + + [DllImport("hcwIRblast.dll")] + private static extern int UIR_Close(); + + [DllImport("hcwIRblast.dll")] + private static extern int UIR_GetConfig(int device, int codeset, ref UIR_CFG cfgPtr); + + [DllImport("hcwIRblast.dll")] + private static extern int UIR_GotoChannel(int device, int codeset, int channel); + + [DllImport("hcwIRblast.dll")] + private static extern ushort UIR_Open(uint bVerbose, ushort wIRPort); + + private static int HCWRetVal; + private static UIR_CFG HCWIRConfig; + + [StructLayout(LayoutKind.Sequential, Pack = 8)] + public struct UIR_CFG + { + public int a; // 0x38; + public int b; + public int c; //Region + public int d; //Device + public int e; //Vendor + public int f; //Code Set + public int g; + public int h; + public int i; //Minimum Digits + public int j; //Digit Delay + public int k; //Need Enter + public int l; //Enter Delay + public int m; //Tune Delay + public int n; //One Digit Delay + } + + + public HCWIRBlaster() + { + } + + static HCWIRBlaster() + { + HCWIRBlaster.HCWRetVal = 0; + HCWIRBlaster.HCWIRConfig = new UIR_CFG(); + } + + + + public void blastChannel(IChannel channel) + { + + Log.Info("HCWIRBlaster: In blastChannel, trying to change to external id {0}", channel); + AnalogChannel analogChannel = channel as AnalogChannel; + + + + if (HCWIRBlaster.HCWRetVal == 0) + { + + HCWIRBlaster.HCWRetVal = HCWIRBlaster.UIR_Open(0, 0); + if (HCWIRBlaster.HCWRetVal == 0) + { + Log.Info("HCWIRBlaster: Failed to get Blaster Handle"); + return; + } + + HCWIRBlaster.HCWIRConfig.a = 0x38; + int RetCfg = HCWIRBlaster.UIR_GetConfig(-1, -1, ref HCWIRBlaster.HCWIRConfig); + if (RetCfg == 0) + { + string devset1 = "Device : " + HCWIRBlaster.HCWIRConfig.d.ToString() + " Vendor : " + HCWIRBlaster.HCWIRConfig.e.ToString(); + string devset2 = "Region : " + HCWIRBlaster.HCWIRConfig.c.ToString() + " Code set : " + HCWIRBlaster.HCWIRConfig.f.ToString(); + string devset3 = "Digit Delay : " + HCWIRBlaster.HCWIRConfig.j.ToString() + " Minimum Digits: " + HCWIRBlaster.HCWIRConfig.i.ToString(); + string devset4 = "OneDigitDelay: " + HCWIRBlaster.HCWIRConfig.n.ToString() + " Tune Delay : " + HCWIRBlaster.HCWIRConfig.m.ToString(); + string devset5 = "Need Enter : " + HCWIRBlaster.HCWIRConfig.k.ToString() + " Enter Delay : " + HCWIRBlaster.HCWIRConfig.l.ToString(); + + Log.Info("HCWBlaster: " + devset1); + Log.Info("HCWBlaster: " + devset2); + Log.Info("HCWBlaster: " + devset3); + Log.Info("HCWBlaster: " + devset4); + Log.Info("HCWBlaster: " + devset5); + + } + else + { + HCWIRBlaster.UIR_Close(); + HCWIRBlaster.HCWRetVal = 0; + } + } + int RetChg = HCWIRBlaster.UIR_GotoChannel(HCWIRBlaster.HCWIRConfig.d, HCWIRBlaster.HCWIRConfig.f, analogChannel.ChannelNumber); + if (RetChg != 0) + { + Log.Info("HCWBlaster: UIR_GotoChannel() failed: " + RetChg.ToString()); + } + + Log.Info("HCWBlaster: Finished Changing channels: {0}", channel); + } + + } +} Added: trunk/plugins/HCWBlaster/HCWBlaster/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/HCWBlaster/HCWBlaster/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/HCWBlaster/HCWBlaster/Properties/AssemblyInfo.cs 2008-02-16 21:34:22 UTC (rev 1379) @@ -0,0 +1,36 @@ +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("HCWBlaster")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Cisco Systems, Inc.")] +[assembly: AssemblyProduct("HCWBlaster")] +[assembly: AssemblyCopyright("Copyright © Cisco Systems, Inc. 2008")] +[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("2b8f7d0e-925e-4501-9ee8-ec085a1676a3")] + +// 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 Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] Added: trunk/plugins/HCWBlaster/HCWBlaster/Setup/HCWBlasterSetup.Designer.cs =================================================================== --- trunk/plugins/HCWBlaster/HCWBlaster/Setup/HCWBlasterSetup.Designer.cs (rev 0) +++ trunk/plugins/HCWBlaster/HCWBlaster/Setup/HCWBlasterSetup.Designer.cs 2008-02-16 21:34:22 UTC (rev 1379) @@ -0,0 +1,99 @@ +namespace SetupTv.Sections +{ + partial class HCWBlasterSetup + { + /// <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 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.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.SuspendLayout(); + // + // tabControl1 + // + this.tabControl1.AccessibleRole = System.Windows.Forms.AccessibleRole.HelpBalloon; + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Location = new System.Drawing.Point(3, 3); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(574, 308); + this.tabControl1.TabIndex = 8; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.label2); + this.tabPage1.Controls.Add(this.label1); + this.tabPage1.Location = new System.Drawing.Point(4, 22); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(566, 282); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "General Setup"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(16, 16); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(400, 13); + this.label1.TabIndex = 9; + this.label1.Text = "This plugin sends command to the huappuage IR blaster upon TV channel change"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(16, 251); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(208, 13); + this.label2.TabIndex = 10; + this.label2.Text = "* Currently there is no configuration options"; + // + // HCWBlasterSetup + // + this.Controls.Add(this.tabControl1); + this.Name = "HCWBlasterSetup"; + this.Size = new System.Drawing.Size(590, 325); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + + } +} Added: trunk/plugins/HCWBlaster/HCWBlaster/Setup/HCWBlasterSetup.cs =================================================================== --- trunk/plugins/HCWBlaster/HCWBlaster/Setup/HCWBlasterSetup.cs (rev 0) +++ trunk/plugins/HCWBlaster/HCWBlaster/Setup/HCWBlasterSetup.cs 2008-02-16 21:34:22 UTC (rev 1379) @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using TvControl; +using TvDatabase; +using TvLibrary.Log; + +namespace SetupTv.Sections +{ + public partial class HCWBlasterSetup : SetupTv.SectionSettings + { + public HCWBlasterSetup() + { + Log.Error("HCWBlasterSetup - Configuration created"); + InitializeComponent(); + } + + public override void OnSectionDeActivated() + { + base.OnSectionDeActivated(); + } + + public override void OnSectionActivated() + { + base.OnSectionActivated(); + } + + } +} + Added: trunk/plugins/HCWBlaster/HCWBlaster/Setup/HCWBlasterSetup.resx =================================================================== --- trunk/plugins/HCWBlaster/HCWBlaster/Setup/HCWBlasterSetup.resx (rev 0) +++ trunk/plugins/HCWBlaster/HCWBlaster/Setup/HCWBlasterSetup.resx 2008-02-16 21:34:22 UTC (rev 1379) @@ -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/HCWBlaster/HCWBlaster/obj/Release/HCWBlaster.csproj.FileListAbsolute.txt =================================================================== --- trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/HCWBlaster.csproj.FileListAbsolute.txt (rev 0) +++ trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/HCWBlaster.csproj.FileListAbsolute.txt 2008-02-16 21:34:22 UTC (rev 1379) @@ -0,0 +1,60 @@ +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\obj\Release\ResolveAssemblyReference.cache +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\obj\Release\HCWBlaster.csproj.GenerateResource.Cache +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\HCWBlaster.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\HCWBlaster.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\Gentle.Common.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\Gentle.Framework.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\PluginBase.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\SetupControls.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvBusinessLayer.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvControl.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TVDatabase.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TVLibrary.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvLibrary.Interfaces.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\log4net.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\DirectShowLib.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\MySql.Data.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TVDatabase.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\DirectShowLib.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvControl.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvControl.xml +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\SetupControls.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvBusinessLayer.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvLibrary.Interfaces.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TvLibrary.Interfaces.xml +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\PluginBase.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TVLibrary.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\bin\Release\TVLibrary.xml +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\obj\Release\HCWBlaster.dll +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\obj\Release\HCWBlaster.pdb +C:\Documents and Settings\ykamchi\My Documents\Visual Studio 2008\Projects\HCWBlaster\HCWBlaster\obj\Release\SetupTv.Sections.HCWBlasterSetup.resources +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\HCWBlaster.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\HCWBlaster.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\log4net.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\DirectShowLib.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\MySql.Data.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TVDatabase.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\DirectShowLib.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvControl.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvControl.xml +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\SetupControls.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvLibrary.Interfaces.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvLibrary.Interfaces.xml +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\PluginBase.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TVLibrary.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TVLibrary.xml +D:\MediaPortal\HCWBlaster\HCWBlaster\obj\Release\ResolveAssemblyReference.cache +D:\MediaPortal\HCWBlaster\HCWBlaster\obj\Release\SetupTv.Sections.HCWBlasterSetup.resources +D:\MediaPortal\HCWBlaster\HCWBlaster\obj\Release\HCWBlaster.csproj.GenerateResource.Cache +D:\MediaPortal\HCWBlaster\HCWBlaster\obj\Release\HCWBlaster.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\obj\Release\HCWBlaster.pdb +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\Gentle.Common.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\Gentle.Framework.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\PluginBase.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\SetupControls.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvControl.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TVDatabase.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TVLibrary.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvLibrary.Interfaces.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvBusinessLayer.dll +D:\MediaPortal\HCWBlaster\HCWBlaster\bin\Release\TvBusinessLayer.pdb Added: trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/HCWBlaster.csproj.GenerateResource.Cache =================================================================== (Binary files differ) Property changes on: trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/HCWBlaster.csproj.GenerateResource.Cache ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/HCWBlaster.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/HCWBlaster.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/HCWBlaster.pdb =================================================================== (Binary files differ) Property changes on: trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/HCWBlaster.pdb ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/ResolveAssemblyReference.cache =================================================================== (Binary files differ) Property changes on: trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/ResolveAssemblyReference.cache ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/SetupTv.Sections.HCWBlasterSetup.resources =================================================================== (Binary files differ) Property changes on: trunk/plugins/HCWBlaster/HCWBlaster/obj/Release/SetupTv.Sections.HCWBlasterSetup.resources ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/HCWBlaster/HCWBlaster.sln =================================================================== --- trunk/plugins/HCWBlaster/HCWBlaster.sln (rev 0) +++ trunk/plugins/HCWBlaster/HCWBlaster.sln 2008-02-16 21:34:22 UTC (rev 1379) @@ -0,0 +1,24 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HCWBlaster", "HCWBlaster\HCWBlaster.csproj", "{22B8AB41-D4A5-43FE-9C03-CDEBF262405F}" +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "SetupHCWBlaster", "SetupHCWBlaster\SetupHCWBlaster.vdproj", "{171DE429-9D22-4469-A6D2-7932B183B59A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {22B8AB41-D4A5-43FE-9C03-CDEBF262405F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22B8AB41-D4A5-43FE-9C03-CDEBF262405F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {22B8AB41-D4A5-43FE-9C03-CDEBF262405F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {22B8AB41-D4A5-43FE-9C03-CDEBF262405F}.Release|Any CPU.Build.0 = Release|Any CPU + {171DE429-9D22-4469-A6D2-7932B183B59A}.Debug|Any CPU.ActiveCfg = Debug + {171DE429-9D22-4469-A6D2-7932B183B59A}.Release|Any CPU.ActiveCfg = Release + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: trunk/plugins/HCWBlaster/HCWBlaster.suo =================================================================== (Binary files differ) Property changes on: trunk/plugins/HCWBlaster/HCWBlaster.suo ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/HCWBlaster/SetupHCWBlaster/SetupHCWBlaster.vdproj =================================================================== --- trunk/plugins/HCWBlaster/SetupHCWBlaster/SetupHCWBlaster.vdproj (rev 0) +++ trunk/plugins/HCWBlaster/SetupHCWBlaster/SetupHCWBlaster.vdproj 2008-02-16 21:34:22 UTC (rev 1379) @@ -0,0 +1,1353 @@ +"DeployProject" +{ +"VSVersion" = "3:800" +"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:SetupHCWBlaster" +"LanguageId" = "3:1033" +"CodePage" = "3:1252" +"UILanguageId" = "3:1033" +"SccProjectName" = "8:" +"SccLocalPath" = "8:" +"SccAuxPath" = "8:" +"SccProvider" = "8:" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_217BFC0B23AFF18CF32CCA44F4837B36" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_217BFC0B23AFF18CF32CCA44F4837B36" + "OwnerKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_352BEEFD5321FFA92B861BF06B62CF1A" + "OwnerKey" = "8:_DC22536393A72D89F8986609207E0727" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_352BEEFD5321FFA92B861BF06B62CF1A" + "OwnerKey" = "8:_DDB3683FB35DAB44839C8D70874FE50F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_352BEEFD5321FFA92B861BF06B62CF1A" + "OwnerKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_352BEEFD5321FFA92B861BF06B62CF1A" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_4B4613234B6FF31FC74526CA3B340692" + "OwnerKey" = "8:_8C4EC91CF117C198007385833014407F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_4B4613234B6FF31FC74526CA3B340692" + "OwnerKey" = "8:_DDB3683FB35DAB44839C8D70874FE50F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_4B4613234B6FF31FC74526CA3B340692" + "OwnerKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_4B4613234B6FF31FC74526CA3B340692" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_6035123B9E1D61D4957DCEE1C02E7910" + "OwnerKey" = "8:_B17F05FE65A0CF50B689C1E0DB3D1AB4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_6035123B9E1D61D4957DCEE1C02E7910" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_696654F179DD59B12B6F8832D34B365D" + "OwnerKey" = "8:_DC22536393A72D89F8986609207E0727" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_696654F179DD59B12B6F8832D34B365D" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_83162D8D54EC4E8013E60AF54500F2B6" + "OwnerKey" = "8:_352BEEFD5321FFA92B861BF06B62CF1A" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_83162D8D54EC4E8013E60AF54500F2B6" + "OwnerKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_83162D8D54EC4E8013E60AF54500F2B6" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_8C4EC91CF117C198007385833014407F" + "OwnerKey" = "8:_696654F179DD59B12B6F8832D34B365D" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_8C4EC91CF117C198007385833014407F" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_8C4EC91CF117C198007385833014407F" + "OwnerKey" = "8:_DDB3683FB35DAB44839C8D70874FE50F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_8C4EC91CF117C198007385833014407F" + "OwnerKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_8C4EC91CF117C198007385833014407F" + "OwnerKey" = "8:_DC22536393A72D89F8986609207E0727" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "OwnerKey" = "8:_DDB3683FB35DAB44839C8D70874FE50F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_B17F05FE65A0CF50B689C1E0DB3D1AB4" + "OwnerKey" = "8:_352BEEFD5321FFA92B861BF06B62CF1A" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_B17F05FE65A0CF50B689C1E0DB3D1AB4" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_B17F05FE65A0CF50B689C1E0DB3D1AB4" + "OwnerKey" = "8:_83162D8D54EC4E8013E60AF54500F2B6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_CEF06AFF46A9DF3333D7902E590297E5" + "OwnerKey" = "8:_DC22536393A72D89F8986609207E0727" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_CEF06AFF46A9DF3333D7902E590297E5" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_DC22536393A72D89F8986609207E0727" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_DDB3683FB35DAB44839C8D70874FE50F" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_A2A1BD129D6F4F358FBF765829230CA4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_DDB3683FB35DAB44839C8D70874FE50F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_AF28252950FC2C300841C73CDAB35F01" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_217BFC0B23AFF18CF32CCA44F4837B36" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_DC22536393A72D89F8986609207E0727" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_352BEEFD5321FFA92B861BF06B62CF1A" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_83162D8D54EC4E8013E60AF54500F2B6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_B17F05FE65A0CF50B689C1E0DB3D1AB4" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_6035123B9E1D61D4957DCEE1C02E7910" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_696654F179DD59B12B6F8832D34B365D" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_8C4EC91CF117C198007385833014407F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_4B4613234B6FF31FC74526CA3B340692" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_CEF06AFF46A9DF3333D7902E590297E5" + "MsmSig" = "8:_UNDEFINED" + } + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\SetupHCWBlaster.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + } + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:Release\\SetupHCWBlaster.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + } + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "ExternalPersistence" + { + "LaunchCondition" + { + "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_48342472FF724E81A96E13F4164D6B3E" + { + "Name" = "8:.NET Framework" + "Message" = "8:[VSDNETMSG]" + "Version" = "8:3.5.21022" + "AllowLaterVersions" = "11:FALSE" + "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=76617" + } + } + } + "File" + { + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_217BFC0B23AFF18CF32CCA44F4837B36" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:MySql.Data, Version=1.0.7.30072, Culture=neutral, PublicKeyToken=c5687fc88969c44d" + "ScatterAssemblies" + { + "_217BFC0B23AFF18CF32CCA44F4837B36" + { + "Name" = "8:MySql.Data.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:MySql.Data.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_34EB8F5B58B0481AAD20D7B8BE8FF867" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_352BEEFD5321FFA92B861BF06B62CF1A" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:TVDatabase, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_352BEEFD5321FFA92B861BF06B62CF1A" + { + "Name" = "8:TVDatabase.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:TVDatabase.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_34EB8F5B58B0481AAD20D7B8BE8FF867" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4B4613234B6FF31FC74526CA3B340692" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:DirectShowLib, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_4B4613234B6FF31FC74526CA3B340692" + { + "Name" = "8:DirectShowLib.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:DirectShowLib.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_34EB8F5B58B0481AAD20D7B8BE8FF867" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6035123B9E1D61D4957DCEE1C02E7910" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:log4net, Version=1.2.9.0, Culture=neutral, PublicKeyToken=b32731d11ce58905" + "ScatterAssemblies" + { + "_6035123B9E1D61D4957DCEE1C02E7910" + { + "Name" = "8:log4net.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:log4net.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_34EB8F5B58B0481AAD20D7B8BE8FF867" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_696654F179DD59B12B6F8832D34B365D" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:TvControl, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_696654F179DD59B12B6F8832D34B365D" + { + "Name" = "8:TvControl.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:TvControl.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_34EB8F5B58B0481AAD20D7B8BE8FF867" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_83162D8D54EC4E8013E60AF54500F2B6" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Gentle.Framework, Version=1.2.9.1286, Culture=neutral, PublicKeyToken=80b5de62e27be49b" + "ScatterAssemblies" + { + "_83162D8D54EC4E8013E60AF54500F2B6" + { + "Name" = "8:Gentle.Framework.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:Gentle.Framework.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_34EB8F5B58B0481AAD20D7B8BE8FF867" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "Packag... [truncated message content] |
From: <yk...@us...> - 2008-02-16 21:53:13
|
Revision: 1380 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1380&view=rev Author: ykamchi Date: 2008-02-16 13:53:03 -0800 (Sat, 16 Feb 2008) Log Message: ----------- Enable streaming sharing between computers. Mainly designed for webcamera sharring Added Paths: ----------- trunk/plugins/StreamingServer/ trunk/plugins/StreamingServer/DShowNET/ trunk/plugins/StreamingServer/DShowNET/AssemblyInfo.cs trunk/plugins/StreamingServer/DShowNET/DShowNET.csproj trunk/plugins/StreamingServer/DShowNET/DShowNET.csproj.user trunk/plugins/StreamingServer/DShowNET/DShowNET.sln trunk/plugins/StreamingServer/DShowNET/DShowNET.suo trunk/plugins/StreamingServer/DShowNET/DsBugWO.cs trunk/plugins/StreamingServer/DShowNET/DsControl.cs trunk/plugins/StreamingServer/DShowNET/DsCore.cs trunk/plugins/StreamingServer/DShowNET/DsDVD.cs trunk/plugins/StreamingServer/DShowNET/DsDevice.cs trunk/plugins/StreamingServer/DShowNET/DsExtend.cs trunk/plugins/StreamingServer/DShowNET/DsUtils.cs trunk/plugins/StreamingServer/DShowNET/DsUuids.cs trunk/plugins/StreamingServer/DShowNET/DsVmRender.cs trunk/plugins/StreamingServer/DShowNET/DsVmr9.cs trunk/plugins/StreamingServer/DShowNET/QEdit.cs trunk/plugins/StreamingServer/DShowNET/bin/ trunk/plugins/StreamingServer/DShowNET/bin/Debug/ trunk/plugins/StreamingServer/DShowNET/bin/Release/ trunk/plugins/StreamingServer/DShowNET/obj/ trunk/plugins/StreamingServer/DShowNET/obj/Debug/ trunk/plugins/StreamingServer/DShowNET/obj/Debug/DShowNET.csproj.FileListAbsolute.txt trunk/plugins/StreamingServer/DShowNET/obj/Debug/DShowNET.dll trunk/plugins/StreamingServer/DShowNET/obj/Debug/DShowNET.pdb trunk/plugins/StreamingServer/DShowNET/obj/Debug/Refactor/ trunk/plugins/StreamingServer/DShowNET/obj/Debug/Refactor/DShowNET.dll trunk/plugins/StreamingServer/DShowNET/obj/Debug/TempPE/ trunk/plugins/StreamingServer/DShowNET/obj/Release/ trunk/plugins/StreamingServer/DShowNET/obj/Release/DShowNET.csproj.FileListAbsolute.txt trunk/plugins/StreamingServer/DShowNET/obj/Release/DShowNET.dll trunk/plugins/StreamingServer/DShowNET/obj/Release/TempPE/ trunk/plugins/StreamingServer/DirectX.Capture/ trunk/plugins/StreamingServer/DirectX.Capture/AssemblyInfo.cs trunk/plugins/StreamingServer/DirectX.Capture/AudioCapabilities.cs trunk/plugins/StreamingServer/DirectX.Capture/AudioSource.cs trunk/plugins/StreamingServer/DirectX.Capture/Capture.cs trunk/plugins/StreamingServer/DirectX.Capture/CrossbarSource.cs trunk/plugins/StreamingServer/DirectX.Capture/DeviceInUseException.cs trunk/plugins/StreamingServer/DirectX.Capture/DirectShowPropertyPage.cs trunk/plugins/StreamingServer/DirectX.Capture/DirectX.Capture.csproj trunk/plugins/StreamingServer/DirectX.Capture/DirectX.Capture.csproj.user trunk/plugins/StreamingServer/DirectX.Capture/DirectX.Capture.xml trunk/plugins/StreamingServer/DirectX.Capture/Filter.cs trunk/plugins/StreamingServer/DirectX.Capture/FilterCollection.cs trunk/plugins/StreamingServer/DirectX.Capture/Filters.cs trunk/plugins/StreamingServer/DirectX.Capture/PropertyPage.cs trunk/plugins/StreamingServer/DirectX.Capture/PropertyPageCollection.cs trunk/plugins/StreamingServer/DirectX.Capture/Source.cs trunk/plugins/StreamingServer/DirectX.Capture/SourceCollection.cs trunk/plugins/StreamingServer/DirectX.Capture/Tuner.cs trunk/plugins/StreamingServer/DirectX.Capture/VfwCompressorPropertyPage.cs trunk/plugins/StreamingServer/DirectX.Capture/VideoCapabilities.cs trunk/plugins/StreamingServer/DirectX.Capture/bin/ trunk/plugins/StreamingServer/DirectX.Capture/bin/Debug/ trunk/plugins/StreamingServer/DirectX.Capture/bin/Release/ trunk/plugins/StreamingServer/DirectX.Capture/obj/ trunk/plugins/StreamingServer/DirectX.Capture/obj/Debug/ trunk/plugins/StreamingServer/DirectX.Capture/obj/Debug/DirectX.Capture.csproj.FileListAbsolute.txt trunk/plugins/StreamingServer/DirectX.Capture/obj/Debug/DirectX.Capture.dll trunk/plugins/StreamingServer/DirectX.Capture/obj/Debug/DirectX.Capture.pdb trunk/plugins/StreamingServer/DirectX.Capture/obj/Debug/Refactor/ trunk/plugins/StreamingServer/DirectX.Capture/obj/Debug/Refactor/DirectX.Capture.dll trunk/plugins/StreamingServer/DirectX.Capture/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/StreamingServer/DirectX.Capture/obj/Debug/TempPE/ trunk/plugins/StreamingServer/DirectX.Capture/obj/Release/ trunk/plugins/StreamingServer/DirectX.Capture/obj/Release/DirectX.Capture.csproj.FileListAbsolute.txt trunk/plugins/StreamingServer/DirectX.Capture/obj/Release/DirectX.Capture.dll trunk/plugins/StreamingServer/DirectX.Capture/obj/Release/ResolveAssemblyReference.cache trunk/plugins/StreamingServer/DirectX.Capture/obj/Release/TempPE/ trunk/plugins/StreamingServer/StreamingClient/ trunk/plugins/StreamingServer/StreamingClient/Properties/ trunk/plugins/StreamingServer/StreamingClient/Properties/AssemblyInfo.cs trunk/plugins/StreamingServer/StreamingClient/StreamingClient.cs trunk/plugins/StreamingServer/StreamingClient/StreamingClient.csproj trunk/plugins/StreamingServer/StreamingClient/StreamingClientConfiguration.Designer.cs trunk/plugins/StreamingServer/StreamingClient/StreamingClientConfiguration.cs trunk/plugins/StreamingServer/StreamingClient/StreamingClientConfiguration.resx trunk/plugins/StreamingServer/StreamingClient/StreamingUtils.cs trunk/plugins/StreamingServer/StreamingClient/bin/ trunk/plugins/StreamingServer/StreamingClient/bin/Debug/ trunk/plugins/StreamingServer/StreamingClient/myStreamingClient.xml trunk/plugins/StreamingServer/StreamingClient/obj/ trunk/plugins/StreamingServer/StreamingClient/obj/Debug/ trunk/plugins/StreamingServer/StreamingClient/obj/Debug/Interop.DirectShowStreamLib.dll trunk/plugins/StreamingServer/StreamingClient/obj/Debug/Refactor/ trunk/plugins/StreamingServer/StreamingClient/obj/Debug/StreamingClient.csproj.FileListAbsolute.txt trunk/plugins/StreamingServer/StreamingClient/obj/Debug/StreamingClient.csproj.GenerateResource.Cache trunk/plugins/StreamingServer/StreamingClient/obj/Debug/StreamingClient.csproj.ResolveComReference.cache trunk/plugins/StreamingServer/StreamingClient/obj/Debug/StreamingClient.dll trunk/plugins/StreamingServer/StreamingClient/obj/Debug/StreamingClient.pdb trunk/plugins/StreamingServer/StreamingClient/obj/Debug/StreamingServer.WindowPlugin.StreamingClientConfiguration.resources trunk/plugins/StreamingServer/StreamingClient/obj/Debug/TempPE/ trunk/plugins/StreamingServer/StreamingClient/obj/Debug/WindowPlugin.csproj.FileListAbsolute.txt trunk/plugins/StreamingServer/StreamingServer/ trunk/plugins/StreamingServer/StreamingServer/Program.cs trunk/plugins/StreamingServer/StreamingServer/ProjectInstaller.Designer.cs trunk/plugins/StreamingServer/StreamingServer/ProjectInstaller.cs trunk/plugins/StreamingServer/StreamingServer/ProjectInstaller.resx trunk/plugins/StreamingServer/StreamingServer/Properties/ trunk/plugins/StreamingServer/StreamingServer/Properties/AssemblyInfo.cs trunk/plugins/StreamingServer/StreamingServer/Service References/ trunk/plugins/StreamingServer/StreamingServer/StreamingServer.csproj trunk/plugins/StreamingServer/StreamingServer/StreamingServer.csproj.user trunk/plugins/StreamingServer/StreamingServer/StreamingServer.suo trunk/plugins/StreamingServer/StreamingServer/StreamingService.Designer.cs trunk/plugins/StreamingServer/StreamingServer/StreamingService.cs trunk/plugins/StreamingServer/StreamingServer/bin/ trunk/plugins/StreamingServer/StreamingServer/bin/Debug/ trunk/plugins/StreamingServer/StreamingServer/obj/ trunk/plugins/StreamingServer/StreamingServer/obj/Debug/ trunk/plugins/StreamingServer/StreamingServer/obj/Debug/Refactor/ trunk/plugins/StreamingServer/StreamingServer/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/StreamingServer/StreamingServer/obj/Debug/StreamingServer.ProjectInstaller.resources trunk/plugins/StreamingServer/StreamingServer/obj/Debug/StreamingServer.csproj.FileListAbsolute.txt trunk/plugins/StreamingServer/StreamingServer/obj/Debug/StreamingServer.csproj.GenerateResource.Cache trunk/plugins/StreamingServer/StreamingServer/obj/Debug/StreamingServer.exe trunk/plugins/StreamingServer/StreamingServer/obj/Debug/StreamingServer.pdb trunk/plugins/StreamingServer/StreamingServer/obj/Debug/TempPE/ trunk/plugins/StreamingServer/StreamingServer.sln trunk/plugins/StreamingServer/StreamingServer.suo trunk/plugins/StreamingServer/StreamingServerConfiguration/ trunk/plugins/StreamingServer/StreamingServerConfiguration/Configuration.Designer.cs trunk/plugins/StreamingServer/StreamingServerConfiguration/Configuration.cs trunk/plugins/StreamingServer/StreamingServerConfiguration/Configuration.resx trunk/plugins/StreamingServer/StreamingServerConfiguration/Film.ico trunk/plugins/StreamingServer/StreamingServerConfiguration/Program.cs trunk/plugins/StreamingServer/StreamingServerConfiguration/Properties/ trunk/plugins/StreamingServer/StreamingServerConfiguration/Properties/AssemblyInfo.cs trunk/plugins/StreamingServer/StreamingServerConfiguration/Properties/Resources.Designer.cs trunk/plugins/StreamingServer/StreamingServerConfiguration/Properties/Resources.resx trunk/plugins/StreamingServer/StreamingServerConfiguration/Properties/Settings.Designer.cs trunk/plugins/StreamingServer/StreamingServerConfiguration/Properties/Settings.settings trunk/plugins/StreamingServer/StreamingServerConfiguration/StreamingServerConfiguration.csproj trunk/plugins/StreamingServer/StreamingServerConfiguration/VlcWrapperForm.Designer.cs trunk/plugins/StreamingServer/StreamingServerConfiguration/VlcWrapperForm.cs trunk/plugins/StreamingServer/StreamingServerConfiguration/VlcWrapperForm.resx trunk/plugins/StreamingServer/StreamingServerConfiguration/bin/ trunk/plugins/StreamingServer/StreamingServerConfiguration/bin/Debug/ trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/ trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/Debug/ trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/Debug/Interop.WIAACMGRLib.dll trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/Debug/Interop.WIAVIDEOLib.dll trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/Debug/Interop.WIAVIEWLib.dll trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/Debug/Refactor/ trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/Debug/StreamingServerConfiguration.Configuration.resources trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/Debug/StreamingServerConfiguration.Properties.Resources.resources trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/Debug/StreamingServerConfiguration.VlcWrapperForm.resources trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/Debug/StreamingServerConfiguration.csproj.FileListAbsolute.txt trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/Debug/StreamingServerConfiguration.csproj.GenerateResource.Cache trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/Debug/StreamingServerConfiguration.csproj.ResolveComReference.cache trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/Debug/StreamingServerConfiguration.exe trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/Debug/StreamingServerConfiguration.pdb trunk/plugins/StreamingServer/StreamingServerConfiguration/obj/Debug/TempPE/ trunk/plugins/StreamingServer/StreamingServerSetup/ trunk/plugins/StreamingServer/StreamingServerSetup/Debug/ trunk/plugins/StreamingServer/StreamingServerSetup/Release/ trunk/plugins/StreamingServer/StreamingServerSetup/StreamingServerSetup.vdproj trunk/plugins/StreamingServer/StreamingServerUtils/ trunk/plugins/StreamingServer/StreamingServerUtils/Properties/ trunk/plugins/StreamingServer/StreamingServerUtils/Properties/AssemblyInfo.cs trunk/plugins/StreamingServer/StreamingServerUtils/SettingsUtils.cs trunk/plugins/StreamingServer/StreamingServerUtils/StreamingServerUtils.csproj trunk/plugins/StreamingServer/StreamingServerUtils/bin/ trunk/plugins/StreamingServer/StreamingServerUtils/bin/Debug/ trunk/plugins/StreamingServer/StreamingServerUtils/obj/ trunk/plugins/StreamingServer/StreamingServerUtils/obj/Debug/ trunk/plugins/StreamingServer/StreamingServerUtils/obj/Debug/Refactor/ trunk/plugins/StreamingServer/StreamingServerUtils/obj/Debug/Refactor/StreamingServerUtils.dll trunk/plugins/StreamingServer/StreamingServerUtils/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/StreamingServer/StreamingServerUtils/obj/Debug/StreamingServerUtils.csproj.FileListAbsolute.txt trunk/plugins/StreamingServer/StreamingServerUtils/obj/Debug/StreamingServerUtils.dll trunk/plugins/StreamingServer/StreamingServerUtils/obj/Debug/StreamingServerUtils.pdb trunk/plugins/StreamingServer/StreamingServerUtils/obj/Debug/TempPE/ trunk/plugins/StreamingServer/VlcWrapper/ trunk/plugins/StreamingServer/VlcWrapper/LibVlcSupport.cs trunk/plugins/StreamingServer/VlcWrapper/Properties/ trunk/plugins/StreamingServer/VlcWrapper/Properties/AssemblyInfo.cs trunk/plugins/StreamingServer/VlcWrapper/VlcWrapper.cs trunk/plugins/StreamingServer/VlcWrapper/VlcWrapper.csproj trunk/plugins/StreamingServer/VlcWrapper/bin/ trunk/plugins/StreamingServer/VlcWrapper/bin/Debug/ trunk/plugins/StreamingServer/VlcWrapper/obj/ trunk/plugins/StreamingServer/VlcWrapper/obj/Debug/ trunk/plugins/StreamingServer/VlcWrapper/obj/Debug/Refactor/ trunk/plugins/StreamingServer/VlcWrapper/obj/Debug/Refactor/VlcWrapper.dll trunk/plugins/StreamingServer/VlcWrapper/obj/Debug/TempPE/ trunk/plugins/StreamingServer/VlcWrapper/obj/Debug/VlcWrapper.csproj.FileListAbsolute.txt trunk/plugins/StreamingServer/VlcWrapper/obj/Debug/VlcWrapper.dll trunk/plugins/StreamingServer/VlcWrapper/obj/Debug/VlcWrapper.pdb Added: trunk/plugins/StreamingServer/DShowNET/AssemblyInfo.cs =================================================================== --- trunk/plugins/StreamingServer/DShowNET/AssemblyInfo.cs (rev 0) +++ trunk/plugins/StreamingServer/DShowNET/AssemblyInfo.cs 2008-02-16 21:53:03 UTC (rev 1380) @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// 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("DShowNET")] +[assembly: AssemblyDescription("DirectShow for .NET")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("net...@sw...")] +[assembly: AssemblyProduct("DirectShow.NET")] +[assembly: AssemblyCopyright("everybody")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// 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.0.1")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\<configuration>. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] Added: trunk/plugins/StreamingServer/DShowNET/DShowNET.csproj =================================================================== --- trunk/plugins/StreamingServer/DShowNET/DShowNET.csproj (rev 0) +++ trunk/plugins/StreamingServer/DShowNET/DShowNET.csproj 2008-02-16 21:53:03 UTC (rev 1380) @@ -0,0 +1,129 @@ +<Project DefaultTargets="Build" ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectType>Local</ProjectType> + <ProductVersion>8.0.21022</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{CE009BFA-5EF6-4153-B2A1-2FA79698A9AE}</ProjectGuid> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ApplicationIcon> + </ApplicationIcon> + <AssemblyKeyContainerName> + </AssemblyKeyContainerName> + <AssemblyName>DShowNET</AssemblyName> + <AssemblyOriginatorKeyFile> + </AssemblyOriginatorKeyFile> + <DefaultClientScript>JScript</DefaultClientScript> + <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout> + <DefaultTargetSchema>IE50</DefaultTargetSchema> + <DelaySign>false</DelaySign> + <OutputType>Library</OutputType> + <RootNamespace>DShowNET</RootNamespace> + <StartupObject> + </StartupObject> + <FileUpgradeFlags> + </FileUpgradeFlags> + <OldToolsVersion>0.0</OldToolsVersion> + <UpgradeBackupLocation> + </UpgradeBackupLocation> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <OutputPath>bin\Debug\</OutputPath> + <AllowUnsafeBlocks>false</AllowUnsafeBlocks> + <BaseAddress>285212672</BaseAddress> + <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow> + <ConfigurationOverrideFile> + </ConfigurationOverrideFile> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <DocumentationFile> + </DocumentationFile> + <DebugSymbols>true</DebugSymbols> + <FileAlignment>4096</FileAlignment> + <Optimize>false</Optimize> + <RegisterForComInterop>false</RegisterForComInterop> + <RemoveIntegerChecks>false</RemoveIntegerChecks> + <TreatWarningsAsErrors>false</TreatWarningsAsErrors> + <WarningLevel>4</WarningLevel> + <DebugType>full</DebugType> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <OutputPath>bin\Release\</OutputPath> + <AllowUnsafeBlocks>false</AllowUnsafeBlocks> + <BaseAddress>285212672</BaseAddress> + <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow> + <ConfigurationOverrideFile> + </ConfigurationOverrideFile> + <DefineConstants>TRACE</DefineConstants> + <DocumentationFile> + </DocumentationFile> + <DebugSymbols>false</DebugSymbols> + <FileAlignment>4096</FileAlignment> + <Optimize>true</Optimize> + <RegisterForComInterop>false</RegisterForComInterop> + <RemoveIntegerChecks>false</RemoveIntegerChecks> + <TreatWarningsAsErrors>false</TreatWarningsAsErrors> + <WarningLevel>4</WarningLevel> + <DebugType>none</DebugType> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <ItemGroup> + <Reference Include="System"> + <Name>System</Name> + </Reference> + <Reference Include="System.Data"> + <Name>System.Data</Name> + </Reference> + <Reference Include="System.Drawing"> + <Name>System.Drawing</Name> + </Reference> + <Reference Include="System.Xml"> + <Name>System.XML</Name> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="AssemblyInfo.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="DsBugWO.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="DsControl.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="DsCore.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="DsDevice.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="DsDVD.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="DsExtend.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="DsUtils.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="DsUuids.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="DsVmr9.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="DsVmRender.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="QEdit.cs"> + <SubType>Code</SubType> + </Compile> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <PropertyGroup> + <PreBuildEvent> + </PreBuildEvent> + <PostBuildEvent> + </PostBuildEvent> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/StreamingServer/DShowNET/DShowNET.csproj.user =================================================================== --- trunk/plugins/StreamingServer/DShowNET/DShowNET.csproj.user (rev 0) +++ trunk/plugins/StreamingServer/DShowNET/DShowNET.csproj.user 2008-02-16 21:53:03 UTC (rev 1380) @@ -0,0 +1,57 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ReferencePath> + </ReferencePath> + <CopyProjectDestinationFolder> + </CopyProjectDestinationFolder> + <CopyProjectUncPath> + </CopyProjectUncPath> + <CopyProjectOption>0</CopyProjectOption> + <ProjectView>ProjectFiles</ProjectView> + <ProjectTrust>0</ProjectTrust> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <EnableASPDebugging>false</EnableASPDebugging> + <EnableASPXDebugging>false</EnableASPXDebugging> + <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> + <EnableSQLServerDebugging>false</EnableSQLServerDebugging> + <RemoteDebugEnabled>false</RemoteDebugEnabled> + <RemoteDebugMachine> + </RemoteDebugMachine> + <StartAction>Project</StartAction> + <StartArguments> + </StartArguments> + <StartPage> + </StartPage> + <StartProgram> + </StartProgram> + <StartURL> + </StartURL> + <StartWorkingDirectory> + </StartWorkingDirectory> + <StartWithIE>false</StartWithIE> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <EnableASPDebugging>false</EnableASPDebugging> + <EnableASPXDebugging>false</EnableASPXDebugging> + <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> + <EnableSQLServerDebugging>false</EnableSQLServerDebugging> + <RemoteDebugEnabled>false</RemoteDebugEnabled> + <RemoteDebugMachine> + </RemoteDebugMachine> + <StartAction>Project</StartAction> + <StartArguments> + </StartArguments> + <StartPage> + </StartPage> + <StartProgram> + </StartProgram> + <StartURL> + </StartURL> + <StartWorkingDirectory> + </StartWorkingDirectory> + <StartWithIE>true</StartWithIE> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/StreamingServer/DShowNET/DShowNET.sln =================================================================== --- trunk/plugins/StreamingServer/DShowNET/DShowNET.sln (rev 0) +++ trunk/plugins/StreamingServer/DShowNET/DShowNET.sln 2008-02-16 21:53:03 UTC (rev 1380) @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DShowNET", "DShowNET.csproj", "{CE009BFA-5EF6-4153-B2A1-2FA79698A9AE}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {CE009BFA-5EF6-4153-B2A1-2FA79698A9AE}.Debug.ActiveCfg = Debug|.NET + {CE009BFA-5EF6-4153-B2A1-2FA79698A9AE}.Debug.Build.0 = Debug|.NET + {CE009BFA-5EF6-4153-B2A1-2FA79698A9AE}.Release.ActiveCfg = Release|.NET + {CE009BFA-5EF6-4153-B2A1-2FA79698A9AE}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal Added: trunk/plugins/StreamingServer/DShowNET/DShowNET.suo =================================================================== (Binary files differ) Property changes on: trunk/plugins/StreamingServer/DShowNET/DShowNET.suo ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/StreamingServer/DShowNET/DsBugWO.cs =================================================================== --- trunk/plugins/StreamingServer/DShowNET/DsBugWO.cs (rev 0) +++ trunk/plugins/StreamingServer/DShowNET/DsBugWO.cs 2008-02-16 21:53:03 UTC (rev 1380) @@ -0,0 +1,53 @@ +/****************************************************** + DirectShow .NET + net...@sw... +*******************************************************/ +// WORKAROUND FOR DS BUGs + +using System; +using System.Text; +using System.Runtime.InteropServices; + +namespace DShowNET +{ + +public class DsBugWO +{ + /* + works: + CoCreateInstance( CLSID_CaptureGraphBuilder2, ..., IID_ICaptureGraphBuilder2, ...); + doesn't (E_NOTIMPL): + CoCreateInstance( CLSID_CaptureGraphBuilder2, ..., IID_IUnknown, ...); + thus .NET 'Activator.CreateInstance' fails + */ + + public static object CreateDsInstance( ref Guid clsid, ref Guid riid ) + { + IntPtr ptrIf; + int hr = CoCreateInstance( ref clsid, IntPtr.Zero, CLSCTX.Inproc, ref riid, out ptrIf ); + if( (hr != 0) || (ptrIf == IntPtr.Zero) ) + Marshal.ThrowExceptionForHR( hr ); + + Guid iu = new Guid( "00000000-0000-0000-C000-000000000046" ); + IntPtr ptrXX; + hr = Marshal.QueryInterface( ptrIf, ref iu, out ptrXX ); + + object ooo = System.Runtime.Remoting.Services.EnterpriseServicesHelper.WrapIUnknownWithComObject( ptrIf ); + int ct = Marshal.Release( ptrIf ); + return ooo; + } + + [DllImport("ole32.dll") ] + private static extern int CoCreateInstance( ref Guid clsid, IntPtr pUnkOuter, CLSCTX dwClsContext, ref Guid iid, out IntPtr ptrIf ); +} + +[Flags] +internal enum CLSCTX + { + Inproc = 0x03, + Server = 0x15, + All = 0x17, + } + + +} // namespace DShowNET Added: trunk/plugins/StreamingServer/DShowNET/DsControl.cs =================================================================== --- trunk/plugins/StreamingServer/DShowNET/DsControl.cs (rev 0) +++ trunk/plugins/StreamingServer/DShowNET/DsControl.cs 2008-02-16 21:53:03 UTC (rev 1380) @@ -0,0 +1,500 @@ +/****************************************************** + DirectShow .NET + net...@sw... +*******************************************************/ +// DsControl +// basic Quartz control interfaces, ported from control.odl + +using System; +using System.Runtime.InteropServices; + +namespace DShowNET +{ + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("56a868b1-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType( ComInterfaceType.InterfaceIsDual)] +public interface IMediaControl +{ + [PreserveSig] + int Run(); + + [PreserveSig] + int Pause(); + + [PreserveSig] + int Stop(); + + [PreserveSig] + int GetState( int msTimeout, out int pfs ); + + [PreserveSig] + int RenderFile( string strFilename ); + + [PreserveSig] + int AddSourceFilter( + [In] string strFilename, + [Out, MarshalAs(UnmanagedType.IDispatch)] out object ppUnk ); + + [PreserveSig] + int get_FilterCollection( + [Out, MarshalAs(UnmanagedType.IDispatch)] out object ppUnk ); + + [PreserveSig] + int get_RegFilterCollection( + [Out, MarshalAs(UnmanagedType.IDispatch)] out object ppUnk ); + + [PreserveSig] + int StopWhenReady(); +} + + + + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("56a868b6-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType( ComInterfaceType.InterfaceIsDual)] +public interface IMediaEvent +{ + [PreserveSig] + int GetEventHandle( out IntPtr hEvent ); + + [PreserveSig] + int GetEvent( out DsEvCode lEventCode, out int lParam1, out int lParam2, int msTimeout ); + + [PreserveSig] + int WaitForCompletion( int msTimeout, out int pEvCode ); + + [PreserveSig] + int CancelDefaultHandling( int lEvCode ); + + [PreserveSig] + int RestoreDefaultHandling( int lEvCode ); + + [PreserveSig] + int FreeEventParams( DsEvCode lEvCode, int lParam1, int lParam2 ); +} + + + + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("56a868c0-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType( ComInterfaceType.InterfaceIsDual)] +public interface IMediaEventEx +{ + #region "IMediaEvent Methods" + [PreserveSig] + int GetEventHandle( out IntPtr hEvent ); + + [PreserveSig] + int GetEvent( out DsEvCode lEventCode, out int lParam1, out int lParam2, int msTimeout ); + + [PreserveSig] + int WaitForCompletion( int msTimeout, [Out] out int pEvCode ); + + [PreserveSig] + int CancelDefaultHandling( int lEvCode ); + + [PreserveSig] + int RestoreDefaultHandling( int lEvCode ); + + [PreserveSig] + int FreeEventParams( DsEvCode lEvCode, int lParam1, int lParam2 ); + #endregion + + + [PreserveSig] + int SetNotifyWindow( IntPtr hwnd, int lMsg, IntPtr lInstanceData ); + + [PreserveSig] + int SetNotifyFlags( int lNoNotifyFlags ); + + [PreserveSig] + int GetNotifyFlags( out int lplNoNotifyFlags ); +} + + + + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("329bb360-f6ea-11d1-9038-00a0c9697298"), + InterfaceType( ComInterfaceType.InterfaceIsDual)] +public interface IBasicVideo2 +{ + [PreserveSig] + int AvgTimePerFrame( out double pAvgTimePerFrame ); + + [PreserveSig] + int BitRate( out int pBitRate ); + + [PreserveSig] + int BitErrorRate( out int pBitRate ); + + [PreserveSig] + int VideoWidth( out int pVideoWidth ); + + [PreserveSig] + int VideoHeight( out int pVideoHeight ); + + + [PreserveSig] + int put_SourceLeft( int SourceLeft ); + [PreserveSig] + int get_SourceLeft( out int pSourceLeft ); + + [PreserveSig] + int put_SourceWidth( int SourceWidth ); + [PreserveSig] + int get_SourceWidth( out int pSourceWidth ); + + [PreserveSig] + int put_SourceTop( int SourceTop ); + [PreserveSig] + int get_SourceTop( out int pSourceTop ); + + [PreserveSig] + int put_SourceHeight( int SourceHeight ); + [PreserveSig] + int get_SourceHeight( out int pSourceHeight ); + + + + [PreserveSig] + int put_DestinationLeft( int DestinationLeft ); + [PreserveSig] + int get_DestinationLeft( out int pDestinationLeft ); + + [PreserveSig] + int put_DestinationWidth( int DestinationWidth ); + [PreserveSig] + int get_DestinationWidth( out int pDestinationWidth ); + + [PreserveSig] + int put_DestinationTop( int DestinationTop ); + [PreserveSig] + int get_DestinationTop( out int pDestinationTop ); + + [PreserveSig] + int put_DestinationHeight( int DestinationHeight ); + [PreserveSig] + int get_DestinationHeight( out int pDestinationHeight ); + + [PreserveSig] + int SetSourcePosition( int left, int top, int width, int height ); + [PreserveSig] + int GetSourcePosition( out int left, out int top, out int width, out int height ); + [PreserveSig] + int SetDefaultSourcePosition(); + + + [PreserveSig] + int SetDestinationPosition( int left, int top, int width, int height ); + [PreserveSig] + int GetDestinationPosition( out int left, out int top, out int width, out int height ); + [PreserveSig] + int SetDefaultDestinationPosition(); + + + [PreserveSig] + int GetVideoSize( out int pWidth, out int pHeight ); + + [PreserveSig] + int GetVideoPaletteEntries( int StartIndex, int Entries, out int pRetrieved, IntPtr pPalette ); + + [PreserveSig] + int GetCurrentImage( ref int pBufferSize, IntPtr pDIBImage ); + + [PreserveSig] + int IsUsingDefaultSource(); + [PreserveSig] + int IsUsingDefaultDestination(); + + [PreserveSig] + int GetPreferredAspectRatio( out int plAspectX, out int plAspectY ); +} + + + + + + + + + + [ComVisible(true), ComImport, + Guid("56a868b4-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType( ComInterfaceType.InterfaceIsDual )] +public interface IVideoWindow +{ + [PreserveSig] + int put_Caption( string caption ); + [PreserveSig] + int get_Caption( [Out] out string caption ); + + [PreserveSig] + int put_WindowStyle( int windowStyle ); + [PreserveSig] + int get_WindowStyle( out int windowStyle ); + + [PreserveSig] + int put_WindowStyleEx( int windowStyleEx ); + [PreserveSig] + int get_WindowStyleEx( out int windowStyleEx ); + + [PreserveSig] + int put_AutoShow( int autoShow ); + [PreserveSig] + int get_AutoShow( out int autoShow ); + + [PreserveSig] + int put_WindowState( int windowState ); + [PreserveSig] + int get_WindowState( out int windowState ); + + [PreserveSig] + int put_BackgroundPalette( int backgroundPalette ); + [PreserveSig] + int get_BackgroundPalette( out int backgroundPalette ); + + [PreserveSig] + int put_Visible( int visible ); + [PreserveSig] + int get_Visible( out int visible ); + + [PreserveSig] + int put_Left( int left ); + [PreserveSig] + int get_Left( out int left ); + + [PreserveSig] + int put_Width( int width ); + [PreserveSig] + int get_Width( out int width ); + + [PreserveSig] + int put_Top( int top ); + [PreserveSig] + int get_Top( out int top ); + + [PreserveSig] + int put_Height( int height ); + [PreserveSig] + int get_Height( out int height ); + + [PreserveSig] + int put_Owner( IntPtr owner ); + [PreserveSig] + int get_Owner( out IntPtr owner ); + + [PreserveSig] + int put_MessageDrain( IntPtr drain ); + [PreserveSig] + int get_MessageDrain( out IntPtr drain ); + + [PreserveSig] + int get_BorderColor( out int color ); + [PreserveSig] + int put_BorderColor( int color ); + + [PreserveSig] + int get_FullScreenMode( out int fullScreenMode ); + [PreserveSig] + int put_FullScreenMode( int fullScreenMode ); + + [PreserveSig] + int SetWindowForeground( int focus ); + + [PreserveSig] + int NotifyOwnerMessage( IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam ); + + [PreserveSig] + int SetWindowPosition( int left, int top, int width, int height ); + + [PreserveSig] + int GetWindowPosition( out int left, out int top, out int width, out int height ); + + [PreserveSig] + int GetMinIdealImageSize( out int width, out int height ); + + [PreserveSig] + int GetMaxIdealImageSize( out int width, out int height ); + + [PreserveSig] + int GetRestorePosition( out int left, out int top, out int width, out int height ); + + [PreserveSig] + int HideCursor( int hideCursor ); + + [PreserveSig] + int IsCursorHidden( out int hideCursor ); + +} + + + + + + + + + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("56a868b2-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType( ComInterfaceType.InterfaceIsDual )] +public interface IMediaPosition +{ + [PreserveSig] + int get_Duration( out double pLength ); + + [PreserveSig] + int put_CurrentPosition( double llTime ); + [PreserveSig] + int get_CurrentPosition( out double pllTime ); + + [PreserveSig] + int get_StopTime( out double pllTime ); + [PreserveSig] + int put_StopTime( double llTime ); + + [PreserveSig] + int get_PrerollTime( out double pllTime ); + [PreserveSig] + int put_PrerollTime( double llTime ); + + [PreserveSig] + int put_Rate( double dRate ); + [PreserveSig] + int get_Rate( out double pdRate ); + + [PreserveSig] + int CanSeekForward( out int pCanSeekForward ); + [PreserveSig] + int CanSeekBackward( out int pCanSeekBackward ); +} + + + + + + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("56a868b3-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType( ComInterfaceType.InterfaceIsDual )] +public interface IBasicAudio +{ + [PreserveSig] + int put_Volume( int lVolume ); + [PreserveSig] + int get_Volume( out int plVolume ); + + [PreserveSig] + int put_Balance( int lBalance ); + [PreserveSig] + int get_Balance( out int plBalance ); +} + + + + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("56a868b9-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType( ComInterfaceType.InterfaceIsDual )] +public interface IAMCollection +{ + [PreserveSig] + int get_Count( out int plCount ); + + [PreserveSig] + int Item( int lItem, + [Out, MarshalAs(UnmanagedType.IUnknown) ] out object ppUnk ); + + [PreserveSig] + int get_NewEnum( + [Out, MarshalAs(UnmanagedType.IUnknown) ] out object ppUnk ); +} + + +public enum DsEvCode +{ + None, + Complete = 0x01, // EC_COMPLETE + UserAbort = 0x02, // EC_USERABORT + ErrorAbort = 0x03, // EC_ERRORABORT + Time = 0x04, // EC_TIME + Repaint = 0x05, // EC_REPAINT + StErrStopped = 0x06, // EC_STREAM_ERROR_STOPPED + StErrStPlaying = 0x07, // EC_STREAM_ERROR_STILLPLAYING + ErrorStPlaying = 0x08, // EC_ERROR_STILLPLAYING + PaletteChanged = 0x09, // EC_PALETTE_CHANGED + VideoSizeChanged = 0x0a, // EC_VIDEO_SIZE_CHANGED + QualityChange = 0x0b, // EC_QUALITY_CHANGE + ShuttingDown = 0x0c, // EC_SHUTTING_DOWN + ClockChanged = 0x0d, // EC_CLOCK_CHANGED + Paused = 0x0e, // EC_PAUSED + OpeningFile = 0x10, // EC_OPENING_FILE + BufferingData = 0x11, // EC_BUFFERING_DATA + FullScreenLost = 0x12, // EC_FULLSCREEN_LOST + Activate = 0x13, // EC_ACTIVATE + NeedRestart = 0x14, // EC_NEED_RESTART + WindowDestroyed = 0x15, // EC_WINDOW_DESTROYED + DisplayChanged = 0x16, // EC_DISPLAY_CHANGED + Starvation = 0x17, // EC_STARVATION + OleEvent = 0x18, // EC_OLE_EVENT + NotifyWindow = 0x19, // EC_NOTIFY_WINDOW + // EC_ .... + + // DVDevCod.h + DvdDomChange = 0x101, // EC_DVD_DOMAIN_CHANGE + DvdTitleChange = 0x102, // EC_DVD_TITLE_CHANGE + DvdChaptStart = 0x103, // EC_DVD_CHAPTER_START + DvdAudioStChange = 0x104, // EC_DVD_AUDIO_STREAM_CHANGE + + DvdSubPicStChange = 0x105, // EC_DVD_SUBPICTURE_STREAM_CHANGE + DvdAngleChange = 0x106, // EC_DVD_ANGLE_CHANGE + DvdButtonChange = 0x107, // EC_DVD_BUTTON_CHANGE + DvdValidUopsChange = 0x108, // EC_DVD_VALID_UOPS_CHANGE + DvdStillOn = 0x109, // EC_DVD_STILL_ON + DvdStillOff = 0x10a, // EC_DVD_STILL_OFF + DvdCurrentTime = 0x10b, // EC_DVD_CURRENT_TIME + DvdError = 0x10c, // EC_DVD_ERROR + DvdWarning = 0x10d, // EC_DVD_WARNING + DvdChaptAutoStop = 0x10e, // EC_DVD_CHAPTER_AUTOSTOP + DvdNoFpPgc = 0x10f, // EC_DVD_NO_FP_PGC + DvdPlaybRateChange = 0x110, // EC_DVD_PLAYBACK_RATE_CHANGE + DvdParentalLChange = 0x111, // EC_DVD_PARENTAL_LEVEL_CHANGE + DvdPlaybStopped = 0x112, // EC_DVD_PLAYBACK_STOPPED + DvdAnglesAvail = 0x113, // EC_DVD_ANGLES_AVAILABLE + DvdPeriodAStop = 0x114, // EC_DVD_PLAYPERIOD_AUTOSTOP + DvdButtonAActivated = 0x115, // EC_DVD_BUTTON_AUTO_ACTIVATED + DvdCmdStart = 0x116, // EC_DVD_CMD_START + DvdCmdEnd = 0x117, // EC_DVD_CMD_END + DvdDiscEjected = 0x118, // EC_DVD_DISC_EJECTED + DvdDiscInserted = 0x119, // EC_DVD_DISC_INSERTED + DvdCurrentHmsfTime = 0x11a, // EC_DVD_CURRENT_HMSF_TIME + DvdKaraokeMode = 0x11b // EC_DVD_KARAOKE_MODE +} + + +} // namespace DShowNET Added: trunk/plugins/StreamingServer/DShowNET/DsCore.cs =================================================================== --- trunk/plugins/StreamingServer/DShowNET/DsCore.cs (rev 0) +++ trunk/plugins/StreamingServer/DShowNET/DsCore.cs 2008-02-16 21:53:03 UTC (rev 1380) @@ -0,0 +1,567 @@ +/****************************************************** + DirectShow .NET + net...@sw... +*******************************************************/ +// DsCore +// Core streaming interfaces, ported from axcore.idl + +using System; +using System.Text; +using System.Runtime.InteropServices; + +namespace DShowNET +{ + + [ComVisible(false)] + public enum PinDirection // PIN_DIRECTION + { + Input, // PINDIR_INPUT + Output // PINDIR_OUTPUT + } + + [ComVisible(false)] + public enum PhysicalConnectorType + { + Video_Tuner = 1, + Video_Composite, + Video_SVideo, + Video_RGB, + Video_YRYBY, + Video_SerialDigital, + Video_ParallelDigital, + Video_SCSI, + Video_AUX, + Video_1394, + Video_USB, + Video_VideoDecoder, + Video_VideoEncoder, + Video_SCART, + + Audio_Tuner = 4096, + Audio_Line, + Audio_Mic, + Audio_AESDigital, + Audio_SPDIFDigital, + Audio_SCSI, + Audio_AUX, + Audio_1394, + Audio_USB, + Audio_AudioDecoder, + }; + + + + + [ComVisible(false)] + public class DsHlp + { + public const int OATRUE = -1; + public const int OAFALSE = 0; + + [DllImport( "quartz.dll", CharSet=CharSet.Auto)] + public static extern int AMGetErrorText( int hr, StringBuilder buf, int max ); + } + + + [ComVisible(true), ComImport, + Guid("56a86891-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + public interface IPin + { + [PreserveSig] + int Connect( + [In] IPin pReceivePin, + [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pmt ); + + [PreserveSig] + int ReceiveConnection( + [In] IPin pReceivePin, + [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pmt ); + + [PreserveSig] + int Disconnect(); + + [PreserveSig] + int ConnectedTo( [Out] out IPin ppPin ); + + [PreserveSig] + int ConnectionMediaType( + [Out, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pmt ); + + [PreserveSig] + int QueryPinInfo( [Out] out PinInfo pInfo ); + + [PreserveSig] + int QueryDirection( out PinDirection pPinDir ); + + [PreserveSig] + int QueryId( + [Out, MarshalAs(UnmanagedType.LPWStr) ] out string Id ); + + [PreserveSig] + int QueryAccept( + [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pmt ); + + [PreserveSig] + int EnumMediaTypes( IntPtr ppEnum ); + + [PreserveSig] + int QueryInternalConnections( IntPtr apPin, [In, Out] ref int nPin ); + + [PreserveSig] + int EndOfStream(); + + [PreserveSig] + int BeginFlush(); + + [PreserveSig] + int EndFlush(); + + [PreserveSig] + int NewSegment( long tStart, long tStop, double dRate ); + } + + + + + + + [ComVisible(true), ComImport, + Guid("56a8689f-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + public interface IFilterGraph +{ + [PreserveSig] + int AddFilter( + [In] IBaseFilter pFilter, + [In, MarshalAs(UnmanagedType.LPWStr)] string pName ); + + [PreserveSig] + int RemoveFilter( [In] IBaseFilter pFilter ); + + [PreserveSig] + int EnumFilters( [Out] out IEnumFilters ppEnum ); + + [PreserveSig] + int FindFilterByName( + [In, MarshalAs(UnmanagedType.LPWStr)] string pName, + [Out] out IBaseFilter ppFilter ); + + [PreserveSig] + int ConnectDirect( [In] IPin ppinOut, [In] IPin ppinIn, + [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pmt ); + + [PreserveSig] + int Reconnect( [In] IPin ppin ); + + [PreserveSig] + int Disconnect( [In] IPin ppin ); + + [PreserveSig] + int SetDefaultSyncSource(); + +} + + + + + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("0000010c-0000-0000-C000-000000000046"), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + public interface IPersist +{ + [PreserveSig] + int GetClassID( + [Out] out Guid pClassID ); +} + + + // --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("0000010c-0000-0000-C000-000000000046"), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + public interface IPersistStream + { + [PreserveSig] + int GetClassID( + [Out] out Guid pClassID ); + } + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("56a86899-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + public interface IMediaFilter +{ + #region "IPersist Methods" + [PreserveSig] + int GetClassID( + [Out] out Guid pClassID ); + #endregion + + [PreserveSig] + int Stop(); + + [PreserveSig] + int Pause(); + + [PreserveSig] + int Run( long tStart ); + + [PreserveSig] + int GetState( int dwMilliSecsTimeout, out int filtState ); + + [PreserveSig] + int SetSyncSource( [In] IReferenceClock pClock ); + + [PreserveSig] + int GetSyncSource( [Out] out IReferenceClock pClock ); +} + + + + + + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("56a86895-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + public interface IBaseFilter +{ + #region "IPersist Methods" + [PreserveSig] + int GetClassID( + [Out] out Guid pClassID ); + #endregion + + #region "IMediaFilter Methods" + [PreserveSig] + int Stop(); + + [PreserveSig] + int Pause(); + + [PreserveSig] + int Run( long tStart ); + + [PreserveSig] + int GetState( int dwMilliSecsTimeout, [Out] out int filtState ); + + [PreserveSig] + int SetSyncSource( [In] IReferenceClock pClock ); + + [PreserveSig] + int GetSyncSource( [Out] out IReferenceClock pClock ); + #endregion + + [PreserveSig] + int EnumPins( + [Out] out IEnumPins ppEnum ); + + [PreserveSig] + int FindPin( + [In, MarshalAs(UnmanagedType.LPWStr)] string Id, + [Out] out IPin ppPin ); + + [PreserveSig] + int QueryFilterInfo( + [Out] FilterInfo pInfo ); + + [PreserveSig] + int JoinFilterGraph( + [In] IFilterGraph pGraph, + [In, MarshalAs(UnmanagedType.LPWStr)] string pName ); + + [PreserveSig] + int QueryVendorInfo( + [Out, MarshalAs(UnmanagedType.LPWStr) ] out string pVendorInfo ); +} + + + [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode), ComVisible(false)] + public class FilterInfo // FILTER_INFO +{ + [MarshalAs(UnmanagedType.ByValTStr, SizeConst=128)] + public string achName; + [MarshalAs(UnmanagedType.IUnknown)] + public object pUnk; +} + + + + + + + + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("36b73880-c2c8-11cf-8b46-00805f6cef60"), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + public interface IMediaSeeking +{ + [PreserveSig] + int GetCapabilities( out SeekingCapabilities pCapabilities ); + + [PreserveSig] + int CheckCapabilities( [In, Out] ref SeekingCapabilities pCapabilities ); + + [PreserveSig] + int IsFormatSupported( [In] ref Guid pFormat ); + [PreserveSig] + int QueryPreferredFormat( [Out] out Guid pFormat ); + + [PreserveSig] + int GetTimeFormat( [Out] out Guid pFormat ); + [PreserveSig] + int IsUsingTimeFormat( [In] ref Guid pFormat ); + [PreserveSig] + int SetTimeFormat( [In] ref Guid pFormat ); + + [PreserveSig] + int GetDuration( out long pDuration ); + [PreserveSig] + int GetStopPosition( out long pStop ); + [PreserveSig] + int GetCurrentPosition( out long pCurrent ); + + [PreserveSig] + int ConvertTimeFormat( out long pTarget, [In] ref Guid pTargetFormat, + long Source, [In] ref Guid pSourceFormat ); + + [PreserveSig] + int SetPositions( + [In, Out, MarshalAs(UnmanagedType.LPStruct)] DsOptInt64 pCurrent, + SeekingFlags dwCurrentFlags, + [In, Out, MarshalAs(UnmanagedType.LPStruct)] DsOptInt64 pStop, + SeekingFlags dwStopFlags ); + + [PreserveSig] + int GetPositions( out long pCurrent, out long pStop ); + + [PreserveSig] + int GetAvailable( out long pEarliest, out long pLatest ); + + [PreserveSig] + int SetRate( double dRate ); + [PreserveSig] + int GetRate( out double pdRate ); + + [PreserveSig] + int GetPreroll( out long pllPreroll ); +} + + + [Flags, ComVisible(false)] + public enum SeekingCapabilities // AM_SEEKING_SeekingCapabilities AM_SEEKING_SEEKING_CAPABILITIES +{ + CanSeekAbsolute = 0x001, + CanSeekForwards = 0x002, + CanSeekBackwards = 0x004, + CanGetCurrentPos = 0x008, + CanGetStopPos = 0x010, + CanGetDuration = 0x020, + CanPlayBackwards = 0x040, + CanDoSegments = 0x080, + Source = 0x100 // Doesn't pass thru used to count segment ends +} + + + [Flags, ComVisible(false)] + public enum SeekingFlags // AM_SEEKING_SeekingFlags AM_SEEKING_SEEKING_FLAGS +{ + NoPositioning = 0x00, // No change + AbsolutePositioning = 0x01, // Position is supplied and is absolute + RelativePositioning = 0x02, // Position is supplied and is relative + IncrementalPositioning = 0x03, // (Stop) position relative to current, useful for seeking when paused (use +1) + PositioningBitsMask = 0x03, // Useful mask + SeekToKeyFrame = 0x04, // Just seek to key frame (performance gain) + ReturnTime = 0x08, // Plug the media time equivalents back into the supplied LONGLONGs + Segment = 0x10, // At end just do EC_ENDOFSEGMENT, don't do EndOfStream + NoFlush = 0x20 // Don't flush +} + + + + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("56a86897-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + public interface IReferenceClock +{ + [PreserveSig] + int GetTime( out long pTime ); + + [PreserveSig] + int AdviseTime( long baseTime, long streamTime, IntPtr hEvent, out int pdwAdviseCookie); + + [PreserveSig] + int AdvisePeriodic( long startTime, long periodTime, IntPtr hSemaphore, out int pdwAdviseCookie); + + [PreserveSig] + int Unadvise( int dwAdviseCookie ); +} + + + + + + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("56a86893-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + public interface IEnumFilters +{ +/* + [PreserveSig] + int Next( + [In] int cFilters, + [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] IBaseFilter[] ppFilter, + [Out] out int pcFetched ); +*/ + + [PreserveSig] + int Next( + [In] uint cFilters, + out IBaseFilter x, + [Out] out uint pcFetched ); + + [PreserveSig] + int Skip( [In] int cFilters ); + void Reset(); + void Clone( [Out] out IEnumFilters ppEnum ); +} + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("56a86892-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + public interface IEnumPins + { + [PreserveSig] + int Next( + [In] int cPins, + [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] IPin[] ppPins, + [Out] out int pcFetched ); + + [PreserveSig] + int Skip( [In] int cPins ); + void Reset(); + void Clone( [Out] out IEnumPins ppEnum ); + } + + + + + + + [StructLayout(LayoutKind.Sequential), ComVisible(false)] + public class AMMediaType // AM_MEDIA_TYPE + { + public Guid majorType; + public Guid subType; + [MarshalAs(UnmanagedType.Bool)] + public bool fixedSizeSamples; + [MarshalAs(UnmanagedType.Bool)] + public bool temporalCompression; + public int sampleSize; + public Guid formatType; + public IntPtr unkPtr; + public int formatSize; + public IntPtr formatPtr; + + } + + [StructLayout(LayoutKind.Sequential, Pack=1, CharSet=CharSet.Unicode), ComVisible(false)] + public struct PinInfo // PIN_INFO + { + public IBaseFilter filter; + public PinDirection dir; + [MarshalAs(UnmanagedType.ByValTStr, SizeConst=128)] public string name; + } + + + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("56a8689a-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + public interface IMediaSample +{ + [PreserveSig] + int GetPointer( out IntPtr ppBuffer ); + [PreserveSig] + int GetSize(); + + [PreserveSig] + int GetTime( out long pTimeStart, out long pTimeEnd ); + + [PreserveSig] + int SetTime( + [In, MarshalAs(UnmanagedType.LPStruct)] DsOptInt64 pTimeStart, + [In, MarshalAs(UnmanagedType.LPStruct)] DsOptInt64 pTimeEnd ); + + [PreserveSig] + int IsSyncPoint(); + [PreserveSig] + int SetSyncPoint( + [In, MarshalAs(UnmanagedType.Bool)] bool bIsSyncPoint ); + + [PreserveSig] + int IsPreroll(); + [PreserveSig] + int SetPreroll( + [In, MarshalAs(UnmanagedType.Bool)] bool bIsPreroll ); + + [PreserveSig] + int GetActualDataLength(); + [PreserveSig] + int SetActualDataLength( int len ); + + [PreserveSig] + int GetMediaType( + [Out, MarshalAs(UnmanagedType.LPStruct)] out AMMediaType ppMediaType ); + + [PreserveSig] + int SetMediaType( + [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pMediaType ); + + [PreserveSig] + int IsDiscontinuity(); + [PreserveSig] + int SetDiscontinuity( + [In, MarshalAs(UnmanagedType.Bool)] bool bDiscontinuity ); + + [PreserveSig] + int GetMediaTime( out long pTimeStart, out long pTimeEnd ); + + [PreserveSig] + int SetMediaTime( + [In, MarshalAs(UnmanagedType.LPStruct)] DsOptInt64 pTimeStart, + [In, MarshalAs(UnmanagedType.LPStruct)] DsOptInt64 pTimeEnd ); +} + + +} // namespace DShowNET Added: trunk/plugins/StreamingServer/DShowNET/DsDVD.cs =================================================================== --- trunk/plugins/StreamingServer/DShowNET/DsDVD.cs (rev 0) +++ trunk/plugins/StreamingServer/DShowNET/DsDVD.cs 2008-02-16 21:53:03 UTC (rev 1380) @@ -0,0 +1,752 @@ +/****************************************************** + DirectShow .NET + net...@sw... +*******************************************************/ +// DsDVD +// DVD interfaces, ported from dvdif.idl + +using System; +using System.Runtime.InteropServices; + +namespace DShowNET.Dvd +{ + + +// ================================================================================================= +// DVD GRAPH +// ================================================================================================= + +[Flags] +public enum DvdGraphFlags // AM_DVD_GRAPH_FLAGS +{ + Default = 0x00000000, + HwDecPrefer = 0x00000001, // AM_DVD_HWDEC_PREFER + HwDecOnly = 0x00000002, // AM_DVD_HWDEC_ONLY + SwDecPrefer = 0x00000004, // AM_DVD_SWDEC_PREFER + SwDecOnly = 0x00000008, // AM_DVD_SWDEC_ONLY + NoVpe = 0x00000100 // AM_DVD_NOVPE +} + +[Flags] +public enum DvdStreamFlags // AM_DVD_STREAM_FLAGS +{ + None = 0x00000000, + Video = 0x00000001, // AM_DVD_STREAM_VIDEO + Audio = 0x00000002, // AM_DVD_STREAM_AUDIO + SubPic = 0x00000004 // AM_DVD_STREAM_SUBPIC +} + + + [StructLayout(LayoutKind.Sequential, Pack=1), ComVisible(false)] +public struct DvdRenderStatus // AM_DVD_RENDERSTATUS +{ + public int vpeStatus; + public bool volInvalid; + public bool volUnknown; + public bool noLine21In; + public bool noLine21Out; + public int numStreams; + public int numStreamsFailed; + public DvdStreamFlags failedStreams; +} + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("FCC152B6-F372-11d0-8E00-00C04FD7C08B"), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] +public interface IDvdGraphBuilder +{ + [PreserveSig] + int GetFiltergraph( + [Out] out IGraphBuilder ppGB ); + + [PreserveSig] + int GetDvdInterface( + [In] ref Guid riid, + [Out, MarshalAs(UnmanagedType.IUnknown) ] out object ppvIF ); + + [PreserveSig] + int RenderDvdVideoVolume( + [In, MarshalAs(UnmanagedType.LPWStr)] string lpcwszPathName, + DvdGraphFlags dwFlags, + [Out] out DvdRenderStatus pStatus ); +} + + + + + + + + + + + + + + + + + +// ================================================================================================= +// DVD CONTROL +// ================================================================================================= + +[Flags] +public enum DvdCmdFlags // DVD_CMD_FLAGS +{ + None = 0x00000000, // DVD_CMD_FLAG_None + Flush = 0x00000001, // DVD_CMD_FLAG_Flush + SendEvt = 0x00000002, // DVD_CMD_FLAG_SendEvents + Block = 0x00000004, // DVD_CMD_FLAG_Block + StartWRendered = 0x00000008, // DVD_CMD_FLAG_StartWhenRendered + EndARendered = 0x00000010 // DVD_CMD_FLAG_EndAfterRendered +} + + + [StructLayout(LayoutKind.Sequential, Pack=1), ComVisible(false)] +public struct DvdTimeCode // DVD_HMSF_TIMECODE +{ + public byte bHours; + public byte bMinutes; + public byte bSeconds; + public byte bFrames; +} + +public enum DvdMenuID // DVD_MENU_ID +{ + Title = 2, // DVD_MENU_Title + Root = 3, // DVD_MENU_Root + Subpicture = 4, // DVD_MENU_Subpicture + Audio = 5, // DVD_MENU_Audio + Angle = 6, // DVD_MENU_Angle + Chapter = 7 // DVD_MENU_Chapter +} + + +public enum DvdRelButton // DVD_RELATIVE_BUTTON +{ + Upper = 1, // DVD_Relative_Upper + Lower = 2, // DVD_Relative_Lower + Left = 3, // DVD_Relative_Left + Right = 4 // DVD_Relative_Right +} + + +public enum DvdOptionFlag // DVD_OPTION_FLAG +{ + ResetOnStop = 1, // DVD_ResetOnStop + NotifyParentalLevelChange = 2, // DVD_NotifyParentalLevelChange + HmsfTimeCodeEvt = 3 // DVD_HMSF_TimeCodeEvents +} + + +public enum DvdAudioLangExt // DVD_AUDIO_LANG_EXT +{ + NotSpecified = 0, // DVD_AUD_EXT_NotSpecified + Captions = 1, // DVD_AUD_EXT_Captions + VisuallyImpaired = 2, // DVD_AUD_EXT_VisuallyImpaired + DirectorComments1 = 3, // DVD_AUD_EXT_DirectorComments1 + DirectorComments2 = 4 // DVD_AUD_EXT_DirectorComments2 +} + +public enum DvdSubPicLangExt // DVD_SUBPICTURE_LANG_EXT +{ + NotSpecified = 0, // DVD_SP_EXT_NotSpecified + CaptionNormal = 1, // DVD_SP_EXT_Caption_Normal + CaptionBig = 2, // DVD_SP_EXT_Caption_Big + CaptionChildren = 3, // DVD_SP_EXT_Caption_Children + ClosedNormal = 5, // DVD_SP_EXT_CC_Normal + ClosedBig = 6, // DVD_SP_EXT_CC_Big + ClosedChildren = 7, // DVD_SP_EXT_CC_Children + Forced = 9, // DVD_SP_EXT_Forced + DirectorCmtNormal = 13, // DVD_SP_EXT_DirectorComments_Normal + DirectorCmtBig = 14, // DVD_SP_EXT_DirectorComments_Big + DirectorCmtChildren = 15, // DVD_SP_EXT_DirectorComments_Children +} + + + + +// --------------------------------------------------------------------------------------- + + [ComVisible(true), ComImport, + Guid("33BC7430-EEC0-11D2-8201-00A0C9D74842"), + InterfaceType( ComInterfaceTyp... [truncated message content] |