Exemple #1
0
        public void PurgePendingSentences()
        {
            if (ItalianXml == null)
            {
                return;
            }

            commitTheLastItalianSegment();
            ItalianXml.CurSegment = null;

            var pending = ItalianXml.Segments.Where(x => x.ProcessedState == XmlSegmentState.Pending);

            if (!pending.Any())
            {
                return;
            }

            curSentence = null;
            curSegment  = null;

            // ...if it exists ADVANCE!!!
            var purgeEvent = new XmlAbookEvent_PurgeSentences();

            xml.Events.Add(purgeEvent);
            foreach (var ppp in pending)
            {
                purgeEvent.ItalianSegments.Add(ppp);
                ppp.ProcessedState = XmlSegmentState.Processed;
            }
            foreach (var ppp in pendingRussian)
            {
                purgeEvent.RussianSegments.Add(ppp);
            }
            pendingRussian.Clear();

            // events
            if (CurSentenceUpdated != null)
            {
                CurSentenceUpdated();
            }
            if (CurSegmentUpdated != null)
            {
                CurSegmentUpdated();
            }
            if (ItalianXmlUpdated != null)
            {
                ItalianXmlUpdated();
            }
        }
Exemple #2
0
        public void PurgePendingSentences()
        {
            if (ItalianXml == null)
                return;

            commitTheLastItalianSegment();
            ItalianXml.CurSegment = null;

            var pending = ItalianXml.Segments.Where(x => x.ProcessedState == XmlSegmentState.Pending);
            if (!pending.Any())
                return;

            curSentence = null;
            curSegment = null;

            // ...if it exists ADVANCE!!!
            var purgeEvent = new XmlAbookEvent_PurgeSentences();
            xml.Events.Add(purgeEvent);
            foreach (var ppp in pending) {
                purgeEvent.ItalianSegments.Add(ppp);
                ppp.ProcessedState = XmlSegmentState.Processed;
            }
            foreach (var ppp in pendingRussian) {
                purgeEvent.RussianSegments.Add(ppp);
            }
            pendingRussian.Clear();

            // events
            if (CurSentenceUpdated != null)
                CurSentenceUpdated();
            if (CurSegmentUpdated != null)
                CurSegmentUpdated();
            if (ItalianXmlUpdated != null)
                ItalianXmlUpdated();
        }
Exemple #3
0
        public void NextPhrase()
        {
            if (ItalianXml == null)
                return;
            if (PhraseIndex >= ItalianXml.Segments.Count) {
                PurgePendingSentences();
                return;
            }
            if (curSentence != null && curSegment == null) {
                if (PrematureAdvancement != null)
                    PrematureAdvancement();
                return;
            }

            commitTheLastItalianSegment();

            // goto next italian segment
            ItalianXml.CurSegment = ItalianXml.Segments.Skip(PhraseIndex).FirstOrDefault();
            if (ItalianXml.CurSegment == null) {
                curSentence = null;
                if (CurSentenceUpdated != null)
                    CurSentenceUpdated();
                return;
            }

            // ...if it exists, ADVANCE!!!
            curSentence = new XmlAbookEvent_OneSentence() {
                ItalianSegment = ItalianXml.CurSegment,
                ItalianSegments = new List<XmlSegment> { ItalianXml.CurSegment }
            };
            xml.Events.Add(curSentence);
            curSegment = null;
            PhraseIndex++;
            Mp3Utils.PlayPieceOfAFile(ItalianMp3,
                        ItalianXml.CurSegment.TimeIn.TotalSeconds,
                        ItalianXml.CurSegment.TimeOut.TotalSeconds
                        );

            // events;
            if (CurSentenceUpdated != null)
                CurSentenceUpdated();
            if (CurSegmentUpdated != null)
                CurSegmentUpdated();
            if (ItalianXmlUpdated != null)
                ItalianXmlUpdated();
        }
Exemple #4
0
        public void NextPhrase()
        {
            if (ItalianXml == null)
            {
                return;
            }
            if (PhraseIndex >= ItalianXml.Segments.Count)
            {
                PurgePendingSentences();
                return;
            }
            if (curSentence != null && curSegment == null)
            {
                if (PrematureAdvancement != null)
                {
                    PrematureAdvancement();
                }
                return;
            }

            commitTheLastItalianSegment();

            // goto next italian segment
            ItalianXml.CurSegment = ItalianXml.Segments.Skip(PhraseIndex).FirstOrDefault();
            if (ItalianXml.CurSegment == null)
            {
                curSentence = null;
                if (CurSentenceUpdated != null)
                {
                    CurSentenceUpdated();
                }
                return;
            }

            // ...if it exists, ADVANCE!!!
            curSentence = new XmlAbookEvent_OneSentence()
            {
                ItalianSegment  = ItalianXml.CurSegment,
                ItalianSegments = new List <XmlSegment> {
                    ItalianXml.CurSegment
                }
            };
            xml.Events.Add(curSentence);
            curSegment = null;
            PhraseIndex++;
            Mp3Utils.PlayPieceOfAFile(ItalianMp3,
                                      ItalianXml.CurSegment.TimeIn.TotalSeconds,
                                      ItalianXml.CurSegment.TimeOut.TotalSeconds
                                      );

            // events;
            if (CurSentenceUpdated != null)
            {
                CurSentenceUpdated();
            }
            if (CurSegmentUpdated != null)
            {
                CurSegmentUpdated();
            }
            if (ItalianXmlUpdated != null)
            {
                ItalianXmlUpdated();
            }
        }