示例#1
0
        private List <Syllabe> FiltrarSilabas(List <string> elementos)
        {
            var silabas = new List <Syllabe>();

            for (var i = 0; i < elementos.Count; i++)
            {
                var elementoActual = elementos[i];
                var silaba         = new Syllabe();

                if (AssFilter.IsTagGroup(elementoActual))
                {
                    // Si es grupo {}.
                    silaba.TagGroup = new TagGroup(elementoActual);
                }
                else
                {
                    // Si es texto.
                    if (elementoActual == string.Empty)
                    {
                        goto Salida;
                    }

                    if (i == 0)
                    {
                        // Si el primer elemento es un texto, es una sílaba sin tags.
                        silaba.Text = elementoActual;
                    }
                    else
                    {
                        // Si no es el primero, sí o sí tiene un grupo antes,
                        // por tanto el texto corresponde a esa sílaba.
                        silabas[silabas.Count - 1].Text = elementoActual;
                        goto Salida;
                    }
                }

                silabas.Add(silaba);

Salida:
                continue;
            }

            return(silabas);
        }
示例#2
0
        /// <summary>
        /// Inicializa una nueva instancia de la clase <see cref="Syllabe"/> en base a la duración, texto, tipo de karaoke y grupo de tags indicados.
        /// </summary>
        /// <param name="duracion">Duración de la sílaba.</param>
        /// <param name="texto">Texto de la sílaba.</param>
        /// <param name="tipoKaraoke">Tipo de karaoke de la sílaba.</param>
        /// <param name="grupoTag">Grupo de tags de la sílaba.</param>
        public Syllabe(int tiempo, string texto, KaraokeType tipoKaraoke, TagGroup grupoTag)
        {
            var sil = new Syllabe()
            {
                Length   = tiempo,
                Text     = texto,
                TagGroup = grupoTag
            };

            switch (tipoKaraoke)
            {
            case KaraokeType.K:
                sil.TagGroup.TagK = new TagK(tiempo);
                break;

            case KaraokeType.Kf:
                sil.TagGroup.TagKf = new TagKf(tiempo);
                break;

            case KaraokeType.Ko:
                sil.TagGroup.TagKo = new TagKo(tiempo);
                break;
            }
        }
示例#3
0
 /// <summary>
 /// Inicializa una nueva instancia de la clase <see cref="Syllabe"/>, copiando las propiedades de otra instancia.
 /// </summary>
 /// <param name="silaba">Silaba a copiar.</param>
 public Syllabe(Syllabe silaba)
 {
     TagGroup = silaba.TagGroup;
     Text     = silaba.Text;
     Type     = silaba.Type;
 }
示例#4
0
        /// <summary>
        /// Instancia una <see cref="Syllabe"/> y la agrega al karaoke.
        /// </summary>
        /// <param name="duracion">Duración de la sílaba.</param>
        /// <param name="texto">Texto de la sílaba.</param>
        /// <param name="tipoKaraoke">Tipo de karaoke de la sílaba.</param>
        /// <param name="grupoTag">Grupo de tags de la sílaba.</param>
        public void AgregarSilaba(int tiempo, string texto, KaraokeType tipoKaraoke, TagGroup grupoTag)
        {
            var sil = new Syllabe(tiempo, texto, tipoKaraoke, grupoTag);

            Syllabes.Add(sil);
        }
示例#5
0
        /// <summary>
        /// Instancia una <see cref="Syllabe"/> y la agrega al karaoke.
        /// </summary>
        /// <param name="duracion">Duración de la sílaba.</param>
        /// <param name="texto">Texto de la sílaba.</param>
        /// <param name="tipoKaraoke">Tipo de karaoke de la sílaba.</param>
        public void AgregarSilaba(int duracion, string texto, KaraokeType tipoKaraoke)
        {
            var sil = new Syllabe(duracion, texto, tipoKaraoke);

            Syllabes.Add(sil);
        }