public void remuxTemplate1EAC3ToOutputNamingService_can_set_subtitle_name_when_is_commentary_and_only_required_test()
        {
            //given not extract for remux
            EAC3ToConfiguration config = new EAC3ToConfiguration()
            {
                IsExtractForRemux     = true,
                RemuxFileNameTemplate = new EAC3ToRemuxFileNameTemplate()
                {
                    SeriesName   = "BatchGuy",
                    SeasonNumber = "2",
                }
            };
            string filesOutputPath     = "c:\\bluray";
            string paddedEpisodeNumber = "01";
            string episodeName         = string.Empty;
            //when i get the subtitle name
            IAudioService audioService = new AudioService();
            AbstractEAC3ToOutputNamingService service = new RemuxTemplate1EAC3ToOutputNamingService(audioService);
            BluRayTitleSubtitle subtitle = new BluRayTitleSubtitle()
            {
                Id = "3:", Language = "english", IsCommentary = true
            };
            string subtitleName = service.GetSubtitleName(config, subtitle, filesOutputPath, paddedEpisodeNumber, episodeName);

            //then subtitle name should be based on the remux template and commentary
            subtitleName.Should().Be("\"c:\\bluray\\BatchGuy S02E01 english01-3-commentary.sup\"");
        }
        public void remuxTemplate2EAC3ToOutputNamingService_can_set_subtitle_name_test()
        {
            //given not extract for remux
            EAC3ToConfiguration config = new EAC3ToConfiguration()
            {
                IsExtractForRemux     = true,
                RemuxFileNameTemplate = new EAC3ToRemuxFileNameTemplate()
                {
                    AudioType       = "FLAC 5.1",
                    SeriesName      = "BatchGuy",
                    SeasonNumber    = "2",
                    SeasonYear      = "1978",
                    Tag             = "Guy",
                    VideoResolution = "1080p",
                    Medium          = "Remux",
                    VideoFormat     = "H.264"
                }
            };
            string filesOutputPath     = "c:\\bluray";
            string paddedEpisodeNumber = "01";
            string episodeName         = string.Empty;
            //when i get the subtitle name
            IAudioService audioService = new AudioService();
            AbstractEAC3ToOutputNamingService service = new RemuxTemplate2EAC3ToOutputNamingService(audioService);
            BluRayTitleSubtitle subtitle = new BluRayTitleSubtitle()
            {
                Id = "11:", Language = "english"
            };
            string subtitleName = service.GetSubtitleName(config, subtitle, filesOutputPath, paddedEpisodeNumber, episodeName);

            //then subtitle name should be based on the remux template
            subtitleName.Should().Be("\"c:\\bluray\\BatchGuy, S02E01 (1978) english01-11.sup\"");
        }
        private void AddExternalSubtitle()
        {
            string id   = string.Empty;
            string file = txtExternalSubtitlePath.Text;

            if (_currentBluRaySummaryInfo.BluRayTitleInfo.Subtitles != null)
            {
                id = this.GetNewSubtitleId();
            }
            else
            {
                id = "1:";
            }

            BluRayTitleSubtitle subtitle = new BluRayTitleSubtitle()
            {
                CanEdit              = true,
                IsCommentary         = false,
                IsExternal           = true,
                IsSelected           = true,
                Id                   = id,
                MKVMergeItem         = _currentMKVMergeItem,
                ExternalSubtitlePath = file,
                Language             = _currentMKVMergeItem.Language.Language
            };

            subtitle.Text = string.Format("{0} Subtitle ({1}), {2}", id, file.SubtitleFileExtension().ToUpper(), subtitle.MKVMergeItem.Language.Language);

            if (_currentBluRaySummaryInfo.BluRayTitleInfo.Subtitles == null)
            {
                _currentBluRaySummaryInfo.BluRayTitleInfo.Subtitles = new List <BluRayTitleSubtitle>();
            }

            _currentBluRaySummaryInfo.BluRayTitleInfo.Subtitles.Add(subtitle);
        }
        public void movieRemuxTemplate1EAC3ToOutputNamingService_can_set_subtitle_name_and_only_required_test()
        {
            //given not extract for remux
            BluRaySummaryInfo summary = new BluRaySummaryInfo()
            {
                IsSelected = true, RemuxFileNameForMovieTemplate = new EAC3ToRemuxFileNameTemplate()
                {
                    SeriesName   = "BatchGuy",
                    SeasonNumber = "2",
                }
            };
            EAC3ToConfiguration config = new EAC3ToConfiguration()
            {
                IsExtractForRemux = true,
                IfIsExtractForRemuxIsItForAMovie = true
            };
            string filesOutputPath     = "c:\\bluray";
            string paddedEpisodeNumber = "01";
            string episodeName         = string.Empty;
            //when i get the subtitle name
            IAudioService audioService = new AudioService();
            AbstractEAC3ToOutputNamingService service = new MovieRemuxTemplate1EAC3ToOutputNamingService(audioService);

            service.SetCurrentBluRaySummaryInfo(summary);
            BluRayTitleSubtitle subtitle = new BluRayTitleSubtitle()
            {
                Id = "3:", Language = "english"
            };
            string subtitleName = service.GetSubtitleName(config, subtitle, filesOutputPath, paddedEpisodeNumber, episodeName);

            //then subtitle name should be based on the remux template
            subtitleName.Should().Be("\"c:\\bluray\\BatchGuy english01-3.sup\"");
        }
        protected string GetSubtitleCommentary(BluRayTitleSubtitle subtitle)
        {
            string commentary = string.Empty;

            if (subtitle.IsCommentary)
            {
                commentary = "-commentary";
            }
            return(commentary);
        }
