2 using System.Collections.Generic;
\r
3 using System.ComponentModel;
\r
5 using System.Drawing;
\r
7 using System.Windows.Forms;
\r
8 using System.Threading;
\r
9 using System.Diagnostics;
\r
10 using System.Runtime.InteropServices;
\r
14 public partial class frmQueue : Form
\r
16 private delegate void ProgressUpdateHandler();
\r
20 InitializeComponent();
\r
23 #region Queue Handling
\r
25 private void btn_q_encoder_Click(object sender, EventArgs e)
\r
27 progressBar.Value = 0;
\r
28 lbl_progressValue.Text = "0 %";
\r
29 progressBar.Step = 100 / list_queue.Items.Count;
\r
30 progressBar.Update();
\r
31 ThreadPool.QueueUserWorkItem(startProc);
\r
34 [DllImport("user32.dll")]
\r
35 public static extern void LockWorkStation();
\r
36 [DllImport("user32.dll")]
\r
37 public static extern int ExitWindowsEx(int uFlags, int dwReason);
\r
39 private void startProc(object state)
\r
43 while (list_queue.Items.Count != 0)
\r
45 string query = list_queue.Items[0].ToString();
\r
48 Functions.CLI process = new Functions.CLI();
\r
49 Process hbProc = process.runCli(this, query, false, false, false, false);
\r
51 hbProc.WaitForExit();
\r
58 // Do something whent he encode ends.
\r
59 switch (Properties.Settings.Default.CompletionOption)
\r
62 System.Diagnostics.Process.Start("Shutdown", "-s -t 60");
\r
65 ExitWindowsEx(0, 0);
\r
68 Application.SetSuspendState(PowerState.Suspend, true, true);
\r
71 Application.SetSuspendState(PowerState.Hibernate, true, true);
\r
76 case "Quit HandBrake":
\r
83 MessageBox.Show("Encode Queue Completed!", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
\r
85 catch (Exception exc)
\r
87 MessageBox.Show(exc.ToString());
\r
91 private void updateUIElements()
\r
93 if (this.InvokeRequired)
\r
95 this.BeginInvoke(new ProgressUpdateHandler(updateUIElements));
\r
98 this.list_queue.Items.RemoveAt(0);
\r
100 progressBar.PerformStep();
\r
101 lbl_progressValue.Text = string.Format("{0} %", progressBar.Value);
\r
102 progressBar.Update();
\r
105 private void resetQueue()
\r
107 if (this.InvokeRequired)
\r
109 this.BeginInvoke(new ProgressUpdateHandler(resetQueue));
\r
112 lbl_progressValue.Text = "0 %";
\r
113 progressBar.Value = 0;
\r
114 progressBar.Update();
\r
119 #region Queue Management
\r
121 private void btn_up_Click(object sender, EventArgs e)
\r
123 int count = list_queue.Items.Count;
\r
124 int itemToMove = list_queue.SelectedIndex;
\r
125 int previousItemint = 0;
\r
126 String previousItem = "";
\r
128 if (itemToMove > 0)
\r
130 previousItemint = itemToMove - 1;
\r
131 previousItem = list_queue.Items[previousItemint].ToString();
\r
132 list_queue.Items[previousItemint] = list_queue.Items[itemToMove];
\r
133 list_queue.Items[itemToMove] = previousItem;
\r
134 list_queue.SelectedIndex = list_queue.SelectedIndex - 1;
\r
138 private void btn_down_Click(object sender, EventArgs e)
\r
140 int count = list_queue.Items.Count;
\r
141 int itemToMove = list_queue.SelectedIndex;
\r
142 int itemAfterInt = 0;
\r
143 String itemAfter = "";
\r
145 if (itemToMove < (count - 1))
\r
147 itemAfterInt = itemToMove + 1;
\r
148 itemAfter = list_queue.Items[itemAfterInt].ToString();
\r
149 list_queue.Items[itemAfterInt] = list_queue.Items[itemToMove];
\r
150 list_queue.Items[itemToMove] = itemAfter;
\r
151 list_queue.SelectedIndex = list_queue.SelectedIndex + 1;
\r
155 private void btn_delete_Click(object sender, EventArgs e)
\r
157 list_queue.Items.Remove(list_queue.SelectedItem);
\r
161 #region Window Management
\r
163 private void btn_Close_Click(object sender, EventArgs e)
\r
168 private void btn_minimise_Click(object sender, EventArgs e)
\r
170 this.WindowState = FormWindowState.Minimized;
\r