public void SetAudioDefaultSettings()
{
if (_bluRaySummaryInfo.BluRayTitleInfo.AudioList != null)
{
foreach (BluRayTitleAudio audio in _bluRaySummaryInfo.BluRayTitleInfo.AudioList)
{
audio.MKVMergeItem = new MKVMergeItem() { DefaultTrackFlag = "no", ForcedTrackFlag = "no", Language = _languageService.GetLanguageByName(audio.Language), TrackName = "", Compression = "determine automatically" };
}
if (_applicationSettings.AudioLanguageAlwaysSelectedEnabled)
{
foreach (BluRayTitleAudio audio in _bluRaySummaryInfo.BluRayTitleInfo.AudioList.Where(a => a.Text.ToLower().Contains(_applicationSettings.AudioMKVMergeDefaultSettings.DefaultMKVMergeItem.Language.Language.ToLower())))
{
if (_applicationSettings.AudioMKVMergeDefaultSettings.AudioTypeFilterCriteria == "Any Type")
{
audio.IsSelected = true;
this.SetBluRayMKVMergeItemDefaults(audio.MKVMergeItem, _applicationSettings.AudioMKVMergeDefaultSettings.DefaultMKVMergeItem);
}
else if (_applicationSettings.AudioMKVMergeDefaultSettings.AudioTypeFilterCriteria == "Lossless")
{
if (audio.IsLossless)
{
audio.IsSelected = true;
this.SetBluRayMKVMergeItemDefaults(audio.MKVMergeItem, _applicationSettings.AudioMKVMergeDefaultSettings.DefaultMKVMergeItem);
}
}
else
{
EnumAudioType audioTypeFilter = _audioService.GetAudioTypeByName(_applicationSettings.AudioMKVMergeDefaultSettings.AudioTypeFilterCriteria);
if (audioTypeFilter == audio.OriginalAudioType)
{
audio.IsSelected = true;
this.SetBluRayMKVMergeItemDefaults(audio.MKVMergeItem, _applicationSettings.AudioMKVMergeDefaultSettings.DefaultMKVMergeItem);
}
}
}
}
}
}
private void SetMKVMergetItemDefaults() { try { IJsonSerializationService<ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService<ISOLanguageCodeCollection>(); IMKVMergeLanguageService languageService = new MKVMergeLanguageService(jsonSerializationService); IMKVMergeDefaultSettingsService mkvMergeDefaultSettingsService = new MKVMergeDefaultSettingsService(_eac3ToConfiguration, Program.ApplicationSettings, _bluRaySummaryInfo, languageService, _audioService); mkvMergeDefaultSettingsService.SetAudioDefaultSettings(); mkvMergeDefaultSettingsService.SetSubtitleDefaultSettings(); } catch (Exception ex) { _displayErrorMessageService.DisplayError(new ErrorMessage() { DisplayMessage = "There was a problem setting the mkvmerge defaults!", DisplayTitle = "Error.", Exception = ex, MethodNameWhereExceptionOccurred = MethodBase.GetCurrentMethod().Name }); } }