public FormatSettings(Format.ExportFormats format, MainWindow parent) { this.InitializeComponent(); this.Owner = parent; //Дефолты this.format = format; this.def = Formats.GetDefaults(format); //Включаем\выключаем редактирование //Video textbox_vcodecs.IsEnabled = def.VCodecs_IsEditable; textbox_framerates.IsEnabled = def.Framerates_IsEditable; combo_MinResolutionW.IsEnabled = combo_MinResolutionH.IsEnabled = combo_MidResolutionW.IsEnabled = combo_MidResolutionH.IsEnabled = combo_MaxResolutionW.IsEnabled = combo_MaxResolutionH.IsEnabled = combo_ValidModW.IsEnabled = combo_ValidModH.IsEnabled = def.Resolution_IsEditable; textbox_aspects.IsEnabled = def.Aspects_IsEditable; combo_fix_ar_method.IsEnabled = (def.LockedAR_Methods.Length > 1); check_anamorphic.IsEnabled = def.Anamorphic_IsEditable; check_interlaced.IsEnabled = def.Interlaced_IsEditable; //Audio textbox_acodecs.IsEnabled = def.ACodecs_IsEditable; textbox_samplerates.IsEnabled = def.Samplerates_IsEditable; check_stereo.IsEnabled = def.LimitedToStereo_IsEditable; //Muxing combo_Muxer.IsEnabled = (def.Muxers.Length > 1); combo_Extension.IsEnabled = (def.Extensions.Length > 1); combo_split.IsEnabled = (def.Splitting != "None"); check_dont_mux.IsEnabled = def.DontMuxStreams_IsEditable; check_direct_encoding.IsEnabled = def.DirectEncoding_IsEditable; check_direct_remux.IsEnabled = def.DirectRemuxing_IsEditable; check_4gb_only.IsEnabled = def.LimitedTo4Gb_IsEditable; //Переводим фокус int active_tab = 0; if (int.TryParse(Settings.GetFormatPreset(format, "ActiveTab"), out active_tab)) { if (active_tab == 2) tab_audio.IsSelected = true; else if (active_tab == 3) tab_muxing.IsSelected = true; } LoadSettings(); TranslateItems(); SetTooltips(); //Предупреждение (один раз для каждого формата) if (format != Format.ExportFormats.Custom && !Convert.ToBoolean(Settings.GetFormatPreset(format, "was_warned"))) { Message mes = new Message(parent); mes.ShowMessage(Languages.Translate("Some options or their combinations may not work as you expect!") + "\r\n" + Languages.Translate("After making any changes the format may become completely broken!"), Languages.Translate("Warning"), Message.MessageStyle.Ok); Settings.SetFormatPreset(format, "was_warned", bool.TrueString); } ShowDialog(); }
public static string GetACodec(Format.ExportFormats format, string encodingpreset) { if (encodingpreset == "Copy" || encodingpreset == "Disabled") { return(encodingpreset); } else { using (StreamReader sr = new StreamReader(Calculate.StartupPath + "\\presets\\encoding\\" + Format.EnumToString(format) + "\\audio\\" + encodingpreset + ".txt", System.Text.Encoding.Default)) { string line; while (!sr.EndOfStream) { line = sr.ReadLine(); if (line == "audio codec:" && !sr.EndOfStream) { return(sr.ReadLine()); } } return(null); } } }
public AspectResolution(Massive mass, MainWindow parent) { this.InitializeComponent(); if (mass != null) { m = mass.Clone(); oldm = mass.Clone(); format = mass.format; } else { format = Settings.FormatOut; } p = parent; Owner = p; //переводим string on = Languages.Translate("On"); string off = Languages.Translate("Off"); string _def = Languages.Translate("Default") + ": "; button_cancel.Content = Languages.Translate("Cancel"); button_ok.Content = Languages.Translate("OK"); button_refresh.Content = button_manual_apply.Content = text_manual_apply.Content = Languages.Translate("Apply"); button_refresh.ToolTip = Languages.Translate("Refresh preview"); if (m != null) { text_resolution.Content = m.inresw + "x" + m.inresh; } text_source_res.Content = Languages.Translate("Input resolution:"); text_final_res.Content = text_manual_res.Content = Languages.Translate("Output resolution:"); text_resizer.Content = Languages.Translate("Resize filter:"); text_aspectfix.Content = Languages.Translate("Aspect adjusting method:"); combo_aspectfix.ToolTip = "SAR - " + Languages.Translate("fix AR using anamorphic encoding") + "\r\nCrop - " + Languages.Translate("fix AR by cropping the picture") + "\r\nBlack - " + Languages.Translate("fix AR by adding a black borders"); text_inaspect.Content = Languages.Translate("Input aspect:"); text_manual_outasp.Content = (text_outaspect.Content = Languages.Translate("Output aspect:")) + " | "; text_crop_tb.Content = text_manual_crop_tb.Content = Languages.Translate("Crop top, bottom:"); text_crop_lr.Content = text_manual_crop_lr.Content = Languages.Translate("Crop left, right:"); text_black.Content = text_manual_black.Content = Languages.Translate("Black width, height:"); text_flip.Content = Languages.Translate("Flip horizontal, vertical:"); combo_crop_b.ToolTip = manual_crop_b.ToolTip = Languages.Translate("Bottom"); combo_crop_t.ToolTip = manual_crop_t.ToolTip = Languages.Translate("Top"); combo_crop_l.ToolTip = manual_crop_l.ToolTip = Languages.Translate("Left"); combo_crop_r.ToolTip = manual_crop_r.ToolTip = Languages.Translate("Right"); combo_black_h.ToolTip = manual_black_h.ToolTip = Languages.Translate("Height"); combo_black_w.ToolTip = manual_black_w.ToolTip = Languages.Translate("Width"); combo_flip_v.ToolTip = Languages.Translate("Vertical"); combo_flip_h.ToolTip = Languages.Translate("Horizontal"); text_autocropframes.Content = Languages.Translate("Frames to analyze:"); combo_autocropframes.ToolTip = _def + "11"; text_autocropsens.Content = Languages.Translate("Autocrop sensivity:"); combo_autocropsens.ToolTip = _def + "27"; text_autocrop_new_mode.Content = Languages.Translate("Crop using the most common values") + ":"; text_autocrop_new_mode.ToolTip = check_autocrop_new_mode.ToolTip = Languages.Translate("If checked, find the most common values for all the frames that`s being analyzed.") + "\r\n" + Languages.Translate("Otherwise find a minimum values only.") + "\r\n\r\n" + _def + off; text_aspecterror.Content = Languages.Translate("Aspect error:"); text_recalculate.Content = Languages.Translate("Recalculate when cropping") + ":"; text_recalculate.ToolTip = combo_recalculate.ToolTip = _def + Languages.Translate("Aspect"); button_analyse.ToolTip = Languages.Translate("Autocrop black borders"); button_vcrop.ToolTip = Languages.Translate("Crop black borders manually"); button_analyse.Content = group_autocrop.Header = Languages.Translate("Auto crop"); button_vcrop.Content = group_visualcrop.Header = Languages.Translate("Manual crop"); tab_main.Header = Languages.Translate("Main"); tab_settings.Header = Languages.Translate("Settings"); Title = Languages.Translate("Resolution/Aspect"); group_misc.Header = Languages.Translate("Misc"); text_ffmpeg_ar.Content = Languages.Translate("Use FFmpeg AR info:"); text_ffmpeg_ar.ToolTip = check_use_ffmpeg_ar.ToolTip = Languages.Translate("MediaInfo provides rounded values, so for better precision it`s recommended to use AR info from the FFmpeg") + ".\r\n" + Languages.Translate("This option is meaningful only when a file is opening.") + "\r\n\r\n" + _def + on; text_visualcrop_frame.Content = Languages.Translate("Startup frame:"); combo_visualcrop_frame.ToolTip = _def + Languages.Translate("THM-frame"); text_visualcrop_fullscreen.Content = Languages.Translate("Open window in fullscreen mode") + ":"; manual_outaspect.ToolTip = Languages.Translate("In case of non-anamorphic encoding: Aspect = Width/Height.") + "\r\n" + Languages.Translate("In case of anamorphic encoding: Aspect = (Width/Height)*SAR."); manual_outsar.ToolTip = Languages.Translate("Leave it empty for non-anamorphic encoding.") + "\r\n" + Languages.Translate("For anamorphic encoding you must specify SAR."); button_calc_sar.ToolTip = Languages.Translate("Calculate SAR for specified output resolution and aspect.") + "\r\n" + Languages.Translate("It must be used for anamorphic encoding only!"); text_original_ar.Content = Languages.Translate("Use the original AR of the stream (if available)") + ":"; check_original_ar.ToolTip = text_original_ar.ToolTip = Languages.Translate("If checked, use the AR of the raw video stream instead of the AR of the container.") + "\r\n" + Languages.Translate("This option is meaningful only when a file is opening.") + "\r\n\r\n" + _def + on; for (int n = 0; n < 101; n++) { combo_autocropsens.Items.Add(n); } combo_autocropsens.SelectedItem = Settings.AutocropSensivity; for (int n = 5; n < 51; n++) { combo_autocropframes.Items.Add(n); } combo_autocropframes.SelectedItem = Settings.AutocropFrames; check_autocrop_new_mode.IsChecked = Settings.AutocropMostCommon; combo_visualcrop_frame.Items.Add(new ComboBoxItem() { Tag = "THM-frame", Content = Languages.Translate("THM-frame") }); combo_visualcrop_frame.Items.Add(new ComboBoxItem() { Tag = "1-st frame", Content = Languages.Translate("1-st frame") }); combo_visualcrop_frame.SelectedValue = Settings.VCropFrame; check_visualcrop_fullscreen.IsChecked = Settings.VCropFullscreen; combo_recalculate.Items.Add(new ComboBoxItem() { Tag = CropRecalculate.Nothing, Content = Languages.Translate(CropRecalculate.Nothing.ToString()) }); combo_recalculate.Items.Add(new ComboBoxItem() { Tag = CropRecalculate.Aspect, Content = Languages.Translate(CropRecalculate.Aspect.ToString()) }); combo_recalculate.Items.Add(new ComboBoxItem() { Tag = CropRecalculate.Everything, Content = Languages.Translate(CropRecalculate.Everything.ToString()) }); combo_recalculate.SelectedValue = Settings.CropRecalculate; check_original_ar.IsChecked = Settings.MI_Original_AR; check_use_ffmpeg_ar.IsChecked = Settings.UseFFmpegAR; if (m != null) { //ресайзеры foreach (string resizer in Enum.GetNames(typeof(AviSynthScripting.Resizers))) { combo_resizer.Items.Add(resizer); } combo_resizer.SelectedItem = m.resizefilter.ToString(); //аспект фиксы foreach (string afix in Enum.GetNames(typeof(AspectFixes))) { combo_aspectfix.Items.Add(afix); } combo_aspectfix.SelectedItem = m.aspectfix.ToString(); string yes = Languages.Translate("Yes"); combo_flip_v.Items.Add(yes); combo_flip_h.Items.Add(yes); string no = Languages.Translate("No"); combo_flip_v.Items.Add(no); combo_flip_h.Items.Add(no); combo_flip_v.SelectedIndex = (m.flipv) ? 0 : 1; combo_flip_h.SelectedIndex = (m.fliph) ? 0 : 1; //Разрешения LoadResolutions(); //входной аспект LoadInAspect(); //обрезка LoadCrop(); //поля LoadBlack(); //загружаем выходной аспект LoadOutAspect(); //Кратность сторон CalculateMod(); //Вкладка Manual FillManualBox(); } else { tab_main.IsEnabled = tab_manual.IsEnabled = false; tab_settings.IsSelected = true; } ShowDialog(); }
public AspectResolution(Massive mass, MainWindow parent) { this.InitializeComponent(); if (mass != null) { m = mass.Clone(); oldm = mass.Clone(); format = mass.format; } else format = Settings.FormatOut; p = parent; Owner = p; //переводим string on = Languages.Translate("On"); string off = Languages.Translate("Off"); string _def = Languages.Translate("Default") + ": "; button_cancel.Content = Languages.Translate("Cancel"); button_ok.Content = Languages.Translate("OK"); button_refresh.Content = button_manual_apply.Content = text_manual_apply.Content = Languages.Translate("Apply"); button_refresh.ToolTip = Languages.Translate("Refresh preview"); if (m != null) text_resolution.Content = m.inresw + "x" + m.inresh; text_source_res.Content = Languages.Translate("Input resolution:"); text_final_res.Content = text_manual_res.Content = Languages.Translate("Output resolution:"); text_resizer.Content = Languages.Translate("Resize filter:"); text_aspectfix.Content = Languages.Translate("Aspect adjusting method:"); combo_aspectfix.ToolTip = "SAR - " + Languages.Translate("fix AR using anamorphic encoding") + "\r\nCrop - " + Languages.Translate("fix AR by cropping the picture") + "\r\nBlack - " + Languages.Translate("fix AR by adding a black borders"); text_inaspect.Content = Languages.Translate("Input aspect:"); text_manual_outasp.Content = (text_outaspect.Content = Languages.Translate("Output aspect:")) + " | "; text_crop_tb.Content = text_manual_crop_tb.Content = Languages.Translate("Crop top, bottom:"); text_crop_lr.Content = text_manual_crop_lr.Content = Languages.Translate("Crop left, right:"); text_black.Content = text_manual_black.Content = Languages.Translate("Black width, height:"); text_flip.Content = Languages.Translate("Flip horizontal, vertical:"); combo_crop_b.ToolTip = manual_crop_b.ToolTip = Languages.Translate("Bottom"); combo_crop_t.ToolTip = manual_crop_t.ToolTip = Languages.Translate("Top"); combo_crop_l.ToolTip = manual_crop_l.ToolTip = Languages.Translate("Left"); combo_crop_r.ToolTip = manual_crop_r.ToolTip = Languages.Translate("Right"); combo_black_h.ToolTip = manual_black_h.ToolTip = Languages.Translate("Height"); combo_black_w.ToolTip = manual_black_w.ToolTip = Languages.Translate("Width"); combo_flip_v.ToolTip = Languages.Translate("Vertical"); combo_flip_h.ToolTip = Languages.Translate("Horizontal"); text_autocropframes.Content = Languages.Translate("Frames to analyze:"); combo_autocropframes.ToolTip = _def + "11"; text_autocropsens.Content = Languages.Translate("Autocrop sensivity:"); combo_autocropsens.ToolTip = _def + "27"; text_autocrop_new_mode.Content = Languages.Translate("Crop using the most common values") + ":"; text_autocrop_new_mode.ToolTip = check_autocrop_new_mode.ToolTip = Languages.Translate("If checked, find the most common values for all the frames that`s being analyzed.") + "\r\n" + Languages.Translate("Otherwise find a minimum values only.") + "\r\n\r\n" + _def + off; text_aspecterror.Content = Languages.Translate("Aspect error:"); text_recalculate.Content = Languages.Translate("Recalculate when cropping") + ":"; text_recalculate.ToolTip = combo_recalculate.ToolTip = _def + Languages.Translate("Aspect"); button_analyse.ToolTip = Languages.Translate("Autocrop black borders"); button_vcrop.ToolTip = Languages.Translate("Crop black borders manually"); button_analyse.Content = group_autocrop.Header = Languages.Translate("Auto crop"); button_vcrop.Content = group_visualcrop.Header = Languages.Translate("Manual crop"); tab_main.Header = Languages.Translate("Main"); tab_settings.Header = Languages.Translate("Settings"); Title = Languages.Translate("Resolution/Aspect"); group_misc.Header = Languages.Translate("Misc"); text_ffmpeg_ar.Content = Languages.Translate("Use FFmpeg AR info:"); text_ffmpeg_ar.ToolTip = check_use_ffmpeg_ar.ToolTip = Languages.Translate("MediaInfo provides rounded values, so for better precision it`s recommended to use AR info from the FFmpeg") + ".\r\n" + Languages.Translate("This option is meaningful only when a file is opening.") + "\r\n\r\n" + _def + on; text_visualcrop_frame.Content = Languages.Translate("Startup frame:"); combo_visualcrop_frame.ToolTip = _def + Languages.Translate("THM-frame"); text_visualcrop_fullscreen.Content = Languages.Translate("Open window in fullscreen mode") + ":"; manual_outaspect.ToolTip = Languages.Translate("In case of non-anamorphic encoding: Aspect = Width/Height.") + "\r\n" + Languages.Translate("In case of anamorphic encoding: Aspect = (Width/Height)*SAR."); manual_outsar.ToolTip = Languages.Translate("Leave it empty for non-anamorphic encoding.") + "\r\n" + Languages.Translate("For anamorphic encoding you must specify SAR."); button_calc_sar.ToolTip = Languages.Translate("Calculate SAR for specified output resolution and aspect.") + "\r\n" + Languages.Translate("It must be used for anamorphic encoding only!"); text_original_ar.Content = Languages.Translate("Use the original AR of the stream (if available)") + ":"; check_original_ar.ToolTip = text_original_ar.ToolTip = Languages.Translate("If checked, use the AR of the raw video stream instead of the AR of the container.") + "\r\n" + Languages.Translate("This option is meaningful only when a file is opening.") + "\r\n\r\n" + _def + on; for (int n = 0; n < 101; n++) combo_autocropsens.Items.Add(n); combo_autocropsens.SelectedItem = Settings.AutocropSensivity; for (int n = 5; n < 51; n++) combo_autocropframes.Items.Add(n); combo_autocropframes.SelectedItem = Settings.AutocropFrames; check_autocrop_new_mode.IsChecked = Settings.AutocropMostCommon; combo_visualcrop_frame.Items.Add(new ComboBoxItem() { Tag = "THM-frame", Content = Languages.Translate("THM-frame") }); combo_visualcrop_frame.Items.Add(new ComboBoxItem() { Tag = "1-st frame", Content = Languages.Translate("1-st frame") }); combo_visualcrop_frame.SelectedValue = Settings.VCropFrame; check_visualcrop_fullscreen.IsChecked = Settings.VCropFullscreen; combo_recalculate.Items.Add(new ComboBoxItem() { Tag = CropRecalculate.Nothing, Content = Languages.Translate(CropRecalculate.Nothing.ToString()) }); combo_recalculate.Items.Add(new ComboBoxItem() { Tag = CropRecalculate.Aspect, Content = Languages.Translate(CropRecalculate.Aspect.ToString()) }); combo_recalculate.Items.Add(new ComboBoxItem() { Tag = CropRecalculate.Everything, Content = Languages.Translate(CropRecalculate.Everything.ToString()) }); combo_recalculate.SelectedValue = Settings.CropRecalculate; check_original_ar.IsChecked = Settings.MI_Original_AR; check_use_ffmpeg_ar.IsChecked = Settings.UseFFmpegAR; if (m != null) { //ресайзеры foreach (string resizer in Enum.GetNames(typeof(AviSynthScripting.Resizers))) combo_resizer.Items.Add(resizer); combo_resizer.SelectedItem = m.resizefilter.ToString(); //аспект фиксы foreach (string afix in Enum.GetNames(typeof(AspectFixes))) combo_aspectfix.Items.Add(afix); combo_aspectfix.SelectedItem = m.aspectfix.ToString(); string yes = Languages.Translate("Yes"); combo_flip_v.Items.Add(yes); combo_flip_h.Items.Add(yes); string no = Languages.Translate("No"); combo_flip_v.Items.Add(no); combo_flip_h.Items.Add(no); combo_flip_v.SelectedIndex = (m.flipv) ? 0 : 1; combo_flip_h.SelectedIndex = (m.fliph) ? 0 : 1; //Разрешения LoadResolutions(); //входной аспект LoadInAspect(); //обрезка LoadCrop(); //поля LoadBlack(); //загружаем выходной аспект LoadOutAspect(); //Кратность сторон CalculateMod(); //Вкладка Manual FillManualBox(); } else { tab_main.IsEnabled = tab_manual.IsEnabled = false; tab_settings.IsSelected = true; } ShowDialog(); }