OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / win / C# / Functions / Common.cs
index 184fadb..d87e937 100644 (file)
@@ -288,7 +288,7 @@ namespace Handbrake.Functions
 \r
             // Audio Settings Tab\r
             #region Audio\r
-            \r
+\r
             if (presetQuery.AudioTrack1 == "")\r
                 mainWindow.drp_track1Audio.Text = "Automatic";\r
             else\r
@@ -296,44 +296,114 @@ namespace Handbrake.Functions
 \r
             if (presetQuery.AudioTrack2 == "None")\r
             {\r
-                if (presetQuery.AudioEncoder2 != null)\r
-                {\r
-                    mainWindow.drp_track2Audio.SelectedIndex = 1;\r
-                    mainWindow.drp_audsr_2.Enabled = true;\r
-                    mainWindow.drp_audmix_2.Enabled = true;\r
-                    mainWindow.drp_audenc_2.Enabled = true;\r
-                    mainWindow.drp_audbit_2.Enabled = true;\r
-                }\r
-                else\r
-                {\r
-                    mainWindow.drp_track2Audio.SelectedIndex = 0;\r
-                    mainWindow.drp_audsr_2.Enabled = false;\r
-                    mainWindow.drp_audmix_2.Enabled = false;\r
-                    mainWindow.drp_audenc_2.Enabled = false;\r
-                    mainWindow.drp_audbit_2.Enabled = false;\r
-                }\r
-\r
+                mainWindow.drp_track2Audio.SelectedIndex = 0;\r
+                mainWindow.drp_audsr_2.Enabled = false;\r
+                mainWindow.drp_audmix_2.Enabled = false;\r
+                mainWindow.drp_audenc_2.Enabled = false;\r
+                mainWindow.drp_audbit_2.Enabled = false;\r
             }\r
             else\r
+            {\r
                 mainWindow.drp_track2Audio.Text = presetQuery.AudioTrack2;\r
+                mainWindow.drp_audsr_2.Enabled = true;\r
+                mainWindow.drp_audmix_2.Enabled = true;\r
+                mainWindow.drp_audenc_2.Enabled = true;\r
+                mainWindow.drp_audbit_2.Enabled = true;\r
+            }\r
+\r
+            if (presetQuery.AudioTrack3 == "None")\r
+            {\r
+                mainWindow.drp_track3Audio.SelectedIndex = 0;\r
+                mainWindow.drp_audsr_3.Enabled = false;\r
+                mainWindow.drp_audmix_3.Enabled = false;\r
+                mainWindow.drp_audenc_3.Enabled = false;\r
+                mainWindow.drp_audbit_3.Enabled = false;\r
+\r
+            }\r
+            else\r
+            {\r
+                mainWindow.drp_track3Audio.Text = presetQuery.AudioTrack3;\r
+                mainWindow.drp_audsr_3.Enabled = true;\r
+                mainWindow.drp_audmix_3.Enabled = true;\r
+                mainWindow.drp_audenc_3.Enabled = true;\r
+                mainWindow.drp_audbit_3.Enabled = true;\r
+            }\r
+\r
+            if (presetQuery.AudioTrack4 == "None")\r
+            {\r
+                mainWindow.drp_track4Audio.SelectedIndex = 0;\r
+                mainWindow.drp_audsr_4.Enabled = false;\r
+                mainWindow.drp_audmix_4.Enabled = false;\r
+                mainWindow.drp_audenc_4.Enabled = false;\r
+                mainWindow.drp_audbit_4.Enabled = false;\r
+            }\r
+            else\r
+            {\r
+                mainWindow.drp_track4Audio.Text = presetQuery.AudioTrack4;\r
+                mainWindow.drp_audsr_4.Enabled = true;\r
+                mainWindow.drp_audmix_4.Enabled = true;\r
+                mainWindow.drp_audenc_4.Enabled = true;\r
+                mainWindow.drp_audbit_4.Enabled = true;\r
+            }\r
 \r
             if (presetQuery.AudioEncoder1 != null)\r
-            mainWindow.drp_audenc_1.Text = presetQuery.AudioEncoder1;\r
+                mainWindow.drp_audenc_1.Text = presetQuery.AudioEncoder1;\r
             mainWindow.drp_audenc_2.Text = presetQuery.AudioEncoder2;\r
