private void textConverterHandler(object sender, NewTranslationEventArgs args) { TimelineElementsClipboardData result = new TimelineElementsClipboardData() { FirstVisibleRow = -1, EarliestStartTime = TimeSpan.MaxValue, }; if (args.PhonemeData.Count > 0) { foreach (LipSyncConvertData data in args.PhonemeData) { if (data.Duration.Ticks == 0) { continue; } IEffectModuleInstance effect = ApplicationServices.Get<IEffectModuleInstance>(new LipSyncDescriptor().TypeId); ((LipSync)effect).StaticPhoneme = data.Phoneme.ToString().ToUpper(); ((LipSync)effect).LyricData = data.LyricData; TimelineElementsClipboardData.EffectModelCandidate modelCandidate = new TimelineElementsClipboardData.EffectModelCandidate(effect) { Duration = data.Duration, StartTime = data.StartOffset }; result.EffectModelCandidates.Add(modelCandidate, 0); if (data.StartOffset < result.EarliestStartTime) result.EarliestStartTime = data.StartOffset; effect.Render(); } IDataObject dataObject = new DataObject(_clipboardFormatName); dataObject.SetData(result); Clipboard.SetDataObject(dataObject, true); _TimeLineSequenceClipboardContentsChanged(EventArgs.Empty); int pasted = 0; if (args.Placement == TranslatePlacement.Cursor) { args.FirstMark += TimelineControl.grid.CursorPosition; } if (args.Placement != TranslatePlacement.Clipboard) { pasted = ClipboardPaste((TimeSpan)args.FirstMark); } if (pasted == 0) { MessageBox.Show("Conversion Complete and copied to Clipboard \n Paste at first Mark offset", "Convert Text", MessageBoxButtons.OK); } sequenceModified(); } }
private void textConverterHandler(object sender, NewTranslationEventArgs args) { TimelineElementsClipboardData result = new TimelineElementsClipboardData { FirstVisibleRow = -1, EarliestStartTime = TimeSpan.MaxValue, }; if (args.PhonemeData.Count > 0) { foreach (LipSyncConvertData data in args.PhonemeData) { if (data.Duration.Ticks == 0) { continue; } IEffectModuleInstance effect = ApplicationServices.Get<IEffectModuleInstance>(new LipSyncDescriptor().TypeId); ((LipSync)effect).StaticPhoneme = (App.LipSyncApp.PhonemeType)Enum.Parse(typeof(App.LipSyncApp.PhonemeType), data.Phoneme.ToString().ToUpper()); ((LipSync)effect).LyricData = data.LyricData; EffectModelCandidate modelCandidate = new EffectModelCandidate(effect) { Duration = data.Duration, StartTime = data.StartOffset }; result.EffectModelCandidates.Add(modelCandidate, 0); if (data.StartOffset < result.EarliestStartTime) result.EarliestStartTime = data.StartOffset; effect.Render(); } IDataObject dataObject = new DataObject(ClipboardFormatName); dataObject.SetData(result); Clipboard.SetDataObject(dataObject, true); _TimeLineSequenceClipboardContentsChanged(EventArgs.Empty); int pasted = 0; if (args.Placement == TranslatePlacement.Cursor) { args.FirstMark += TimelineControl.grid.CursorPosition; } if (args.Placement != TranslatePlacement.Clipboard) { pasted = ClipboardPaste(args.FirstMark); } if (pasted == 0) { //messageBox Arguments are (Text, Title, No Button Visible, Cancel Button Visible) MessageBoxForm.msgIcon = SystemIcons.Error; //this is used if you want to add a system icon to the message form. var messageBox = new MessageBoxForm("Conversion Complete and copied to Clipboard \n Paste at first Mark offset", @"Convert Text", false, false); messageBox.ShowDialog(); } SequenceModified(); } }
private void convertButton_Click(object sender, EventArgs e) { int mcIndex = startOffsetCombo.SelectedIndex; Tuple <TimeSpan, TimeSpan> timing = Tuple.Create(new TimeSpan(), new TimeSpan()); List <LipSyncConvertData> convertData = new List <LipSyncConvertData>(); if (LipSyncTextConvert.StandardDictExists() == false) { MessageBox.Show("Unable to find Standard Phoneme Dictionary", "Error", MessageBoxButtons.OK); return; } LipSyncTextConvert.InitDictionary(); if (NewTranslation != null) { List <string> subStrings = CreateSubstringList(); MarkCollection selMC = MarkCollections.Find(x => x.Name.Equals(markCollectionCombo.SelectedItem)); bool doPhonemeAlign = (alignCombo.SelectedIndex != -1) && (alignCombo.SelectedItem.Equals("Phoneme")); if (mcIndex == -1) { selMC = null; mcIndex = 0; } foreach (string strElem in subStrings) { if (string.IsNullOrWhiteSpace(strElem)) { continue; } int phonemeIndex = 0; List <PhonemeType> phonemeList = LipSyncTextConvert.TryConvert(strElem.Trim()); if (phonemeList.Count == 0) { EventHandler <TranslateFailureEventArgs> failHandler = TranslateFailure; TranslateFailureEventArgs failArgs = new TranslateFailureEventArgs(); failArgs.FailedWord = strElem; failHandler(this, failArgs); //At this point, we should have it corrected, if not, then ignore phonemeList = LipSyncTextConvert.TryConvert(strElem); } if (phonemeList.Count == 0) { //User has bailed on one of the conversions return; } if (doPhonemeAlign == false) { timing = CalcPhonemeTimespans(selMC, mcIndex++, phonemeList.Count); } foreach (PhonemeType phoneme in phonemeList) { if (doPhonemeAlign == true) { timing = CalcPhonemeTimespans(selMC, mcIndex++, 1); phonemeIndex = 0; } long startTicks = timing.Item1.Ticks + (timing.Item2.Ticks * phonemeIndex++); convertData.Add(new LipSyncConvertData(startTicks, timing.Item2.Ticks, phoneme, strElem)); } } EventHandler <NewTranslationEventArgs> handler = NewTranslation; NewTranslationEventArgs args = new NewTranslationEventArgs(); args.PhonemeData = convertData; if (markCollectionRadio.Checked) { args.Placement = TranslatePlacement.Mark; } else if (cursorRadio.Checked) { args.Placement = TranslatePlacement.Cursor; } else { args.Placement = TranslatePlacement.Clipboard; } if (startOffsetCombo.SelectedItem != null) { args.FirstMark = (TimeSpan)startOffsetCombo.SelectedItem; } handler(this, args); } }
private void convertButton_Click(object sender, EventArgs e) { int mcIndex = startOffsetCombo.SelectedIndex; Tuple <TimeSpan, TimeSpan> timing = Tuple.Create(new TimeSpan(), new TimeSpan()); List <LipSyncConvertData> convertData = new List <LipSyncConvertData>(); if (LipSyncTextConvert.StandardDictExists() == false) { //messageBox Arguments are (Text, Title, No Button Visible, Cancel Button Visible) MessageBoxForm.msgIcon = SystemIcons.Error; //this is used if you want to add a system icon to the message form. var messageBox = new MessageBoxForm("Unable to find Standard Phoneme Dictionary", "Error", false, false); messageBox.ShowDialog(); return; } LipSyncTextConvert.InitDictionary(); if (NewTranslation != null) { var selectedMarkCollection = (markCollectionCombo.SelectedItem as ComboBoxItem)?.Value as MarkCollection; List <string> subStrings = CreateSubstringList(); var selMC = selectedMarkCollection?.Marks.Select(x => x.StartTime).ToList(); bool doPhonemeAlign = (alignCombo.SelectedIndex != -1) && (alignCombo.SelectedItem.Equals("Phoneme")); if (mcIndex == -1) { selMC = null; mcIndex = 0; } foreach (string strElem in subStrings) { if (string.IsNullOrWhiteSpace(strElem)) { continue; } int phonemeIndex = 0; List <PhonemeType> phonemeList = LipSyncTextConvert.TryConvert(strElem.Trim()); if (phonemeList.Count == 0) { EventHandler <TranslateFailureEventArgs> failHandler = TranslateFailure; TranslateFailureEventArgs failArgs = new TranslateFailureEventArgs(); failArgs.FailedWord = strElem; failHandler(this, failArgs); //At this point, we should have it corrected, if not, then ignore phonemeList = LipSyncTextConvert.TryConvert(strElem); } if (phonemeList.Count == 0) { //User has bailed on one of the conversions return; } if (doPhonemeAlign == false) { timing = CalcPhonemeTimespans(selMC, mcIndex++, phonemeList.Count); } foreach (PhonemeType phoneme in phonemeList) { if (doPhonemeAlign == true) { timing = CalcPhonemeTimespans(selMC, mcIndex++, 1); phonemeIndex = 0; } long startTicks = timing.Item1.Ticks + (timing.Item2.Ticks * phonemeIndex++); convertData.Add(new LipSyncConvertData(startTicks, timing.Item2.Ticks, phoneme, strElem)); } if (checkBoxClearText.Checked) { textBox.Text = ""; } } EventHandler <NewTranslationEventArgs> handler = NewTranslation; NewTranslationEventArgs args = new NewTranslationEventArgs(); args.PhonemeData = convertData; if (markCollectionRadio.Checked) { args.Placement = TranslatePlacement.Mark; } else if (cursorRadio.Checked) { args.Placement = TranslatePlacement.Cursor; } else { args.Placement = TranslatePlacement.Clipboard; } if (startOffsetCombo.SelectedItem != null) { args.FirstMark = (TimeSpan)startOffsetCombo.SelectedItem; } handler(this, args); if (markCollectionRadio.Checked) { int markIncrement = 0; switch (alignCombo.Text) { case "Phoneme": markIncrement = convertData.Count; break; case "Word": markIncrement = subStrings.Count; break; case "Phrase": markIncrement = 1; break; } if (startOffsetCombo.SelectedIndex + markIncrement < startOffsetCombo.Items.Count) { startOffsetCombo.SelectedIndex = startOffsetCombo.SelectedIndex + markIncrement; } } } }
private void convertButton_Click(object sender, EventArgs e) { int mcIndex = startOffsetCombo.SelectedIndex; Tuple<TimeSpan, TimeSpan> timing = Tuple.Create(new TimeSpan(), new TimeSpan()); List<LipSyncConvertData> convertData = new List<LipSyncConvertData>(); if (LipSyncTextConvert.StandardDictExists() == false) { //messageBox Arguments are (Text, Title, No Button Visible, Cancel Button Visible) MessageBoxForm.msgIcon = SystemIcons.Error; //this is used if you want to add a system icon to the message form. var messageBox = new MessageBoxForm("Unable to find Standard Phoneme Dictionary", "Error", false, false); messageBox.ShowDialog(); return; } LipSyncTextConvert.InitDictionary(); if (NewTranslation != null) { List<string> subStrings = CreateSubstringList(); MarkCollection selMC = MarkCollections.Find(x => x.Name.Equals(markCollectionCombo.SelectedItem)); bool doPhonemeAlign = (alignCombo.SelectedIndex != -1) && (alignCombo.SelectedItem.Equals("Phoneme")); if (mcIndex == -1) { selMC = null; mcIndex = 0; } foreach (string strElem in subStrings) { if (string.IsNullOrWhiteSpace(strElem)) { continue; } int phonemeIndex = 0; List<PhonemeType> phonemeList = LipSyncTextConvert.TryConvert(strElem.Trim()); if (phonemeList.Count == 0) { EventHandler<TranslateFailureEventArgs> failHandler = TranslateFailure; TranslateFailureEventArgs failArgs = new TranslateFailureEventArgs(); failArgs.FailedWord = strElem; failHandler(this, failArgs); //At this point, we should have it corrected, if not, then ignore phonemeList = LipSyncTextConvert.TryConvert(strElem); } if (phonemeList.Count == 0) { //User has bailed on one of the conversions return; } if (doPhonemeAlign == false) { timing = CalcPhonemeTimespans(selMC, mcIndex++, phonemeList.Count); } foreach (PhonemeType phoneme in phonemeList) { if (doPhonemeAlign == true) { timing = CalcPhonemeTimespans(selMC, mcIndex++, 1); phonemeIndex = 0; } long startTicks = timing.Item1.Ticks + (timing.Item2.Ticks * phonemeIndex++); convertData.Add(new LipSyncConvertData(startTicks, timing.Item2.Ticks, phoneme, strElem)); } } EventHandler<NewTranslationEventArgs> handler = NewTranslation; NewTranslationEventArgs args = new NewTranslationEventArgs(); args.PhonemeData = convertData; if (markCollectionRadio.Checked) { args.Placement = TranslatePlacement.Mark; } else if (cursorRadio.Checked) { args.Placement = TranslatePlacement.Cursor; } else { args.Placement = TranslatePlacement.Clipboard; } if (startOffsetCombo.SelectedItem != null) { args.FirstMark = (TimeSpan)startOffsetCombo.SelectedItem; } handler(this, args); } }