コード例 #1
0
ファイル: PixelRope.cs プロジェクト: budude/animatroller
        public PixelRope(Pixel1D logicalDevice)
            : base(logicalDevice)
        {
            logicalDevice.PixelChanged += (sender, e) =>
                {
                    // Handles brightness as well

                    var hsv = new HSV(e.NewColor);
                    hsv.Value = hsv.Value * e.NewBrightness;
                    var color = hsv.Color;

                    if (System.Threading.Monitor.TryEnter(lockObject))
                    {
                        try
                        {
                            PixelOutputPort.SendPixelValue(e.Channel, color.R, color.G, color.B);
                        }
                        finally
                        {
                            System.Threading.Monitor.Exit(lockObject);
                        }
                    }
                    else
                        Console.WriteLine("Missed PixelChanged in PixelRobe");
                };

            logicalDevice.MultiPixelChanged += (sender, e) =>
                {
                    byte[] values = new byte[e.NewValues.Length * 4 - 1];
                    for (int i = 0; i < e.NewValues.Length; i++)
                    {
                        var hsv = new HSV(e.NewValues[i].Color);
                        hsv.Value = hsv.Value * e.NewValues[i].Brightness;
                        var color = hsv.Color;

                        values[i * 4 + 0] = color.R;
                        values[i * 4 + 1] = color.G;
                        values[i * 4 + 2] = color.B;
                        if (i < e.NewValues.Length - 1)
                            values[i * 4 + 3] = 32;     // Delimiter
                    }

                    if (System.Threading.Monitor.TryEnter(lockObject))
                    {
                        try
                        {
                            PixelOutputPort.SendPixelsValue(e.StartChannel, values);
                        }
                        finally
                        {
                            System.Threading.Monitor.Exit(lockObject);
                        }
                    }
                    else
                        Console.WriteLine("Missed send to PixelRope");
                };
        }
コード例 #2
0
        public XmasScene1(IEnumerable <string> args, System.Collections.Specialized.NameValueCollection settings)
        {
            testPixels = new Pixel1D("G35", 50);
            explosion1 = new Dimmer("Explosion 1");
            explosion2 = new Dimmer("Explosion 2");
            explosion3 = new Dimmer("Explosion 3");
            explosion4 = new Dimmer("Explosion 4");
            testButton = new DigitalInput("Test");

            audioPlayer = new Physical.NetworkAudioPlayer(
                settings["NetworkAudioPlayerIP"],
                int.Parse(settings["NetworkAudioPlayerPort"]));
        }
コード例 #3
0
ファイル: XmasScene1.cs プロジェクト: HakanL/animatroller
        public XmasScene1(IEnumerable<string> args, System.Collections.Specialized.NameValueCollection settings)
        {
            testPixels = new Pixel1D("G35", 50);
            explosion1 = new Dimmer("Explosion 1");
            explosion2 = new Dimmer("Explosion 2");
            explosion3 = new Dimmer("Explosion 3");
            explosion4 = new Dimmer("Explosion 4");
            testButton = new DigitalInput("Test");

            audioPlayer = new Physical.NetworkAudioPlayer(
                settings["NetworkAudioPlayerIP"],
                int.Parse(settings["NetworkAudioPlayerPort"]));
        }
コード例 #4
0
ファイル: XmasScene1.cs プロジェクト: HakanL/animatroller
        public XmasScene1(IEnumerable<string> args)
        {
            testPixels = new Pixel1D("G35", 50);
            explosion1 = new Dimmer("Explosion 1");
            explosion2 = new Dimmer("Explosion 2");
            explosion3 = new Dimmer("Explosion 3");
            explosion4 = new Dimmer("Explosion 4");
            testButton = new DigitalInput("Test");

            audioPlayer = new Physical.NetworkAudioPlayer(
                Properties.Settings.Default.NetworkAudioPlayerIP,
                Properties.Settings.Default.NetworkAudioPlayerPort);
        }