+            mainWindow.drp_audenc_3.Text = presetQuery.AudioEncoder3;\r
+            mainWindow.drp_audenc_4.Text = presetQuery.AudioEncoder4;\r
 \r
             if (presetQuery.AudioBitrate1 != null)\r
-            mainWindow.drp_audbit_1.Text = presetQuery.AudioBitrate1;\r
+                mainWindow.drp_audbit_1.Text = presetQuery.AudioBitrate1;\r
             mainWindow.drp_audbit_2.Text = presetQuery.AudioBitrate2;\r
+            mainWindow.drp_audbit_3.Text = presetQuery.AudioBitrate4;\r
+            mainWindow.drp_audbit_3.Text = presetQuery.AudioBitrate4;\r
 \r
             if (presetQuery.AudioSamplerate1 != null)\r
-            mainWindow.drp_audsr_1.Text = presetQuery.AudioSamplerate1;\r
+                mainWindow.drp_audsr_1.Text = presetQuery.AudioSamplerate1;\r
             mainWindow.drp_audsr_2.Text = presetQuery.AudioSamplerate2;\r
+            mainWindow.drp_audsr_3.Text = presetQuery.AudioSamplerate3;\r
+            mainWindow.drp_audsr_4.Text = presetQuery.AudioSamplerate4;\r
 \r
             mainWindow.drp_audmix_1.Text = presetQuery.AudioTrackMix1;\r
             mainWindow.drp_audmix_2.Text = presetQuery.AudioTrackMix2;\r
+            mainWindow.drp_audmix_3.Text = presetQuery.AudioTrackMix3;\r
+            mainWindow.drp_audmix_4.Text = presetQuery.AudioTrackMix4;\r
+\r
 \r
-            \r
-            \r
+            // Dynamic Range Compression (Should be a float but we use double for ease)\r
+            double value = 0;\r
+            double actualValue = 0;\r
+\r
+            value = presetQuery.DRC1;\r
+            if (value > 0)\r
+                value = value - 10;\r
+            mainWindow.trackBar1.Value = int.Parse(value.ToString());\r
+            actualValue = presetQuery.DRC1 / 10;\r
+            mainWindow.lbl_drc1.Text = actualValue.ToString();\r
+\r
+            value = presetQuery.DRC2;\r
+            if (value > 0)\r
+                value = value - 10;\r
+            mainWindow.trackBar2.Value = int.Parse(value.ToString());\r
+            actualValue = presetQuery.DRC2 / 10;\r
+            mainWindow.lbl_drc2.Text = actualValue.ToString();\r
+\r
+            value = presetQuery.DRC3;\r
+            if (value > 0)\r
+                value = value - 10;\r
+            mainWindow.trackBar3.Value = int.Parse(value.ToString());\r
+            actualValue = presetQuery.DRC3 / 10;\r
+            mainWindow.lbl_drc3.Text = actualValue.ToString();\r
+\r
+            value = presetQuery.DRC4;\r
+            if (value > 0)\r
+                value = value - 10;\r
+            mainWindow.trackBar4.Value = int.Parse(value.ToString());\r
+            actualValue = presetQuery.DRC4 / 10;\r
+            mainWindow.lbl_drc4.Text = actualValue.ToString();\r
+\r
+\r
+            // Subtitle Stuff\r
             mainWindow.drp_subtitle.Text = presetQuery.Subtitles;\r
 \r
             if (presetQuery.ForcedSubtitles == true)\r
@@ -344,15 +414,6 @@ namespace Handbrake.Functions
             else\r
                 mainWindow.check_forced.CheckState = CheckState.Unchecked;\r
 \r
-            // Dynamic Range Compression (Should be a float but we use double for ease)\r
-            double value = presetQuery.DRC;\r
-            if (value > 0)\r
-                value = value - 10;\r
-            mainWindow.slider_drc.Value = int.Parse(value.ToString());\r
-\r
-            double actualValue = presetQuery.DRC / 10;\r
-            mainWindow.lbl_drc.Text = actualValue.ToString();\r
-\r
 \r
             #endregion\r
 \r
