예제 #1
0
 public SequenceTestWindow()
 {
     mWindow       = new WindowDevice();
     mMapPerimeter = new GlimPixelMap.Factory {
         { mWindow, 0, 94 }
     }.Compile();
     mEdgeLeft = new GlimPixelMap.Factory {
         { mWindow, 55, -48 }
     }.Compile();
     mEdgeRight = new GlimPixelMap.Factory {
         { mWindow, 54, 40 }, { mWindow, 0, 8 }
     }.Compile();
     mFxCometLeft = new FxComet {
         PixelCount           = mEdgeLeft.PixelCount + 10,
         BaseColor            = Color.White,
         TailPixelLength      = 10,
         SpeedPixelsPerSecond = 40
     };
     mFxCometRight = new FxComet {
         PixelCount           = mEdgeRight.PixelCount + 10,
         BaseColor            = Color.White,
         TailPixelLength      = 10,
         SpeedPixelsPerSecond = 40
     };
     AddLuminanceControl(v => mFxPerimeter.Luminance   = v);
     AddSaturationControl(v => mFxPerimeter.Saturation = v);
 }
예제 #2
0
        public SequenceChristmas2020()
        {
            fxCandy          = new FxCandyCane();
            fxAll            = new FxScale(fxCandy);
            fxWindows        = new FxScale(fxAll);
            windowsLuminance = new ControlVariableRatio {
                Value = 0.2
            };
            periodSeconds = new ControlVariableInteger(0, 15, 1)
            {
                Value = fxCandy.PeriodSeconds
            };
            stripeColour = new ControlVariableColour {
                Value = fxCandy.ColourStripe
            };
            fillColour = new ControlVariableColour {
                Value = fxCandy.ColourBackground
            };
            pixWindows = new GlimPixelMap.Factory {
                devLounge, devDining
            }.Compile();
            pixRoof = new GlimPixelMap.Factory {
                devRoof
            }.Compile();

            AddLuminanceControl(v => fxAll.Luminance   = v);
            AddSaturationControl(v => fxAll.Saturation = v);
            Controls.Add("Windows Lum", windowsLuminance);
            windowsLuminance.ValueChanged += (s, e) => fxWindows.Luminance = windowsLuminance.Value;
            Controls.Add("Period (S)", periodSeconds);
            periodSeconds.ValueChanged += (s, e) => fxCandy.PeriodSeconds = periodSeconds.Value;
            //Controls.Add( "Colour Stripe",  );
        }
예제 #3
0
 public GlimDescriptor(string displayName, string hostName, int pixelCount, Color partyColor)
     : base(displayName, hostName, pixelCount)
 {
     PartyColor = partyColor;
     mFxComet   = null;
     mPixelMap  = new GlimPixelMap.Factory {
         { this, 0, 100 }
     }.Compile();
 }
예제 #4
0
        public GlimPixelMapStrider(IGlimPixelMap dst, int period, int gap)
        {
            if (period < 1 || gap < 1)
            {
                throw new ArgumentOutOfRangeException("Both period and gap must be 1 or higher");
            }

            mDst    = dst;
            mPeriod = period;
            mStride = period + gap;
        }
예제 #5
0
        public override void SetDiscoveredDevices(IEnumerable <IGlimDevice> devices)
        {
            var gf = new GlimPixelMap.Factory();

            foreach (var d in devices)
            {
                var sd = new SequenceDeviceBasic(d.HostName, d.HostName, 300);
                mDevices.Add(sd);
                gf.Add(sd);
            }
            mPixelMap = gf.Compile();
        }
예제 #6
0
        public void AddSequence(string name, IGlimPixelMap map, IEnumerable <IFx> fx)
        {
            var seq = new FxSequence(map, fx);

            mSequences.Add(seq);
            if (!string.IsNullOrEmpty(name))
            {
                if (mNamedSequences.ContainsKey(name))
                {
                    throw new ExceptionMessage("Sequence name '{0}' occurs twice.", name);
                }
                mNamedSequences.Add(name, seq);
            }
        }
예제 #7
0
        public SequenceHalloween2020()
        {
            pixWindows = new GlimPixelMap.Factory {
                devLounge, devDining
            }.Compile();
            pixRoof = new GlimPixelMap.Factory {
                devRoof
            }.Compile();
            fxWave    = new FxWave();
            fxAll     = new FxScale(fxWave);
            fxWindows = new FxScale(fxAll);

            AddLuminanceControl(v => fxAll.Luminance   = v);
            AddSaturationControl(v => fxAll.Saturation = v);
            Controls.Add("Windows Lum", windowsLuminance);
            windowsLuminance.ValueChanged += (s, e) => fxWindows.Luminance = windowsLuminance.Value;
            Controls.Add("Period (S)", periodSeconds);
            periodSeconds.ValueChanged += (s, e) => fxWave.PeriodSeconds = periodSeconds.Value;
        }
예제 #8
0
        public SequenceParty()
        {
            Luminance  = AddLuminanceControl(x => { });
            Saturation = AddSaturationControl(x => { });

            // comets!
            mGlimRedGun  = new GlimDescriptor("Red", "GlimSwarm-103", 150, Color.Red);
            mGlimBlueGun = new GlimDescriptor("Blue", "GlimSwarm-104", 100, Color.Blue);
            mGlimStars   = new SequenceDeviceBasic("Stars", "GlimSwarm-102", 150);
            mFxBarrel    = new FxComet {
                BaseColor = Color.FromArgb(0xff, 0, 0xff), PixelCount = 50
            };
            mFxCannonTwinkle = new FxStarlightTwinkle {
                BaseColor       = Color.FromArgb(0xff, 0, 0xff),
                SpeedFactor     = 15.0,
                LuminanceMinima = 0.2,
                LuminanceMaxima = 0.8
            };

            mPixelMapStars = new GlimPixelMap.Factory {
                mGlimStars
            }.Compile();
            mPixelMapBarrel = new GlimPixelMap.Factory {
                { mGlimRedGun, 100, 50 }
            }.Compile();
            mPixelMapPerimeter = new GlimPixelMap.Factory {
                { mGlimRedGun, 0, 100 }, { mGlimBlueGun, 100, -100 }
            }.Compile();

            mFxPerimeterRainbow = new FxScale(new FxRainbow());
            mFxStarlight        = new FxScale(new FxStarlightTwinkle {
                BaseColor = Color.Yellow
            })
            {
                Saturation = 0.3
            };
        }
예제 #9
0
 public FxSequence(IGlimPixelMap map, IEnumerable <IFx> fx)
 {
     mFx.AddRange(fx);
     mPixelMap = map;
 }