Exemple #1
0
        public RVPresentation GetImportedPresentation(string text, string name)
        {
            RVPresentation presentation = null;

            if (!string.IsNullOrEmpty(text))
            {
                text = Helper.TranslateLabels(text);

                text = Regex.Replace(text, @"(?!\r)\n", "\r\n");
                text = text.Replace("\r\r\n", "\r\n");

                presentation          = new RVPresentation(name, this.PresentationParams.Height, this.PresentationParams.Width);
                presentation.Category = this.PresentationParams.SelectedCategory;

                string[] strArray = delimiterString[0] != "\r\n"
                    ? text.Split(delimiterString, StringSplitOptions.RemoveEmptyEntries)
                    : text.Split(delimiterString, StringSplitOptions.None);

                StringBuilder stringBuilder = new StringBuilder();
                int           num           = 0;

                RVSlideGroup group = null;

                foreach (string part in strArray)
                {
                    if (!string.IsNullOrEmpty(part))
                    {
                        string trimmed = part.TrimStart(new char[0]);

                        if (Helper.IsValidLabel(trimmed))
                        {
                            string slideText = stringBuilder.ToString();
                            stringBuilder.Clear();

                            if (!string.IsNullOrEmpty(slideText))
                            {
                                this.AddNewSlide(presentation, slideText, group);
                            }

                            group = new RVSlideGroup();

                            if (trimmed.IndexOf("\r\n") < 0)
                            {
                                group.SetLabel(trimmed);
                                num = 0;
                            }
                            else
                            {
                                group.SetLabel(trimmed.Substring(0, trimmed.IndexOf("\r\n")));

                                stringBuilder.AppendLine(trimmed.Substring(trimmed.IndexOf("\r\n") + 2));
                                num = 1;
                            }

                            presentation.AddSlideGroup(group);
                        }
                        else
                        {
                            stringBuilder.Append(part);
                            ++num;

                            if (num == this.PresentationParams.DelemetersPerSlide)
                            {
                                string slideText = stringBuilder.ToString();
                                stringBuilder.Clear();
                                num = 0;

                                this.AddNewSlide(presentation, slideText, group);
                            }
                            else
                            {
                                stringBuilder.AppendLine();
                            }
                        }
                    }
                }

                this.AddNewSlide(presentation, stringBuilder.ToString(), group);
            }

            return(presentation);
        }
Exemple #2
0
 private void AddNewSlide(IRVPresentation importedPresentation, string slideText, RVSlideGroup slideGroup = null)
 {
     if (slideGroup != null)
     {
         slideGroup.AddSlide(this.GetNewSlide(slideText));
     }
     else
     {
         importedPresentation.AddSlide(this.GetNewSlide(slideText));
     }
 }
        public RVPresentation GetImportedPresentation(string text, string name)
        {
            RVPresentation presentation = null;

            if (!string.IsNullOrEmpty(text))
            {
                text = Helper.TranslateLabels(text);

                text = Regex.Replace(text, @"(?!\r)\n", "\r\n");
                text = text.Replace("\r\r\n", "\r\n");

                presentation = new RVPresentation(name, this.PresentationParams.Height, this.PresentationParams.Width);
                presentation.Category = this.PresentationParams.SelectedCategory;

                string[] strArray = delimiterString[0] != "\r\n"
                    ? text.Split(delimiterString, StringSplitOptions.RemoveEmptyEntries)
                    : text.Split(delimiterString, StringSplitOptions.None);

                StringBuilder stringBuilder = new StringBuilder();
                int num = 0;

                RVSlideGroup group = null;

                foreach (string part in strArray)
                {
                    if (!string.IsNullOrEmpty(part))
                    {
                        string trimmed = part.TrimStart(new char[0]);

                        if (Helper.IsValidLabel(trimmed))
                        {
                            string slideText = stringBuilder.ToString();
                            stringBuilder.Clear();

                            if (!string.IsNullOrEmpty(slideText))
                                this.AddNewSlide(presentation, slideText, group);

                            group = new RVSlideGroup();

                            if (trimmed.IndexOf("\r\n") < 0)
                            {
                                group.SetLabel(trimmed);
                                num = 0;
                            }
                            else
                            {
                                group.SetLabel(trimmed.Substring(0, trimmed.IndexOf("\r\n")));

                                stringBuilder.AppendLine(trimmed.Substring(trimmed.IndexOf("\r\n") + 2));
                                num = 1;
                            }

                            presentation.AddSlideGroup(group);
                        }
                        else
                        {
                            stringBuilder.Append(part);
                            ++num;

                            if (num == this.PresentationParams.DelemetersPerSlide)
                            {
                                string slideText = stringBuilder.ToString();
                                stringBuilder.Clear();
                                num = 0;

                                this.AddNewSlide(presentation, slideText, group);
                            }
                            else
                            {
                                stringBuilder.AppendLine();
                            }
                        }
                    }
                }

                this.AddNewSlide(presentation, stringBuilder.ToString(), group);
            }

            return presentation;
        }