@@ -627,223 +688,250 @@ namespace Handbrake.Functions
             // Audio Settings Tab\r
             #region Audio Settings Tab\r
 \r
-            // Used Varibles\r
+            // Query\r
+            string tracks = "";\r
+            string aencoder = "";\r
             string audioBitrate = "";\r
-            string audioChannels = "";\r
-            string SixChannelAudio = "";\r
+            string audioSampleRate = "";\r
+            string Mixdown = "";\r
+            string drc = "";\r
             string subScan = "";\r
             string forced = "";\r
-            string drc = "";\r
-            string audioSampleRate = "";\r
-            string audioEncoder = "";\r
 \r
             // Track 1\r
             string track1 = mainWindow.drp_track1Audio.Text;\r
-            string vencoder1 = mainWindow.drp_audenc_1.Text;\r
+            string aencoder1 = mainWindow.drp_audenc_1.Text;\r
             string audioBitrate1 = mainWindow.drp_audbit_1.Text;\r
             string audioSampleRate1 = mainWindow.drp_audsr_1.Text;\r
             string Mixdown1 = mainWindow.drp_audmix_1.Text;\r
+            string drc1 = mainWindow.trackBar1.Value.ToString();\r
 \r
             // Track 2\r
             string track2 = mainWindow.drp_track2Audio.Text;\r
-            string vencoder2 = mainWindow.drp_audenc_2.Text;\r
+            string aencoder2 = mainWindow.drp_audenc_2.Text;\r
             string audioBitrate2 = mainWindow.drp_audbit_2.Text;\r
             string audioSampleRate2 = mainWindow.drp_audsr_2.Text;\r
             string Mixdown2 = mainWindow.drp_audmix_2.Text;\r
-\r
+            string drc2 = mainWindow.trackBar2.Value.ToString();\r
+\r
+            // Track 3\r
+            string track3 = mainWindow.drp_track3Audio.Text;\r
+            string aencoder3 = mainWindow.drp_audenc_3.Text;\r
+            string audioBitrate3 = mainWindow.drp_audbit_3.Text;\r
+            string audioSampleRate3 = mainWindow.drp_audsr_3.Text;\r
+            string Mixdown3 = mainWindow.drp_audmix_3.Text;\r
+            string drc3 = mainWindow.trackBar3.Value.ToString();\r
+\r
+            // Track 4\r
+            string track4 = mainWindow.drp_track4Audio.Text;\r
+            string aencoder4 = mainWindow.drp_audenc_4.Text;\r
+            string audioBitrate4 = mainWindow.drp_audbit_4.Text;\r
+            string audioSampleRate4 = mainWindow.drp_audsr_4.Text;\r
+            string Mixdown4 = mainWindow.drp_audmix_4.Text;\r
+            string drc4 = mainWindow.trackBar4.Value.ToString();\r
+\r
+\r
+            //\r
             // Audio Track Selections\r
+            //\r
             if (track1 == "Automatic")\r
-                audioChannels = "";\r
+                tracks = " -a auto";\r
             else if (track1 == "")\r
-                audioChannels = "";\r
+                tracks = "";\r
             else if (track1 == "None")\r
-                audioChannels = " -a none";\r
+                tracks = "";\r
             else\r
             {\r
-                string[] tempSub;\r
-                tempSub = track1.Split(' ');\r
-                audioChannels = " -a " + tempSub[0];\r
+                string[] tempSub = track1.Split(' ');\r
+                tracks = " -a " + tempSub[0];\r
             }\r
 \r
-            if (audioChannels != "")\r
+            if (track2 != "None")\r
             {\r
-                if ((track2 != "") && (track2 != "None"))\r
-                {\r
-                    string[] tempSub;\r
-                    tempSub = track2.Split(' ');\r
-                    audioChannels = audioChannels + "," + tempSub[0];\r
-                }\r
-            }\r
-            else\r
-            {\r
-                if ((track2 != "") && (track2 != "None"))\r
-                {\r
-                    string[] tempSub;\r
-                    tempSub = track2.Split(' ');\r
-                    audioChannels = " -a " + tempSub[0];\r
-                }\r
+                string[] tempSub;\r
+                tempSub = track2.Split(' ');\r
+                if (tracks == "")\r
+                    tracks = " -a none," + tempSub[0];\r
+                else\r
+                    tracks = tracks + "," + tempSub[0];\r
             }\r
 \r
