OSDN Git Service

14353319665ce41186cd9635e0edd4b5307ae695
[handbrake-jp/handbrake-jp-git.git] / win / C# / frmQueue.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.ComponentModel;\r
4 using System.Data;\r
5 using System.Drawing;\r
6 using System.Text;\r
7 using System.Windows.Forms;\r
8 using System.Threading;\r
9 using System.Diagnostics;\r
10 \r
11 namespace Handbrake\r
12 {\r
13     public partial class frmQueue : Form\r
14     {\r
15         private frmQueue thisWindow;\r
16 \r
17         public frmQueue()\r
18         {\r
19             InitializeComponent();\r
20         }\r
21 \r
22         private void btn_Close_Click(object sender, EventArgs e)\r
23         {\r
24             this.Hide();\r
25         }\r
26 \r
27         private void btn_delete_Click(object sender, EventArgs e)\r
28         {\r
29             list_queue.Items.Remove(list_queue.SelectedItem);\r
30         }\r
31 \r
32         private void btn_up_Click(object sender, EventArgs e)\r
33         {\r
34             int count = list_queue.Items.Count;\r
35             int itemToMove = list_queue.SelectedIndex;\r
36             int previousItemint = 0; \r
37             String previousItem = "";\r
38 \r
39              if (itemToMove > 0){\r
40                 previousItemint = itemToMove - 1;\r
41                 previousItem = list_queue.Items[previousItemint].ToString();\r
42                 list_queue.Items[previousItemint] = list_queue.Items[itemToMove];\r
43                 list_queue.Items[itemToMove] = previousItem;\r
44                 list_queue.SelectedIndex = list_queue.SelectedIndex - 1;\r
45             }\r
46         }\r
47 \r
48         private void btn_down_Click(object sender, EventArgs e)\r
49         {\r
50             int count = list_queue.Items.Count;\r
51             int itemToMove = list_queue.SelectedIndex;\r
52             int itemAfterInt = 0; \r
53             String itemAfter = "";\r
54 \r
55             if (itemToMove < (count - 1))\r
56             {\r
57                 itemAfterInt = itemToMove + 1;\r
58                 itemAfter = list_queue.Items[itemAfterInt].ToString();\r
59                 list_queue.Items[itemAfterInt] = list_queue.Items[itemToMove];\r
60                 list_queue.Items[itemToMove] = itemAfter;\r
61                 list_queue.SelectedIndex = list_queue.SelectedIndex + 1;\r
62             }\r
63         }\r
64 \r
65         private void btn_q_encoder_Click(object sender, EventArgs e)\r
66         {\r
67             progressBar.Value = 0;\r
68             lbl_progressValue.Text = "0 %";\r
69             progressBar.Update();\r
70             ThreadPool.QueueUserWorkItem(startProc);\r
71         }\r
72 \r
73         private void startProc(object state)\r
74         {\r
75             int listSize = list_queue.Items.Count;\r
76             listSize--;\r
77             int counter = 0;\r
78             int progressSplit = listSize / 100;\r
79 \r
80             while (counter <= listSize)\r
81             {\r
82                 String query = list_queue.Items[0].ToString();\r
83 \r
84                 Process hbProc = new Process();\r
85                 hbProc.StartInfo.FileName = "hbcli.exe";\r
86                 hbProc.StartInfo.Arguments = query;\r
87                 hbProc.StartInfo.UseShellExecute = false;\r
88                 hbProc.Start();\r
89                 hbProc.WaitForExit();\r
90                 hbProc.Close();\r
91                 counter++;\r
92                 //updateUIElements(progressSplit);\r
93             }\r
94         }\r
95 \r
96         private void updateUIElements(int progressSplit)\r
97         {\r
98             // This needs to be written so there is no cross-thread problems\r
99             thisWindow.list_queue.Items.Remove(0);\r
100             progressBar.Value = progressBar.Value + progressSplit;\r
101             progressBar.Update();\r
102         }\r
103     }\r
104 }