Example #1
0
        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();

            }
        }
Example #3
0
        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);
            }
        }
Example #4
0
        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;
                    }
                }
            }
        }
Example #5
0
        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);
            }

        }