Example #1
0
            internal void displayColor(System.Windows.Forms.RichTextBox parolesText, int posBegin, Boolean displayCurrent)
            {
                Color color = Color.Blue;

                for (int i = 0; i < sylList.Count; ++i)
                {
                    LyricSyl syl     = sylList[i];
                    String   syltext = syl.getDisplay();
                    parolesText.SelectionStart  = posBegin;
                    parolesText.SelectionLength = syltext.Length;
                    if (i == currentSyl && displayCurrent)
                    {
                        parolesText.SelectionColor = Color.Green;
                        parolesText.SelectionFont  = new Font(FontFamily.GenericSerif, 26, FontStyle.Bold);
                    }
                    else
                    {
                        parolesText.SelectionColor = (i < currentSyl ? Color.Black : color);
                        parolesText.SelectionFont  = new Font(FontFamily.GenericSerif, 20, FontStyle.Regular);
                    }
                    color     = (color == Color.Blue ? Color.Red : Color.Blue);
                    posBegin += syltext.Length;
                }
            }
Example #2
0
 internal void Add(LyricSyl syl)
 {
     this.sylList.Add(syl);
 }
Example #3
0
 internal void Add(LyricSyl syl)
 {
     this.sylList.Add(syl);
 }
Example #4
0
        internal void saveManualModifs(RichTextBox frameBox)
        {
            StringSplitOptions option = StringSplitOptions.RemoveEmptyEntries;

            String[] lineList = frameBox.Text.Split(new String[] { "\n", Environment.NewLine }, option);

            //List<LyricSyl> sylList = this.getSylList();
            Int32 cpt     = 0;
            int   linePos = 0;
            int   lineNum = 0;
            //int lineDec = 0;
            int sylNum  = -1;
            int beginAt = 0;
            //int sylDec = 0;
            String    line;
            LyricLine lyricLine       = null;
            LyricSyl  lyricSyl        = null;
            int       backCurrentLine = this.currentLine;
            int       backCurrentSyl  = (backCurrentLine < this.lyricList.Count ? lyricList[backCurrentLine].getCurrentSyl() : 0);

            clearLyrics();
            while (linePos < lineList.Length)
            {
                beginAt = 0;
                line    = lineList[linePos];

                if (line.Length == 0)
                {
                    //todo : cas vide
                }
                else if (line.ToCharArray()[0].Equals('%'))
                {
                    //TODO: cas information
                }
                else
                {
                    int      num;
                    String[] parts = line.Split(new Char[] { ' ' }, 5);
                    //recuperation de la ligne
                    if (parts.Length == 0 || !int.TryParse(parts[0], out num))
                    {
                        //creer une nouvele ligne
                        //lineDec ++;
                        lyricLine = new LyricLine();
                        lineNum   = 0;
                        lyricList.Add(lyricLine);
                        //sylDec = 0;
                        sylNum   = 0;
                        lyricSyl = new LyricSyl("");
                        lyricLine.Add(lyricSyl);
                    }
                    else
                    {
                        beginAt = 1;
                        if (num != lineNum)
                        {
                            //si on a changé de ligne
                            lyricLine = new LyricLine();
                            lineNum   = num;
                            lyricList.Add(lyricLine);
                            sylNum = 0;
                        }
                        if (lyricLine == null)
                        {
                            throw (new Exception("Erreur de parsing"));
                        }
                        //recuperation de la syllabe
                        if (parts.Length < 2 || !int.TryParse(parts[1], out num))
                        {
                            //creer une nouvele ligne
                            //sylDec ++;
                            lyricSyl = new LyricSyl("");
                            sylNum   = 0;
                            lyricLine.Add(lyricSyl);
                        }
                        else
                        {
                            beginAt = 2;
                            if (num != sylNum)
                            {
                                //si on a changé de sylabe
                                lyricSyl = new LyricSyl("");
                                sylNum   = num;
                                lyricLine.Add(lyricSyl);
                            }
                            if (lyricSyl == null)
                            {
                                throw (new Exception("Erreur de parsing"));
                            }


                            //recuperation des frames
                            if (parts.Length < 3 || !int.TryParse(parts[2], out num))
                            {
                                lyricSyl.setBeginFrame(0);
                            }
                            else
                            {
                                beginAt = 3;
                                //si on est sur la même syl on ne garde que la fin
                                if (lyricSyl.getBeginFrame() <= 0)
                                {
                                    lyricSyl.setBeginFrame(num);
                                }

                                if (parts.Length < 4 || !int.TryParse(parts[3], out num))
                                {
                                    lyricSyl.setEndFrame(0);
                                }
                                else
                                {
                                    beginAt = 4;
                                    lyricSyl.setEndFrame(num);
                                }
                            }
                        }
                    }
                    for (int i = beginAt; i < parts.Length; ++i)
                    {
                        //espace de fin de ligne
                        if (parts[i].Length == 0)
                        {
                            parts[i] = " ";
                        }
                        lyricSyl.setText(lyricSyl.getText() + parts[i]);
                    }
                }
                linePos++;
            }

            onFrameChangedEvent.Invoke(this, new EventArgs());//displayAllFrames();
            this.currentLine = backCurrentLine;
            if (currentLine < this.lyricList.Count)
            {
                lyricList[currentLine].setCurrentSyl(backCurrentSyl);
            }
            onCurrentLineChangedEvent.Invoke(this, new EventArgs());
            //displayCurrentLine(false);
        }
