diff options
12 files changed, 197 insertions, 99 deletions
diff --git a/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj b/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj index 1a99efd1d..16afa531b 100644 --- a/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj +++ b/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj @@ -135,6 +135,7 @@ <Compile Include="Interop\Json\Encode\SubtitleTrack.cs" />
<Compile Include="Interop\Json\Encode\Video.cs" />
<Compile Include="Interop\Factories\AnamorphicFactory.cs" />
+ <Compile Include="Interop\Model\Encoding\DeinterlaceFilter.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Interop\Json\Scan\SourceAudioTrack.cs" />
<Compile Include="Interop\Json\Scan\SourceChapter.cs" />
diff --git a/win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/Decomb.cs b/win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/Decomb.cs index 58e1003e3..eab94ef2a 100644 --- a/win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/Decomb.cs +++ b/win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/Decomb.cs @@ -16,19 +16,16 @@ namespace HandBrake.ApplicationServices.Interop.Model.Encoding /// </summary>
public enum Decomb
{
- [ShortName("off")]
- Off = 0,
-
[ShortName("default")]
- Default = 2,
+ Default,
[ShortName("fast")]
- Fast = 3,
+ Fast,
[ShortName("bob")]
- Bob = 4,
+ Bob,
[ShortName("custom")]
- Custom = 1
+ Custom
}
}
diff --git a/win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/Deinterlace.cs b/win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/Deinterlace.cs index f7b8f0a42..e8da93043 100644 --- a/win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/Deinterlace.cs +++ b/win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/Deinterlace.cs @@ -16,22 +16,19 @@ namespace HandBrake.ApplicationServices.Interop.Model.Encoding /// </summary>
public enum Deinterlace
{
- [ShortName("off")]
- Off = 0,
-
[ShortName("fast")]
- Fast = 2,
+ Fast,
[ShortName("slow")]
- Slow = 3,
+ Slow,
[ShortName("slower")]
- Slower = 4,
+ Slower,
[ShortName("bob")]
- Bob = 5,
+ Bob,
[ShortName("custom")]
- Custom = 1
+ Custom
}
}
diff --git a/win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/DeinterlaceFilter.cs b/win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/DeinterlaceFilter.cs new file mode 100644 index 000000000..27e8f4435 --- /dev/null +++ b/win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/DeinterlaceFilter.cs @@ -0,0 +1,28 @@ +// -------------------------------------------------------------------------------------------------------------------- +// <copyright file="Deinterlace.cs" company="HandBrake Project (http://handbrake.fr)"> +// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. +// </copyright> +// <summary> +// Defines the Deinterlace type. +// </summary> +// -------------------------------------------------------------------------------------------------------------------- + +namespace HandBrake.ApplicationServices.Interop.Model.Encoding +{ + using HandBrake.ApplicationServices.Attributes; + + /// <summary> + /// The deinterlace. + /// </summary> + public enum DeinterlaceFilter + { + [ShortName("off")] + Off = 0, + + [ShortName("Deinterlace")] + Deinterlace = 1, + + [ShortName("Decomb")] + Decomb = 2 + } +} diff --git a/win/CS/HandBrakeWPF/Converters/EnumComboConverter.cs b/win/CS/HandBrakeWPF/Converters/EnumComboConverter.cs index 2f92db92c..b154c4dce 100644 --- a/win/CS/HandBrakeWPF/Converters/EnumComboConverter.cs +++ b/win/CS/HandBrakeWPF/Converters/EnumComboConverter.cs @@ -91,6 +91,10 @@ namespace HandBrakeWPF.Converters {
return EnumHelper<OutputFormat>.GetEnumDisplayValues(typeof(OutputFormat));
}
+ if (value is IEnumerable<DeinterlaceFilter>)
+ {
+ return EnumHelper<DeinterlaceFilter>.GetEnumDisplayValues(typeof(DeinterlaceFilter));
+ }
// Single Items
if (targetType == typeof(VideoEncoder) || value.GetType() == typeof(VideoEncoder))
@@ -136,7 +140,12 @@ namespace HandBrakeWPF.Converters {
return EnumHelper<OutputFormat>.GetDisplay((OutputFormat)value);
}
-
+
+ if (targetType == typeof(DeinterlaceFilter) || value.GetType() == typeof(DeinterlaceFilter))
+ {
+ return EnumHelper<DeinterlaceFilter>.GetDisplay((DeinterlaceFilter)value);
+ }
+
return null;
}
@@ -201,6 +210,11 @@ namespace HandBrakeWPF.Converters return EnumHelper<OutputFormat>.GetValue(value.ToString());
}
+ if (targetType == typeof(DeinterlaceFilter) || value.GetType() == typeof(DeinterlaceFilter))
+ {
+ return EnumHelper<DeinterlaceFilter>.GetValue(value.ToString());
+ }
+
return null;
}
}
diff --git a/win/CS/HandBrakeWPF/Properties/ResourcesUI.Designer.cs b/win/CS/HandBrakeWPF/Properties/ResourcesUI.Designer.cs index 10afa9c83..3bfe5da97 100644 --- a/win/CS/HandBrakeWPF/Properties/ResourcesUI.Designer.cs +++ b/win/CS/HandBrakeWPF/Properties/ResourcesUI.Designer.cs @@ -412,7 +412,7 @@ namespace HandBrakeWPF.Properties { }
/// <summary>
- /// Looks up a localized string similar to Deinterlace.
+ /// Looks up a localized string similar to Deinterlace:.
/// </summary>
public static string FiltersView_Deinterlace {
get {
diff --git a/win/CS/HandBrakeWPF/Properties/ResourcesUI.resx b/win/CS/HandBrakeWPF/Properties/ResourcesUI.resx index 2d9793240..1a5da42c9 100644 --- a/win/CS/HandBrakeWPF/Properties/ResourcesUI.resx +++ b/win/CS/HandBrakeWPF/Properties/ResourcesUI.resx @@ -394,7 +394,7 @@ <value>Decomb</value>
</data>
<data name="FiltersView_Deinterlace" xml:space="preserve">
- <value>Deinterlace</value>
+ <value>Deinterlace:</value>
</data>
<data name="FiltersView_Denoise" xml:space="preserve">
<value>Denoise:</value>
diff --git a/win/CS/HandBrakeWPF/Services/Encode/Factories/EncodeFactory.cs b/win/CS/HandBrakeWPF/Services/Encode/Factories/EncodeFactory.cs index 31688c334..80873c510 100644 --- a/win/CS/HandBrakeWPF/Services/Encode/Factories/EncodeFactory.cs +++ b/win/CS/HandBrakeWPF/Services/Encode/Factories/EncodeFactory.cs @@ -406,7 +406,7 @@ namespace HandBrakeWPF.Services.Encode.Factories } // Decomb - if (job.Decomb != Decomb.Off) + if (job.DeinterlaceFilter == DeinterlaceFilter.Decomb) { string options; if (job.Decomb == Decomb.Fast) @@ -427,7 +427,7 @@ namespace HandBrakeWPF.Services.Encode.Factories } // Deinterlace - if (job.Deinterlace != Deinterlace.Off) + if (job.DeinterlaceFilter == DeinterlaceFilter.Deinterlace) { string options; if (job.Deinterlace == Deinterlace.Fast) diff --git a/win/CS/HandBrakeWPF/Services/Encode/Model/EncodeTask.cs b/win/CS/HandBrakeWPF/Services/Encode/Model/EncodeTask.cs index f4d5a988e..8d7440f06 100644 --- a/win/CS/HandBrakeWPF/Services/Encode/Model/EncodeTask.cs +++ b/win/CS/HandBrakeWPF/Services/Encode/Model/EncodeTask.cs @@ -99,6 +99,7 @@ namespace HandBrakeWPF.Services.Encode.Model this.Deblock = task.Deblock; this.Decomb = task.Decomb; this.Deinterlace = task.Deinterlace; + this.DeinterlaceFilter = task.DeinterlaceFilter; this.Denoise = task.Denoise; this.DenoisePreset = task.DenoisePreset; this.DenoiseTune = task.DenoiseTune; @@ -278,6 +279,11 @@ namespace HandBrakeWPF.Services.Encode.Model #region Filters /// <summary> + /// Gets or sets Deinterlace Filter Mode + /// </summary> + public DeinterlaceFilter DeinterlaceFilter { get; set; } + + /// <summary> /// Gets or sets Deinterlace. /// </summary> public Deinterlace Deinterlace { get; set; } diff --git a/win/CS/HandBrakeWPF/Services/Presets/Factories/JsonPresetFactory.cs b/win/CS/HandBrakeWPF/Services/Presets/Factories/JsonPresetFactory.cs index 2a5a8d4aa..52c0c6e99 100644 --- a/win/CS/HandBrakeWPF/Services/Presets/Factories/JsonPresetFactory.cs +++ b/win/CS/HandBrakeWPF/Services/Presets/Factories/JsonPresetFactory.cs @@ -101,19 +101,22 @@ namespace HandBrakeWPF.Services.Presets.Factories {
case "decomb":
preset.Task.Decomb = Decomb.Default;
- preset.Task.Deinterlace = Deinterlace.Off;
+ preset.Task.Deinterlace = Deinterlace.Fast;
+ preset.Task.DeinterlaceFilter = DeinterlaceFilter.Decomb;
break;
case "deinterlace":
- preset.Task.Decomb = Decomb.Off;
+ preset.Task.Decomb = Decomb.Default;
preset.Task.Deinterlace = Deinterlace.Fast;
+ preset.Task.DeinterlaceFilter = DeinterlaceFilter.Deinterlace;
break;
default:
- preset.Task.Decomb = Decomb.Off;
- preset.Task.Deinterlace = Deinterlace.Off;
+ preset.Task.Decomb = Decomb.Default;
+ preset.Task.Deinterlace = Deinterlace.Fast;
+ preset.Task.DeinterlaceFilter = DeinterlaceFilter.Off;
break;
}
- if (preset.Task.Decomb != Decomb.Off)
+ if (preset.Task.DeinterlaceFilter == DeinterlaceFilter.Decomb)
{
switch (importedPreset.PictureDeinterlaceFilter)
{
@@ -140,7 +143,7 @@ namespace HandBrakeWPF.Services.Presets.Factories }
}
- if (preset.Task.Deinterlace != Deinterlace.Off)
+ if (preset.Task.DeinterlaceFilter == DeinterlaceFilter.Deinterlace)
{
switch (importedPreset.PictureDeinterlaceFilter)
{
@@ -533,9 +536,15 @@ namespace HandBrakeWPF.Services.Presets.Factories // Filters
preset.PictureDeblock = export.Task.Deblock;
- preset.PictureDeinterlaceFilter = export.Task.Decomb != Decomb.Off ? "decomb" : export.Task.Deinterlace != Deinterlace.Off ? "deinterlace" : "off";
- preset.PictureDeinterlacePreset = export.Task.Decomb != Decomb.Off ? EnumHelper<Decomb>.GetShortName(export.Task.Decomb) : export.Task.Deinterlace != Deinterlace.Off ? EnumHelper<Deinterlace>.GetShortName(export.Task.Deinterlace) : string.Empty;
- preset.PictureDeinterlaceCustom = export.Task.Decomb != Decomb.Off ? export.Task.CustomDecomb : export.Task.Deinterlace != Deinterlace.Off ? export.Task.CustomDeinterlace : string.Empty;
+ preset.PictureDeinterlaceFilter = export.Task.DeinterlaceFilter == DeinterlaceFilter.Decomb
+ ? "decomb"
+ : export.Task.DeinterlaceFilter == DeinterlaceFilter.Deinterlace ? "deinterlace" : "off";
+ preset.PictureDeinterlacePreset = export.Task.DeinterlaceFilter == DeinterlaceFilter.Decomb
+ ? EnumHelper<Decomb>.GetShortName(export.Task.Decomb)
+ : export.Task.DeinterlaceFilter == DeinterlaceFilter.Deinterlace ? EnumHelper<Deinterlace>.GetShortName(export.Task.Deinterlace) : string.Empty;
+ preset.PictureDeinterlaceCustom = export.Task.DeinterlaceFilter == DeinterlaceFilter.Decomb
+ ? export.Task.CustomDecomb
+ : export.Task.DeinterlaceFilter == DeinterlaceFilter.Deinterlace ? export.Task.CustomDeinterlace : string.Empty;
preset.PictureDeinterlaceCustom = export.Task.CustomDeinterlace;
preset.PictureDenoiseCustom = export.Task.CustomDenoise;
preset.PictureDenoiseFilter = EnumHelper<Denoise>.GetShortName(export.Task.Denoise);
diff --git a/win/CS/HandBrakeWPF/ViewModels/FiltersViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/FiltersViewModel.cs index 8810c65d9..f136035ab 100644 --- a/win/CS/HandBrakeWPF/ViewModels/FiltersViewModel.cs +++ b/win/CS/HandBrakeWPF/ViewModels/FiltersViewModel.cs @@ -32,10 +32,7 @@ namespace HandBrakeWPF.ViewModels /// </summary>
public class FiltersViewModel : ViewModelBase, IFiltersViewModel
{
- /// <summary>
- /// The is deinterlace mode.
- /// </summary>
- private bool isDeinterlaceMode;
+ private DeinterlaceFilter deinterlaceFilter;
#region Constructors and Destructors
@@ -52,7 +49,7 @@ namespace HandBrakeWPF.ViewModels {
this.CurrentTask = new EncodeTask();
this.DeblockValue = 4; // OFF
- this.IsDeinterlaceMode = true;
+ this.SelectedDeinterlaceFilter = DeinterlaceFilter.Off;
}
#endregion
@@ -206,6 +203,17 @@ namespace HandBrakeWPF.ViewModels }
/// <summary>
+ /// Gets DeinterlaceFilterOptions.
+ /// </summary>
+ public IEnumerable<DeinterlaceFilter> DeinterlaceFilterOptions
+ {
+ get
+ {
+ return EnumHelper<DeinterlaceFilter>.GetEnumList();
+ }
+ }
+
+ /// <summary>
/// Gets or sets a value indicating whether Grayscale.
/// </summary>
public bool Grayscale
@@ -235,23 +243,14 @@ namespace HandBrakeWPF.ViewModels set
{
this.CurrentTask.Deinterlace = value;
- if (this.CurrentTask.Deinterlace != Deinterlace.Off)
- {
- this.SelectedDecomb = Decomb.Off;
- }
-
this.NotifyOfPropertyChange(() => this.SelectedDeInterlace);
if (value != Deinterlace.Custom) this.CustomDeinterlace = string.Empty;
// Show / Hide the Custom Control
- this.ShowDeinterlaceCustom = this.CurrentTask.Deinterlace == Deinterlace.Custom;
+ this.NotifyOfPropertyChange(() => this.ShowDecombCustom);
this.NotifyOfPropertyChange(() => this.ShowDeinterlaceCustom);
-
- if (value != Deinterlace.Off)
- {
- this.IsDeinterlaceMode = true;
- }
+ this.NotifyOfPropertyChange(() => this.ShowDeinterlaceDecombCustom);
}
}
@@ -268,23 +267,14 @@ namespace HandBrakeWPF.ViewModels set
{
this.CurrentTask.Decomb = value;
- if (this.CurrentTask.Decomb != Decomb.Off)
- {
- this.SelectedDeInterlace = Deinterlace.Off;
- }
-
this.NotifyOfPropertyChange(() => this.SelectedDecomb);
if (value != Decomb.Custom) this.CustomDecomb = string.Empty;
// Show / Hide the Custom Control
- this.ShowDecombCustom = this.CurrentTask.Decomb == Decomb.Custom;
this.NotifyOfPropertyChange(() => this.ShowDecombCustom);
-
- if (value != Decomb.Off)
- {
- this.IsDeinterlaceMode = false;
- }
+ this.NotifyOfPropertyChange(() => this.ShowDeinterlaceCustom);
+ this.NotifyOfPropertyChange(() => this.ShowDeinterlaceDecombCustom);
}
}
@@ -339,12 +329,17 @@ namespace HandBrakeWPF.ViewModels /// <summary>
/// Gets or sets a value indicating whether ShowDecombCustom.
/// </summary>
- public bool ShowDecombCustom { get; set; }
+ public bool ShowDecombCustom => this.SelectedDeinterlaceFilter == DeinterlaceFilter.Decomb && this.SelectedDecomb == Decomb.Custom;
+
+ /// <summary>
+ /// Gets or sets a value indicating whether ShowDeinterlaceDecombCustom.
+ /// </summary>
+ public bool ShowDeinterlaceDecombCustom => (this.SelectedDeinterlaceFilter == DeinterlaceFilter.Decomb && this.SelectedDecomb == Decomb.Custom) || (this.SelectedDeinterlaceFilter == DeinterlaceFilter.Deinterlace && this.SelectedDeInterlace == Deinterlace.Custom);
/// <summary>
/// Gets or sets a value indicating whether ShowDelelecineCustom.
/// </summary>
- public bool ShowDeinterlaceCustom { get; set; }
+ public bool ShowDeinterlaceCustom => this.SelectedDeinterlaceFilter == DeinterlaceFilter.Deinterlace && this.SelectedDeInterlace == Deinterlace.Custom;
/// <summary>
/// Gets or sets a value indicating whether ShowDenoiseCustom.
@@ -357,41 +352,64 @@ namespace HandBrakeWPF.ViewModels public bool ShowDetelecineCustom { get; set; }
/// <summary>
- /// Gets or sets a value indicating whether is deinterlace mode.
+ /// Gets or sets the selected deinterlace filter mode.
/// </summary>
- public bool IsDeinterlaceMode
+ public DeinterlaceFilter SelectedDeinterlaceFilter
{
get
{
- return this.isDeinterlaceMode;
+ return this.deinterlaceFilter;
}
set
{
- if (!Equals(this.isDeinterlaceMode, value))
+ if (value == this.deinterlaceFilter)
{
- this.isDeinterlaceMode = value;
- this.NotifyOfPropertyChange(() => this.IsDeinterlaceMode);
-
- this.DeinterlaceControlText = value ? "Deinterlace:" : "Decomb:";
+ return;
+ }
- if (value)
- {
- this.SelectedDecomb = Decomb.Off;
- }
- else
- {
- this.SelectedDeInterlace = Deinterlace.Off;
- }
+ this.deinterlaceFilter = value;
+ this.CurrentTask.DeinterlaceFilter = value;
- this.NotifyOfPropertyChange(() => this.DeinterlaceControlText);
+ if (this.deinterlaceFilter == DeinterlaceFilter.Deinterlace)
+ {
+ this.IsDeinterlaceMode = true;
+ this.IsDecombMode = false;
+ }
+ else if (this.deinterlaceFilter == DeinterlaceFilter.Decomb)
+ {
+ this.IsDeinterlaceMode = false;
+ this.IsDecombMode = true;
+ }
+ else
+ {
+ this.IsDeinterlaceMode = false;
+ this.IsDecombMode = false;
}
+
+ this.NotifyOfPropertyChange(() => this.SelectedDeinterlaceFilter);
+ this.NotifyOfPropertyChange(() => this.IsDeinterlaceMode);
+ this.NotifyOfPropertyChange(() => this.IsDecombMode);
+ this.NotifyOfPropertyChange(() => this.IsDeinterlaceDecomb);
+ this.NotifyOfPropertyChange(() => this.ShowDecombCustom);
+ this.NotifyOfPropertyChange(() => this.ShowDeinterlaceCustom);
+ this.NotifyOfPropertyChange(() => this.ShowDeinterlaceDecombCustom);
}
}
/// <summary>
- /// Gets or sets the deinterlace control text.
+ /// Gets or sets a value indicating whether is deinterlace mode.
+ /// </summary>
+ public bool IsDeinterlaceMode { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether is decomb mode.
/// </summary>
- public string DeinterlaceControlText { get; set; }
+ public bool IsDecombMode { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether is deinterlace or decomb mode.
+ /// </summary>
+ public bool IsDeinterlaceDecomb => this.SelectedDeinterlaceFilter != DeinterlaceFilter.Off;
/// <summary>
/// Gets or sets the selected denoise tune.
@@ -501,9 +519,24 @@ namespace HandBrakeWPF.ViewModels {
// Properties
this.SelectedDenoise = preset.Task.Denoise;
+ this.SelectedDetelecine = preset.Task.Detelecine;
+
this.SelectedDecomb = preset.Task.Decomb;
this.SelectedDeInterlace = preset.Task.Deinterlace;
- this.SelectedDetelecine = preset.Task.Detelecine;
+ if (preset.Task.DeinterlaceFilter == DeinterlaceFilter.Deinterlace)
+ {
+ this.SelectedDeinterlaceFilter = DeinterlaceFilter.Deinterlace;
+ }
+ else if (preset.Task.DeinterlaceFilter == DeinterlaceFilter.Decomb)
+ {
+ this.SelectedDeinterlaceFilter = DeinterlaceFilter.Decomb;
+ }
+ else
+ {
+ this.SelectedDeinterlaceFilter = DeinterlaceFilter.Off;
+ }
+
+
this.Grayscale = preset.Task.Grayscale;
this.DeblockValue = preset.Task.Deblock == 0 ? 4 : preset.Task.Deblock;
this.SelectedDenoisePreset = preset.Task.DenoisePreset;
@@ -519,8 +552,8 @@ namespace HandBrakeWPF.ViewModels {
// Default everything to off
this.SelectedDenoise = Denoise.Off;
- this.SelectedDecomb = Decomb.Off;
- this.SelectedDeInterlace = Deinterlace.Off;
+ this.SelectedDecomb = Decomb.Default;
+ this.SelectedDeInterlace = Deinterlace.Fast;
this.SelectedDetelecine = Detelecine.Off;
this.Grayscale = false;
this.DeblockValue = 0;
@@ -548,6 +581,11 @@ namespace HandBrakeWPF.ViewModels this.NotifyOfPropertyChange(() => this.CustomDeinterlace);
this.NotifyOfPropertyChange(() => this.CustomDetelecine);
this.NotifyOfPropertyChange(() => this.CustomDenoise);
+
+ this.NotifyOfPropertyChange(() => this.IsDeinterlaceMode);
+ this.NotifyOfPropertyChange(() => this.IsDecombMode);
+ this.NotifyOfPropertyChange(() => this.IsDeinterlaceDecomb);
+
}
/// <summary>
diff --git a/win/CS/HandBrakeWPF/Views/FiltersView.xaml b/win/CS/HandBrakeWPF/Views/FiltersView.xaml index 471d41049..edacca205 100644 --- a/win/CS/HandBrakeWPF/Views/FiltersView.xaml +++ b/win/CS/HandBrakeWPF/Views/FiltersView.xaml @@ -45,6 +45,7 @@ <ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
+ <!-- Detelecine -->
<TextBlock Text="{x:Static Properties:ResourcesUI.FiltersView_Detelecine}" Grid.Row="0" Grid.Column="0" Margin="0,0,0,10" />
<ComboBox Width="120" Grid.Row="0" ItemsSource="{Binding DetelecineOptions, Converter={StaticResource boolComboConverter}}"
SelectedItem="{Binding SelectedDetelecine, Converter={StaticResource boolComboConverter}}" Grid.Column="1" Margin="0,0,0,10"
@@ -53,30 +54,37 @@ <TextBox Width="120" Grid.Row="0" Grid.Column="2" Margin="0,0,0,10" Text="{Binding CustomDetelecine, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left"
Visibility="{Binding ShowDetelecineCustom, Converter={StaticResource boolToVisConverter}}"/>
- <TextBlock Text="{Binding DeinterlaceControlText}" Grid.Row="1" Grid.Column="0" Margin="0,0,0,10" VerticalAlignment="Top"/>
+ <!-- Deinterlace -->
+ <TextBlock Text="{x:Static Properties:ResourcesUI.FiltersView_Deinterlace}" Grid.Row="1" Grid.Column="0" Margin="0,0,0,10" />
<StackPanel Grid.Row="1" Grid.Column="1" >
- <StackPanel Orientation="Horizontal">
- <RadioButton GroupName="Interlace" Content="{x:Static Properties:ResourcesUI.FiltersView_Deinterlace}" IsChecked="{Binding IsDeinterlaceMode}"
- ToolTip="{x:Static Properties:ResourcesTooltips.FilterView_DecombDeinterlace}" />
- <RadioButton GroupName="Interlace" Content="{x:Static Properties:ResourcesUI.FiltersView_Decomb}" Margin="10,0,0,0" IsChecked="{Binding IsDeinterlaceMode, Converter={StaticResource inverseBooleanConverter}}"
- ToolTip="{x:Static Properties:ResourcesTooltips.FilterView_DecombDeinterlace}"/>
- </StackPanel>
-
- <ComboBox Width="120" ItemsSource="{Binding DecombOptions, Converter={StaticResource boolComboConverter}}" HorizontalAlignment="Left"
- SelectedItem="{Binding SelectedDecomb, Converter={StaticResource boolComboConverter}}" Margin="0,0,0,10"
- Visibility="{Binding IsDeinterlaceMode, Converter={StaticResource boolToVisConverter}, ConverterParameter=True}" />
- <ComboBox Width="120" ItemsSource="{Binding DeInterlaceOptions, Converter={StaticResource boolComboConverter}}" HorizontalAlignment="Left"
- SelectedItem="{Binding SelectedDeInterlace, Converter={StaticResource boolComboConverter}}" Margin="0,0,0,10"
- Visibility="{Binding IsDeinterlaceMode, Converter={StaticResource boolToVisConverter}}" />
+ <ComboBox Width="120" ItemsSource="{Binding DeinterlaceFilterOptions, Converter={StaticResource boolComboConverter}}" HorizontalAlignment="Left"
+ SelectedItem="{Binding SelectedDeinterlaceFilter, Converter={StaticResource boolComboConverter}}" Margin="0,0,0,10" />
+
</StackPanel>
- <TextBox Width="120" Grid.Row="1" Grid.Column="2" Text="{Binding CustomDecomb, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top" HorizontalAlignment="Left"
- Visibility="{Binding ShowDecombCustom, Converter={StaticResource boolToVisConverter}}" />
+ <StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="2">
+ <TextBlock Text="Preset:" VerticalAlignment="Center" Margin="0,0,5,10" Visibility="{Binding IsDeinterlaceDecomb, Converter={StaticResource boolToVisConverter}}" />
+ <ComboBox Width="120" ItemsSource="{Binding DecombOptions, Converter={StaticResource boolComboConverter}}" HorizontalAlignment="Left" VerticalAlignment="Center"
+ SelectedItem="{Binding SelectedDecomb, Converter={StaticResource boolComboConverter}}"
+ Visibility="{Binding IsDecombMode, Converter={StaticResource boolToVisConverter}}" Margin="0,0,0,10" />
+
+ <ComboBox Width="120" ItemsSource="{Binding DeInterlaceOptions, Converter={StaticResource boolComboConverter}}" HorizontalAlignment="Left" VerticalAlignment="Center"
+ SelectedItem="{Binding SelectedDeInterlace, Converter={StaticResource boolComboConverter}}"
+ Visibility="{Binding IsDeinterlaceMode, Converter={StaticResource boolToVisConverter}}" Margin="0,0,0,10" />
+
+ <TextBlock Text="Custom:" VerticalAlignment="Center" Margin="5,0,5,10" Visibility="{Binding ShowDeinterlaceDecombCustom, Converter={StaticResource boolToVisConverter}}" />
+ <TextBox Width="120" Text="{Binding CustomDecomb, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalAlignment="Left"
+ Visibility="{Binding ShowDecombCustom, Converter={StaticResource boolToVisConverter}}" Margin="0,0,0,10" />
+
+ <TextBox Width="120" Text="{Binding CustomDeinterlace, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalAlignment="Left"
+ Visibility="{Binding ShowDeinterlaceCustom, Converter={StaticResource boolToVisConverter}}" Margin="0,0,0,10" />
+ </StackPanel>
- <TextBox Width="120" Grid.Row="1" Grid.Column="2" Text="{Binding CustomDeinterlace, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top" HorizontalAlignment="Left"
- Visibility="{Binding ShowDeinterlaceCustom, Converter={StaticResource boolToVisConverter}}" />
+
+
+ <!-- Denoise -->
<TextBlock Text="{x:Static Properties:ResourcesUI.FiltersView_Denoise}" Grid.Row="3" Grid.Column="0" Margin="0,0,0,10"/>
<ComboBox Width="120" Grid.Row="3" ItemsSource="{Binding DenoiseOptions, Converter={StaticResource boolComboConverter}}"
SelectedItem="{Binding SelectedDenoise, Converter={StaticResource boolComboConverter}}" Grid.Column="1"
@@ -84,7 +92,7 @@ <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Grid.Row="3" Grid.Column="2" Margin="0,0,0,10"
Visibility="{Binding ShowDenoiseOptions, Converter={StaticResource boolToVisConverter}}">
- <TextBlock Text="{x:Static Properties:ResourcesUI.FiltersView_Preset}" Margin="5,0,5,0" />
+ <TextBlock Text="{x:Static Properties:ResourcesUI.FiltersView_Preset}" Margin="0,0,5,0" />
<ComboBox SelectedItem="{Binding SelectedDenoisePreset}"
MinWidth="100" HorizontalAlignment="Center" VerticalAlignment="Center">
<ComboBox.ItemsSource>
|