using System.Collections.Generic;\r
using System.ComponentModel;\r
using System.Windows.Forms;\r
+using Handbrake.EncodeQueue;\r
+using System.Collections.ObjectModel;\r
\r
namespace Handbrake\r
{\r
public partial class frmQueue : Form\r
{\r
private delegate void UpdateHandler();\r
- Queue.QueueHandler queue;\r
+ private EncodeAndQueueHandler queue;\r
\r
- public frmQueue(Queue.QueueHandler q)\r
+ public frmQueue(EncodeAndQueueHandler q)\r
{\r
InitializeComponent();\r
\r
this.queue = q;\r
- queue.OnEncodeStart += new EventHandler(queue_OnEncodeStart);\r
- queue.OnQueueFinished += new EventHandler(queue_OnQueueFinished);\r
- queue.OnPaused += new EventHandler(queue_OnPaused);\r
+ queue.NewJobStarted += new EventHandler(queueOnEncodeStart);\r
+ queue.QueueCompleted += new EventHandler(queueOnQueueFinished);\r
+ queue.QueuePauseRequested += new EventHandler(queueOnPaused);\r
}\r
- void queue_OnPaused(object sender, EventArgs e)\r
+ void queueOnPaused(object sender, EventArgs e)\r
{\r
setUIEncodeFinished();\r
updateUIElements();\r
}\r
- void queue_OnQueueFinished(object sender, EventArgs e)\r
+ void queueOnQueueFinished(object sender, EventArgs e)\r
{\r
setUIEncodeFinished();\r
resetQueue(); // Reset the Queue Window\r
}\r
- void queue_OnEncodeStart(object sender, EventArgs e)\r
+ void queueOnEncodeStart(object sender, EventArgs e)\r
{\r
setUIEncodeStarted(); // make sure the UI is set correctly\r
setCurrentEncodeInformation();\r
/// </summary>\r
public new void Show()\r
{\r
- Show(true);\r
+ Show(true);\r
}\r
\r
/// <summary>\r
{\r
if (doSetQueue) setQueue();\r
base.Show();\r
- Activate();\r
+\r
+ //Activate();\r
}\r
\r
// Start and Stop Controls\r
private void btn_encode_Click(object sender, EventArgs e)\r
{\r
- if (queue.isPaused)\r
+ if (queue.PauseRequested)\r
{\r
setUIEncodeStarted();\r
MessageBox.Show("Encoding restarted", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);\r
}\r
\r
- if (!queue.isEncodeStarted)\r
- queue.startEncode();\r
+ if (!queue.isEncoding)\r
+ queue.StartEncodeQueue();\r
\r
}\r
private void btn_pause_Click(object sender, EventArgs e)\r
{\r
- queue.pauseEncode();\r
+ queue.RequestPause();\r
setUIEncodeFinished();\r
resetQueue();\r
MessageBox.Show("No further items on the queue will start. The current encode process will continue until it is finished. \nClick 'Encode' when you wish to continue encoding the queue.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
}\r
\r
list_queue.Items.Clear();\r
- List<Queue.QueueItem> theQueue = queue.getQueue();\r
- foreach (Queue.QueueItem queue_item in theQueue)\r
+ ReadOnlyCollection<Job> theQueue = queue.CurrentQueue;\r
+ foreach (Job queue_item in theQueue)\r
{\r
string q_item = queue_item.Query;\r
Functions.QueryParser parsed = Functions.QueryParser.Parse(q_item);\r
item.SubItems.Add(queue_item.Destination); // Destination\r
item.SubItems.Add(parsed.VideoEncoder); // Video\r
\r
- // Display the first 4 audio tracks.\r
- String audio = parsed.AudioEncoder1;\r
- if (parsed.AudioEncoder2 != null)\r
- audio += ", " + parsed.AudioEncoder2;\r
-\r
- if (parsed.AudioEncoder3 != null)\r
- audio += ", " + parsed.AudioEncoder3;\r
-\r
- if (parsed.AudioEncoder4 != null)\r
- audio += ", " + parsed.AudioEncoder4;\r
-\r
+ // Display The Audio Track Information\r
+ string audio = string.Empty;\r
+ foreach (Functions.AudioTrack track in parsed.AudioInformation)\r
+ {\r
+ if (audio != "")\r
+ audio += ", " + track.Encoder;\r
+ else\r
+ audio = track.Encoder;\r
+ }\r
item.SubItems.Add(audio); // Audio\r
\r
list_queue.Items.Add(item);\r
}\r
\r
// found query is a global varible\r
- Functions.QueryParser parsed = Functions.QueryParser.Parse(queue.getLastQueryItem().Query);\r
- lbl_source.Text = queue.getLastQueryItem().Source;\r
- lbl_dest.Text = queue.getLastQueryItem().Destination;\r
+ Functions.QueryParser parsed = Functions.QueryParser.Parse(queue.LastEncode.Query);\r
+ lbl_source.Text = queue.LastEncode.Source;\r
+ lbl_dest.Text = queue.LastEncode.Destination;\r
\r
lbl_title.Text = parsed.DVDTitle == 0 ? "Auto" : parsed.DVDTitle.ToString();\r
\r
}\r
\r
lbl_vEnc.Text = parsed.VideoEncoder;\r
- String audio = parsed.AudioEncoder1;\r
- if (parsed.AudioEncoder2 != null)\r
- audio += ", " + parsed.AudioEncoder2;\r
-\r
- if (parsed.AudioEncoder3 != null)\r
- audio += ", " + parsed.AudioEncoder3;\r
-\r
- if (parsed.AudioEncoder4 != null)\r
- audio += ", " + parsed.AudioEncoder4;\r
\r
+ // Display The Audio Track Information\r
+ string audio = string.Empty;\r
+ foreach (Functions.AudioTrack track in parsed.AudioInformation)\r
+ {\r
+ if (audio != "")\r
+ audio += ", " + track.Encoder;\r
+ else\r
+ audio = track.Encoder;\r
+ }\r
lbl_aEnc.Text = audio;\r
}\r
catch (Exception)\r
\r
// Remove each selected item\r
foreach (int selectedIndex in selectedIndices)\r
- queue.remove(selectedIndex);\r
+ queue.RemoveJob(selectedIndex);\r
\r
- queue.write2disk("hb_queue_recovery.xml"); // Update the queue recovery file\r
updateUIElements();\r
\r
// Select the item where the first deleted item was previously\r
\r
// Move up each selected item\r
foreach (int selectedIndex in selectedIndices)\r
- queue.moveUp(selectedIndex);\r
+ queue.MoveUp(selectedIndex);\r
\r
- queue.write2disk("hb_queue_recovery.xml"); // Update the queue recovery file\r
updateUIElements();\r
\r
// Keep the selected item(s) selected, now moved up one index\r
\r
// Move down each selected item\r
foreach (int selectedIndex in selectedIndices)\r
- queue.moveDown(selectedIndex);\r
+ queue.MoveDown(selectedIndex);\r
\r
- queue.write2disk("hb_queue_recovery.xml"); // Update the queue recovery file\r
updateUIElements();\r
\r
// Keep the selected item(s) selected, now moved down one index\r
SaveFile.Filter = "Batch|.bat";\r
SaveFile.ShowDialog();\r
if (SaveFile.FileName != String.Empty)\r
- queue.writeBatchScript(SaveFile.FileName);\r
+ queue.WriteBatchScriptToFile(SaveFile.FileName);\r
}\r
private void mnu_export_Click(object sender, EventArgs e)\r
{\r
SaveFile.Filter = "HandBrake Queue|*.queue";\r
SaveFile.ShowDialog();\r
if (SaveFile.FileName != String.Empty)\r
- queue.write2disk(SaveFile.FileName);\r
+ queue.WriteQueueStateToFile(SaveFile.FileName);\r
}\r
private void mnu_import_Click(object sender, EventArgs e)\r
{\r
OpenFile.FileName = "";\r
OpenFile.ShowDialog();\r
if (OpenFile.FileName != String.Empty)\r
- queue.recoverQueue(OpenFile.FileName);\r
+ queue.LoadQueueFromFile(OpenFile.FileName);\r
updateUIElements();\r
}\r
private void mnu_readd_Click(object sender, EventArgs e)\r
{\r
- if (queue.getLastQueryItem() != null)\r
+ if (!queue.LastEncode.IsEmpty)\r
{\r
- queue.add(queue.getLastQueryItem().Query, queue.getLastQueryItem().Source, queue.getLastQueryItem().Destination);\r
- queue.write2disk("hb_queue_recovery.xml"); // Update the queue recovery file\r
+ queue.AddJob(queue.LastEncode.Query, queue.LastEncode.Source, queue.LastEncode.Destination, queue.LastEncode.CustomQuery);\r
updateUIElements();\r
}\r
}\r