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
29 if (list_queue.Items.Count != 0)
\r
31 progressBar.Value = 0;
\r
32 lbl_progressValue.Text = "0 %";
\r
33 progressBar.Step = 100 / list_queue.Items.Count;
\r
34 progressBar.Update();
\r
35 ThreadPool.QueueUserWorkItem(startProc);
\r
38 catch (Exception exc)
\r
40 MessageBox.Show(exc.ToString());
\r
45 [DllImport("user32.dll")]
\r
46 public static extern void LockWorkStation();
\r
47 [DllImport("user32.dll")]
\r
48 public static extern int ExitWindowsEx(int uFlags, int dwReason);
\r
50 private void startProc(object state)
\r
54 while (list_queue.Items.Count != 0)
\r
56 string query = list_queue.Items[0].ToString();
\r
59 Functions.CLI process = new Functions.CLI();
\r
60 Process hbProc = process.runCli(this, query, false, false, false, false);
\r
62 hbProc.WaitForExit();
\r
69 // Do something whent he encode ends.
\r
70 switch (Properties.Settings.Default.CompletionOption)
\r
73 System.Diagnostics.Process.Start("Shutdown", "-s -t 60");
\r
76 ExitWindowsEx(0, 0);
\r
79 Application.SetSuspendState(PowerState.Suspend, true, true);
\r
82 Application.SetSuspendState(PowerState.Hibernate, true, true);
\r
87 case "Quit HandBrake":
\r
94 MessageBox.Show("Encode Queue Completed!", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
\r
96 catch (Exception exc)
\r
98 MessageBox.Show(exc.ToString());
\r
102 private void updateUIElements()
\r
104 if (this.InvokeRequired)
\r
106 this.BeginInvoke(new ProgressUpdateHandler(updateUIElements));
\r
109 this.list_queue.Items.RemoveAt(0);
\r
111 progressBar.PerformStep();
\r
112 lbl_progressValue.Text = string.Format("{0} %", progressBar.Value);
\r
113 progressBar.Update();
\r
116 private void resetQueue()
\r
118 if (this.InvokeRequired)
\r
120 this.BeginInvoke(new ProgressUpdateHandler(resetQueue));
\r
123 lbl_progressValue.Text = "0 %";
\r
124 progressBar.Value = 0;
\r
125 progressBar.Update();
\r
130 #region Queue Management
\r
131 private void btn_up_Click(object sender, EventArgs e)
\r
133 int count = list_queue.Items.Count;
\r
134 int itemToMove = list_queue.SelectedIndex;
\r
135 int previousItemint = 0;
\r
136 String previousItem = "";
\r
138 if (itemToMove > 0)
\r
140 previousItemint = itemToMove - 1;
\r
141 previousItem = list_queue.Items[previousItemint].ToString();
\r
142 list_queue.Items[previousItemint] = list_queue.Items[itemToMove];
\r
143 list_queue.Items[itemToMove] = previousItem;
\r
144 list_queue.SelectedIndex = list_queue.SelectedIndex - 1;
\r
148 private void btn_down_Click(object sender, EventArgs e)
\r
150 int count = list_queue.Items.Count;
\r
151 int itemToMove = list_queue.SelectedIndex;
\r
152 int itemAfterInt = 0;
\r
153 String itemAfter = "";
\r
155 if (itemToMove < (count - 1))
\r
157 itemAfterInt = itemToMove + 1;
\r
158 itemAfter = list_queue.Items[itemAfterInt].ToString();
\r
159 list_queue.Items[itemAfterInt] = list_queue.Items[itemToMove];
\r
160 list_queue.Items[itemToMove] = itemAfter;
\r
161 list_queue.SelectedIndex = list_queue.SelectedIndex + 1;
\r
165 private void btn_delete_Click(object sender, EventArgs e)
\r
167 list_queue.Items.Remove(list_queue.SelectedItem);
\r
172 private void btn_Close_Click(object sender, EventArgs e)
\r
177 protected override void OnClosing(CancelEventArgs e)
\r