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 int initialListCount = 0;
\r
24 bool started = false;
\r
27 private void btn_q_encoder_Click(object sender, EventArgs e)
\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 * Code to Handle the CLI and updating of the UI as each process is completed.
\r
42 [DllImport("user32.dll")]
\r
43 public static extern void LockWorkStation();
\r
44 [DllImport("user32.dll")]
\r
45 public static extern int ExitWindowsEx(int uFlags, int dwReason);
\r
48 private void startProc(object state)
\r
51 initialListCount = list_queue.Items.Count;
\r
52 for (int i = 0; i < initialListCount; i++)
\r
54 string query = list_queue.Items[0].ToString();
\r
56 Functions.CLI process = new Functions.CLI();
\r
57 Process hbProc = process.runCli(this, query, false, false, false, false);
\r
59 hbProc.WaitForExit();
\r
64 if ((initialListCount - i) != (list_queue.Items.Count))
\r
72 // Do something whent he encode ends.
\r
73 switch (Properties.Settings.Default.CompletionOption)
\r
76 System.Diagnostics.Process.Start("Shutdown", "-s -t 60");
\r
79 ExitWindowsEx(0, 0);
\r
82 Application.SetSuspendState(PowerState.Suspend, true, true);
\r
85 Application.SetSuspendState(PowerState.Hibernate, true, true);
\r
94 MessageBox.Show("Encode Queue Completed!", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
\r
97 private void updateUIElements()
\r
99 if (this.InvokeRequired)
\r
101 this.BeginInvoke(new ProgressUpdateHandler(updateUIElements));
\r
104 this.list_queue.Items.RemoveAt(0);
\r
106 progressBar.PerformStep();
\r
107 lbl_progressValue.Text = string.Format("{0} %", progressBar.Value);
\r
108 progressBar.Update();
\r
111 private void resetQueue()
\r
113 if (this.InvokeRequired)
\r
115 this.BeginInvoke(new ProgressUpdateHandler(resetQueue));
\r
118 lbl_progressValue.Text = "0 %";
\r
119 progressBar.Value = 0;
\r
120 progressBar.Update();
\r
125 * Code to Re-arrange / Delete items from the Queue
\r
128 #region Queue Management
\r
130 private void btn_up_Click(object sender, EventArgs e)
\r
132 int count = list_queue.Items.Count;
\r
133 int itemToMove = list_queue.SelectedIndex;
\r
134 int previousItemint = 0;
\r
135 String previousItem = "";
\r
137 if (itemToMove > 0)
\r
139 previousItemint = itemToMove - 1;
\r
140 previousItem = list_queue.Items[previousItemint].ToString();
\r
141 list_queue.Items[previousItemint] = list_queue.Items[itemToMove];
\r
142 list_queue.Items[itemToMove] = previousItem;
\r
143 list_queue.SelectedIndex = list_queue.SelectedIndex - 1;
\r
147 private void btn_down_Click(object sender, EventArgs e)
\r
149 int count = list_queue.Items.Count;
\r
150 int itemToMove = list_queue.SelectedIndex;
\r
151 int itemAfterInt = 0;
\r
152 String itemAfter = "";
\r
154 if (itemToMove < (count - 1))
\r
156 itemAfterInt = itemToMove + 1;
\r
157 itemAfter = list_queue.Items[itemAfterInt].ToString();
\r
158 list_queue.Items[itemAfterInt] = list_queue.Items[itemToMove];
\r
159 list_queue.Items[itemToMove] = itemAfter;
\r
160 list_queue.SelectedIndex = list_queue.SelectedIndex + 1;
\r
164 private void btn_delete_Click(object sender, EventArgs e)
\r
166 list_queue.Items.Remove(list_queue.SelectedItem);
\r
167 if (started == true)
\r
168 initialListCount--;
\r
173 * Hide the Queue Window
\r
175 private void btn_Close_Click(object sender, EventArgs e)
\r
180 private void btn_minimise_Click(object sender, EventArgs e)
\r
182 this.WindowState = FormWindowState.Minimized;
\r