示例#6
0
        private void SetSubtitle(ProcessOutputLineItem lineItem)
        {
            if (_bluRayTtileInfo.Subtitles == null)
            {
                _bluRayTtileInfo.Subtitles = new List <BluRayTitleSubtitle>();
            }

            BluRayTitleSubtitle subtitle = new BluRayTitleSubtitle();

            subtitle.Id       = this.GetId(lineItem);
            subtitle.Language = this.GetLanguage(lineItem);
            subtitle.Text     = lineItem.Text;
            _bluRayTtileInfo.Subtitles.Add(subtitle);
        }
 public void SetBluRayTitleInfoExternalSubtitleForEdit(BluRayTitleSubtitle subtitle)
 {
     _isAdd = false;
     _currentSubtitleForEdit = subtitle;
     _currentMKVMergeItem    = new MKVMergeItem()
     {
         Compression      = _currentSubtitleForEdit.MKVMergeItem.Compression,
         DefaultTrackFlag = _currentSubtitleForEdit.MKVMergeItem.DefaultTrackFlag,
         ForcedTrackFlag  = _currentSubtitleForEdit.MKVMergeItem.ForcedTrackFlag,
         TrackName        = _currentSubtitleForEdit.MKVMergeItem.TrackName,
         Language         = new MKVMergeLanguageItem()
         {
             Name     = _currentSubtitleForEdit.MKVMergeItem.Language.Name, Value = _currentSubtitleForEdit.MKVMergeItem.Language.Value,
             Language = _currentSubtitleForEdit.MKVMergeItem.Language.Language
         }
     };
     lblExternalSubtitleEAC3ToTrackId.Text = _currentSubtitleForEdit.Id;
     txtExternalSubtitlePath.Text          = _currentSubtitleForEdit.ExternalSubtitlePath;
 }
