From 7617bc4c41c7d79e1676e7edadd0ba71579c7ce3 Mon Sep 17 00:00:00 2001 From: sr55 <sr55.hb@outlook.com> Date: Sun, 5 Aug 2012 15:02:10 +0000 Subject: [PATCH] WinGui: Add Audio Track Name option back in. For now, I've used a toggle button on the audio track to expand the row to show hidden audio options. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4890 b64f7644-9d1e-0410-96f1-a4d463321fa5 --- .../Model/Encoding/AudioTrack.cs | 21 ++++++- .../Utilities/QueryGeneratorUtility.cs | 27 ++++++++ win/CS/HandBrakeWPF/Views/AudioView.xaml | 62 ++++++++++++++----- 3 files changed, 91 insertions(+), 19 deletions(-) diff --git a/win/CS/HandBrake.ApplicationServices/Model/Encoding/AudioTrack.cs b/win/CS/HandBrake.ApplicationServices/Model/Encoding/AudioTrack.cs index 7af4806f7..6e5803c09 100644 --- a/win/CS/HandBrake.ApplicationServices/Model/Encoding/AudioTrack.cs +++ b/win/CS/HandBrake.ApplicationServices/Model/Encoding/AudioTrack.cs @@ -63,9 +63,6 @@ namespace HandBrake.ApplicationServices.Model.Encoding [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] private Audio scannedTrack; - /// <summary> - /// The track name. - /// </summary> private string trackName; #endregion @@ -84,6 +81,7 @@ namespace HandBrake.ApplicationServices.Model.Encoding this.Bitrate = 160; this.DRC = 0; this.ScannedTrack = new Audio(); + this.TrackName = string.Empty; } /// <summary> @@ -102,6 +100,7 @@ namespace HandBrake.ApplicationServices.Model.Encoding this.mixDown = track.MixDown; this.sampleRate = track.SampleRate; this.scannedTrack = track.ScannedTrack ?? new Audio(); + this.TrackName = track.TrackName; } #endregion @@ -352,6 +351,22 @@ namespace HandBrake.ApplicationServices.Model.Encoding { get { return this; } } + + /// <summary> + /// Gets or sets the track name. + /// </summary> + public string TrackName + { + get + { + return this.trackName; + } + set + { + this.trackName = value; + } + } + #endregion } } \ No newline at end of file diff --git a/win/CS/HandBrake.ApplicationServices/Utilities/QueryGeneratorUtility.cs b/win/CS/HandBrake.ApplicationServices/Utilities/QueryGeneratorUtility.cs index a3c84f089..c22ef6926 100644 --- a/win/CS/HandBrake.ApplicationServices/Utilities/QueryGeneratorUtility.cs +++ b/win/CS/HandBrake.ApplicationServices/Utilities/QueryGeneratorUtility.cs @@ -494,6 +494,7 @@ namespace HandBrake.ApplicationServices.Utilities List<int> bitrates = new List<int>(); List<double> drcs = new List<double>(); List<double> gains = new List<double>(); + List<string> trackNames = new List<string>(); // No Audio if (audioTracks.Count == 0) @@ -526,6 +527,9 @@ namespace HandBrake.ApplicationServices.Utilities // Gain (--gain) gains.Add(track.IsPassthru ? 0 : track.Gain); + + // Audio Track Name (--aname) + trackNames.Add(track.TrackName); } // Audio Track (-a) @@ -645,6 +649,29 @@ namespace HandBrake.ApplicationServices.Utilities if (audioItems.Trim() != String.Empty) query += " --gain " + audioItems; + audioItems = string.Empty; // Reset for another pass. + firstLoop = true; + + // Audio Track Names (--aname) + bool foundTrackName = false; + foreach (string trackName in trackNames) + { + if (!string.IsNullOrEmpty(trackName)) + { + foundTrackName = true; + } + + if (firstLoop) + { + audioItems = string.IsNullOrEmpty(trackName) ? "\"\"" : string.Format("\"{0}\"", trackName.Trim()); + firstLoop = false; + } + else + audioItems += "," + (string.IsNullOrEmpty(trackName) ? "\"\"" : string.Format("\"{0}\"", trackName.Trim())); + } + if (foundTrackName) + query += string.Format(" --aname={0}", audioItems); + // Passthru Settings if (task.AllowedPassthruOptions != null) { diff --git a/win/CS/HandBrakeWPF/Views/AudioView.xaml b/win/CS/HandBrakeWPF/Views/AudioView.xaml index a014c4e68..4e9c6d92f 100644 --- a/win/CS/HandBrakeWPF/Views/AudioView.xaml +++ b/win/CS/HandBrakeWPF/Views/AudioView.xaml @@ -20,6 +20,7 @@ <Audio:AudioBitrateConverter x:Key="audioBitrateConverter" /> <Audio:AudioEncoderConverter x:Key="audioEncoderConverter" /> </UserControl.Resources> + <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> @@ -116,7 +117,14 @@ <ListBox.ItemTemplate> <DataTemplate> + + + <Grid HorizontalAlignment="Stretch"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> @@ -124,14 +132,14 @@ </Grid.ColumnDefinitions> <!-- Marker --> - <Image Grid.Column="0" + <Image Grid.Column="0" Grid.Row="0" Width="16" Height="16" Margin="10,0,10,0" Source="Images/Movies.png" /> <!-- Settings --> - <Grid Grid.Column="1" HorizontalAlignment="Stretch"> + <Grid Grid.Column="1" Grid.Row="0" HorizontalAlignment="Stretch"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" MaxWidth="160" /> @@ -300,26 +308,48 @@ Value="{Binding Gain, Mode=TwoWay}" /> + <ToggleButton Name="advancedOptionsToggle" VerticalAlignment="Center" Grid.Column="6" Grid.Row="1" Grid.ColumnSpan="2" + FontWeight="Bold" Height="22" Padding="4,0" HorizontalAlignment="Left" > + <ToggleButton.Style> + <Style TargetType="{x:Type ToggleButton}"> + <Setter Property="Content" Value="Show Advanced"/> + <Style.Triggers> + <Trigger Property="IsChecked" Value="True"> + <Setter Property="Content" Value="Hide Advanced"/> + </Trigger> + <Trigger Property="IsChecked" Value="False"> + <Setter Property="Content" Value="Show Advanced"/> + </Trigger> + </Style.Triggers> + </Style> + </ToggleButton.Style> + </ToggleButton> + </Grid> <!-- Delete --> - <Image Grid.Column="2" - Width="16" - Height="16" - Margin="10,0,10,0" - Source="Images/delete.png"> - <i:Interaction.Triggers> - <i:EventTrigger EventName="MouseDown"> - <cal:ActionMessage MethodName="Remove"> - <cal:Parameter Value="{Binding}" /> - </cal:ActionMessage> - </i:EventTrigger> - </i:Interaction.Triggers> - </Image> + <StackPanel Grid.Column="2" Grid.Row="0" VerticalAlignment="Center"> + <Image Width="16" Height="16" Margin="10,0,10,0" Source="Images/delete.png"> + <i:Interaction.Triggers> + <i:EventTrigger EventName="MouseDown"> + <cal:ActionMessage MethodName="Remove"> + <cal:Parameter Value="{Binding}" /> + </cal:ActionMessage> + </i:EventTrigger> + </i:Interaction.Triggers> + </Image> + </StackPanel> + <!-- Hidden Row --> + <Grid Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" Visibility="{Binding IsChecked, ElementName=advancedOptionsToggle, Converter={StaticResource boolToVisConverter}}"> + <StackPanel Orientation="Horizontal" Margin="0,5,0,5" > + <TextBlock Text="Track Name:" VerticalAlignment="Center" FontWeight="Bold" Margin="0,0,5,0" /> + <TextBox Text="{Binding TrackName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="138" Height="22" /> + </StackPanel> + + </Grid> </Grid> - </DataTemplate> </ListBox.ItemTemplate> </ListBox> -- 2.40.0