Example #5
0
        internal void saveManualModifs(RichTextBox frameBox)
        {
            StringSplitOptions option = StringSplitOptions.RemoveEmptyEntries;

            String[] lineList = frameBox.Text.Split(new String[] { "\n", Environment.NewLine }, option);

            //List<LyricSyl> sylList = this.getSylList();
            Int32 cpt = 0;
            int linePos = 0;
            int lineNum = 0;
            //int lineDec = 0;
            int sylNum = -1;
            int beginAt = 0;
            //int sylDec = 0;
            String line;
            LyricLine lyricLine = null;
            LyricSyl lyricSyl = null;
            int backCurrentLine = this.currentLine;
            int backCurrentSyl = (backCurrentLine < this.lyricList.Count ? lyricList[backCurrentLine].getCurrentSyl() : 0);
            clearLyrics();
            while (linePos < lineList.Length)
            {
                beginAt = 0;
                line = lineList[linePos];

                if (line.Length == 0)
                {
                    //todo : cas vide
                }
                else if (line.ToCharArray()[0].Equals('%'))
                {
                    //TODO: cas information
                }
                else
                {
                    int num;
                    String[] parts = line.Split(new Char[] { ' ' }, 5);
                    //recuperation de la ligne
                    if (parts.Length == 0 || !int.TryParse(parts[0], out num))
                    {
                        //creer une nouvele ligne
                        //lineDec ++;
                        lyricLine = new LyricLine();
                        lineNum = 0;
                        lyricList.Add(lyricLine);
                        //sylDec = 0;
                        sylNum = 0;
                        lyricSyl = new LyricSyl("");
                        lyricLine.Add(lyricSyl);

                    }
                    else
                    {
                        beginAt = 1;
                        if (num != lineNum)
                        {
                            //si on a changé de ligne
                            lyricLine = new LyricLine();
                            lineNum = num;
                            lyricList.Add(lyricLine);
                            sylNum = 0;
                        }
                        if (lyricLine == null)
                        {
                            throw (new Exception("Erreur de parsing"));
                        }
                        //recuperation de la syllabe
                        if (parts.Length < 2 || !int.TryParse(parts[1], out num))
                        {
                            //creer une nouvele ligne
                            //sylDec ++;
                            lyricSyl = new LyricSyl("");
                            sylNum = 0;
                            lyricLine.Add(lyricSyl);
                        }
                        else
                        {
                            beginAt = 2;
                            if (num != sylNum)
                            {
                                //si on a changé de sylabe
                                lyricSyl = new LyricSyl("");
                                sylNum = num;
                                lyricLine.Add(lyricSyl);
                            }
                            if (lyricSyl == null)
                            {
                                throw (new Exception("Erreur de parsing"));
                            }

                            //recuperation des frames
                            if (parts.Length < 3 || !int.TryParse(parts[2], out num))
                            {
                                lyricSyl.setBeginFrame(0);
                            }
                            else
                            {
                                beginAt = 3;
                                //si on est sur la même syl on ne garde que la fin
                                if (lyricSyl.getBeginFrame() <= 0)
                                    lyricSyl.setBeginFrame(num);

                                if (parts.Length < 4 || !int.TryParse(parts[3], out num))
                                {
                                    lyricSyl.setEndFrame(0);
                                }
                                else
                                {
                                    beginAt = 4;
                                    lyricSyl.setEndFrame(num);
                                }
                            }
                        }
                    }
                    for (int i = beginAt; i < parts.Length; ++i)
                    {
                        //espace de fin de ligne
                        if (parts[i].Length == 0)
                            parts[i] = " ";
                        lyricSyl.setText(lyricSyl.getText() + parts[i]);
                    }
                }
                linePos++;
            }

            onFrameChangedEvent.Invoke(this, new EventArgs());//displayAllFrames();
            this.currentLine = backCurrentLine;
            if (currentLine < this.lyricList.Count)
            {
                lyricList[currentLine].setCurrentSyl(backCurrentSyl);
            }
            onCurrentLineChangedEvent.Invoke(this, new EventArgs());
            //displayCurrentLine(false);
        }