-            // Audio Mixdown Selections\r
-            switch (Mixdown1)\r
+            if (track3 != "None")\r
             {\r
-                case "Automatic":\r
-                    Mixdown1 = "";\r
-                    break;\r
-                case "Mono":\r
-                    Mixdown1 = "mono";\r
-                    break;\r
-                case "Stereo":\r
-                    Mixdown1 = "stereo";\r
-                    break;\r
-                case "Dolby Surround":\r
-                    Mixdown1 = "dpl1";\r
-                    break;\r
-                case "Dolby Pro Logic II":\r
-                    Mixdown1 = "dpl2";\r
-                    break;\r
-                case "6 Channel Discrete":\r
-                    Mixdown1 = "6ch";\r
-                    break;\r
-                default:\r
-                    Mixdown1 = "";\r
-                    break;\r
+                string[] tempSub;\r
+                tempSub = track3.Split(' ');\r
+                if (tracks == "")\r
+                    tracks = " -a none,none," + tempSub[0];\r
+                else\r
+                    tracks = tracks + "," + tempSub[0];\r
             }\r
 \r
-            if (Mixdown1 != "")\r
-                SixChannelAudio = " -6 " + Mixdown1;\r
-            else\r
+            if (track4 != "None")\r
             {\r
-                if (mainWindow.drp_track2Audio.Text == "None")\r
-                    SixChannelAudio = "";\r
+                string[] tempSub;\r
+                tempSub = track4.Split(' ');\r
+                if (tracks == "")\r
+                    tracks = " -a none,none,none," + tempSub[0];\r
                 else\r
-                {\r
-                    if (mainWindow.drp_audmix_2.Text == "Automatic")\r
-                        SixChannelAudio = "";\r
-                    else\r
-                        SixChannelAudio = " -6 dpl2";\r
-                }\r
+                    tracks = tracks + "," + tempSub[0];\r
             }\r
 \r
-            switch (Mixdown2)\r
-            {\r
-                case "Automatic":\r
-                    Mixdown2 = "";\r
-                    break;\r
-                case "Mono":\r
-                    Mixdown2 = "mono";\r
-                    break;\r
-                case "Stereo":\r
-                    Mixdown2 = "stereo";\r
-                    break;\r
-                case "Dolby Surround":\r
-                    Mixdown2 = "dpl1";\r
-                    break;\r
-                case "Dolby Pro Logic II":\r
-                    Mixdown2 = "dpl2";\r
-                    break;\r
-                case "6 Channel Discrete":\r
-                    Mixdown2 = "6ch";\r
-                    break;\r
-                default:\r
-                    Mixdown2 = "";\r
-                    break;\r
-            }\r
+            //\r
+            // Audio Encoder\r
+            //\r
+            if (aencoder1 != "")\r
+                aencoder = " -E " + getAudioEncoder(aencoder1);\r
 \r
-            if (Mixdown2 != "")\r
+            if (aencoder2 != "")\r
             {\r
-                if (SixChannelAudio != "")\r
-                    SixChannelAudio = SixChannelAudio + "," + Mixdown2;\r
+                if (aencoder == "")\r
+                    aencoder = " -E faac," + getAudioEncoder(aencoder2);\r
                 else\r
-                    SixChannelAudio = " -6 " + Mixdown2;\r
+                    aencoder = aencoder + "," + getAudioEncoder(aencoder2);\r
             }\r
 \r
-            // Audio Encoder Selections\r
-            switch (mainWindow.drp_audenc_1.Text)\r
+            if (aencoder3 != "")\r
             {\r
-                case "AAC":\r
-                    audioEncoder = " -E faac";\r
-                    break;\r
-                case "MP3":\r
-                    audioEncoder = " -E lame";\r
-                    break;\r
-                case "Vorbis":\r
-                    audioEncoder = " -E vorbis";\r
-                    break;\r
-                case "AC3":\r
-                    audioEncoder = " -E ac3";\r
-                    break;\r
-                case "AAC + AC3":\r
-                    audioEncoder = " -E aac+ac3";\r
-                    break;\r
-                default:\r
-                    break;\r
+                if (aencoder == "")\r
+                    aencoder = " -E faac,faac," + getAudioEncoder(aencoder3);\r
+                else\r
+                    aencoder = aencoder + "," + getAudioEncoder(aencoder3);\r
             }\r
 \r
