diff options
Diffstat (limited to 'lib/lufa/Projects/LEDNotifier/LEDMixerApp/LEDMixer.cs')
| -rw-r--r-- | lib/lufa/Projects/LEDNotifier/LEDMixerApp/LEDMixer.cs | 75 | 
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); +        } +    } +} | 
