- MessageBox.Show(filename);\r
- string query = "-i " + '"' + filename + '"' + " -t0";\r
- System.Diagnostics.Process hbProc = new System.Diagnostics.Process();\r
- hbProc.StartInfo.FileName = "hbcli.exe";\r
- hbProc.StartInfo.RedirectStandardOutput = true;\r
- hbProc.StartInfo.RedirectStandardError = true;\r
- hbProc.StartInfo.StandardOutputEncoding = System.Text.Encoding.UTF8;\r
- hbProc.StartInfo.StandardErrorEncoding = System.Text.Encoding.UTF8;\r
- hbProc.StartInfo.Arguments = query;\r
- hbProc.StartInfo.UseShellExecute = false;\r
- hbProc.Start();\r
-\r
- while (hbProc.StandardOutput.BaseStream.CanRead && !hbProc.HasExited)\r
+ try\r
+ {\r
+ if (this.InvokeRequired)\r
+ {\r
+ this.BeginInvoke(new UpdateUIHandler(updateUIElements));\r
+ return;\r
+ }\r
+ // Now pass this streamreader to frmMain so that it can be used there.\r
+ mainWindow.setStreamReader(thisDvd);\r
+\r
+ mainWindow.drp_dvdtitle.Items.Clear();\r
+ mainWindow.drp_dvdtitle.Items.AddRange(thisDvd.Titles.ToArray());\r
+ mainWindow.drp_dvdtitle.Text = "Automatic";\r
+ mainWindow.drop_chapterFinish.Text = "Auto";\r
+ mainWindow.drop_chapterStart.Text = "Auto";\r
+\r
+ // Now select the longest title\r
+ int current_largest = 0;\r
+ Handbrake.Parsing.Title title2Select = thisDvd.Titles[0];\r
+\r
+ foreach (Handbrake.Parsing.Title x in thisDvd.Titles)\r
+ {\r
+ string title = x.ToString();\r
+ if (title != "Automatic")\r
+ {\r
+ string[] y = title.Split(' ');\r
+ string time = y[1].Replace("(", "").Replace(")", "");\r
+ string[] z = time.Split(':');\r
+\r
+ int hours = int.Parse(z[0]) * 60 * 60;\r
+ int minutes = int.Parse(z[1]) * 60;\r
+ int seconds = int.Parse(z[2]);\r
+ int total_sec = hours + minutes + seconds;\r
+\r
+ if (current_largest == 0)\r
+ {\r
+ current_largest = hours + minutes + seconds;\r
+ title2Select = x;\r
+ }\r
+ else\r
+ {\r
+ if (total_sec > current_largest)\r
+ {\r
+ current_largest = total_sec;\r
+ title2Select = x;\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ mainWindow.drp_dvdtitle.SelectedItem = title2Select;\r
+\r
+ this.Close();\r
+ }\r
+ catch (Exception exc)\r