// -------------------------------------------------------------------------------------------------------------------- // // This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. // // // The x 264 queue tooltip converter. // // -------------------------------------------------------------------------------------------------------------------- namespace HandBrakeWPF.Converters.Video { using System; using System.Globalization; using System.Linq; using System.Windows.Data; using HandBrake.ApplicationServices.Interop.Model.Encoding; using EncodeTask = HandBrakeWPF.Services.Encode.Model.EncodeTask; using VideoLevel = HandBrakeWPF.Services.Encode.Model.Models.Video.VideoLevel; using VideoPreset = HandBrakeWPF.Services.Encode.Model.Models.Video.VideoPreset; using VideoProfile = HandBrakeWPF.Services.Encode.Model.Models.Video.VideoProfile; using VideoTune = HandBrakeWPF.Services.Encode.Model.Models.Video.VideoTune; /// /// The x 264 queue tooltip converter. /// public class EncoderOptionsTooltipConverter : IValueConverter { /// /// Converts a value. /// /// /// A converted value. If the method returns null, the valid null value is used. /// /// /// The value produced by the binding source. /// /// /// The type of the binding target property. /// /// /// The converter parameter to use. /// /// /// The culture to use in the converter. /// public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { EncodeTask task = value as EncodeTask; if (task != null && (task.VideoEncoder == VideoEncoder.X264 || task.VideoEncoder == VideoEncoder.X264_10 || task.VideoEncoder == VideoEncoder.X265 || task.VideoEncoder == VideoEncoder.X265_10 || task.VideoEncoder == VideoEncoder.X265_12)) { if (task.ShowAdvancedTab) { return task.AdvancedEncoderOptions; } VideoTune tune = task.VideoTunes.FirstOrDefault(); return string.Format("Preset: {0}{5}Tune: {1}{5}Profile: {2}{5}Level: {3}{5}Extra Arguments: {4}{5}", task.VideoPreset != null ? task.VideoPreset.ShortName : VideoPreset.None.DisplayName, tune != null ? tune.ShortName : VideoTune.None.DisplayName, task.VideoProfile != null ? task.VideoProfile.ShortName : VideoProfile.Auto.DisplayName, task.VideoLevel != null ? task.VideoLevel.ShortName : VideoLevel.Auto.DisplayName, string.IsNullOrEmpty(task.ExtraAdvancedArguments) ? "None" : task.ExtraAdvancedArguments, Environment.NewLine); } return task != null ? task.AdvancedEncoderOptions : string.Empty; } /// /// Converts a value. /// /// /// A converted value. If the method returns null, the valid null value is used. /// /// /// The value that is produced by the binding target. /// /// /// The type to convert to. /// /// /// The converter parameter to use. /// /// /// The culture to use in the converter. /// public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }