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)); }
public void AddBoard(SetterBoard sb) { GlobalViewModel.MainWindowViewModel.MediaItems.Add(new LightComponent(sb)); }
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); }