]> granicus.if.org Git - handbrake/commitdiff
WinGui:
authorsr55 <sr55.hb@outlook.com>
Wed, 25 Jul 2007 22:16:29 +0000 (22:16 +0000)
committersr55 <sr55.hb@outlook.com>
Wed, 25 Jul 2007 22:16:29 +0000 (22:16 +0000)
- User is prevented from trying to launch more than 1 encode process from frmMain.

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@737 b64f7644-9d1e-0410-96f1-a4d463321fa5

win/C#/frmMain.cs

index c66cee0b6984574760cffbf778138a2d7fb1ed27..f2471baad63f736d113892537ed2b14f2b10afec 100644 (file)
@@ -646,6 +646,7 @@ namespace Handbrake
         // Encode / Cancel Buttons\r
         // Encode Progress Text Handler\r
         //---------------------------------------------------\r
+\r
         Functions.CLI process = new Functions.CLI();\r
 \r
         private void btn_encode_Click(object sender, EventArgs e)\r
@@ -675,38 +676,39 @@ namespace Handbrake
    \r
         private void procMonitor(object state)\r
         {\r
-            \r
-            hbProc = process.runCli(this, (string)state, true, true, false, true);\r
+            // Make sure we are not already encoding and if we are then display an error.\r
+            if (hbProc != null)\r
+            {\r
+                MessageBox.Show("Handbrake is already encoding a video!", "Status", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
+            }\r
+            else\r
+            {\r
+                hbProc = process.runCli(this, (string)state, true, true, false, true);\r
 \r
-            MessageBox.Show("The encode process has now started.", "Status", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);\r
+                MessageBox.Show("The encode process has now started.", "Status", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);\r
 \r
-            try\r
-            {\r
-                Parsing.Parser encode = new Parsing.Parser(hbProc.StandardError.BaseStream);\r
-                encode.OnEncodeProgress += encode_OnEncodeProgress;\r
-                while (!encode.EndOfStream)\r
+                try\r
                 {\r
-                    encode.ReadLine();\r
+                    Parsing.Parser encode = new Parsing.Parser(hbProc.StandardError.BaseStream);\r
+                    encode.OnEncodeProgress += encode_OnEncodeProgress;\r
+                    while (!encode.EndOfStream)\r
+                    {\r
+                        encode.ReadLine();\r
+                    }\r
+\r
+                    hbProc.WaitForExit();\r
+                    process.closeCLI();\r
+                    hbProc = null;\r
+                }\r
+                catch (Exception)\r
+                {\r
+                    // Do nothing\r
                 }\r
 \r
-                hbProc.WaitForExit();\r
-                process.closeCLI();\r
-                hbProc = null;\r
+                MessageBox.Show("The encode process has now ended.", "Status", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);\r
             }\r
-            catch (Exception)\r
-            { \r
-                // Do Nothing\r
-            }\r
-\r
-            //TODO: prevent this event from being subscribed more than once\r
-\r
-            \r
-            MessageBox.Show("The encode process has now ended.", "Status", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);\r
         }\r
 \r
-\r
-\r
-\r
         private void encode_OnEncodeProgress(object Sender, int CurrentTask, int TaskCount, float PercentComplete, float CurrentFps, float AverageFps, TimeSpan TimeRemaining)\r
         {\r
             if (this.InvokeRequired)\r