-            switch (mainWindow.drp_audenc_2.Text)\r
+            if (aencoder4 != "")\r
             {\r
-                case "AAC":\r
-                    if (audioEncoder == "")\r
-                        audioEncoder = " -E faac";\r
-                    else\r
-                        audioEncoder = audioEncoder + ",faac";\r
-                    break;\r
-                case "MP3":\r
-                    if (audioEncoder == "")\r
-                        audioEncoder = " -E lame";\r
-                    else\r
-                        audioEncoder = audioEncoder + ",lame";\r
-                    break;\r
-                case "Vorbis":\r
-                    if (audioEncoder == "")\r
-                        audioEncoder = " -E vorbis";\r
-                    else\r
-                        audioEncoder = audioEncoder + ",vorbis";\r
-                    break;\r
-                case "AC3":\r
-                    if (audioEncoder == "")\r
-                        audioEncoder = " -E ac3";\r
-                    else\r
-                        audioEncoder = audioEncoder + ",ac3";\r
-                    break;\r
-                case "AAC + AC3":\r
-                    if (audioEncoder == "")\r
-                        audioEncoder = " -E aac+ac3";\r
-                    else\r
-                        audioEncoder = audioEncoder + ",aac+ac3";\r
-                    break;\r
-                default:\r
-                    break;\r
+                if (aencoder == "")\r
+                    aencoder = " -E faac,faac,faac," + getAudioEncoder(aencoder4);\r
+                else\r
+                    aencoder = aencoder + "," + getAudioEncoder(aencoder4);\r
             }\r
 \r
-            // Audio BitRate Selections\r
+            //\r
+            // Audio Bitrate Selections\r
+            //\r
             if (audioBitrate1 != "")\r
                 audioBitrate = " -B " + audioBitrate1;\r
 \r
             if (audioBitrate2 != "")\r
             {\r
                 if (audioBitrate == "")\r
-                    audioBitrate = " -B " + audioBitrate2;\r
+                    audioBitrate = " -B 160," + audioBitrate2;\r
                 else\r
                     audioBitrate = audioBitrate + "," + audioBitrate2;\r
             }\r
 \r
-            // Audio SampleRate Selections\r
+            if (audioBitrate3 != "")\r
+            {\r
+                if (audioBitrate == "")\r
+                    audioBitrate = " -B 160,160," + audioBitrate3;\r
+                else\r
+                    audioBitrate = audioBitrate + "," + audioBitrate3;\r
+            }\r
+\r
+            if (audioBitrate4 != "")\r
+            {\r
+                if (audioBitrate == "")\r
+                    audioBitrate = " -B 160,160,160," + audioBitrate4;\r
+                else\r
+                    audioBitrate = audioBitrate + "," + audioBitrate4;\r
+            }\r
+\r
+            //Audio Sample Rate   - audioSampleRate\r
+\r
             if (audioSampleRate1 != "")\r
                 audioSampleRate = " -R " + audioSampleRate1;\r
 \r
             if (audioSampleRate2 != "")\r
             {\r
                 if (audioSampleRate == "")\r
-                    audioSampleRate = " -R " + audioSampleRate2;\r
+                    audioSampleRate = " -R 48," + audioSampleRate2;\r
                 else\r
                     audioSampleRate = audioSampleRate + "," + audioSampleRate2;\r
             }\r
 \r
