示例#1
0
 private void Write(string value, LyricsSentence sentence = null, LyricsMapping mapping = null)
 {
     _Results.Add(new LyricsVerificationResult
     {
         _Message  = value,
         _Mapping  = mapping,
         _Sentence = sentence
     });
 }
示例#2
0
        private void Timer_Tick(object sender, EventArgs e)
        {
            if (Document != null && Provider != null)
            {
                // 문장 및 문자 검색
                var sentence    = Document.GetSentence(Provider.GetPosition());
                var lrCharacter = Document.GetCharacter(Provider.GetPosition(), LyricsDocument.ValueType.Lyrics);
                var prCharacter = Document.GetCharacter(Provider.GetPosition(), LyricsDocument.ValueType.Pronounce);
                var trCharacter = Document.GetCharacter(Provider.GetPosition(), LyricsDocument.ValueType.Translation);

                // 문장 블록 그리기
                if (lastSentence != sentence)
                {
                    if (lrCharacter != null)
                    {
                        CreateBlock(PanelLyrics, sentence.Characters.Lyrics);
                        TextLyrics.Visibility  = Visibility.Collapsed;
                        PanelLyrics.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        TextLyrics.Text        = sentence.Lyrics;
                        TextLyrics.Visibility  = Visibility.Visible;
                        PanelLyrics.Visibility = Visibility.Collapsed;
                    }

                    if (prCharacter != null)
                    {
                        CreateBlock(PanelPronounce, sentence.Characters.Pronounce);
                        TextPronounce.Visibility  = Visibility.Collapsed;
                        PanelPronounce.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        TextPronounce.Text        = sentence.Pronounce;
                        TextPronounce.Visibility  = Visibility.Visible;
                        PanelPronounce.Visibility = Visibility.Collapsed;
                    }

                    if (trCharacter != null)
                    {
                        CreateBlock(PanelTranslation, sentence.Characters.Translation);
                        TextTranslation.Visibility  = Visibility.Collapsed;
                        PanelTranslation.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        TextTranslation.Text        = sentence.Translation;
                        TextTranslation.Visibility  = Visibility.Visible;
                        PanelTranslation.Visibility = Visibility.Collapsed;
                    }

                    lastSentence = sentence;
                }

                // 애니메이션 적용
                if (lrCharacter != null)
                {
                    StartAnimation(ref lastLrCharacter, lrCharacter, PanelLyrics);
                }
                if (prCharacter != null)
                {
                    StartAnimation(ref lastPrCharacter, prCharacter, PanelPronounce);
                }
                if (trCharacter != null)
                {
                    StartAnimation(ref lastTrCharacter, trCharacter, PanelTranslation);
                }
            }
        }