Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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;
                }
            }
        }
Ejemplo n.º 3
0
        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;
            }
        }