summaryrefslogtreecommitdiffstats
path: root/win/CS/HandBrake.ApplicationServices
diff options
context:
space:
mode:
authorsr55 <[email protected]>2013-05-19 16:49:50 +0000
committersr55 <[email protected]>2013-05-19 16:49:50 +0000
commit39d5addd4f0772fe45811be4a3b1e3305785866e (patch)
treef9a07819ae96f76af0f5bdfc9c3019256b99ada3 /win/CS/HandBrake.ApplicationServices
parent67a224af55647590e886808285132d5955ed9333 (diff)
WinGui: Rectored some Encode/Queue service code. This restoes "Quit HandBrake" when done option.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5485 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'win/CS/HandBrake.ApplicationServices')
-rw-r--r--win/CS/HandBrake.ApplicationServices/ASUserSettingConstants.cs25
-rw-r--r--win/CS/HandBrake.ApplicationServices/EventArgs/EncodeCompletedEventArgs.cs14
-rw-r--r--win/CS/HandBrake.ApplicationServices/Services/Encode.cs24
-rw-r--r--win/CS/HandBrake.ApplicationServices/Services/LibEncode.cs24
-rw-r--r--win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs62
5 files changed, 27 insertions, 122 deletions
diff --git a/win/CS/HandBrake.ApplicationServices/ASUserSettingConstants.cs b/win/CS/HandBrake.ApplicationServices/ASUserSettingConstants.cs
index 7e3ee4583..78f5b18ab 100644
--- a/win/CS/HandBrake.ApplicationServices/ASUserSettingConstants.cs
+++ b/win/CS/HandBrake.ApplicationServices/ASUserSettingConstants.cs
@@ -20,21 +20,11 @@ namespace HandBrake.ApplicationServices
public const string Verbosity = "Verbosity";
/// <summary>
- /// When Complete Action
- /// </summary>
- public const string WhenCompleteAction = "WhenCompleteAction";
-
- /// <summary>
/// Process Priority
/// </summary>
public const string ProcessPriority = "ProcessPriority";
/// <summary>
- /// Prevent Sleep
- /// </summary>
- public const string PreventSleep = "PreventSleep";
-
- /// <summary>
/// Save Log Directory
/// </summary>
public const string SaveLogToCopyDirectory = "SaveLogToCopyDirectory";
@@ -60,21 +50,6 @@ namespace HandBrake.ApplicationServices
public const string DisableLibDvdNav = "DisableLibDvdNav";
/// <summary>
- /// Send file enabled.
- /// </summary>
- public const string SendFile = "SendFile";
-
- /// <summary>
- /// Send file to application path
- /// </summary>
- public const string SendFileTo = "SendFileTo";
-
- /// <summary>
- /// Send file to arguments
- /// </summary>
- public const string SendFileToArgs = "SendFileToArgs";
-
- /// <summary>
/// Min Title Scan Duration
/// </summary>
public const string MinScanDuration = "MinTitleScanDuration";
diff --git a/win/CS/HandBrake.ApplicationServices/EventArgs/EncodeCompletedEventArgs.cs b/win/CS/HandBrake.ApplicationServices/EventArgs/EncodeCompletedEventArgs.cs
index 44a66cac7..2bbb7ab97 100644
--- a/win/CS/HandBrake.ApplicationServices/EventArgs/EncodeCompletedEventArgs.cs
+++ b/win/CS/HandBrake.ApplicationServices/EventArgs/EncodeCompletedEventArgs.cs
@@ -12,6 +12,8 @@ namespace HandBrake.ApplicationServices.EventArgs
using System;
using System.Runtime.Serialization;
+ using HandBrake.ApplicationServices.Model;
+
/// <summary>
/// Encode Progress Event Args
/// </summary>
@@ -30,14 +32,24 @@ namespace HandBrake.ApplicationServices.EventArgs
/// <param name="errorInformation">
/// The error information.
/// </param>
- public EncodeCompletedEventArgs(bool sucessful, Exception exception, string errorInformation)
+ /// <param name="filename">
+ /// The filename.
+ /// </param>
+ public EncodeCompletedEventArgs(bool sucessful, Exception exception, string errorInformation, string filename)
{
this.Successful = sucessful;
this.Exception = exception;
this.ErrorInformation = errorInformation;
+ this.FileName = filename;
}
/// <summary>
+ /// Gets or sets the file name.
+ /// </summary>
+ [DataMember]
+ public string FileName { get; set; }
+
+ /// <summary>
/// Gets or sets a value indicating whether Successful.
/// </summary>
[DataMember]
diff --git a/win/CS/HandBrake.ApplicationServices/Services/Encode.cs b/win/CS/HandBrake.ApplicationServices/Services/Encode.cs
index b4f572521..4779d353e 100644
--- a/win/CS/HandBrake.ApplicationServices/Services/Encode.cs
+++ b/win/CS/HandBrake.ApplicationServices/Services/Encode.cs
@@ -14,9 +14,8 @@ namespace HandBrake.ApplicationServices.Services
using System.IO;
using System.Windows.Forms;
- using Caliburn.Micro;
-
using HandBrake.ApplicationServices.EventArgs;
+ using HandBrake.ApplicationServices.Exceptions;
using HandBrake.ApplicationServices.Model;
using HandBrake.ApplicationServices.Services.Base;
using HandBrake.ApplicationServices.Services.Interfaces;
@@ -95,11 +94,10 @@ namespace HandBrake.ApplicationServices.Services
{
if (this.IsEncoding)
{
- throw new Exception("HandBrake is already encodeing.");
+ throw new GeneralApplicationException("HandBrake is already encodeing.", "Please try again in a minute", null);
}
this.IsEncoding = true;
-
this.currentTask = encodeQueueTask;
if (enableLogging)
@@ -115,11 +113,6 @@ namespace HandBrake.ApplicationServices.Services
}
}
- if (this.userSettingService.GetUserSetting<bool>(ASUserSettingConstants.PreventSleep))
- {
- Win32.PreventSleep();
- }
-
// Make sure the path exists, attempt to create it if it doesn't
this.VerifyEncodeDestinationPath(currentTask);
@@ -200,9 +193,10 @@ namespace HandBrake.ApplicationServices.Services
catch (Exception exc)
{
encodeQueueTask.Status = QueueItemStatus.Error;
+ this.IsEncoding = false;
this.InvokeEncodeCompleted(
new EncodeCompletedEventArgs(
- false, null, "An Error occured when trying to encode this source. "));
+ false, exc, "An Error occured when trying to encode this source. ", this.currentTask.Task.Destination));
throw;
}
}
@@ -261,17 +255,9 @@ namespace HandBrake.ApplicationServices.Services
// This exception doesn't warrent user interaction, but it should be logged (TODO)
}
- Execute.OnUIThread(() =>
- {
- if (this.userSettingService.GetUserSetting<bool>(ASUserSettingConstants.PreventSleep))
- {
- Win32.AllowSleep();
- }
- });
-
this.currentTask.Status = QueueItemStatus.Completed;
this.IsEncoding = false;
- this.InvokeEncodeCompleted(new EncodeCompletedEventArgs(true, null, string.Empty));
+ this.InvokeEncodeCompleted(new EncodeCompletedEventArgs(true, null, string.Empty, this.currentTask.Task.Destination));
}
/// <summary>
diff --git a/win/CS/HandBrake.ApplicationServices/Services/LibEncode.cs b/win/CS/HandBrake.ApplicationServices/Services/LibEncode.cs
index 33453dad8..f7247f6cf 100644
--- a/win/CS/HandBrake.ApplicationServices/Services/LibEncode.cs
+++ b/win/CS/HandBrake.ApplicationServices/Services/LibEncode.cs
@@ -11,7 +11,6 @@ namespace HandBrake.ApplicationServices.Services
{
using System;
using System.Diagnostics;
- using System.Globalization;
using HandBrake.ApplicationServices.Model;
using HandBrake.ApplicationServices.Services.Base;
@@ -57,6 +56,11 @@ namespace HandBrake.ApplicationServices.Services
/// </summary>
private bool loggingEnabled;
+ /// <summary>
+ /// The Current Task
+ /// </summary>
+ private QueueTask currentTask;
+
#endregion
/// <summary>
@@ -95,6 +99,7 @@ namespace HandBrake.ApplicationServices.Services
{
this.startTime = DateTime.Now;
this.loggingEnabled = enableLogging;
+ this.currentTask = job;
try
{
@@ -123,12 +128,6 @@ namespace HandBrake.ApplicationServices.Services
}
}
- // Prvent the system from sleeping if the user asks
- if (this.userSettingService.GetUserSetting<bool>(ASUserSettingConstants.PreventSleep) )
- {
- Win32.PreventSleep();
- }
-
// Verify the Destination Path Exists, and if not, create it.
this.VerifyEncodeDestinationPath(job);
@@ -163,7 +162,7 @@ namespace HandBrake.ApplicationServices.Services
}
catch (Exception exc)
{
- this.InvokeEncodeCompleted(new EncodeCompletedEventArgs(false, exc, "An Error has occured."));
+ this.InvokeEncodeCompleted(new EncodeCompletedEventArgs(false, exc, "An Error has occured.", this.currentTask.Task.Destination));
}
}
@@ -271,13 +270,8 @@ namespace HandBrake.ApplicationServices.Services
this.InvokeEncodeCompleted(
e.Error
- ? new EncodeCompletedEventArgs(false, null, string.Empty)
- : new EncodeCompletedEventArgs(true, null, string.Empty));
-
- if (this.userSettingService.GetUserSetting<bool>(ASUserSettingConstants.PreventSleep))
- {
- Win32.AllowSleep();
- }
+ ? new EncodeCompletedEventArgs(false, null, string.Empty, this.currentTask.Task.Destination)
+ : new EncodeCompletedEventArgs(true, null, string.Empty, this.currentTask.Task.Destination));
this.ShutdownFileWriter();
}
diff --git a/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs b/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs
index 79b348ae4..92f69142c 100644
--- a/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs
+++ b/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs
@@ -12,10 +12,8 @@ namespace HandBrake.ApplicationServices.Services
using System;
using System.Collections.Generic;
using System.ComponentModel;
- using System.Diagnostics;
using System.IO;
using System.Linq;
- using System.Windows.Forms;
using System.Xml.Serialization;
using Caliburn.Micro;
@@ -471,12 +469,6 @@ namespace HandBrake.ApplicationServices.Services
// Handling Log Data
this.EncodeService.ProcessLogs(this.LastProcessedJob.Task.Destination);
- // Post-Processing
- if (e.Successful)
- {
- this.SendToApplication(this.LastProcessedJob.Task.Destination);
- }
-
// Move onto the next job.
if (this.IsProcessing)
{
@@ -491,35 +483,6 @@ namespace HandBrake.ApplicationServices.Services
}
/// <summary>
- /// Perform an action after an encode. e.g a shutdown, standby, restart etc.
- /// </summary>
- private void Finish()
- {
- // Do something whent he encode ends.
- switch (this.userSettingService.GetUserSetting<string>(ASUserSettingConstants.WhenCompleteAction))
- {
- 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":
- Execute.OnUIThread(Application.Exit);
- break;
- }
- }
-
- /// <summary>
/// Invoke the JobProcessingStarted event
/// </summary>
/// <param name="e">
@@ -608,31 +571,6 @@ namespace HandBrake.ApplicationServices.Services
// Fire the event to tell connected services.
this.InvokeQueueCompleted(EventArgs.Empty);
-
- // Run the After encode completeion work
- this.Finish();
- }
- }
-
- /// <summary>
- /// Send a file to a 3rd party application after encoding has completed.
- /// </summary>
- /// <param name="file">
- /// The file path
- /// </param>
- private void SendToApplication(string file)
- {
- if (this.userSettingService.GetUserSetting<bool>(ASUserSettingConstants.SendFile) &&
- !string.IsNullOrEmpty(this.userSettingService.GetUserSetting<string>(ASUserSettingConstants.SendFileTo)))
- {
- string args = string.Format(
- "{0} \"{1}\"",
- this.userSettingService.GetUserSetting<string>(ASUserSettingConstants.SendFileToArgs),
- file);
- var vlc =
- new ProcessStartInfo(
- this.userSettingService.GetUserSetting<string>(ASUserSettingConstants.SendFileTo), args);
- Process.Start(vlc);
}
}