示例#8
0
        private void RemoveExternalSubtitle(string rowId, int rowIndex, int rowCellNumber)
        {
            if (_currentBluRayTitleSubtitle.IsExternal == false)
            {
                MessageBox.Show("You cannot remove Internal Subtitles", "Internal Subtitle", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            if (_currentBluRayTitleSubtitle.ExternalSubtitlePath != null && _currentBluRayTitleSubtitle.ExternalSubtitlePath != string.Empty)
            {
                DialogResult warningResult = MessageBox.Show("Are you sure you want to remove the external subtitle?", "Remove Subtitle", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
                if (warningResult == System.Windows.Forms.DialogResult.Yes)
                {
                    _bluRaySummaryInfo.BluRayTitleInfo.Subtitles.Remove(_currentBluRayTitleSubtitle);
                    _currentBluRayTitleSubtitle = null;
                    this.LoadSubtitles();
                }
            }
        }
示例#9
0
        private void HandlesDGVSubtitlesCellDoubleClick(DataGridViewCellEventArgs e)
        {
            var id = dgvSubtitles.Rows[e.RowIndex].Cells[1].Value;

            _currentBluRayTitleSubtitle = _bluRaySummaryInfo.BluRayTitleInfo.Subtitles.SingleOrDefault(a => a.Id == id.ToString());

            if (_currentBluRayTitleSubtitle.IsExternal == false)
            {
                MessageBox.Show("You cannot edit an Internal Subtitles", "Internal Subtitle", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            BluRayTitleInfoExternalSubtitleForm form = new BluRayTitleInfoExternalSubtitleForm();

            form.SetBluRayTitleInfoExternalSubtitleForEdit(_currentBluRayTitleSubtitle);
            form.ShowDialog();
            if (form.WasSaved)
            {
                this.LoadSubtitles();
            }
        }
示例#10
0
        private void HandleDGVSubtitlesCellClick(DataGridViewCellEventArgs e)
        {
            _mkvMergeChangeTriggeredByDataGridCellClick = true;
            var id = dgvSubtitles.Rows[e.RowIndex].Cells[1].Value;

            _currentBluRayTitleSubtitle = _bluRaySummaryInfo.BluRayTitleInfo.Subtitles.SingleOrDefault(a => a.Id == id.ToString());
            int externalSubtitleCellNumber = 5;

            _currentMKVMergeItem = _currentBluRayTitleSubtitle.MKVMergeItem;
            this.SetMKVToolNixControlsWithValues();

            if (e.ColumnIndex == 6)
            {
                this.RemoveExternalSubtitle(id.ToString(), e.RowIndex, externalSubtitleCellNumber);
            }

            if (_mkvMergeChangeTriggeredByDataGridCellClick)
            {
                _mkvMergeChangeTriggeredByDataGridCellClick = false;
            }
        }
示例#11
0
        public void encodeTemplate1EAC3ToOutputNamingService_can_set_subtitle_name_when_not_extract_for_remux_test()
        {
            //given not extract for remux
            EAC3ToConfiguration config = new EAC3ToConfiguration()
            {
                IsExtractForRemux = false
            };
            string filesOutputPath       = "c:\\bluray";
            string paddedEpisodeNumber   = "01";
            string episodeName           = string.Empty;
            BluRayTitleSubtitle subtitle = new BluRayTitleSubtitle()
            {
                Id = "3:", Language = "english"
            };
            //when i get the subtitle name
            IAudioService audioService = new AudioService();
            AbstractEAC3ToOutputNamingService service = new EncodeTemplate1EAC3ToOutputNamingService(audioService);
            string subtitleName = service.GetSubtitleName(config, subtitle, filesOutputPath, paddedEpisodeNumber, episodeName);

            //then subtitle name should be hard coded for workflow
            subtitleName.Should().Be("\"c:\\bluray\\english01-3.sup\"");
        }
示例#12
0
        private void SetGridRowBackgroundIfUndetermindLanguage()
        {
            if (_bluRaySummaryInfo.BluRayTitleInfo.AudioList != null)
            {
                foreach (DataGridViewRow row in dgvAudio.Rows)
                {
                    string           id    = (string)row.Cells[1].Value;
                    BluRayTitleAudio audio = _bluRaySummaryInfo.BluRayTitleInfo.AudioList.Where(s => s.Id == id).SingleOrDefault();
                    if (audio != null && audio.MKVMergeItem.Language.Language == "Undetermined")
                    {
                        row.DefaultCellStyle.BackColor = Color.Yellow;
                        foreach (DataGridViewCell cell in row.Cells)
                        {
                            cell.ToolTipText = "eac3to language could not be matched with mkvmerge langage";
                        }
                    }
                }
            }

            if (_bluRaySummaryInfo.BluRayTitleInfo.Subtitles != null)
            {
                foreach (DataGridViewRow row in dgvSubtitles.Rows)
                {
                    string id = (string)row.Cells[1].Value;
                    BluRayTitleSubtitle subtitle = _bluRaySummaryInfo.BluRayTitleInfo.Subtitles.Where(s => s.Id == id).SingleOrDefault();
                    if (subtitle != null && subtitle.MKVMergeItem.Language.Language == "Undetermined")
                    {
                        row.DefaultCellStyle.BackColor = Color.Yellow;
                        foreach (DataGridViewCell cell in row.Cells)
                        {
                            cell.ToolTipText = "eac3to language could not be matched with mkvmerge langage";
                        }
                    }
                }
            }
        }
示例#13
0
        public override string GetSubtitleName(EAC3ToConfiguration eac3toConfiguration, BluRayTitleSubtitle subtitle, string filesOutputPath, string paddedEpisodeNumber, string episodeName)
        {
            StringBuilder sb = new StringBuilder();

            if (eac3toConfiguration.IsExtractForRemux == true)
            {
                string tag          = this.GetFormattedTag(eac3toConfiguration, paddedEpisodeNumber, episodeName);
                string subtitleName = string.Format("{0}{1}{2}E{3}{4}{5}{6}{7}{8}{9}",
                                                    eac3toConfiguration.RemuxFileNameTemplate.SeriesName,
                                                    this.GetFormattedYear(eac3toConfiguration),
                                                    this.GetFormattedSeasonNumber(eac3toConfiguration),
                                                    this.GetFormattedPaddedEpisodeNumber(paddedEpisodeNumber),
                                                    this.GetFormattedEpisodeName(episodeName),
                                                    this.GetFormattedVideoResolution(eac3toConfiguration),
                                                    this.GetFormattedCountry(eac3toConfiguration),
                                                    this.GetFormattedMedium(eac3toConfiguration),
                                                    this.GetFormattedVideoFormat(eac3toConfiguration),
                                                    this.GetFormattedAuditoType(eac3toConfiguration));

                sb.Append(string.Format("\"{0}\\{1}{2} {3}{4}-{5}{6}.sup\"", filesOutputPath, this.AddWordSeparator(eac3toConfiguration.IsExtractForRemux, eac3toConfiguration.RemuxFileNameTemplate.UsePeriodsInFileName, subtitleName.Trim().RemoveDoubleSpaces()), tag, subtitle.Language, paddedEpisodeNumber, subtitle.Id.RemoveColons(), this.GetSubtitleCommentary(subtitle)));
            }
            return(sb.ToString());
        }
        public override string GetSubtitleName(EAC3ToConfiguration eac3toConfiguration, BluRayTitleSubtitle subtitle, string filesOutputPath, string paddedEpisodeNumber, string episodeName)
        {
            StringBuilder sb = new StringBuilder();

            if (eac3toConfiguration.IsExtractForRemux == true)
            {
                string subtitleName = string.Format("{0}{1}{2}", this.GetFormattedSeasonNumber(eac3toConfiguration),
                                                    this.GetFormattedPaddedEpisodeNumber(paddedEpisodeNumber), this.GetFormattedEpisodeName(episodeName));

                sb.Append(string.Format("\"{0}\\{1} {2}{3}-{4}{5}.sup\"", filesOutputPath, this.AddWordSeparator(eac3toConfiguration.IsExtractForRemux, eac3toConfiguration.RemuxFileNameTemplate.UsePeriodsInFileName, subtitleName.Trim().RemoveDoubleSpaces()), subtitle.Language, paddedEpisodeNumber, subtitle.Id.RemoveColons(), this.GetSubtitleCommentary(subtitle)));
            }
            return(sb.ToString());
        }
示例#15
0
        public override string GetSubtitleName(EAC3ToConfiguration eac3toConfiguration, BluRayTitleSubtitle subtitle, string filesOutputPath, string paddedEpisodeNumber, string episodeName)
        {
            StringBuilder sb = new StringBuilder();

            if (eac3toConfiguration.IsExtractForRemux != true)
            {
                sb.Append(string.Format("\"{0}\\{1}{2}-{3}{4}.sup\"", filesOutputPath, subtitle.Language, paddedEpisodeNumber, subtitle.Id.RemoveColons(), this.GetSubtitleCommentary(subtitle)));
            }
            return(sb.ToString());
        }
 public abstract string GetSubtitleName(EAC3ToConfiguration eac3toConfiguration, BluRayTitleSubtitle subtitle, string filesOutputPath, string paddedEpisodeNumber, string episodeName);
        public override string GetSubtitleName(EAC3ToConfiguration eac3toConfiguration, BluRayTitleSubtitle subtitle, string filesOutputPath, string paddedEpisodeNumber, string episodeName)
        {
            if (_currentMovieRemuxTemplate == null)
            {
                throw new NullReferenceException("Current Movie Template is Null.");
            }

            StringBuilder sb = new StringBuilder();

            if (eac3toConfiguration.IsExtractForRemux == true && eac3toConfiguration.IfIsExtractForRemuxIsItForAMovie)
            {
                string tag          = this.GetFormattedTag(eac3toConfiguration, paddedEpisodeNumber);
                string subtitleName = string.Format("{0}{1}{2}{3}{4}{5}{6}",
                                                    _currentMovieRemuxTemplate.SeriesName,
                                                    this.GetFormattedYear(eac3toConfiguration),
                                                    this.GetFormattedVideoResolution(eac3toConfiguration),
                                                    this.GetFormattedCountry(eac3toConfiguration),
                                                    this.GetFormattedMedium(eac3toConfiguration),
                                                    this.GetFormattedVideoFormat(eac3toConfiguration),
                                                    this.GetFormattedAuditoType(eac3toConfiguration));

                sb.Append(string.Format("\"{0}\\{1}{2} {3}{4}-{5}{6}.sup\"", filesOutputPath, this.AddWordSeparator(eac3toConfiguration.IsExtractForRemux, _currentMovieRemuxTemplate.UsePeriodsInFileName, subtitleName.Trim().RemoveDoubleSpaces()), tag, subtitle.Language, paddedEpisodeNumber, subtitle.Id.RemoveColons(), this.GetSubtitleCommentary(subtitle)));
            }
            return(sb.ToString());
        }