1 // --------------------------------------------------------------------------------------------------------------------
2 // <copyright file="FilterSettingsDescConverter.cs" company="HandBrake Project (http://handbrake.fr)">
3 //   This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
4 // </copyright>
5 // --------------------------------------------------------------------------------------------------------------------
6 
7 namespace HandBrakeWPF.Converters.Queue
8 {
9     using System;
10     using System.Collections.Generic;
11     using System.Globalization;
12     using System.Windows.Data;
13 
14     using HandBrakeWPF.Model.Filters;
15     using HandBrakeWPF.Properties;
16     using HandBrakeWPF.Services.Encode.Model;
17     using HandBrakeWPF.Utilities;
18     using HandBrakeWPF.ViewModelItems.Filters;
19 
20     public class FilterSettingsDescConverter : IValueConverter
21     {
Convert(object value, Type targetType, object parameter, CultureInfo culture)22         public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
23         {
24             EncodeTask task = value as EncodeTask;
25             if (task != null)
26             {
27                 List<string> filters = new List<string>();
28 
29                 if (task.Detelecine != Detelecine.Off)
30                 {
31                     filters.Add(Resources.SummaryView_Detelecine);
32                 }
33 
34                 if (task.DeinterlaceFilter != DeinterlaceFilter.Off)
35                 {
36                     filters.Add(EnumHelper<DeinterlaceFilter>.GetShortName(task.DeinterlaceFilter));
37                 }
38 
39                 if (task.Denoise != Denoise.Off)
40                 {
41                     filters.Add(task.Denoise.ToString());
42                 }
43 
44                 if (task.Sharpen != Sharpen.Off)
45                 {
46                     filters.Add(task.Sharpen.ToString());
47                 }
48 
49                 if (task.DeblockPreset != null && task.DeblockPreset.Key != DeblockFilter.Off)
50                 {
51                     filters.Add(Resources.SummaryView_Deblock);
52                 }
53 
54                 if (task.Grayscale)
55                 {
56                     filters.Add(Resources.SummaryView_Grayscale);
57                 }
58 
59                 if (task.Rotation != 0 || task.FlipVideo)
60                 {
61                     filters.Add(Resources.SummaryView_Rotation);
62                 }
63 
64                 if (task.Colourspace != null && task.Colourspace.Key != ColourSpaceFilter.Off)
65                 {
66                     filters.Add(Resources.SummaryView_Colourspace);
67                 }
68 
69                 if (filters.Count == 0)
70                 {
71                     return Resources.SummaryView_NoFilters;
72                 }
73 
74                 return string.Join(", ", filters).TrimEnd(',').Trim();
75             }
76 
77             return Resources.SummaryView_NoFilters;
78         }
79 
ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)80         public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
81         {
82             throw new NotImplementedException();
83         }
84     }
85 }
86