Пример #1
0
        public static void ImportPapagayoTracks(ICollection <IMarkCollection> markCollection)
        {
            FileDialog openDialog = new OpenFileDialog();

            openDialog.Filter           = @"Papagayo files (*.pgo)|*.pgo|All files (*.*)|*.*";
            openDialog.FilterIndex      = 1;
            openDialog.InitialDirectory = _lastFolder;
            if (openDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            PapagayoDoc papagayoFile = new PapagayoDoc();
            string      fileName     = openDialog.FileName;

            _lastFolder = Path.GetDirectoryName(openDialog.FileName);
            papagayoFile.Load(fileName);
            var fileWithoutExtension = Path.GetFileNameWithoutExtension(fileName);
            int rownum = 0;

            foreach (string voice in papagayoFile.VoiceList)
            {
                var phraseCollection = new MarkCollection();
                phraseCollection.Name            = $"{fileWithoutExtension} {voice} Phrases";
                phraseCollection.ShowMarkBar     = true;
                phraseCollection.Decorator.Color = Color.FromArgb(205, 242, 162);
                var wordCollection = new MarkCollection();
                wordCollection.Name            = $"{fileWithoutExtension} {voice} Words";
                wordCollection.ShowMarkBar     = true;
                wordCollection.Decorator.Color = Color.FromArgb(242, 205, 162);
                var phonemeCollection = new MarkCollection();
                phonemeCollection.Name            = $"{fileWithoutExtension} {voice} Phonemes";
                phonemeCollection.ShowMarkBar     = true;
                phonemeCollection.Decorator.Color = Color.FromArgb(235, 185, 210);
                var phrases = papagayoFile.PhraseList(voice);
                foreach (var phrase in phrases)
                {
                    var mark = new Mark(TimeSpan.FromMilliseconds(phrase.StartMS));
                    mark.Duration = TimeSpan.FromMilliseconds(phrase.DurationMS);
                    mark.Text     = phrase.Text;
                    phraseCollection.AddMark(mark);
                    foreach (var word in phrase.Words)
                    {
                        mark          = new Mark(TimeSpan.FromMilliseconds(word.StartMS));
                        mark.Duration = TimeSpan.FromMilliseconds(word.EndMS) - mark.StartTime;
                        mark.Text     = word.Text;
                        wordCollection.AddMark(mark);
                        foreach (var phoneme in word.Phonemes)
                        {
                            mark          = new Mark(TimeSpan.FromMilliseconds(phoneme.StartMS));
                            mark.Duration = TimeSpan.FromMilliseconds(phoneme.EndMS) - mark.StartTime;
                            mark.Text     = phoneme.TypeName;
                            phonemeCollection.AddMark(mark);
                        }
                    }
                }

                phraseCollection.CollectionType = MarkCollectionType.Phrase;
                markCollection.Add(phraseCollection);
                wordCollection.CollectionType         = MarkCollectionType.Word;
                wordCollection.LinkedMarkCollectionId = phraseCollection.Id;
                markCollection.Add(wordCollection);
                phonemeCollection.CollectionType         = MarkCollectionType.Phoneme;
                phonemeCollection.LinkedMarkCollectionId = wordCollection.Id;
                markCollection.Add(phonemeCollection);


                //phonemeCollection = new MarkCollection();
                //phonemeCollection.Name = $"{fileWithoutExtension} {voice} Phonemes Coalesced";
                //phonemeCollection.ShowMarkBar = true;
                //phonemeCollection.Decorator.Color = Color.FromArgb(245, 75, 210); ;
                //foreach (var phoneme in papagayoFile.PhonemeList(voice))
                //{
                //	var mark = new Mark(TimeSpan.FromMilliseconds(phoneme.StartMS));
                //	mark.Duration = TimeSpan.FromMilliseconds(phoneme.EndMS) - mark.StartTime;
                //	mark.Text = phoneme.TypeName;
                //	phonemeCollection.AddMark(mark);
                //}
                //phonemeCollection.CollectionType = MarkCollectionType.Phoneme;
                //markCollection.Add(phonemeCollection);
                rownum++;
            }

            string displayStr = rownum + " Voices imported to clipboard as Mark Collctions\n\n";
            int    j          = 1;

            foreach (string voiceStr in papagayoFile.VoiceList)
            {
                displayStr += "Row #" + j + " - " + voiceStr + "\n";
                j++;
            }
            //messageBox Arguments are (Text, Title, No Button Visible, Cancel Button Visible)
            MessageBoxForm.msgIcon = SystemIcons.Information;             //this is used if you want to add a system icon to the message form.
            var messageBox = new MessageBoxForm(displayStr, @"Papagayo Import", false, false);

            messageBox.ShowDialog();
        }
Пример #2
0
        private void papagayoImportToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string fileName;
            PapagayoDoc papagayoFile = new PapagayoDoc();
            FileDialog openDialog = new OpenFileDialog();

            openDialog.Filter = "Papagayo files (*.pgo)|*.pgo|All files (*.*)|*.*";
            openDialog.FilterIndex = 1;
            if (openDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            fileName = openDialog.FileName;
            papagayoFile.Load(fileName);

            TimelineElementsClipboardData result = new TimelineElementsClipboardData()
            {
                FirstVisibleRow = -1,
                EarliestStartTime = TimeSpan.MaxValue,
            };

            result.FirstVisibleRow = 0;

            int rownum = 0;
            foreach (string voice in papagayoFile.VoiceList)
            {
                List<PapagayoPhoneme> phonemes = papagayoFile.PhonemeList(voice);

                if (phonemes.Count > 0)
                {

                    foreach (PapagayoPhoneme phoneme in phonemes)
                    {
                        if (phoneme.DurationMS == 0.0)
                        {
                            continue;
                        }

                        IEffectModuleInstance effect =
                            ApplicationServices.Get<IEffectModuleInstance>(new LipSyncDescriptor().TypeId);

                        ((LipSync)effect).StaticPhoneme = phoneme.TypeName.ToUpper();
                        ((LipSync)effect).LyricData = phoneme.LyricData;

                        TimeSpan startTime = TimeSpan.FromMilliseconds(phoneme.StartMS);
                        TimelineElementsClipboardData.EffectModelCandidate modelCandidate =
                              new TimelineElementsClipboardData.EffectModelCandidate(effect)
                              {
                                  Duration = TimeSpan.FromMilliseconds(phoneme.DurationMS - 1),
                                  StartTime = startTime,
                              };

                        result.EffectModelCandidates.Add(modelCandidate, rownum);
                        if (startTime < result.EarliestStartTime)
                            result.EarliestStartTime = startTime;

                        effect.Render();

                    }

                    IDataObject dataObject = new DataObject(_clipboardFormatName);
                    dataObject.SetData(result);
                    Clipboard.SetDataObject(dataObject, true);
                    _TimeLineSequenceClipboardContentsChanged(EventArgs.Empty);
                    sequenceModified();

                }
                rownum++;
            }

            string displayStr = rownum + " Voices imported to clipboard as seperate rows\n\n";

            int j = 1;
            foreach (string voiceStr in papagayoFile.VoiceList)
            {
                displayStr += "Row #" + j +" - " + voiceStr + "\n";
                j++;
            }

            MessageBox.Show(displayStr, "Papagayo Import", MessageBoxButtons.OK);
        }
Пример #3
0
        private void papagayoImportToolStripMenuItem_Click(object sender, EventArgs e)
        {
            PapagayoDoc papagayoFile = new PapagayoDoc();
            FileDialog openDialog = new OpenFileDialog();

            openDialog.Filter = @"Papagayo files (*.pgo)|*.pgo|All files (*.*)|*.*";
            openDialog.FilterIndex = 1;
            if (openDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            string fileName = openDialog.FileName;
            papagayoFile.Load(fileName);

            TimelineElementsClipboardData result = new TimelineElementsClipboardData
            {
                FirstVisibleRow = -1,
                EarliestStartTime = TimeSpan.MaxValue,
            };

            result.FirstVisibleRow = 0;

            int rownum = 0;
            foreach (string voice in papagayoFile.VoiceList)
            {
                List<PapagayoPhoneme> phonemes = papagayoFile.PhonemeList(voice);

                if (phonemes.Count > 0)
                {

                    foreach (PapagayoPhoneme phoneme in phonemes)
                    {
                        if (phoneme.DurationMS == 0.0)
                        {
                            continue;
                        }

                        IEffectModuleInstance effect =
                            ApplicationServices.Get<IEffectModuleInstance>(new LipSyncDescriptor().TypeId);

                        ((LipSync)effect).StaticPhoneme = (App.LipSyncApp.PhonemeType)Enum.Parse(typeof(App.LipSyncApp.PhonemeType), phoneme.TypeName.ToUpper());
                        ((LipSync)effect).LyricData = phoneme.LyricData;

                        TimeSpan startTime = TimeSpan.FromMilliseconds(phoneme.StartMS);
                        EffectModelCandidate modelCandidate =
                              new EffectModelCandidate(effect)
                              {
                                  Duration = TimeSpan.FromMilliseconds(phoneme.DurationMS - 1),
                                  StartTime = startTime
                              };

                        result.EffectModelCandidates.Add(modelCandidate, rownum);
                        if (startTime < result.EarliestStartTime)
                            result.EarliestStartTime = startTime;

                        effect.Render();

                    }

                    IDataObject dataObject = new DataObject(ClipboardFormatName);
                    dataObject.SetData(result);
                    Clipboard.SetDataObject(dataObject, true);
                    _TimeLineSequenceClipboardContentsChanged(EventArgs.Empty);
                    SequenceModified();

                }
                rownum++;
            }

            string displayStr = rownum + " Voices imported to clipboard as seperate rows\n\n";

            int j = 1;
            foreach (string voiceStr in papagayoFile.VoiceList)
            {
                displayStr += "Row #" + j +" - " + voiceStr + "\n";
                j++;
            }

            //messageBox Arguments are (Text, Title, No Button Visible, Cancel Button Visible)
            MessageBoxForm.msgIcon = SystemIcons.Information; //this is used if you want to add a system icon to the message form.
            var messageBox = new MessageBoxForm(displayStr, @"Papagayo Import", false, false);
            messageBox.ShowDialog();
        }