Exemple #4
0
        public void SetArrangement(RVPresentation presentation, PcoSongArrangement arrangement)
        {
            RVGroupArrangement group;

            group = presentation.GroupArrangements.FirstOrDefault(x => x.Label.Label == arrangement.Name);

            if (group == null)
            {
                group = presentation.AddNewGroupArrangement(arrangement.Name);
            }

            if (!arrangement.Sequence.Any())
            {
                return;
            }

            group.SlideGroups.Clear();

            foreach (string seq in arrangement.Sequence)
            {
                RVSlideGroup selected = null;

                if (seq.First() == 'v')
                {
                    if (seq.Length > 1)
                    {
                        selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.Equals("verse " + seq.Substring(1), StringComparison.OrdinalIgnoreCase));
                    }

                    if (selected == null)
                    {
                        selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.StartsWith("verse", StringComparison.OrdinalIgnoreCase));
                    }
                }
                else if (seq.First() == 'c')
                {
                    if (seq.Length > 1)
                    {
                        selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.Equals("chorus " + seq.Substring(1), StringComparison.OrdinalIgnoreCase));
                    }

                    if (selected == null)
                    {
                        selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.StartsWith("chorus", StringComparison.OrdinalIgnoreCase));
                    }
                }
                else if (seq.First() == 'b')
                {
                    if (seq.Length > 1)
                    {
                        selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.Equals("bridge " + seq.Substring(1), StringComparison.OrdinalIgnoreCase));
                    }

                    if (selected == null)
                    {
                        selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.StartsWith("bridge", StringComparison.OrdinalIgnoreCase));
                    }
                }
                else if (seq.StartsWith("pc"))
                {
                    if (seq.Length > 2)
                    {
                        selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.Equals("pre-chorus " + seq.Substring(2), StringComparison.OrdinalIgnoreCase));
                    }

                    if (selected == null)
                    {
                        selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.StartsWith("pre-chorus", StringComparison.OrdinalIgnoreCase));
                    }
                }
                else if (seq.StartsWith("misc"))
                {
                    if (seq.Length > 4)
                    {
                        selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.Equals("misc " + seq.Substring(4), StringComparison.OrdinalIgnoreCase));
                    }

                    if (selected == null)
                    {
                        selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.StartsWith("misc", StringComparison.OrdinalIgnoreCase));
                    }
                }

                if (selected != null)
                {
                    group.SlideGroups.Add(selected);
                }
            }
        }
 private void AddNewSlide(IRVPresentation importedPresentation, string slideText, RVSlideGroup slideGroup = null)
 {
     if (slideGroup != null)
     {
         slideGroup.AddSlide(this.GetNewSlide(slideText));
     }
     else
     {
         importedPresentation.AddSlide(this.GetNewSlide(slideText));
     }
 }