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 if (list_queue.Items.Count != 0)
\r
29 progressBar.Value = 0;
\r
30 lbl_progressValue.Text = "0 %";
\r
31 progressBar.Step = 100 / list_queue.Items.Count;
\r
32 progressBar.Update();
\r
33 ThreadPool.QueueUserWorkItem(startProc);
\r
38 [DllImport("user32.dll")]
\r
39 public static extern void LockWorkStation();
\r
40 [DllImport("user32.dll")]
\r
41 public static extern int ExitWindowsEx(int uFlags, int dwReason);
\r
43 private void startProc(object state)
\r
47 while (list_queue.Items.Count != 0)
\r
49 string query = list_queue.Items[0].ToString();
\r
52 Functions.CLI process = new Functions.CLI();
\r
53 Process hbProc = process.runCli(this, query, false, false, false, false);
\r
55 hbProc.WaitForExit();
\r
62 // Do something whent he encode ends.
\r
63 switch (Properties.Settings.Default.CompletionOption)
\r
66 System.Diagnostics.Process.Start("Shutdown", "-s -t 60");
\r
69 ExitWindowsEx(0, 0);
\r
72 Application.SetSuspendState(PowerState.Suspend, true, true);
\r
75 Application.SetSuspendState(PowerState.Hibernate, true, true);
\r
80 case "Quit HandBrake":
\r
87 MessageBox.Show("Encode Queue Completed!", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
\r
89 catch (Exception exc)
\r
91 MessageBox.Show(exc.ToString());
\r
95 private void updateUIElements()
\r
97 if (this.InvokeRequired)
\r
99 this.BeginInvoke(new ProgressUpdateHandler(updateUIElements));
\r
102 this.list_queue.Items.RemoveAt(0);
\r
104 progressBar.PerformStep();
\r
105 lbl_progressValue.Text = string.Format("{0} %", progressBar.Value);
\r
106 progressBar.Update();
\r
109 private void resetQueue()
\r
111 if (this.InvokeRequired)
\r
113 this.BeginInvoke(new ProgressUpdateHandler(resetQueue));
\r
116 lbl_progressValue.Text = "0 %";
\r
117 progressBar.Value = 0;
\r
118 progressBar.Update();
\r
123 #region Queue Management
\r
124 private void btn_up_Click(object sender, EventArgs e)
\r
126 int count = list_queue.Items.Count;
\r
127 int itemToMove = list_queue.SelectedIndex;
\r
128 int previousItemint = 0;
\r
129 String previousItem = "";
\r
131 if (itemToMove > 0)
\r
133 previousItemint = itemToMove - 1;
\r
134 previousItem = list_queue.Items[previousItemint].ToString();
\r
135 list_queue.Items[previousItemint] = list_queue.Items[itemToMove];
\r
136 list_queue.Items[itemToMove] = previousItem;
\r
137 list_queue.SelectedIndex = list_queue.SelectedIndex - 1;
\r
141 private void btn_down_Click(object sender, EventArgs e)
\r
143 int count = list_queue.Items.Count;
\r
144 int itemToMove = list_queue.SelectedIndex;
\r
145 int itemAfterInt = 0;
\r
146 String itemAfter = "";
\r
148 if (itemToMove < (count - 1))
\r
150 itemAfterInt = itemToMove + 1;
\r
151 itemAfter = list_queue.Items[itemAfterInt].ToString();
\r
152 list_queue.Items[itemAfterInt] = list_queue.Items[itemToMove];
\r
153 list_queue.Items[itemToMove] = itemAfter;
\r
154 list_queue.SelectedIndex = list_queue.SelectedIndex + 1;
\r
158 private void btn_delete_Click(object sender, EventArgs e)
\r
160 list_queue.Items.Remove(list_queue.SelectedItem);
\r
164 #region Window Management
\r
166 private void btn_Close_Click(object sender, EventArgs e)
\r
171 private void btn_minimise_Click(object sender, EventArgs e)
\r
173 this.WindowState = FormWindowState.Minimized;
\r
178 protected override void OnClosing(CancelEventArgs e)
\r