-            //Dynamic Range Compression (expects a float but a double is used for ease)\r
-            double value = mainWindow.slider_drc.Value / 10.0;\r
+            if (audioSampleRate3 != "")\r
+            {\r
+                if (audioSampleRate == "")\r
+                    audioSampleRate = " -R 48,48," + audioSampleRate3;\r
+                else\r
+                    audioSampleRate = audioSampleRate + "," + audioSampleRate3;\r
+            }\r
+\r
+            if (audioSampleRate4 != "")\r
+            {\r
+                if (audioSampleRate == "")\r
+                    audioSampleRate = " -R 48,48,48," + audioSampleRate4;\r
+                else\r
+                    audioSampleRate = audioSampleRate + "," + audioSampleRate4;\r
+            }\r
+\r
+            //\r
+            // Audio Mixdown Selections\r
+            //\r
+\r
+            if ((Mixdown1 != "") && (Mixdown1 != "Automatic"))\r
+                Mixdown = " -6 " + getMixDown(Mixdown1);\r
+\r
+            if ((Mixdown2 != "") && (Mixdown2 != "Automatic"))\r
+            {\r
+                if (Mixdown != "")\r
+                    Mixdown = Mixdown + "," + getMixDown(Mixdown2);\r
+            }\r
+\r
+            if ((Mixdown3 != "") && (Mixdown3 != "Automatic"))\r
+            {\r
+                if (Mixdown != "")\r
+                    Mixdown = Mixdown + "," + getMixDown(Mixdown3);\r
+            }\r
+\r
+            if ((Mixdown4 != "") && (Mixdown4 != "Automatic"))\r
+            {\r
+                if (Mixdown != "")\r
+                    Mixdown = Mixdown + "," + getMixDown(Mixdown4);\r
+            }\r
+\r
+\r
+            //\r
+            // DRC\r
+            //\r
+            double value = 0;\r
+\r
+            value = mainWindow.trackBar1.Value / 10.0;\r
+            value++;\r
+\r
+            if (value > 1.0)\r
+                drc = " -D " + value;\r
+\r
+            value = mainWindow.trackBar2.Value / 10.0;\r
             value++;\r
-            drc = " -D " + value;\r
+            if (drc2 != "0")\r
+            {\r
+                if (drc == "")\r
+                    drc = " -D 1," + value;\r
+                else\r
+                    drc = drc + "," + value;\r
+            }\r
+\r
+            value = mainWindow.trackBar3.Value / 10.0;\r
+            value++;\r
+            if (drc3 != "0")\r
+            {\r
+                if (drc == "")\r
+                    drc = " -D 1,1," + value;\r
+                else\r
+                    drc = drc + "," + value;\r
+            }\r
+\r
+            value = mainWindow.trackBar4.Value / 10.0;\r
+            value++;\r
+            if (drc4 != "0")\r
+            {\r
+                if (drc == "")\r
+                    drc = " -D 1,1,1," + value;\r
+                else\r
+                    drc = drc + "," + value;\r
+            }\r
+\r
 \r
             // Subtitles\r
             string subtitles = mainWindow.drp_subtitle.Text;\r
@@ -867,7 +955,8 @@ namespace Handbrake.Functions
                 forced = " -F ";\r
 \r
 \r
-            string queryAudioSettings = audioChannels + SixChannelAudio + audioEncoder + audioBitrate + audioSampleRate + drc + subScan + subtitles + forced;\r
+            string queryAudioSettings = tracks + aencoder + audioBitrate + audioSampleRate + Mixdown + drc + subScan + subtitles + forced;\r
+\r
             #endregion\r
 \r
             // Chapter Markers Tab\r
@@ -1029,6 +1118,46 @@ namespace Handbrake.Functions
             }\r
         }\r
 \r
+\r
+        private string getMixDown(string selectedAudio)\r
+        {\r
+            switch (selectedAudio)\r
+            {\r
+                case "Automatic":\r
+                    return "";\r
+                case "Mono":\r
+                    return "mono";\r
+                case "Stereo":\r
+                    return "stereo";\r
+                case "Dolby Surround":\r
+                    return "dpl1";\r
+                case "Dolby Pro Logic II":\r
+                    return "dpl2";\r
+                case "6 Channel Discrete":\r
+                    return "6ch";\r
+                default:\r
+                    return "";\r
+            }\r
+        }\r
+\r
+        private string getAudioEncoder(string selectedEncoder)\r
+        {\r
+            switch (selectedEncoder)\r
+            {\r
+                case "AAC":\r
+                    return "faac";\r
+                case "MP3":\r
+                    return "lame";\r
+                case "Vorbis":\r
+                    return "vorbis";\r
+                case "AC3":\r
+                    return "ac3";\r
+                default:\r
+                    return "";\r
+            }\r
+        }\r
+\r
+\r
         // End of Functions\r
     }\r
 }\r