コード例 #1
0
ファイル: LightComponent.cs プロジェクト: tony-jang/Delight
 public LightComponent(SetterBoard setterBoard) : this()
 {
     SetterBoard = setterBoard;
     Identifier  = setterBoard.Identifier;
     Time        = TimeSpan.FromSeconds(20);
     Thumbnail   = new Uri("pack://application:,,,/Delight;component/Resources/defaultLightImage.png");
     Id          = Crc32.GetHashFromString(BoardSerializer.SerializeToString(setterBoard));
 }
コード例 #2
0
 public void AddBoard(SetterBoard sb)
 {
     GlobalViewModel.MainWindowViewModel.MediaItems.Add(new LightComponent(sb));
 }
コード例 #3
0
        private void InitializeLightItems()
        {
            //string lightPath = Path.Combine(DelightAppPath, "Preset Light Movement");

            //foreach (string filePath in Directory.EnumerateFiles(lightPath))
            //{
            //    SetterBoard lb = BoardSerializer.Load(filePath);

            //    AddBoard(lb);
            //}

            #region [  SetterBoard 1  ]

            SetterBoard sb1 = new SetterBoard();

            sb1.Identifier = "사선으로 움직이기 (↖)";
            sb1.AddSetterProperties(PortNumber.Color, "Color", "색깔", 1, true);
            sb1.AddSetterProperties(PortNumber.Blink, "Blinking", "깜빡이는 정도", 0, true);
            sb1.AddSetterProperties(PortNumber.Brightness, "Brightness", "밝기", 150, true);
            sb1.AddSetterProperties(PortNumber.XAxis, "StartXPosition", "시작 X 좌표 위치", 159);
            sb1.AddSetterProperties(PortNumber.YAxis, "StartYPosition", "시작 Y 좌표 위치", 50);

            sb1.AddSetterGroup();

            sb1.InitalizeValue = new List <ValueSetter>()
            {
                new ValueSetter(PortNumber.Color, "Color"),
                new ValueSetter(PortNumber.Blink, "Blinking"),
                new ValueSetter(PortNumber.Brightness, "Brightness"),
                new ValueSetter(PortNumber.XAxis, "StartXPosition"),
                new ValueSetter(PortNumber.YAxis, "StartYPosition"),
            };

            sb1[0].AddContinueLine(500);
            sb1[0].AddStates((PortNumber.XAxis, new RelativeValue("StartXPosition", 20, RelativeValue.RelativeSign.Plus)),
                             (PortNumber.YAxis, new RelativeValue("StartYPosition", 60, RelativeValue.RelativeSign.Plus)));

            sb1[0].AddContinueLine(500);

            sb1[0].AddStates((PortNumber.XAxis, (PropertyValue)"StartXPosition"),
                             (PortNumber.YAxis, (PropertyValue)"StartYPosition"));

            #endregion

            #region [  SetterBoard 2  ]

            SetterBoard sb2 = new SetterBoard();

            sb2.Identifier = "사선으로 움직이기 (↗)";
            sb2.AddSetterProperties(PortNumber.Color, "Color", "색깔", 1, true);
            sb2.AddSetterProperties(PortNumber.Blink, "Blinking", "깜빡이는 정도", 0, true);
            sb2.AddSetterProperties(PortNumber.Brightness, "Brightness", "밝기", 150, true);
            sb2.AddSetterProperties(PortNumber.XAxis, "StartXPosition", "시작 X 좌표 위치", 183);
            sb2.AddSetterProperties(PortNumber.YAxis, "StartYPosition", "시작 Y 좌표 위치", 50);

            sb2.AddSetterGroup();

            sb2.InitalizeValue = new List <ValueSetter>()
            {
                new ValueSetter(PortNumber.Color, "Color"),
                new ValueSetter(PortNumber.Blink, "Blinking"),
                new ValueSetter(PortNumber.Brightness, "Brightness"),
                new ValueSetter(PortNumber.XAxis, "StartXPosition"),
                new ValueSetter(PortNumber.YAxis, "StartYPosition"),
            };

            sb2[0].AddContinueLine(500);
            sb2[0].AddStates((PortNumber.XAxis, new RelativeValue("StartXPosition", 20, RelativeValue.RelativeSign.Minus)),
                             (PortNumber.YAxis, new RelativeValue("StartYPosition", 60, RelativeValue.RelativeSign.Plus)));

            sb2[0].AddContinueLine(500);

            sb2[0].AddStates((PortNumber.XAxis, (PropertyValue)"StartXPosition"),
                             (PortNumber.YAxis, (PropertyValue)"StartYPosition"));

            #endregion

            #region [  SetterBoard 3  ]

            SetterBoard sb3 = new SetterBoard();

            sb3.Identifier = "위 아래로 움직이기";
            sb3.AddSetterProperties(PortNumber.Color, "Color", "색깔", 1, true);
            sb3.AddSetterProperties(PortNumber.Blink, "Blinking", "깜빡이는 정도", 0, true);
            sb3.AddSetterProperties(PortNumber.Brightness, "Brightness", "밝기", 150, true);
            sb3.AddSetterProperties(PortNumber.YAxis, "StartYPosition", "시작 Y 좌표 위치", 50);

            sb3.AddSetterGroup();

            sb3.InitalizeValue = new List <ValueSetter>()
            {
                new ValueSetter(PortNumber.Color, "Color"),
                new ValueSetter(PortNumber.Blink, "Blinking"),
                new ValueSetter(PortNumber.Brightness, "Brightness"),
                new ValueSetter(PortNumber.YAxis, "StartYPosition"),
            };

            sb3[0].AddContinueLine(500);
            sb3[0].AddStates((PortNumber.YAxis, new RelativeValue("StartYPosition", 60, RelativeValue.RelativeSign.Plus)));

            sb3[0].AddContinueLine(500);

            sb3[0].AddStates((PortNumber.YAxis, (PropertyValue)"StartYPosition"));

            #endregion

            #region [  SetterBoard 4  ]

            SetterBoard sb4 = new SetterBoard();

            sb4.Identifier = "좌우로 움직이기";

            sb4.AddSetterProperties(PortNumber.Color, "Color", "색깔", 1, true);
            sb4.AddSetterProperties(PortNumber.Blink, "Blinking", "깜빡이는 정도", 0, true);
            sb4.AddSetterProperties(PortNumber.Brightness, "Brightness", "밝기", 150, true);
            sb4.AddSetterProperties(PortNumber.XAxis, "StartXPosition", "시작 X 좌표 위치", 156);
            sb4.AddSetterProperties(PortNumber.YAxis, "YPosition", "Y 좌표 위치", 50, true);

            sb4.AddSetterGroup();

            sb4.InitalizeValue = new List <ValueSetter>()
            {
                new ValueSetter(PortNumber.Color, "Color"),
                new ValueSetter(PortNumber.Blink, "Blinking"),
                new ValueSetter(PortNumber.Brightness, "Brightness"),
                new ValueSetter(PortNumber.XAxis, "StartXPosition"),
                new ValueSetter(PortNumber.YAxis, "YPosition"),
            };


            sb4[0].AddContinueLine(500);
            sb4[0].AddStates((PortNumber.XAxis, new RelativeValue("StartXPosition", 40, RelativeValue.RelativeSign.Plus)));
            sb4[0].AddContinueLine(500);
            sb4[0].AddStates((PortNumber.XAxis, (PropertyValue)"StartXPosition"));

            #endregion

            #region [  SetterBoard 5  ]

            var sb5 = new SetterBoard();

            sb5.Identifier = "큰 세모 그리기";

            sb5.AddSetterProperties(PortNumber.Color, "Color", "색깔", 1, true);
            sb5.AddSetterProperties(PortNumber.Blink, "Blinking", "깜빡이는 정도", 0, true);
            sb5.AddSetterProperties(PortNumber.Brightness, "Brightness", "밝기", 150, true);
            sb5.AddSetterProperties(PortNumber.XAxis, "XPosition", "시작 X 좌표 위치", 156, true);
            sb5.AddSetterProperties(PortNumber.YAxis, "YPosition", "시작 Y 좌표 위치", 30, true);

            sb5.InitalizeValue = new List <ValueSetter>()
            {
                new ValueSetter(PortNumber.Color, "Color"),
                new ValueSetter(PortNumber.Blink, "Blinking"),
                new ValueSetter(PortNumber.Brightness, "Brightness"),
                new ValueSetter(PortNumber.XAxis, "XPosition"),
                new ValueSetter(PortNumber.YAxis, "YPosition"),
            };

            sb5.AddSetterGroup();

            sb5[0].AddContinueLine(500);

            sb5[0].AddStates((PortNumber.XAxis, new RelativeValue("XPosition", 30, RelativeValue.RelativeSign.Plus)));

            sb5[0].AddContinueLine(500);

            sb5[0].AddStates((PortNumber.XAxis, new RelativeValue("XPosition", 15, RelativeValue.RelativeSign.Plus)),
                             (PortNumber.YAxis, new RelativeValue("YPosition", 40, RelativeValue.RelativeSign.Plus)));

            sb5[0].AddContinueLine(500);

            sb5[0].AddStates((PortNumber.XAxis, new RelativeValue("XPosition", 0, RelativeValue.RelativeSign.Plus)),
                             (PortNumber.YAxis, new RelativeValue("YPosition", 0, RelativeValue.RelativeSign.Plus)));


            #endregion

            //#region [  SetterBoard 6  ]

            //var sb6 = new SetterBoard();

            //sb6.Identifier = "지그재그로 움직이기";

            //sb6.AddSetterProperties(PortNumber.Color, "Color", "색깔", 1, true);
            //sb6.AddSetterProperties(PortNumber.Blink, "Blinking", "깜빡이는 정도", 0, true);
            //sb6.AddSetterProperties(PortNumber.Brightness, "Brightness", "밝기", 150, true);
            //sb6.AddSetterProperties(PortNumber.XAxis, "XPosition", "시작 X 좌표 위치", 156, true);
            //sb6.AddSetterProperties(PortNumber.YAxis, "YPosition", "시작 Y 좌표 위치", 30, true);

            //sb6.InitalizeValue = new List<ValueSetter>()
            //{
            //    new ValueSetter(PortNumber.Color, "Color"),
            //    new ValueSetter(PortNumber.Blink, "Blinking"),
            //    new ValueSetter(PortNumber.Brightness, "Brightness"),
            //    new ValueSetter(PortNumber.XAxis, "XPosition"),
            //    new ValueSetter(PortNumber.YAxis, "YPosition"),
            //};

            //sb6[0].AddStates((PortNumber.XAxis, new RelativeValue("XPosition", 50, RelativeValue.RelativeSign.Plus)),
            //    );


            //#endregion

            AddBoard(sb1);
            AddBoard(sb2);
            AddBoard(sb3);
            AddBoard(sb4);
            AddBoard(sb5);
        }