]> granicus.if.org Git - handbrake/commitdiff
WinGui: (WPF) Fixes to the Audio and Subtitle panels. Add pdb's to installer.
authorsr55 <sr55.hb@outlook.com>
Sat, 24 Mar 2012 16:17:04 +0000 (16:17 +0000)
committersr55 <sr55.hb@outlook.com>
Sat, 24 Mar 2012 16:17:04 +0000 (16:17 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4532 b64f7644-9d1e-0410-96f1-a4d463321fa5

win/CS/Controls/AudioPanel.cs
win/CS/HandBrake.ApplicationServices/Model/Encoding/AllowedPassthru.cs
win/CS/HandBrake.ApplicationServices/Model/Encoding/SubtitleTrack.cs
win/CS/HandBrake.ApplicationServices/Services/PresetService.cs
win/CS/HandBrake.ApplicationServices/Utilities/QueryGeneratorUtility.cs
win/CS/HandBrakeWPF/Installer/MakeAlpha.nsi.tmpl
win/CS/HandBrakeWPF/ViewModels/AudioViewModel.cs
win/CS/HandBrakeWPF/ViewModels/PictureSettingsViewModel.cs
win/CS/HandBrakeWPF/ViewModels/SubtitlesViewModel.cs
win/CS/HandBrakeWPF/Views/AudioView.xaml
win/CS/HandBrakeWPF/Views/SubtitlesView.xaml

index 531ebb7815a5297ee0612a22c9eed20562be9304..4eb01fba2d5c20c378f6d2720484c0ac29bbc9af 100644 (file)
@@ -1230,6 +1230,7 @@ namespace Handbrake.Controls
         /// </param>\r
         private void autoPassthru_CheckedChanged(object sender, EventArgs e)\r
         {\r
+            this.PassthruSettings.IsEnabled = true;\r
             if (sender == this.check_mp3)\r
             {\r
                 this.PassthruSettings.AudioAllowMP3Pass = this.check_mp3.Checked;\r
@@ -1267,6 +1268,7 @@ namespace Handbrake.Controls
         /// </param>\r
         private void drp_passthruFallback_SelectedIndexChanged(object sender, EventArgs e)\r
         {\r
+            this.PassthruSettings.IsEnabled = true;\r
             this.PassthruSettings.AudioEncoderFallback =\r
                 EnumHelper<AudioEncoder>.GetValue(drp_passthruFallback.SelectedItem.ToString());\r
         }\r
index 4b86fc9a1d8a2539ffa5551f15084ce6f9955e29..31447355b2aa452fa71669dbd98550409e075ef4 100644 (file)
@@ -58,6 +58,12 @@ namespace HandBrake.ApplicationServices.Model.Encoding
             this.AudioEncoderFallback = initialValue.AudioEncoderFallback;\r
         }\r
 \r
+        /// <summary>\r
+        /// Gets or sets a value indicating whether IsEnabled.\r
+        /// Temp Measure until forms gui is retired.\r
+        /// </summary>\r
+        public bool IsEnabled { get; set; }\r
+\r
         /// <summary>\r
         /// Gets or sets a value indicating whether AudioAllowAACPass.\r
         /// </summary>\r
index c15b9db0200f1d2e210bb5f482452f9a7e94b097..b1ae05a0d0d3d27d1aac7564301cfa076cb5cfdc 100644 (file)
@@ -12,15 +12,27 @@ namespace HandBrake.ApplicationServices.Model.Encoding
     using System;\r
     using System.Windows.Forms;\r
 \r
+    using Caliburn.Micro;\r
+\r
     using HandBrake.ApplicationServices.Parsing;\r
 \r
     /// <summary>\r
     /// Subtitle Information\r
     /// </summary>\r
-    public class SubtitleTrack : ModelBase\r
+    public class SubtitleTrack : PropertyChangedBase\r
     {\r
         #region Constants and Fields\r
 \r
+        /// <summary>\r
+        /// The burned in backing field.\r
+        /// </summary>\r
+        private bool burned;\r
+\r
+        /// <summary>\r
+        /// The is default backing field.\r
+        /// </summary>\r
+        private bool isDefault;\r
+\r
         /// <summary>\r
         /// The source track.\r
         /// </summary>\r
@@ -28,6 +40,8 @@ namespace HandBrake.ApplicationServices.Model.Encoding
 \r
         #endregion\r
 \r
+        #region Constructors and Destructors\r
+\r
         /// <summary>\r
         /// Initializes a new instance of the <see cref="SubtitleTrack"/> class.\r
         /// </summary>\r
@@ -57,18 +71,43 @@ namespace HandBrake.ApplicationServices.Model.Encoding
             this.SourceTrack = subtitle.SourceTrack;\r
         }\r
 \r
-        #region Public Properties\r
+        #endregion\r
 \r
+        #region Properties\r
 \r
         /// <summary>\r
         ///   Gets or sets a value indicating whether Burned.\r
         /// </summary>\r
-        public bool Burned { get; set; }\r
+        public bool Burned\r
+        {\r
+            get\r
+            {\r
+                return this.burned;\r
+            }\r
+\r
+            set\r
+            {\r
+                this.burned = value;\r
+                this.NotifyOfPropertyChange(() => this.Burned);\r
+            }\r
+        }\r
 \r
         /// <summary>\r
         ///   Gets or sets a value indicating whether Default.\r
         /// </summary>\r
-        public bool Default { get; set; }\r
+        public bool Default\r
+        {\r
+            get\r
+            {\r
+                return this.isDefault;\r
+            }\r
+\r
+            set\r
+            {\r
+                this.isDefault = value;\r
+                this.NotifyOfPropertyChange(() => this.Default);\r
+            }\r
+        }\r
 \r
         /// <summary>\r
         ///   Gets or sets a value indicating whether Forced.\r
@@ -87,11 +126,23 @@ namespace HandBrake.ApplicationServices.Model.Encoding
         }\r
 \r
         /// <summary>\r
-        ///   Gets or sets Track.\r
+        ///   Gets A ListViewItem Containing information about this subitlte\r
         /// </summary>\r
-        [Obsolete("Use SourceTrack Instead")]\r
-        public string Track { get; set; }\r
-\r
+        [Obsolete("Used only for the old forms gui. Will be removed.")]\r
+        public ListViewItem ListView\r
+        {\r
+            get\r
+            {\r
+                var listTrack = new ListViewItem(this.Track);\r
+                listTrack.SubItems.Add(this.Forced ? "Yes" : "No");\r
+                listTrack.SubItems.Add(this.Burned ? "Yes" : "No");\r
+                listTrack.SubItems.Add(this.Default ? "Yes" : "No");\r
+                listTrack.SubItems.Add(this.SrtLang);\r
+                listTrack.SubItems.Add(this.SrtCharCode);\r
+                listTrack.SubItems.Add(this.SrtOffset.ToString());\r
+                return listTrack;\r
+            }\r
+        }\r
 \r
         /// <summary>\r
         ///   Gets or sets SourceTrack.\r
@@ -106,7 +157,7 @@ namespace HandBrake.ApplicationServices.Model.Encoding
             set\r
             {\r
                 this.sourceTrack = value;\r
-                this.OnPropertyChanged("SourceTrack");\r
+                this.NotifyOfPropertyChange(() => this.SourceTrack);\r
                 if (this.sourceTrack != null)\r
                 {\r
                     this.Track = this.sourceTrack.ToString();\r
@@ -145,23 +196,10 @@ namespace HandBrake.ApplicationServices.Model.Encoding
         public SubtitleType SubtitleType { get; set; }\r
 \r
         /// <summary>\r
-        ///   Gets A ListViewItem Containing information about this subitlte\r
+        ///   Gets or sets Track.\r
         /// </summary>\r
-        [Obsolete("Used only for the old forms gui. Will be removed.")]\r
-        public ListViewItem ListView\r
-        {\r
-            get\r
-            {\r
-                var listTrack = new ListViewItem(this.Track);\r
-                listTrack.SubItems.Add(this.Forced ? "Yes" : "No");\r
-                listTrack.SubItems.Add(this.Burned ? "Yes" : "No");\r
-                listTrack.SubItems.Add(this.Default ? "Yes" : "No");\r
-                listTrack.SubItems.Add(this.SrtLang);\r
-                listTrack.SubItems.Add(this.SrtCharCode);\r
-                listTrack.SubItems.Add(this.SrtOffset.ToString());\r
-                return listTrack;\r
-            }\r
-        }\r
+        [Obsolete("Use SourceTrack Instead")]\r
+        public string Track { get; set; }\r
 \r
         #endregion\r
     }\r
index 63d636f5ca2bf02c96c1229b03b12a9691b1768e..bd93dc043807b46c4b4ba1333269a0d1260b15ea 100644 (file)
@@ -485,6 +485,12 @@ namespace HandBrake.ApplicationServices.Services
         {\r
             try\r
             {\r
+                string directory = Path.GetDirectoryName(this.userPresetFile);\r
+                if (!Directory.Exists(directory))\r
+                {\r
+                    Directory.CreateDirectory(directory);\r
+                }\r
+\r
                 using (FileStream strm = new FileStream(this.builtInPresetFile, FileMode.Create, FileAccess.Write))\r
                 {\r
                     Ser.Serialize(strm, this.presets.Where(p => p.IsBuildIn).ToList());\r
index d462962449f9ffc7755c6551f35923a97e94104f..bbcb9c4f732ed23792330781fcad8c396fd2216e 100644 (file)
@@ -477,6 +477,7 @@ namespace HandBrake.ApplicationServices.Utilities
             List<double> samplerates = new List<double>();\r
             List<int> bitrates = new List<int>();\r
             List<double> drcs = new List<double>();\r
+            List<double> gains = new List<double>();\r
 \r
             // No Audio\r
             if (audioTracks.Count == 0)\r
@@ -506,6 +507,9 @@ namespace HandBrake.ApplicationServices.Utilities
 \r
                 // DRC (-D)\r
                 drcs.Add(track.DRC);\r
+\r
+                // Gain (--gain)\r
+                gains.Add(track.Gain);\r
             }\r
 \r
             // Audio Track (-a)\r
@@ -606,8 +610,26 @@ namespace HandBrake.ApplicationServices.Utilities
             if (audioItems.Trim() != String.Empty)\r
                 query += " -D " + audioItems;\r
 \r
+            audioItems = string.Empty; // Reset for another pass.\r
+            firstLoop = true;\r
+\r
+            // Gain (--gain)\r
+            foreach (var itm in gains)\r
+            {\r
+                string item = itm.ToString(new CultureInfo("en-US"));\r
+                if (firstLoop)\r
+                {\r
+                    audioItems = item;\r
+                    firstLoop = false;\r
+                }\r
+                else\r
+                    audioItems += "," + item;\r
+            }\r
+            if (audioItems.Trim() != String.Empty)\r
+                query += " --gain " + audioItems;\r
+\r
             // Passthru Settings\r
-            if (task.AllowedPassthruOptions != null)\r
+            if (task.AllowedPassthruOptions != null && task.AllowedPassthruOptions.IsEnabled)\r
             {\r
                 string fallbackEncoders = string.Empty;\r
 \r
index 53ac01d525afeabd074beddf42c4ee68f3d4b0f3..2be087486c879b3a32d7cfb06140f4f1bea45d19 100644 (file)
@@ -106,6 +106,7 @@ Section "Handbrake" SEC01
   File "*.dll"\r
   File "*.config"\r
   File "*.xml"\r
+  File "*.pdb"\r
 \r
   ; Copy the standard doc set into the doc folder\r
   SetOutPath "$INSTDIR\doc"\r
index dbe32a813f628d2a151cb019c813099c2c478643..b8485be40876ca0e0fadddb466d4fa7d2c9dfb10 100644 (file)
@@ -134,6 +134,9 @@ namespace HandBrakeWPF.ViewModels
             {\r
                 this.AddTracksFromPreset(preset);\r
             }\r
+\r
+            this.Task.AllowedPassthruOptions.IsEnabled =\r
+                 this.UserSettingService.GetUserSetting<bool>(UserSettingConstants.ShowAdvancedAudioPassthruOpts);\r
         }\r
 \r
         /// <summary>\r
index 2c7b47c959c51a14e6743fbbe540433a30650eed..e3fddb8279c839da4072d345d84d5e2ea7e96499 100644 (file)
@@ -477,8 +477,7 @@ namespace HandBrakeWPF.ViewModels
         public void SetPreset(Preset preset, EncodeTask task)\r
         {\r
             this.Task = task;\r
-\r
-\r
\r
             // TODO: These all need to be handled correctly.\r
             this.SelectedAnamorphicMode = preset.Task.Anamorphic;\r
 \r
index 9595855bc3c678c306ade024ede73cbde8fca36c..3be51ec051592ff9e351b782bf84d4b387656d86 100644 (file)
@@ -177,6 +177,39 @@ namespace HandBrakeWPF.ViewModels
             this.Task.SubtitleTracks.Remove(track);\r
         }\r
 \r
+        /// <summary>\r
+        /// Select the default subtitle track.\r
+        /// </summary>\r
+        /// <param name="subtitle">\r
+        /// The subtitle.\r
+        /// </param>\r
+        public void SelectDefaultTrack(SubtitleTrack subtitle)\r
+        {\r
+            foreach (SubtitleTrack track in this.Task.SubtitleTracks)\r
+            {\r
+                track.Default = false;\r
+            }\r
+            subtitle.Default = true;\r
+\r
+            this.NotifyOfPropertyChange(() => this.Task);\r
+        }\r
+\r
+        /// <summary>\r
+        /// Select the burned in track.\r
+        /// </summary>\r
+        /// <param name="subtitle">\r
+        /// The subtitle.\r
+        /// </param>\r
+        public void SelectBurnedInTrack(SubtitleTrack subtitle)\r
+        {\r
+            foreach (SubtitleTrack track in this.Task.SubtitleTracks)\r
+            {\r
+                track.Burned = false;\r
+            }\r
+            subtitle.Burned = true;\r
+            this.NotifyOfPropertyChange(() => this.Task);\r
+        }\r
+\r
         #endregion\r
 \r
         #region Implemented Interfaces\r
index d94f257384b0ab2eb1dfa14a19dd16e7871c36fd..a27c0208583b27929e6d5053f4ca6662f220c9d7 100644 (file)
                             <ComboBox Width="100" Grid.Column="1" Margin="5,0,5,0" Height="22"\r
                                       ItemsSource="{Binding DataContext.SourceTracks, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" \r
                                       SelectedItem="{Binding ScannedTrack}"/>\r
+                            \r
                             <TextBlock Text="Codec" FontWeight="Bold" Grid.Column="2" VerticalAlignment="Center" />\r
                             <ComboBox Width="100" Grid.Column="3" Margin="5,0,5,0" Height="22"\r
                                       ItemsSource="{Binding DataContext.AudioEncoders, Converter={StaticResource enumComboConverter},  RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" \r
                                       SelectedItem="{Binding Encoder, Converter={StaticResource enumComboConverter}}"/>\r
+                            \r
                             <TextBlock Text="Bitrate" FontWeight="Bold" Grid.Column="4" VerticalAlignment="Center" />\r
                             <ComboBox Width="70" Grid.Column="5" Margin="5,0,5,0" Height="22" \r
                                       ItemsSource="{Binding DataContext.AudioBitrates, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"\r
                                       SelectedItem="{Binding Bitrate}"/>\r
+                            \r
                             <TextBlock Text="Samplerate" FontWeight="Bold" Grid.Column="6" VerticalAlignment="Center" />\r
                             <ComboBox Width="70" Grid.Column="7" Margin="5,0,5,0" Height="22" \r
                                       ItemsSource="{Binding DataContext.SampleRates, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"\r
                             <ComboBox Width="100" Grid.Column="1" Margin="5,0,5,0" Grid.Row="1" Height="22"\r
                                       ItemsSource="{Binding DataContext.AudioMixdowns, Converter={StaticResource enumComboConverter}, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"\r
                                       SelectedItem="{Binding MixDown, Converter={StaticResource enumComboConverter}}"/>\r
+                            \r
                             <TextBlock Text="DRC" FontWeight="Bold" Grid.Column="2" Grid.Row="1" VerticalAlignment="Center"/>\r
-                            <NumericUpDown:NumericUpDown Width="45" Value="{Binding DRC}" Grid.Row="1" Grid.Column="3" HorizontalAlignment="Left"  Margin="5,0,5,0" />\r
+                            <NumericUpDown:NumericUpDown Width="45" Value="{Binding DRC, Mode=TwoWay}" Grid.Row="1" Grid.Column="3" HorizontalAlignment="Left" Margin="5,0,5,0"\r
+                                                         Minimum="0" Maximum="4" DecimalPlace="1" LargeChange="0.1" SmallChange="0.1"/>\r
+                            \r
                             <TextBlock Text="Gain" FontWeight="Bold" Grid.Column="4" Grid.Row="1" VerticalAlignment="Center"/>\r
-                            <NumericUpDown:NumericUpDown Width="45" Value="{Binding Gain}" Grid.Row="1" Grid.Column="5" HorizontalAlignment="Left"  Margin="5,0,5,0" />\r
+                            <NumericUpDown:NumericUpDown Width="45" Value="{Binding Gain, Mode=TwoWay}" Grid.Row="1" Grid.Column="5" HorizontalAlignment="Left" Margin="5,0,5,0"\r
+                                                         Minimum="-20" Maximum="20" DecimalPlace="0" SmallChange="1" LargeChange="1" />\r
                             \r
                         </Grid>\r
 \r
index 71e48a7ba187bc81f340de4281eb99bafaee5821..0611bba0bf375c9f90b3d7fc6cb38c54201716c6 100644 (file)
                             <TextBlock Text="Forced Only" FontWeight="Bold" Grid.Column="2" VerticalAlignment="Center" />\r
                             <CheckBox Grid.Column="3" IsChecked="{Binding Forced}" VerticalAlignment="Center" Margin="5,0,5,0"/>\r
                             <TextBlock Text="Burn In" FontWeight="Bold" Grid.Column="4" VerticalAlignment="Center" />\r
-                            <CheckBox Grid.Column="5" IsChecked="{Binding Burned}" VerticalAlignment="Center" Margin="5,0,5,0"/>\r
+                            <CheckBox Grid.Column="5" IsChecked="{Binding Burned}" VerticalAlignment="Center" Margin="5,0,5,0">\r
+                                <i:Interaction.Triggers>\r
+                                    <i:EventTrigger EventName="Click">\r
+                                        <cal:ActionMessage MethodName="SelectBurnedInTrack">\r
+                                            <cal:Parameter Value="{Binding}" />\r
+                                        </cal:ActionMessage>\r
+                                    </i:EventTrigger>\r
+                                </i:Interaction.Triggers>\r
+                            </CheckBox>\r
                             <TextBlock Text="Default" FontWeight="Bold" Grid.Column="6" VerticalAlignment="Center" />\r
-                            <CheckBox Grid.Column="7" IsChecked="{Binding Default}" VerticalAlignment="Center" Margin="5,0,5,0"/>\r
+                            <CheckBox Grid.Column="7" IsChecked="{Binding Default}" VerticalAlignment="Center" Margin="5,0,5,0">\r
+                                <i:Interaction.Triggers>\r
+                                    <i:EventTrigger EventName="Click">\r
+                                        <cal:ActionMessage MethodName="SelectDefaultTrack">\r
+                                            <cal:Parameter Value="{Binding}" />\r
+                                        </cal:ActionMessage>\r
+                                    </i:EventTrigger>\r
+                                </i:Interaction.Triggers>\r
+                            </CheckBox>\r
 \r
                             <!-- Row 2-->\r
                             <TextBlock Text="Language" FontWeight="Bold" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center"/>\r