summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--win/CS/Controls/AudioPanel.cs2
-rw-r--r--win/CS/HandBrake.ApplicationServices/Model/Encoding/AllowedPassthru.cs6
-rw-r--r--win/CS/HandBrake.ApplicationServices/Model/Encoding/SubtitleTrack.cs88
-rw-r--r--win/CS/HandBrake.ApplicationServices/Services/PresetService.cs6
-rw-r--r--win/CS/HandBrake.ApplicationServices/Utilities/QueryGeneratorUtility.cs24
-rw-r--r--win/CS/HandBrakeWPF/Installer/MakeAlpha.nsi.tmpl1
-rw-r--r--win/CS/HandBrakeWPF/ViewModels/AudioViewModel.cs3
-rw-r--r--win/CS/HandBrakeWPF/ViewModels/PictureSettingsViewModel.cs3
-rw-r--r--win/CS/HandBrakeWPF/ViewModels/SubtitlesViewModel.cs33
-rw-r--r--win/CS/HandBrakeWPF/Views/AudioView.xaml11
-rw-r--r--win/CS/HandBrakeWPF/Views/SubtitlesView.xaml20
11 files changed, 165 insertions, 32 deletions
diff --git a/win/CS/Controls/AudioPanel.cs b/win/CS/Controls/AudioPanel.cs
index 531ebb781..4eb01fba2 100644
--- a/win/CS/Controls/AudioPanel.cs
+++ b/win/CS/Controls/AudioPanel.cs
@@ -1230,6 +1230,7 @@ namespace Handbrake.Controls
/// </param>
private void autoPassthru_CheckedChanged(object sender, EventArgs e)
{
+ this.PassthruSettings.IsEnabled = true;
if (sender == this.check_mp3)
{
this.PassthruSettings.AudioAllowMP3Pass = this.check_mp3.Checked;
@@ -1267,6 +1268,7 @@ namespace Handbrake.Controls
/// </param>
private void drp_passthruFallback_SelectedIndexChanged(object sender, EventArgs e)
{
+ this.PassthruSettings.IsEnabled = true;
this.PassthruSettings.AudioEncoderFallback =
EnumHelper<AudioEncoder>.GetValue(drp_passthruFallback.SelectedItem.ToString());
}
diff --git a/win/CS/HandBrake.ApplicationServices/Model/Encoding/AllowedPassthru.cs b/win/CS/HandBrake.ApplicationServices/Model/Encoding/AllowedPassthru.cs
index 4b86fc9a1..31447355b 100644
--- a/win/CS/HandBrake.ApplicationServices/Model/Encoding/AllowedPassthru.cs
+++ b/win/CS/HandBrake.ApplicationServices/Model/Encoding/AllowedPassthru.cs
@@ -59,6 +59,12 @@ namespace HandBrake.ApplicationServices.Model.Encoding
}
/// <summary>
+ /// Gets or sets a value indicating whether IsEnabled.
+ /// Temp Measure until forms gui is retired.
+ /// </summary>
+ public bool IsEnabled { get; set; }
+
+ /// <summary>
/// Gets or sets a value indicating whether AudioAllowAACPass.
/// </summary>
public bool AudioAllowAACPass { get; set; }
diff --git a/win/CS/HandBrake.ApplicationServices/Model/Encoding/SubtitleTrack.cs b/win/CS/HandBrake.ApplicationServices/Model/Encoding/SubtitleTrack.cs
index c15b9db02..b1ae05a0d 100644
--- a/win/CS/HandBrake.ApplicationServices/Model/Encoding/SubtitleTrack.cs
+++ b/win/CS/HandBrake.ApplicationServices/Model/Encoding/SubtitleTrack.cs
@@ -12,22 +12,36 @@ namespace HandBrake.ApplicationServices.Model.Encoding
using System;
using System.Windows.Forms;
+ using Caliburn.Micro;
+
using HandBrake.ApplicationServices.Parsing;
/// <summary>
/// Subtitle Information
/// </summary>
- public class SubtitleTrack : ModelBase
+ public class SubtitleTrack : PropertyChangedBase
{
#region Constants and Fields
/// <summary>
+ /// The burned in backing field.
+ /// </summary>
+ private bool burned;
+
+ /// <summary>
+ /// The is default backing field.
+ /// </summary>
+ private bool isDefault;
+
+ /// <summary>
/// The source track.
/// </summary>
private Subtitle sourceTrack;
#endregion
+ #region Constructors and Destructors
+
/// <summary>
/// Initializes a new instance of the <see cref="SubtitleTrack"/> class.
/// </summary>
@@ -57,18 +71,43 @@ namespace HandBrake.ApplicationServices.Model.Encoding
this.SourceTrack = subtitle.SourceTrack;
}
- #region Public Properties
+ #endregion
+ #region Properties
/// <summary>
/// Gets or sets a value indicating whether Burned.
/// </summary>
- public bool Burned { get; set; }
+ public bool Burned
+ {
+ get
+ {
+ return this.burned;
+ }
+
+ set
+ {
+ this.burned = value;
+ this.NotifyOfPropertyChange(() => this.Burned);
+ }
+ }
/// <summary>
/// Gets or sets a value indicating whether Default.
/// </summary>
- public bool Default { get; set; }
+ public bool Default
+ {
+ get
+ {
+ return this.isDefault;
+ }
+
+ set
+ {
+ this.isDefault = value;
+ this.NotifyOfPropertyChange(() => this.Default);
+ }
+ }
/// <summary>
/// Gets or sets a value indicating whether Forced.
@@ -87,11 +126,23 @@ namespace HandBrake.ApplicationServices.Model.Encoding
}
/// <summary>
- /// Gets or sets Track.
+ /// Gets A ListViewItem Containing information about this subitlte
/// </summary>
- [Obsolete("Use SourceTrack Instead")]
- public string Track { get; set; }
-
+ [Obsolete("Used only for the old forms gui. Will be removed.")]
+ public ListViewItem ListView
+ {
+ get
+ {
+ var listTrack = new ListViewItem(this.Track);
+ listTrack.SubItems.Add(this.Forced ? "Yes" : "No");
+ listTrack.SubItems.Add(this.Burned ? "Yes" : "No");
+ listTrack.SubItems.Add(this.Default ? "Yes" : "No");
+ listTrack.SubItems.Add(this.SrtLang);
+ listTrack.SubItems.Add(this.SrtCharCode);
+ listTrack.SubItems.Add(this.SrtOffset.ToString());
+ return listTrack;
+ }
+ }
/// <summary>
/// Gets or sets SourceTrack.
@@ -106,7 +157,7 @@ namespace HandBrake.ApplicationServices.Model.Encoding
set
{
this.sourceTrack = value;
- this.OnPropertyChanged("SourceTrack");
+ this.NotifyOfPropertyChange(() => this.SourceTrack);
if (this.sourceTrack != null)
{
this.Track = this.sourceTrack.ToString();
@@ -145,23 +196,10 @@ namespace HandBrake.ApplicationServices.Model.Encoding
public SubtitleType SubtitleType { get; set; }
/// <summary>
- /// Gets A ListViewItem Containing information about this subitlte
+ /// Gets or sets Track.
/// </summary>
- [Obsolete("Used only for the old forms gui. Will be removed.")]
- public ListViewItem ListView
- {
- get
- {
- var listTrack = new ListViewItem(this.Track);
- listTrack.SubItems.Add(this.Forced ? "Yes" : "No");
- listTrack.SubItems.Add(this.Burned ? "Yes" : "No");
- listTrack.SubItems.Add(this.Default ? "Yes" : "No");
- listTrack.SubItems.Add(this.SrtLang);
- listTrack.SubItems.Add(this.SrtCharCode);
- listTrack.SubItems.Add(this.SrtOffset.ToString());
- return listTrack;
- }
- }
+ [Obsolete("Use SourceTrack Instead")]
+ public string Track { get; set; }
#endregion
}
diff --git a/win/CS/HandBrake.ApplicationServices/Services/PresetService.cs b/win/CS/HandBrake.ApplicationServices/Services/PresetService.cs
index 63d636f5c..bd93dc043 100644
--- a/win/CS/HandBrake.ApplicationServices/Services/PresetService.cs
+++ b/win/CS/HandBrake.ApplicationServices/Services/PresetService.cs
@@ -485,6 +485,12 @@ namespace HandBrake.ApplicationServices.Services
{
try
{
+ string directory = Path.GetDirectoryName(this.userPresetFile);
+ if (!Directory.Exists(directory))
+ {
+ Directory.CreateDirectory(directory);
+ }
+
using (FileStream strm = new FileStream(this.builtInPresetFile, FileMode.Create, FileAccess.Write))
{
Ser.Serialize(strm, this.presets.Where(p => p.IsBuildIn).ToList());
diff --git a/win/CS/HandBrake.ApplicationServices/Utilities/QueryGeneratorUtility.cs b/win/CS/HandBrake.ApplicationServices/Utilities/QueryGeneratorUtility.cs
index d46296244..bbcb9c4f7 100644
--- a/win/CS/HandBrake.ApplicationServices/Utilities/QueryGeneratorUtility.cs
+++ b/win/CS/HandBrake.ApplicationServices/Utilities/QueryGeneratorUtility.cs
@@ -477,6 +477,7 @@ namespace HandBrake.ApplicationServices.Utilities
List<double> samplerates = new List<double>();
List<int> bitrates = new List<int>();
List<double> drcs = new List<double>();
+ List<double> gains = new List<double>();
// No Audio
if (audioTracks.Count == 0)
@@ -506,6 +507,9 @@ namespace HandBrake.ApplicationServices.Utilities
// DRC (-D)
drcs.Add(track.DRC);
+
+ // Gain (--gain)
+ gains.Add(track.Gain);
}
// Audio Track (-a)
@@ -606,8 +610,26 @@ namespace HandBrake.ApplicationServices.Utilities
if (audioItems.Trim() != String.Empty)
query += " -D " + audioItems;
+ audioItems = string.Empty; // Reset for another pass.
+ firstLoop = true;
+
+ // Gain (--gain)
+ foreach (var itm in gains)
+ {
+ string item = itm.ToString(new CultureInfo("en-US"));
+ if (firstLoop)
+ {
+ audioItems = item;
+ firstLoop = false;
+ }
+ else
+ audioItems += "," + item;
+ }
+ if (audioItems.Trim() != String.Empty)
+ query += " --gain " + audioItems;
+
// Passthru Settings
- if (task.AllowedPassthruOptions != null)
+ if (task.AllowedPassthruOptions != null && task.AllowedPassthruOptions.IsEnabled)
{
string fallbackEncoders = string.Empty;
diff --git a/win/CS/HandBrakeWPF/Installer/MakeAlpha.nsi.tmpl b/win/CS/HandBrakeWPF/Installer/MakeAlpha.nsi.tmpl
index 53ac01d52..2be087486 100644
--- a/win/CS/HandBrakeWPF/Installer/MakeAlpha.nsi.tmpl
+++ b/win/CS/HandBrakeWPF/Installer/MakeAlpha.nsi.tmpl
@@ -106,6 +106,7 @@ Section "Handbrake" SEC01
File "*.dll"
File "*.config"
File "*.xml"
+ File "*.pdb"
; Copy the standard doc set into the doc folder
SetOutPath "$INSTDIR\doc"
diff --git a/win/CS/HandBrakeWPF/ViewModels/AudioViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/AudioViewModel.cs
index dbe32a813..b8485be40 100644
--- a/win/CS/HandBrakeWPF/ViewModels/AudioViewModel.cs
+++ b/win/CS/HandBrakeWPF/ViewModels/AudioViewModel.cs
@@ -134,6 +134,9 @@ namespace HandBrakeWPF.ViewModels
{
this.AddTracksFromPreset(preset);
}
+
+ this.Task.AllowedPassthruOptions.IsEnabled =
+ this.UserSettingService.GetUserSetting<bool>(UserSettingConstants.ShowAdvancedAudioPassthruOpts);
}
/// <summary>
diff --git a/win/CS/HandBrakeWPF/ViewModels/PictureSettingsViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/PictureSettingsViewModel.cs
index 2c7b47c95..e3fddb827 100644
--- a/win/CS/HandBrakeWPF/ViewModels/PictureSettingsViewModel.cs
+++ b/win/CS/HandBrakeWPF/ViewModels/PictureSettingsViewModel.cs
@@ -477,8 +477,7 @@ namespace HandBrakeWPF.ViewModels
public void SetPreset(Preset preset, EncodeTask task)
{
this.Task = task;
-
-
+
// TODO: These all need to be handled correctly.
this.SelectedAnamorphicMode = preset.Task.Anamorphic;
diff --git a/win/CS/HandBrakeWPF/ViewModels/SubtitlesViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/SubtitlesViewModel.cs
index 9595855bc..3be51ec05 100644
--- a/win/CS/HandBrakeWPF/ViewModels/SubtitlesViewModel.cs
+++ b/win/CS/HandBrakeWPF/ViewModels/SubtitlesViewModel.cs
@@ -177,6 +177,39 @@ namespace HandBrakeWPF.ViewModels
this.Task.SubtitleTracks.Remove(track);
}
+ /// <summary>
+ /// Select the default subtitle track.
+ /// </summary>
+ /// <param name="subtitle">
+ /// The subtitle.
+ /// </param>
+ public void SelectDefaultTrack(SubtitleTrack subtitle)
+ {
+ foreach (SubtitleTrack track in this.Task.SubtitleTracks)
+ {
+ track.Default = false;
+ }
+ subtitle.Default = true;
+
+ this.NotifyOfPropertyChange(() => this.Task);
+ }
+
+ /// <summary>
+ /// Select the burned in track.
+ /// </summary>
+ /// <param name="subtitle">
+ /// The subtitle.
+ /// </param>
+ public void SelectBurnedInTrack(SubtitleTrack subtitle)
+ {
+ foreach (SubtitleTrack track in this.Task.SubtitleTracks)
+ {
+ track.Burned = false;
+ }
+ subtitle.Burned = true;
+ this.NotifyOfPropertyChange(() => this.Task);
+ }
+
#endregion
#region Implemented Interfaces
diff --git a/win/CS/HandBrakeWPF/Views/AudioView.xaml b/win/CS/HandBrakeWPF/Views/AudioView.xaml
index d94f25738..a27c02085 100644
--- a/win/CS/HandBrakeWPF/Views/AudioView.xaml
+++ b/win/CS/HandBrakeWPF/Views/AudioView.xaml
@@ -81,14 +81,17 @@
<ComboBox Width="100" Grid.Column="1" Margin="5,0,5,0" Height="22"
ItemsSource="{Binding DataContext.SourceTracks, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
SelectedItem="{Binding ScannedTrack}"/>
+
<TextBlock Text="Codec" FontWeight="Bold" Grid.Column="2" VerticalAlignment="Center" />
<ComboBox Width="100" Grid.Column="3" Margin="5,0,5,0" Height="22"
ItemsSource="{Binding DataContext.AudioEncoders, Converter={StaticResource enumComboConverter}, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
SelectedItem="{Binding Encoder, Converter={StaticResource enumComboConverter}}"/>
+
<TextBlock Text="Bitrate" FontWeight="Bold" Grid.Column="4" VerticalAlignment="Center" />
<ComboBox Width="70" Grid.Column="5" Margin="5,0,5,0" Height="22"
ItemsSource="{Binding DataContext.AudioBitrates, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
SelectedItem="{Binding Bitrate}"/>
+
<TextBlock Text="Samplerate" FontWeight="Bold" Grid.Column="6" VerticalAlignment="Center" />
<ComboBox Width="70" Grid.Column="7" Margin="5,0,5,0" Height="22"
ItemsSource="{Binding DataContext.SampleRates, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
@@ -99,10 +102,14 @@
<ComboBox Width="100" Grid.Column="1" Margin="5,0,5,0" Grid.Row="1" Height="22"
ItemsSource="{Binding DataContext.AudioMixdowns, Converter={StaticResource enumComboConverter}, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
SelectedItem="{Binding MixDown, Converter={StaticResource enumComboConverter}}"/>
+
<TextBlock Text="DRC" FontWeight="Bold" Grid.Column="2" Grid.Row="1" VerticalAlignment="Center"/>
- <NumericUpDown:NumericUpDown Width="45" Value="{Binding DRC}" Grid.Row="1" Grid.Column="3" HorizontalAlignment="Left" Margin="5,0,5,0" />
+ <NumericUpDown:NumericUpDown Width="45" Value="{Binding DRC, Mode=TwoWay}" Grid.Row="1" Grid.Column="3" HorizontalAlignment="Left" Margin="5,0,5,0"
+ Minimum="0" Maximum="4" DecimalPlace="1" LargeChange="0.1" SmallChange="0.1"/>
+
<TextBlock Text="Gain" FontWeight="Bold" Grid.Column="4" Grid.Row="1" VerticalAlignment="Center"/>
- <NumericUpDown:NumericUpDown Width="45" Value="{Binding Gain}" Grid.Row="1" Grid.Column="5" HorizontalAlignment="Left" Margin="5,0,5,0" />
+ <NumericUpDown:NumericUpDown Width="45" Value="{Binding Gain, Mode=TwoWay}" Grid.Row="1" Grid.Column="5" HorizontalAlignment="Left" Margin="5,0,5,0"
+ Minimum="-20" Maximum="20" DecimalPlace="0" SmallChange="1" LargeChange="1" />
</Grid>
diff --git a/win/CS/HandBrakeWPF/Views/SubtitlesView.xaml b/win/CS/HandBrakeWPF/Views/SubtitlesView.xaml
index 71e48a7ba..0611bba0b 100644
--- a/win/CS/HandBrakeWPF/Views/SubtitlesView.xaml
+++ b/win/CS/HandBrakeWPF/Views/SubtitlesView.xaml
@@ -79,9 +79,25 @@
<TextBlock Text="Forced Only" FontWeight="Bold" Grid.Column="2" VerticalAlignment="Center" />
<CheckBox Grid.Column="3" IsChecked="{Binding Forced}" VerticalAlignment="Center" Margin="5,0,5,0"/>
<TextBlock Text="Burn In" FontWeight="Bold" Grid.Column="4" VerticalAlignment="Center" />
- <CheckBox Grid.Column="5" IsChecked="{Binding Burned}" VerticalAlignment="Center" Margin="5,0,5,0"/>
+ <CheckBox Grid.Column="5" IsChecked="{Binding Burned}" VerticalAlignment="Center" Margin="5,0,5,0">
+ <i:Interaction.Triggers>
+ <i:EventTrigger EventName="Click">
+ <cal:ActionMessage MethodName="SelectBurnedInTrack">
+ <cal:Parameter Value="{Binding}" />
+ </cal:ActionMessage>
+ </i:EventTrigger>
+ </i:Interaction.Triggers>
+ </CheckBox>
<TextBlock Text="Default" FontWeight="Bold" Grid.Column="6" VerticalAlignment="Center" />
- <CheckBox Grid.Column="7" IsChecked="{Binding Default}" VerticalAlignment="Center" Margin="5,0,5,0"/>
+ <CheckBox Grid.Column="7" IsChecked="{Binding Default}" VerticalAlignment="Center" Margin="5,0,5,0">
+ <i:Interaction.Triggers>
+ <i:EventTrigger EventName="Click">
+ <cal:ActionMessage MethodName="SelectDefaultTrack">
+ <cal:Parameter Value="{Binding}" />
+ </cal:ActionMessage>
+ </i:EventTrigger>
+ </i:Interaction.Triggers>
+ </CheckBox>
<!-- Row 2-->
<TextBlock Text="Language" FontWeight="Bold" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center"/>