public void ApplyCommands(IEnumerable <string> commandList) { if (commandList == null) { return; } foreach (var command in commandList) { switch (command) { case "small": this.FontScale = fontSize_small; break; case "big": this.FontScale = fontSize_big; break; case "medium": this.FontScale = fontSize_mid; break; case "ue": this.VAlign = VerticalAlignment.Top; break; case "shita": this.VAlign = VerticalAlignment.Bottom; break; case "naka": this.VAlign = VerticalAlignment.Center; break; case "white": this.Color = ColorExtention.HexStringToColor("FFFFFF"); break; case "red": this.Color = ColorExtention.HexStringToColor("FF0000"); break; case "pink": this.Color = ColorExtention.HexStringToColor("FF8080"); break; case "orange": this.Color = ColorExtention.HexStringToColor("FFC000"); break; case "yellow": this.Color = ColorExtention.HexStringToColor("FFFF00"); break; case "green": this.Color = ColorExtention.HexStringToColor("00FF00"); break; case "cyan": this.Color = ColorExtention.HexStringToColor("00FFFF"); break; case "blue": this.Color = ColorExtention.HexStringToColor("0000FF"); break; case "purple": this.Color = ColorExtention.HexStringToColor("C000FF"); break; case "black": this.Color = ColorExtention.HexStringToColor("000000"); break; case "white2": this.Color = ColorExtention.HexStringToColor("CCCC99"); break; case "niconicowhite": this.Color = ColorExtention.HexStringToColor("CCCC99"); break; case "red2": this.Color = ColorExtention.HexStringToColor("CC0033"); break; case "truered": this.Color = ColorExtention.HexStringToColor("CC0033"); break; case "pink2": this.Color = ColorExtention.HexStringToColor("FF33CC"); break; case "orange2": this.Color = ColorExtention.HexStringToColor("FF6600"); break; case "passionorange": this.Color = ColorExtention.HexStringToColor("FF6600"); break; case "yellow2": this.Color = ColorExtention.HexStringToColor("999900"); break; case "madyellow": this.Color = ColorExtention.HexStringToColor("999900"); break; case "green2": this.Color = ColorExtention.HexStringToColor("00CC66"); break; case "elementalgreen": this.Color = ColorExtention.HexStringToColor("00CC66"); break; case "cyan2": this.Color = ColorExtention.HexStringToColor("00CCCC"); break; case "blue2": this.Color = ColorExtention.HexStringToColor("3399FF"); break; case "marineblue": this.Color = ColorExtention.HexStringToColor("3399FF"); break; case "purple2": this.Color = ColorExtention.HexStringToColor("6633CC"); break; case "nobleviolet": this.Color = ColorExtention.HexStringToColor("6633CC"); break; case "black2": this.Color = ColorExtention.HexStringToColor("666666"); break; case "full": break; case "_184": this.IsAnonimity = true; break; case "invisible": this.IsVisible = false; break; case "all": // Note": 事前に判定しているのでここでは評価しない break; case "from_button": break; case "is_button": break; case "_live": break; default: if (command.StartsWith("#")) { this.Color = ColorExtention.HexStringToColor(command.Remove(0, 1)); } break; } } // TODO: 投稿者のコメント表示時間を伸ばす?(3秒→5秒) // usまたはshitaが指定されている場合に限る? // → 投コメ解説をみやすくしたい if (this.IsOwnerComment && this.VAlign.HasValue) { var displayTime = Math.Max(3.0f, this.CommentText.Count() * 0.3f); // 4文字で1秒? 年齢層的に読みが遅いかもしれないのでやや長めに var displayTimeVideoLength = (uint)(displayTime * 100); this.EndPosition = this.VideoPosition + displayTimeVideoLength; } }
public static IEnumerable <Action <VideoComment> > MakeCommandActions(IEnumerable <string> commands) { foreach (var command in commands) { switch (command) { case "small": yield return(c => c.SizeMode = CommentSizeMode.Small); break; case "big": yield return(c => c.SizeMode = CommentSizeMode.Small); break; case "medium": yield return(c => c.SizeMode = CommentSizeMode.Normal); break; case "ue": yield return(c => c.DisplayMode = CommentDisplayMode.Top); break; case "shita": yield return(c => c.DisplayMode = CommentDisplayMode.Bottom); break; case "naka": yield return(c => c.DisplayMode = CommentDisplayMode.Center); break; case "white": yield return(c => c.Color = ColorExtention.HexStringToColor("FFFFFF")); break; case "red": yield return(c => c.Color = ColorExtention.HexStringToColor("FF0000")); break; case "pink": yield return(c => c.Color = ColorExtention.HexStringToColor("FF8080")); break; case "orange": yield return(c => c.Color = ColorExtention.HexStringToColor("FFC000")); break; case "yellow": yield return(c => c.Color = ColorExtention.HexStringToColor("FFFF00")); break; case "green": yield return(c => c.Color = ColorExtention.HexStringToColor("00FF00")); break; case "cyan": yield return(c => c.Color = ColorExtention.HexStringToColor("00FFFF")); break; case "blue": yield return(c => c.Color = ColorExtention.HexStringToColor("0000FF")); break; case "purple": yield return(c => c.Color = ColorExtention.HexStringToColor("C000FF")); break; case "black": yield return(c => c.Color = ColorExtention.HexStringToColor("000000")); break; case "white2": yield return(c => c.Color = ColorExtention.HexStringToColor("CCCC99")); break; case "niconicowhite": yield return(c => c.Color = ColorExtention.HexStringToColor("CCCC99")); break; case "red2": yield return(c => c.Color = ColorExtention.HexStringToColor("CC0033")); break; case "truered": yield return(c => c.Color = ColorExtention.HexStringToColor("CC0033")); break; case "pink2": yield return(c => c.Color = ColorExtention.HexStringToColor("FF33CC")); break; case "orange2": yield return(c => c.Color = ColorExtention.HexStringToColor("FF6600")); break; case "passionorange": yield return(c => c.Color = ColorExtention.HexStringToColor("FF6600")); break; case "yellow2": yield return(c => c.Color = ColorExtention.HexStringToColor("999900")); break; case "madyellow": yield return(c => c.Color = ColorExtention.HexStringToColor("999900")); break; case "green2": yield return(c => c.Color = ColorExtention.HexStringToColor("00CC66")); break; case "elementalgreen": yield return(c => c.Color = ColorExtention.HexStringToColor("00CC66")); break; case "cyan2": yield return(c => c.Color = ColorExtention.HexStringToColor("00CCCC")); break; case "blue2": yield return(c => c.Color = ColorExtention.HexStringToColor("3399FF")); break; case "marineblue": yield return(c => c.Color = ColorExtention.HexStringToColor("3399FF")); break; case "purple2": yield return(c => c.Color = ColorExtention.HexStringToColor("6633CC")); break; case "nobleviolet": yield return(c => c.Color = ColorExtention.HexStringToColor("6633CC")); break; case "black2": yield return(c => c.Color = ColorExtention.HexStringToColor("666666")); break; case "full": break; case "_184": yield return(c => c.IsAnonymity = true); break; case "invisible": yield return(c => c.IsInvisible = true); break; case "all": // Note": 事前に判定しているのでここでは評価しない break; case "from_button": break; case "is_button": break; case "_live": break; default: if (command.StartsWith("#")) { var color = ColorExtention.HexStringToColor(command.Remove(0, 1)); yield return(c => c.Color = color); } break; } } }
public void ApplyCommands(IEnumerable <CommandType> commandList) { if (commandList == null || commandList.Any(x => x == CommandType.all)) { commandList = Enumerable.Empty <CommandType>(); } foreach (var command in commandList) { switch (command) { case CommandType.small: this.FontScale = fontSize_small; break; case CommandType.big: this.FontScale = fontSize_big; break; case CommandType.medium: this.FontScale = fontSize_mid; break; case CommandType.ue: this.VAlign = VerticalAlignment.Top; break; case CommandType.shita: this.VAlign = VerticalAlignment.Bottom; break; case CommandType.naka: this.VAlign = VerticalAlignment.Center; break; case CommandType.white: this.Color = ColorExtention.HexStringToColor("FFFFFF"); break; case CommandType.red: this.Color = ColorExtention.HexStringToColor("FF0000"); break; case CommandType.pink: this.Color = ColorExtention.HexStringToColor("FF8080"); break; case CommandType.orange: this.Color = ColorExtention.HexStringToColor("FFC000"); break; case CommandType.yellow: this.Color = ColorExtention.HexStringToColor("FFFF00"); break; case CommandType.green: this.Color = ColorExtention.HexStringToColor("00FF00"); break; case CommandType.cyan: this.Color = ColorExtention.HexStringToColor("00FFFF"); break; case CommandType.blue: this.Color = ColorExtention.HexStringToColor("0000FF"); break; case CommandType.purple: this.Color = ColorExtention.HexStringToColor("C000FF"); break; case CommandType.black: this.Color = ColorExtention.HexStringToColor("000000"); break; case CommandType.white2: this.Color = ColorExtention.HexStringToColor("CCCC99"); break; case CommandType.niconicowhite: this.Color = ColorExtention.HexStringToColor("CCCC99"); break; case CommandType.red2: this.Color = ColorExtention.HexStringToColor("CC0033"); break; case CommandType.truered: this.Color = ColorExtention.HexStringToColor("CC0033"); break; case CommandType.pink2: this.Color = ColorExtention.HexStringToColor("FF33CC"); break; case CommandType.orange2: this.Color = ColorExtention.HexStringToColor("FF6600"); break; case CommandType.passionorange: this.Color = ColorExtention.HexStringToColor("FF6600"); break; case CommandType.yellow2: this.Color = ColorExtention.HexStringToColor("999900"); break; case CommandType.madyellow: this.Color = ColorExtention.HexStringToColor("999900"); break; case CommandType.green2: this.Color = ColorExtention.HexStringToColor("00CC66"); break; case CommandType.elementalgreen: this.Color = ColorExtention.HexStringToColor("00CC66"); break; case CommandType.cyan2: this.Color = ColorExtention.HexStringToColor("00CCCC"); break; case CommandType.blue2: this.Color = ColorExtention.HexStringToColor("3399FF"); break; case CommandType.marineblue: this.Color = ColorExtention.HexStringToColor("3399FF"); break; case CommandType.purple2: this.Color = ColorExtention.HexStringToColor("6633CC"); break; case CommandType.nobleviolet: this.Color = ColorExtention.HexStringToColor("6633CC"); break; case CommandType.black2: this.Color = ColorExtention.HexStringToColor("666666"); break; case CommandType.full: break; case CommandType._184: this.IsAnonimity = true; break; case CommandType.invisible: this.IsVisible = false; break; case CommandType.all: // Note: 事前に判定しているのでここでは評価しない break; case CommandType.from_button: break; case CommandType.is_button: break; case CommandType._live: break; default: break; } } // TODO: 投稿者のコメント表示時間を伸ばす?(3秒→5秒) // usまたはshitaが指定されている場合に限る? // → 投コメ解説をみやすくしたい if (this.IsOwnerComment && this.VAlign.HasValue) { var displayTime = Math.Max(3.0f, this.CommentText.Count() * 0.3f); // 4文字で1秒? 年齢層的に読みが遅いかもしれないのでやや長めに var displayTimeVideoLength = (uint)(displayTime * 100); this.EndPosition = this.VideoPosition + displayTimeVideoLength; } }