summary refs log tree commit diff
path: root/lib/lufa/Projects/LEDNotifier/LEDMixerApp/LEDMixer.cs
diff options
context:
space:
mode:
authorJack Humbert <jack.humb@gmail.com>2017-07-07 11:55:23 -0400
committerJack Humbert <jack.humb@gmail.com>2017-07-07 11:55:23 -0400
commit8655d4f4948b2deef7844503c8d690f23ac1a062 (patch)
treeb2c6effc9d6cd5b5b43933a1e53b8bf17e9e82cf /lib/lufa/Projects/LEDNotifier/LEDMixerApp/LEDMixer.cs
parent1896c76a2928c96f9ab7947bec2ef8dd37623cff (diff)
parent60b30c036397cb5627fa374bb930794b225daa29 (diff)
Merge commit '60b30c036397cb5627fa374bb930794b225daa29' as 'lib/lufa'
Diffstat (limited to 'lib/lufa/Projects/LEDNotifier/LEDMixerApp/LEDMixer.cs')
-rw-r--r--lib/lufa/Projects/LEDNotifier/LEDMixerApp/LEDMixer.cs75
1 files changed, 75 insertions, 0 deletions
diff --git a/lib/lufa/Projects/LEDNotifier/LEDMixerApp/LEDMixer.cs b/lib/lufa/Projects/LEDNotifier/LEDMixerApp/LEDMixer.cs
new file mode 100644
index 0000000000..dfaffed309
--- /dev/null
+++ b/lib/lufa/Projects/LEDNotifier/LEDMixerApp/LEDMixer.cs
@@ -0,0 +1,75 @@
+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 LEDMixer
+{
+    public partial class LEDMixer : Form
+    {
+        private const int LIGHT_MAX = 0x1F;
+        
+        public LEDMixer()
+        {
+            InitializeComponent();
+        }
+
+        private void LEDMixer_Load(object sender, EventArgs e)
+        {
+            String[] PortNames = System.IO.Ports.SerialPort.GetPortNames();
+            Array.Sort<String>(PortNames, delegate(string strA, string strB) { return int.Parse(strA.Substring(3)).CompareTo(int.Parse(strB.Substring(3))); });
+            cbPort.Items.Clear();
+            cbPort.Items.AddRange(PortNames);
+
+            cbPort.SelectedIndex = 0;
+
+            tbRed.Maximum = LIGHT_MAX;
+            tbGreen.Maximum = LIGHT_MAX;
+            tbBlue.Maximum = LIGHT_MAX;
+        }
+
+        private void tbRed_Scroll(object sender, EventArgs e)
+        {
+            NotifyLight(tbRed.Value, tbGreen.Value, tbBlue.Value);
+        }
+
+        private void tbGreen_Scroll(object sender, EventArgs e)
+        {
+            NotifyLight(tbRed.Value, tbGreen.Value, tbBlue.Value);
+        }
+
+        private void tbBlue_Scroll(object sender, EventArgs e)
+        {
+            NotifyLight(tbRed.Value, tbGreen.Value, tbBlue.Value);
+        }
+        
+        private void NotifyLight(int Red, int Green, int Blue)
+        {
+            byte[] buffer = new byte[3];
+            buffer[0] = (byte)(0x80 | (Red & LIGHT_MAX));
+            buffer[1] = (byte)(0x40 | (Green & LIGHT_MAX));
+            buffer[2] = (byte)(0x20 | (Blue & LIGHT_MAX));
+
+            try
+            {
+                serSerialPort.PortName = cbPort.Text;
+                serSerialPort.Open();
+                serSerialPort.Write(buffer, 0, buffer.Length);
+                serSerialPort.Close();
+            }
+            catch (Exception e)
+            {
+
+            }
+        }
+
+        private void cbPort_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            NotifyLight(tbRed.Value, tbGreen.Value, tbBlue.Value);
+        }
+    }
+}