Add LEDNotifier project to the Projects folder build list. Add new LEDMixer C# host...
[pub/lufa.git] / Projects / LEDNotifier / LEDMixerApp / LEDMixer.cs
diff --git a/Projects/LEDNotifier/LEDMixerApp/LEDMixer.cs b/Projects/LEDNotifier/LEDMixerApp/LEDMixer.cs
new file mode 100644 (file)
index 0000000..ccc89a7
--- /dev/null
@@ -0,0 +1,73 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.ComponentModel;\r
+using System.Data;\r
+using System.Drawing;\r
+using System.Linq;\r
+using System.Text;\r
+using System.Windows.Forms;\r
+\r
+namespace LEDMixer\r
+{\r
+    public partial class LEDMixer : Form\r
+    {\r
+        private const int LIGHT_MAX = 0x1F;\r
+        \r
+        public LEDMixer()\r
+        {\r
+            InitializeComponent();\r
+        }\r
+\r
+        private void LEDMixer_Load(object sender, EventArgs e)\r
+        {\r
+            for (int i = 1; i <= 99; i++)\r
+                cbPort.Items.Add("COM" + i.ToString());\r
+\r
+            cbPort.SelectedIndex = 0;\r
+\r
+            tbRed.Maximum = LIGHT_MAX;\r
+            tbGreen.Maximum = LIGHT_MAX;\r
+            tbBlue.Maximum = LIGHT_MAX;\r
+        }\r
+\r
+        private void tbRed_Scroll(object sender, EventArgs e)\r
+        {\r
+            NotifyLight(tbRed.Value, tbGreen.Value, tbBlue.Value);\r
+        }\r
+\r
+        private void tbGreen_Scroll(object sender, EventArgs e)\r
+        {\r
+            NotifyLight(tbRed.Value, tbGreen.Value, tbBlue.Value);\r
+        }\r
+\r
+        private void tbBlue_Scroll(object sender, EventArgs e)\r
+        {\r
+            NotifyLight(tbRed.Value, tbGreen.Value, tbBlue.Value);\r
+        }\r
+        \r
+        private void NotifyLight(int Red, int Green, int Blue)\r
+        {\r
+            byte[] buffer = new byte[3];\r
+            buffer[0] = (byte)(0x80 | (Red & LIGHT_MAX));\r
+            buffer[1] = (byte)(0x40 | (Green & LIGHT_MAX));\r
+            buffer[2] = (byte)(0x20 | (Blue & LIGHT_MAX));\r
+\r
+            try\r
+            {\r
+                serSerialPort.PortName = cbPort.Text;\r
+                serSerialPort.Open();\r
+                serSerialPort.Write(buffer, 0, buffer.Length);\r
+                serSerialPort.Close();\r
+            }\r
+            catch (Exception e)\r
+            {\r
+\r
+            }\r
+        }\r
+\r
+        private void cbPort_SelectedIndexChanged(object sender, EventArgs e)\r
+        {\r
+            NotifyLight(tbRed.Value, tbGreen.Value, tbBlue.Value);\r
+        }\r
+    }\r
+}\r