summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsr55 <[email protected]>2010-01-15 22:12:34 +0000
committersr55 <[email protected]>2010-01-15 22:12:34 +0000
commit5a0f5af93a11dea462fcea8cd4237b486f4a91bb (patch)
treea37b2b5706b3ad673c6572570c4c75d6f6d84ab0
parent5add69a1b0833d7c3e316f69e1f2713b8440d6d2 (diff)
WinGui:
- Bit of re-factoring to the encode / queue code. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3071 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r--win/C#/EncodeQueue/Encode.cs215
-rw-r--r--win/C#/EncodeQueue/Job.cs1
-rw-r--r--win/C#/EncodeQueue/Queue.cs (renamed from win/C#/EncodeQueue/EncodeAndQueueHandler.cs)228
-rw-r--r--win/C#/HandBrakeCS.csproj3
-rw-r--r--win/C#/frmMain.cs31
-rw-r--r--win/C#/frmPreview.cs12
-rw-r--r--win/C#/frmQueue.cs109
7 files changed, 319 insertions, 280 deletions
diff --git a/win/C#/EncodeQueue/Encode.cs b/win/C#/EncodeQueue/Encode.cs
new file mode 100644
index 000000000..8061bc349
--- /dev/null
+++ b/win/C#/EncodeQueue/Encode.cs
@@ -0,0 +1,215 @@
+/* Encode.cs $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
+
+using System;
+using System.Diagnostics;
+using System.IO;
+using System.Windows.Forms;
+using Handbrake.Functions;
+
+namespace Handbrake.EncodeQueue
+{
+ public class Encode
+ {
+ public Process HbProcess { get; set; }
+ public int ProcessID { get; set; }
+ public IntPtr ProcessHandle { get; set; }
+ public String CurrentQuery { get; set; }
+ public Boolean IsEncoding { get; set; }
+
+ public event EventHandler EncodeStarted;
+ public event EventHandler EncodeEnded;
+
+ /// <summary>
+ /// Create a preview sample video
+ /// </summary>
+ /// <param name="query"></param>
+ public void CreatePreviewSampe(string query)
+ {
+ Run(query);
+ }
+
+ /// <summary>
+ /// Execute a HandBrakeCLI process.
+ /// </summary>
+ /// <param name="query">The CLI Query</param>
+ protected void Run(string query)
+ {
+ try
+ {
+ if (EncodeStarted != null)
+ EncodeStarted(this, new EventArgs());
+
+ IsEncoding = true;
+
+ string handbrakeCLIPath = Path.Combine(Application.StartupPath, "HandBrakeCLI.exe");
+ string logPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\logs", "last_encode_log.txt");
+ string strCmdLine = String.Format(@" /C """"{0}"" {1} 2>""{2}"" """, handbrakeCLIPath, query, logPath);
+ ProcessStartInfo cliStart = new ProcessStartInfo("CMD.exe", strCmdLine);
+
+ if (Properties.Settings.Default.enocdeStatusInGui)
+ {
+ cliStart.RedirectStandardOutput = true;
+ cliStart.UseShellExecute = false;
+ }
+ if (Properties.Settings.Default.cli_minimized)
+ cliStart.WindowStyle = ProcessWindowStyle.Minimized;
+
+ Process[] before = Process.GetProcesses(); // Get a list of running processes before starting.
+ HbProcess = Process.Start(cliStart);
+ ProcessID = Main.GetCliProcess(before);
+ CurrentQuery = query;
+ if (HbProcess != null)
+ ProcessHandle = HbProcess.MainWindowHandle; // Set the process Handle
+
+ // Set the process Priority
+ Process hbCliProcess = null;
+ if (ProcessID != -1)
+ hbCliProcess = Process.GetProcessById(ProcessID);
+
+ if (hbCliProcess != null)
+ switch (Properties.Settings.Default.processPriority)
+ {
+ case "Realtime":
+ hbCliProcess.PriorityClass = ProcessPriorityClass.RealTime;
+ break;
+ case "High":
+ hbCliProcess.PriorityClass = ProcessPriorityClass.High;
+ break;
+ case "Above Normal":
+ hbCliProcess.PriorityClass = ProcessPriorityClass.AboveNormal;
+ break;
+ case "Normal":
+ hbCliProcess.PriorityClass = ProcessPriorityClass.Normal;
+ break;
+ case "Low":
+ hbCliProcess.PriorityClass = ProcessPriorityClass.Idle;
+ break;
+ default:
+ hbCliProcess.PriorityClass = ProcessPriorityClass.BelowNormal;
+ break;
+ }
+ }
+ catch (Exception exc)
+ {
+ MessageBox.Show("It would appear that HandBrakeCLI has not started correctly. You should take a look at the Activity log as it may indicate the reason why.\n\n Detailed Error Information: error occured in runCli()\n\n" + exc, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ /// <summary>
+ /// Kill the CLI process
+ /// </summary>
+ protected void Stop()
+ {
+ if (EncodeEnded != null)
+ EncodeEnded(this, new EventArgs());
+
+ if (HbProcess != null)
+ HbProcess.Kill();
+ IsEncoding = false;
+ }
+
+ /// <summary>
+ /// Perform an action after an encode. e.g a shutdown, standby, restart etc.
+ /// </summary>
+ protected void Finish()
+ {
+ IsEncoding = false;
+ CurrentQuery = String.Empty;
+
+ //Growl
+ if (Properties.Settings.Default.growlQueue)
+ GrowlCommunicator.Notify("Queue Completed", "Put down that cocktail...\nyour Handbrake queue is done.");
+
+ // Do something whent he encode ends.
+ switch (Properties.Settings.Default.CompletionOption)
+ {
+ case "Shutdown":
+ Process.Start("Shutdown", "-s -t 60");
+ break;
+ case "Log Off":
+ Win32.ExitWindowsEx(0, 0);
+ break;
+ case "Suspend":
+ Application.SetSuspendState(PowerState.Suspend, true, true);
+ break;
+ case "Hibernate":
+ Application.SetSuspendState(PowerState.Hibernate, true, true);
+ break;
+ case "Lock System":
+ Win32.LockWorkStation();
+ break;
+ case "Quit HandBrake":
+ Application.Exit();
+ break;
+ default:
+ break;
+ }
+ }
+
+ /// <summary>
+ /// Add the CLI Query to the Log File.
+ /// </summary>
+ /// <param name="encJob"></param>
+ protected void AddCLIQueryToLog(Job encJob)
+ {
+ string logDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\logs";
+ string logPath = Path.Combine(logDir, "last_encode_log.txt");
+
+ StreamReader reader = new StreamReader(File.Open(logPath, FileMode.Open, FileAccess.Read, FileShare.Read));
+ String log = reader.ReadToEnd();
+ reader.Close();
+
+ StreamWriter writer = new StreamWriter(File.Create(logPath));
+
+ writer.Write("### CLI Query: " + encJob.Query + "\n\n");
+ writer.Write("### User Query: " + encJob.CustomQuery + "\n\n");
+ writer.Write("#########################################\n\n");
+ writer.WriteLine(log);
+ writer.Flush();
+ writer.Close();
+ }
+
+ /// <summary>
+ /// Save a copy of the log to the users desired location or a default location
+ /// if this feature is enabled in options.
+ /// </summary>
+ /// <param name="destination"></param>
+ protected void CopyLog(string destination)
+ {
+ try
+ {
+ string logDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\logs";
+ string tempLogFile = Path.Combine(logDir, "last_encode_log.txt");
+
+ string encodeDestinationPath = Path.GetDirectoryName(destination);
+ String destinationFile = Path.GetFileName(destination);
+ string encodeLogFile = destinationFile + " " + DateTime.Now.ToString().Replace("/", "-").Replace(":", "-") + ".txt";
+
+ // Make sure the log directory exists.
+ if (!Directory.Exists(logDir))
+ Directory.CreateDirectory(logDir);
+
+ // Copy the Log to HandBrakes log folder in the users applciation data folder.
+ File.Copy(tempLogFile, Path.Combine(logDir, encodeLogFile));
+
+ // Save a copy of the log file in the same location as the enocde.
+ if (Properties.Settings.Default.saveLogWithVideo)
+ File.Copy(tempLogFile, Path.Combine(encodeDestinationPath, encodeLogFile));
+
+ // Save a copy of the log file to a user specified location
+ if (Directory.Exists(Properties.Settings.Default.saveLogPath))
+ if (Properties.Settings.Default.saveLogPath != String.Empty && Properties.Settings.Default.saveLogToSpecifiedPath)
+ File.Copy(tempLogFile, Path.Combine(Properties.Settings.Default.saveLogPath, encodeLogFile));
+ }
+ catch (Exception exc)
+ {
+ MessageBox.Show("Something went a bit wrong trying to copy your log file.\nError Information:\n\n" + exc, "Error",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/win/C#/EncodeQueue/Job.cs b/win/C#/EncodeQueue/Job.cs
index 7dfe7e518..5771ece8d 100644
--- a/win/C#/EncodeQueue/Job.cs
+++ b/win/C#/EncodeQueue/Job.cs
@@ -5,6 +5,7 @@
It may be used under the terms of the GNU General Public License. */
using System;
+using Handbrake.Parsing;
namespace Handbrake.EncodeQueue
{
diff --git a/win/C#/EncodeQueue/EncodeAndQueueHandler.cs b/win/C#/EncodeQueue/Queue.cs
index fce6729ce..f279a974f 100644
--- a/win/C#/EncodeQueue/EncodeAndQueueHandler.cs
+++ b/win/C#/EncodeQueue/Queue.cs
@@ -1,4 +1,4 @@
-/* EncodeAndQueueHandler.cs $
+/* Queue.cs $
This file is part of the HandBrake source code.
Homepage: <http://handbrake.fr/>.
@@ -7,20 +7,20 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
-using System.Diagnostics;
using System.IO;
using System.Threading;
using System.Windows.Forms;
using System.Xml.Serialization;
using Handbrake.Functions;
+using Handbrake.Parsing;
namespace Handbrake.EncodeQueue
{
- public class EncodeAndQueueHandler
+ public class Queue : Encode
{
private static XmlSerializer serializer;
- private List<Job> queue = new List<Job>();
- private int nextJobId;
+ private readonly List<Job> queue = new List<Job>();
+ private int NextJobId;
#region Event Handlers
/// <summary>
@@ -53,7 +53,7 @@ namespace Handbrake.EncodeQueue
{
Job job = queue[0];
LastEncode = job;
- RemoveJob(0); // Remove the item which we are about to pass out.
+ Remove(0); // Remove the item which we are about to pass out.
WriteQueueStateToFile("hb_queue_recovery.xml");
@@ -82,10 +82,11 @@ namespace Handbrake.EncodeQueue
/// <param name="query">The query that will be passed to the HandBrake CLI.</param>
/// <param name="source">The location of the source video.</param>
/// <param name="destination">The location where the encoded video will be.</param>
- /// <param name="customJob"></param>
- public void AddJob(string query, string source, string destination, bool customJob)
+ /// <param name="customJob">Custom job</param>
+ /// <param name="scanInfo">The Scan</param>
+ public void Add(string query, string source, string destination, bool customJob)
{
- Job newJob = new Job { Id = nextJobId++, Query = query, Source = source, Destination = destination, CustomQuery = customJob };
+ Job newJob = new Job { Id = NextJobId++, Query = query, Source = source, Destination = destination, CustomQuery = customJob };
queue.Add(newJob);
WriteQueueStateToFile("hb_queue_recovery.xml");
@@ -95,7 +96,7 @@ namespace Handbrake.EncodeQueue
/// Removes an item from the queue.
/// </summary>
/// <param name="index">The zero-based location of the job in the queue.</param>
- public void RemoveJob(int index)
+ public void Remove(int index)
{
queue.RemoveAt(index);
WriteQueueStateToFile("hb_queue_recovery.xml");
@@ -268,7 +269,7 @@ namespace Handbrake.EncodeQueue
/// Starts encoding the first job in the queue and continues encoding until all jobs
/// have been encoded.
/// </summary>
- public void StartEncodeQueue()
+ public void Start()
{
if (this.Count != 0)
{
@@ -279,7 +280,7 @@ namespace Handbrake.EncodeQueue
PauseRequested = false;
try
{
- Thread theQueue = new Thread(startProcess) { IsBackground = true };
+ Thread theQueue = new Thread(StartQueue) { IsBackground = true };
theQueue.Start();
}
catch (Exception exc)
@@ -293,7 +294,7 @@ namespace Handbrake.EncodeQueue
/// <summary>
/// Requests a pause of the encode queue.
/// </summary>
- public void RequestPause()
+ public void Pause()
{
PauseRequested = true;
@@ -304,12 +305,12 @@ namespace Handbrake.EncodeQueue
/// <summary>
/// Stops the current job.
/// </summary>
- public void EndEncodeJob()
+ public void End()
{
- CloseCLI();
+ Stop();
}
- private void startProcess(object state)
+ private void StartQueue(object state)
{
// Run through each item on the queue
while (this.Count != 0)
@@ -318,20 +319,20 @@ namespace Handbrake.EncodeQueue
string query = encJob.Query;
WriteQueueStateToFile("hb_queue_recovery.xml"); // Update the queue recovery file
- RunCli(query);
+ Run(query);
if (NewJobStarted != null)
NewJobStarted(this, new EventArgs());
- hbProcess.WaitForExit();
+ HbProcess.WaitForExit();
AddCLIQueryToLog(encJob);
CopyLog(LastEncode.Destination);
- hbProcess.Close();
- hbProcess.Dispose();
+ HbProcess.Close();
+ HbProcess.Dispose();
- isEncoding = false;
+ IsEncoding = false;
//Growl
if (Properties.Settings.Default.growlEncode)
@@ -342,7 +343,7 @@ namespace Handbrake.EncodeQueue
while (PauseRequested) // Need to find a better way of doing this.
{
- Thread.Sleep(5000);
+ Thread.Sleep(2000);
}
}
LastEncode = new Job();
@@ -351,190 +352,9 @@ namespace Handbrake.EncodeQueue
QueueCompleted(this, new EventArgs());
// After the encode is done, we may want to shutdown, suspend etc.
- AfterEncodeAction();
+ Finish();
}
#endregion
-
- #region CLI and Log Handling
- public Process hbProcess { get; set; }
- public int processID { get; set; }
- public IntPtr processHandle { get; set; }
- public String currentQuery { get; set; }
- public Boolean isEncoding { get; set; }
-
- /// <summary>
- /// Execute a HandBrakeCLI process.
- /// </summary>
- /// <param name="query">The CLI Query</param>
- public void RunCli(string query)
- {
- try
- {
- isEncoding = true;
-
- string handbrakeCLIPath = Path.Combine(Application.StartupPath, "HandBrakeCLI.exe");
- string logPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\logs", "last_encode_log.txt");
- string strCmdLine = String.Format(@" /C """"{0}"" {1} 2>""{2}"" """, handbrakeCLIPath, query, logPath);
- ProcessStartInfo cliStart = new ProcessStartInfo("CMD.exe", strCmdLine);
-
- if (Properties.Settings.Default.enocdeStatusInGui)
- {
- cliStart.RedirectStandardOutput = true;
- cliStart.UseShellExecute = false;
- }
- if (Properties.Settings.Default.cli_minimized)
- cliStart.WindowStyle = ProcessWindowStyle.Minimized;
-
- Process[] before = Process.GetProcesses(); // Get a list of running processes before starting.
- hbProcess = Process.Start(cliStart);
- processID = Main.GetCliProcess(before);
- currentQuery = query;
- if (hbProcess != null)
- processHandle = hbProcess.MainWindowHandle; // Set the process Handle
-
- // Set the process Priority
- Process hbCliProcess = null;
- if (processID != -1)
- hbCliProcess = Process.GetProcessById(processID);
-
- if (hbCliProcess != null)
- switch (Properties.Settings.Default.processPriority)
- {
- case "Realtime":
- hbCliProcess.PriorityClass = ProcessPriorityClass.RealTime;
- break;
- case "High":
- hbCliProcess.PriorityClass = ProcessPriorityClass.High;
- break;
- case "Above Normal":
- hbCliProcess.PriorityClass = ProcessPriorityClass.AboveNormal;
- break;
- case "Normal":
- hbCliProcess.PriorityClass = ProcessPriorityClass.Normal;
- break;
- case "Low":
- hbCliProcess.PriorityClass = ProcessPriorityClass.Idle;
- break;
- default:
- hbCliProcess.PriorityClass = ProcessPriorityClass.BelowNormal;
- break;
- }
- }
- catch (Exception exc)
- {
- MessageBox.Show("It would appear that HandBrakeCLI has not started correctly. You should take a look at the Activity log as it may indicate the reason why.\n\n Detailed Error Information: error occured in runCli()\n\n" + exc, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
-
- /// <summary>
- /// Kill the CLI process
- /// </summary>
- private void CloseCLI()
- {
- hbProcess.Kill();
- isEncoding = false;
- }
-
- /// <summary>
- /// Perform an action after an encode. e.g a shutdown, standby, restart etc.
- /// </summary>
- private void AfterEncodeAction()
- {
- isEncoding = false;
- currentQuery = String.Empty;
-
- //Growl
- if (Properties.Settings.Default.growlQueue)
- GrowlCommunicator.Notify("Queue Completed", "Put down that cocktail...\nyour Handbrake queue is done.");
-
- // Do something whent he encode ends.
- switch (Properties.Settings.Default.CompletionOption)
- {
- case "Shutdown":
- Process.Start("Shutdown", "-s -t 60");
- break;
- case "Log Off":
- Win32.ExitWindowsEx(0, 0);
- break;
- case "Suspend":
- Application.SetSuspendState(PowerState.Suspend, true, true);
- break;
- case "Hibernate":
- Application.SetSuspendState(PowerState.Hibernate, true, true);
- break;
- case "Lock System":
- Win32.LockWorkStation();
- break;
- case "Quit HandBrake":
- Application.Exit();
- break;
- default:
- break;
- }
- }
-
- /// <summar>
- /// Append the CLI query to the start of the log file.
- /// </summary>
- /// <param name="query"></param>
- private static void AddCLIQueryToLog(Job encJob)
- {
- string logDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\logs";
- string logPath = Path.Combine(logDir, "last_encode_log.txt");
-
- StreamReader reader = new StreamReader(File.Open(logPath, FileMode.Open, FileAccess.Read, FileShare.Read));
- String log = reader.ReadToEnd();
- reader.Close();
-
- StreamWriter writer = new StreamWriter(File.Create(logPath));
-
- writer.Write("### CLI Query: " + encJob.Query + "\n\n");
- writer.Write("### User Query: " + encJob.CustomQuery + "\n\n");
- writer.Write("#########################################\n\n");
- writer.WriteLine(log);
- writer.Flush();
- writer.Close();
- }
-
- /// <summary>
- /// Save a copy of the log to the users desired location or a default location
- /// if this feature is enabled in options.
- /// </summary>
- /// <param name="destination"></param>
- private static void CopyLog(string destination)
- {
- try
- {
- string logDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\logs";
- string tempLogFile = Path.Combine(logDir, "last_encode_log.txt");
-
- string encodeDestinationPath = Path.GetDirectoryName(destination);
- String destinationFile = Path.GetFileName(destination);
- string encodeLogFile = destinationFile + " " + DateTime.Now.ToString().Replace("/", "-").Replace(":", "-") + ".txt";
-
- // Make sure the log directory exists.
- if (!Directory.Exists(logDir))
- Directory.CreateDirectory(logDir);
-
- // Copy the Log to HandBrakes log folder in the users applciation data folder.
- File.Copy(tempLogFile, Path.Combine(logDir, encodeLogFile));
-
- // Save a copy of the log file in the same location as the enocde.
- if (Properties.Settings.Default.saveLogWithVideo)
- File.Copy(tempLogFile, Path.Combine(encodeDestinationPath, encodeLogFile));
-
- // Save a copy of the log file to a user specified location
- if (Directory.Exists(Properties.Settings.Default.saveLogPath))
- if (Properties.Settings.Default.saveLogPath != String.Empty && Properties.Settings.Default.saveLogToSpecifiedPath)
- File.Copy(tempLogFile, Path.Combine(Properties.Settings.Default.saveLogPath, encodeLogFile));
- }
- catch (Exception exc)
- {
- MessageBox.Show("Something went a bit wrong trying to copy your log file.\nError Information:\n\n" + exc, "Error",
- MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- #endregion
}
} \ No newline at end of file
diff --git a/win/C#/HandBrakeCS.csproj b/win/C#/HandBrakeCS.csproj
index c31e0ffa6..6123b2c73 100644
--- a/win/C#/HandBrakeCS.csproj
+++ b/win/C#/HandBrakeCS.csproj
@@ -159,6 +159,7 @@
<Compile Include="Controls\x264Panel.Designer.cs">
<DependentUpon>x264Panel.cs</DependentUpon>
</Compile>
+ <Compile Include="EncodeQueue\Encode.cs" />
<Compile Include="frmPreview.cs">
<SubType>Form</SubType>
</Compile>
@@ -225,7 +226,7 @@
<Compile Include="Presets\Import.cs" />
<Compile Include="Presets\preset.cs" />
<Compile Include="Presets\PresetsHandler.cs" />
- <Compile Include="EncodeQueue\EncodeAndQueueHandler.cs" />
+ <Compile Include="EncodeQueue\Queue.cs" />
<Compile Include="Functions\AppcastReader.cs" />
<Compile Include="Functions\QueryParser.cs" />
<Compile Include="Parsing\AudioTrack.cs" />
diff --git a/win/C#/frmMain.cs b/win/C#/frmMain.cs
index cfcc7274d..822e8a734 100644
--- a/win/C#/frmMain.cs
+++ b/win/C#/frmMain.cs
@@ -22,7 +22,7 @@ namespace Handbrake
public partial class frmMain : Form
{
// Objects which may be used by one or more other objects *************
- EncodeAndQueueHandler encodeQueue = new EncodeAndQueueHandler();
+ Queue encodeQueue = new Queue();
PresetsHandler presetHandler = new PresetsHandler();
QueryGenerator queryGen = new QueryGenerator();
@@ -38,6 +38,7 @@ namespace Handbrake
private string dvdDrivePath;
private string dvdDriveLabel;
private Preset CurrentlySelectedPreset;
+ private DVD currentSource;
// Delegates **********************************************************
private delegate void UpdateWindowHandler();
@@ -667,10 +668,10 @@ namespace Handbrake
if (result == DialogResult.Yes)
{
// Pause The Queue
- encodeQueue.RequestPause();
+ encodeQueue.Pause();
// Allow the CLI to exit cleanly
- Win32.SetForegroundWindow((int)encodeQueue.processHandle);
+ Win32.SetForegroundWindow((int)encodeQueue.ProcessHandle);
SendKeys.Send("^C");
// Update the GUI
@@ -726,14 +727,14 @@ namespace Handbrake
if (overwrite == DialogResult.Yes)
{
if (encodeQueue.Count == 0)
- encodeQueue.AddJob(query, sourcePath, text_destination.Text, (rtf_query.Text != ""));
+ encodeQueue.Add(query, sourcePath, text_destination.Text, (rtf_query.Text != ""));
- queueWindow.setQueue();
+ queueWindow.SetQueue();
if (encodeQueue.Count > 1)
queueWindow.Show(false);
setEncodeStarted(); // Encode is running, so setup the GUI appropriately
- encodeQueue.StartEncodeQueue(); // Start The Queue Encoding Process
+ encodeQueue.Start(); // Start The Queue Encoding Process
lastAction = "encode"; // Set the last action to encode - Used for activity window.
}
if (ActivityWindow != null)
@@ -760,11 +761,11 @@ namespace Handbrake
DialogResult result = MessageBox.Show("There is already a queue item for this destination path. \n\n If you continue, the encode will be overwritten. Do you wish to continue?",
"Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
- encodeQueue.AddJob(query, sourcePath, text_destination.Text, (rtf_query.Text != ""));
+ encodeQueue.Add(query, sourcePath, text_destination.Text, (rtf_query.Text != ""));
}
else
- encodeQueue.AddJob(query, sourcePath, text_destination.Text, (rtf_query.Text != ""));
+ encodeQueue.Add(query, sourcePath, text_destination.Text, (rtf_query.Text != ""));
lbl_encode.Text = encodeQueue.Count + " encode(s) pending in the queue";
@@ -1543,16 +1544,16 @@ namespace Handbrake
try
{
- DVD thisDVD = SourceScan.SouceData();
+ currentSource = SourceScan.SouceData();
// Setup some GUI components
drp_dvdtitle.Items.Clear();
- if (thisDVD.Titles.Count != 0)
- drp_dvdtitle.Items.AddRange(thisDVD.Titles.ToArray());
+ if (currentSource.Titles.Count != 0)
+ drp_dvdtitle.Items.AddRange(currentSource.Titles.ToArray());
// Now select the longest title
- if (thisDVD.Titles.Count != 0)
- drp_dvdtitle.SelectedItem = Main.SelectLongestTitle(thisDVD);
+ if (currentSource.Titles.Count != 0)
+ drp_dvdtitle.SelectedItem = Main.SelectLongestTitle(currentSource);
// Enable the creation of chapter markers if the file is an image of a dvd.
if (sourcePath.ToLower().Contains(".iso") || sourcePath.Contains("VIDEO_TS") || Directory.Exists(Path.Combine(sourcePath, "VIDEO_TS")))
@@ -1768,7 +1769,7 @@ namespace Handbrake
protected override void OnFormClosing(FormClosingEventArgs e)
{
// If currently encoding, the queue isn't paused, and there are queue items to process, prompt to confirm close.
- if ((encodeQueue.isEncoding) && (!encodeQueue.PauseRequested) && (encodeQueue.Count > 0))
+ if ((encodeQueue.IsEncoding) && (!encodeQueue.PauseRequested) && (encodeQueue.Count > 0))
{
DialogResult result = MessageBox.Show("HandBrake has queue items to process. Closing HandBrake will not stop the current encoding, but will stop processing the queue.\n\nDo you want to close HandBrake?",
"Close HandBrake?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
@@ -1784,7 +1785,7 @@ namespace Handbrake
{
try
{
- Parser encode = new Parser(encodeQueue.hbProcess.StandardOutput.BaseStream);
+ Parser encode = new Parser(encodeQueue.HbProcess.StandardOutput.BaseStream);
encode.OnEncodeProgress += encodeOnEncodeProgress;
while (!encode.EndOfStream)
encode.readEncodeStatus();
diff --git a/win/C#/frmPreview.cs b/win/C#/frmPreview.cs
index d0f5ebfa3..8cd51a676 100644
--- a/win/C#/frmPreview.cs
+++ b/win/C#/frmPreview.cs
@@ -14,7 +14,7 @@ namespace Handbrake
public partial class frmPreview : Form
{
readonly QueryGenerator HbCommonFunc = new QueryGenerator();
- readonly EncodeAndQueueHandler Process = new EncodeAndQueueHandler();
+ readonly Queue Process = new Queue();
private delegate void UpdateUIHandler();
String CurrentlyPlaying = "";
readonly frmMain MainWindow;
@@ -106,15 +106,15 @@ namespace Handbrake
private void ProcMonitor(object state)
{
// Make sure we are not already encoding and if we are then display an error.
- if (Process.hbProcess != null)
+ if (Process.HbProcess != null)
MessageBox.Show(this, "Handbrake is already encoding a video!", "Status", MessageBoxButtons.OK, MessageBoxIcon.Warning);
else
{
- Process.RunCli((string)state);
- if (Process.hbProcess != null)
+ Process.CreatePreviewSampe((string)state);
+ if (Process.HbProcess != null)
{
- Process.hbProcess.WaitForExit();
- Process.hbProcess = null;
+ Process.HbProcess.WaitForExit();
+ Process.HbProcess = null;
}
EncodeCompleted();
}
diff --git a/win/C#/frmQueue.cs b/win/C#/frmQueue.cs
index 352978960..3d3e28f7f 100644
--- a/win/C#/frmQueue.cs
+++ b/win/C#/frmQueue.cs
@@ -16,40 +16,41 @@ namespace Handbrake
public partial class frmQueue : Form
{
private delegate void UpdateHandler();
- private EncodeAndQueueHandler queue;
+ private Queue queue;
- public frmQueue(EncodeAndQueueHandler q)
+ public frmQueue(Queue q)
{
InitializeComponent();
this.queue = q;
- queue.NewJobStarted += new EventHandler(queueOnEncodeStart);
- queue.QueueCompleted += new EventHandler(queueOnQueueFinished);
- queue.QueuePauseRequested += new EventHandler(queueOnPaused);
+ queue.NewJobStarted += new EventHandler(QueueOnEncodeStart);
+ queue.QueueCompleted += new EventHandler(QueueOnQueueFinished);
+ queue.QueuePauseRequested += new EventHandler(QueueOnPaused);
}
- void queueOnPaused(object sender, EventArgs e)
+
+ private void QueueOnPaused(object sender, EventArgs e)
{
- setUIEncodeFinished();
- updateUIElements();
+ SetUIEncodeFinished();
+ UpdateUIElements();
}
- void queueOnQueueFinished(object sender, EventArgs e)
+ private void QueueOnQueueFinished(object sender, EventArgs e)
{
- setUIEncodeFinished();
- resetQueue(); // Reset the Queue Window
+ SetUIEncodeFinished();
+ ResetQueue(); // Reset the Queue Window
}
- void queueOnEncodeStart(object sender, EventArgs e)
+ private void QueueOnEncodeStart(object sender, EventArgs e)
{
- setUIEncodeStarted(); // make sure the UI is set correctly
- setCurrentEncodeInformation();
- updateUIElements(); // Redraw the Queue, a new encode has started.
+ SetUIEncodeStarted(); // make sure the UI is set correctly
+ SetCurrentEncodeInformation();
+ UpdateUIElements(); // Redraw the Queue, a new encode has started.
}
/// <summary>
/// Initializes the Queue list with the Arraylist from the Queue class
/// </summary>
- public void setQueue()
+ public void SetQueue()
{
- updateUIElements();
+ UpdateUIElements();
}
/// <summary>
@@ -66,7 +67,7 @@ namespace Handbrake
/// <param name="doSetQueue">Indicates whether to call setQueue() before showing the window</param>
public void Show(bool doSetQueue)
{
- if (doSetQueue) setQueue();
+ if (doSetQueue) SetQueue();
base.Show();
//Activate();
@@ -77,48 +78,48 @@ namespace Handbrake
{
if (queue.PauseRequested)
{
- setUIEncodeStarted();
+ SetUIEncodeStarted();
MessageBox.Show("Encoding restarted", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
- if (!queue.isEncoding)
- queue.StartEncodeQueue();
+ if (!queue.IsEncoding)
+ queue.Start();
}
private void btn_pause_Click(object sender, EventArgs e)
{
- queue.RequestPause();
- setUIEncodeFinished();
- resetQueue();
+ queue.Pause();
+ SetUIEncodeFinished();
+ ResetQueue();
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);
}
// Window Display Management
- private void setUIEncodeStarted()
+ private void SetUIEncodeStarted()
{
if (InvokeRequired)
{
- BeginInvoke(new UpdateHandler(setUIEncodeStarted));
+ BeginInvoke(new UpdateHandler(SetUIEncodeStarted));
return;
}
btn_encode.Enabled = false;
btn_pause.Visible = true;
}
- private void setUIEncodeFinished()
+ private void SetUIEncodeFinished()
{
if (InvokeRequired)
{
- BeginInvoke(new UpdateHandler(setUIEncodeFinished));
+ BeginInvoke(new UpdateHandler(SetUIEncodeFinished));
return;
}
btn_pause.Visible = false;
btn_encode.Enabled = true;
}
- private void resetQueue()
+ private void ResetQueue()
{
if (InvokeRequired)
{
- BeginInvoke(new UpdateHandler(resetQueue));
+ BeginInvoke(new UpdateHandler(ResetQueue));
return;
}
btn_pause.Visible = false;
@@ -133,11 +134,11 @@ namespace Handbrake
lbl_encodesPending.Text = list_queue.Items.Count + " encode(s) pending";
}
- private void redrawQueue()
+ private void RedrawQueue()
{
if (InvokeRequired)
{
- BeginInvoke(new UpdateHandler(redrawQueue));
+ BeginInvoke(new UpdateHandler(RedrawQueue));
return;
}
@@ -183,24 +184,24 @@ namespace Handbrake
list_queue.Items.Add(item);
}
}
- private void updateUIElements()
+ private void UpdateUIElements()
{
if (InvokeRequired)
{
- BeginInvoke(new UpdateHandler(updateUIElements));
+ BeginInvoke(new UpdateHandler(UpdateUIElements));
return;
}
- redrawQueue();
+ RedrawQueue();
lbl_encodesPending.Text = list_queue.Items.Count + " encode(s) pending";
}
- private void setCurrentEncodeInformation()
+ private void SetCurrentEncodeInformation()
{
try
{
if (InvokeRequired)
{
- BeginInvoke(new UpdateHandler(setCurrentEncodeInformation));
+ BeginInvoke(new UpdateHandler(SetCurrentEncodeInformation));
}
// found query is a global varible
@@ -238,7 +239,7 @@ namespace Handbrake
// Do Nothing
}
}
- private void deleteSelectedItems()
+ private void DeleteSelectedItems()
{
// If there are selected items
if (list_queue.SelectedIndices.Count > 0)
@@ -255,9 +256,9 @@ namespace Handbrake
// Remove each selected item
foreach (int selectedIndex in selectedIndices)
- queue.RemoveJob(selectedIndex);
+ queue.Remove(selectedIndex);
- updateUIElements();
+ UpdateUIElements();
// Select the item where the first deleted item was previously
if (firstSelectedIndex < list_queue.Items.Count)
@@ -270,34 +271,34 @@ namespace Handbrake
// Queue Management
private void mnu_up_Click(object sender, EventArgs e)
{
- moveUp();
+ MoveUp();
}
private void mnu_Down_Click(object sender, EventArgs e)
{
- moveDown();
+ MoveDown();
}
private void mnu_delete_Click(object sender, EventArgs e)
{
- deleteSelectedItems();
+ DeleteSelectedItems();
}
private void btn_up_Click(object sender, EventArgs e)
{
- moveUp();
+ MoveUp();
}
private void btn_down_Click(object sender, EventArgs e)
{
- moveDown();
+ MoveDown();
}
private void btn_delete_Click(object sender, EventArgs e)
{
- deleteSelectedItems();
+ DeleteSelectedItems();
}
private void list_queue_deleteKey(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Delete)
- deleteSelectedItems();
+ DeleteSelectedItems();
}
- private void moveUp()
+ private void MoveUp()
{
// If there are selected items and the first item is not selected
if (list_queue.SelectedIndices.Count > 0 && !list_queue.SelectedIndices.Contains(0))
@@ -311,7 +312,7 @@ namespace Handbrake
foreach (int selectedIndex in selectedIndices)
queue.MoveUp(selectedIndex);
- updateUIElements();
+ UpdateUIElements();
// Keep the selected item(s) selected, now moved up one index
foreach (int selectedIndex in selectedIndices)
@@ -321,7 +322,7 @@ namespace Handbrake
list_queue.Select(); // Activate the control to show the selected items
}
- private void moveDown()
+ private void MoveDown()
{
// If there are selected items and the last item is not selected
if (list_queue.SelectedIndices.Count > 0 &&
@@ -339,7 +340,7 @@ namespace Handbrake
foreach (int selectedIndex in selectedIndices)
queue.MoveDown(selectedIndex);
- updateUIElements();
+ UpdateUIElements();
// Keep the selected item(s) selected, now moved down one index
foreach (int selectedIndex in selectedIndices)
@@ -373,14 +374,14 @@ namespace Handbrake
OpenFile.ShowDialog();
if (OpenFile.FileName != String.Empty)
queue.LoadQueueFromFile(OpenFile.FileName);
- updateUIElements();
+ UpdateUIElements();
}
private void mnu_readd_Click(object sender, EventArgs e)
{
if (!queue.LastEncode.IsEmpty)
{
- queue.AddJob(queue.LastEncode.Query, queue.LastEncode.Source, queue.LastEncode.Destination, queue.LastEncode.CustomQuery);
- updateUIElements();
+ queue.Add(queue.LastEncode.Query, queue.LastEncode.Source, queue.LastEncode.Destination, queue.LastEncode.CustomQuery);
+ UpdateUIElements();
}
}