/// </summary>\r
private const double EncodePollIntervalMs = 250;\r
\r
- private readonly ILog log = LogService.GetLogger();\r
-\r
/// <summary>\r
/// The native handle to the HandBrake instance.\r
/// </summary>\r
catch (Exception exc)\r
{\r
Debug.WriteLine(exc);\r
- this.log.LogMessage(exc.ToString(), LogMessageType.API, LogLevel.Error);\r
+ HandBrakeUtils.SendErrorEvent(exc.ToString());\r
}\r
};\r
this.scanPollTimer.Start();\r
{\r
IntPtr json = HBFunctions.hb_get_state_json(this.hbHandle);\r
string statusJson = Marshal.PtrToStringAnsi(json);\r
- this.log.LogMessage(statusJson, LogMessageType.Progress, LogLevel.Trace);\r
JsonState state = null;\r
if (!string.IsNullOrEmpty(statusJson))\r
{\r
\r
var jsonMsg = HBFunctions.hb_get_title_set_json(this.hbHandle);\r
this.titlesJson = InteropUtilities.ToStringFromUtf8Ptr(jsonMsg);\r
- this.log.LogMessage(this.titlesJson, LogMessageType.Progress, LogLevel.Trace);\r
\r
- if (string.IsNullOrEmpty(this.titlesJson))\r
- {\r
- this.log.LogMessage("Scan Error: No Scan Data Returned.", LogMessageType.API, LogLevel.Error);\r
- }\r
- else\r
- {\r
+ if (!string.IsNullOrEmpty(this.titlesJson))\r
+ { \r
this.titles = JsonConvert.DeserializeObject<JsonScanObject>(this.titlesJson);\r
if (this.titles != null)\r
{\r
IntPtr json = HBFunctions.hb_get_state_json(this.hbHandle);\r
string statusJson = Marshal.PtrToStringAnsi(json);\r
\r
- this.log.LogMessage(statusJson, LogMessageType.Progress, LogLevel.Trace);\r
-\r
JsonState state = JsonConvert.DeserializeObject<JsonState>(statusJson);\r
\r
TaskState taskState = state != null ? TaskState.FromRepositoryValue(state.State) : null;\r
using HandBrake.ApplicationServices.Interop.HbLib;\r
using HandBrake.ApplicationServices.Interop.Helpers;\r
using HandBrake.ApplicationServices.Interop.Json.Presets;\r
- using HandBrake.ApplicationServices.Services.Logging;\r
- using HandBrake.ApplicationServices.Services.Logging.Interfaces;\r
- using HandBrake.ApplicationServices.Services.Logging.Model;\r
\r
using Newtonsoft.Json;\r
\r
/// </summary>\r
public class HandBrakePresetService\r
{\r
- private static readonly ILog log = LogService.GetLogger();\r
-\r
/// <summary>\r
/// The get built in presets.\r
/// Requires an hb_init to have been invoked.\r
{\r
IntPtr presets = HBFunctions.hb_presets_builtin_get_json();\r
string presetJson = Marshal.PtrToStringAnsi(presets);\r
-\r
- log.LogMessage(presetJson, LogMessageType.API, LogLevel.Debug);\r
-\r
IList<PresetCategory> presetList = JsonConvert.DeserializeObject<IList<PresetCategory>>(presetJson);\r
\r
return presetList;\r
{\r
IntPtr presetStringPointer = HBFunctions.hb_presets_read_file_json(InteropUtilities.ToUtf8PtrFromString(filename));\r
string presetJson = Marshal.PtrToStringAnsi(presetStringPointer);\r
- log.LogMessage(presetJson, LogMessageType.API, LogLevel.Debug);\r
\r
if (!string.IsNullOrEmpty(presetJson))\r
{\r
/// </summary>\r
public static class HandBrakeUtils\r
{\r
- private static readonly ILog log = LogService.GetLogger();\r
-\r
/// <summary>\r
/// The callback for log messages from HandBrake.\r
/// </summary>\r
public static Geometry GetAnamorphicSize(AnamorphicGeometry anamorphicGeometry)\r
{\r
string encode = JsonConvert.SerializeObject(anamorphicGeometry, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });\r
- log.LogMessage(encode, LogMessageType.API, LogLevel.Debug);\r
IntPtr json = HBFunctions.hb_set_anamorphic_size_json(Marshal.StringToHGlobalAnsi(encode));\r
string result = Marshal.PtrToStringAnsi(json);\r
return JsonConvert.DeserializeObject<Geometry>(result);\r
/// <param name="message">\r
/// The message to send.\r
/// </param>\r
- private static void SendMessageEvent(string message)\r
+ public static void SendMessageEvent(string message)\r
{\r
- if (MessageLogged != null)\r
- {\r
- log.LogMessage(message, LogMessageType.ScanOrEncode, LogLevel.Info);\r
- MessageLogged(null, new MessageLoggedEventArgs(message));\r
- }\r
+ MessageLogged?.Invoke(null, new MessageLoggedEventArgs(message));\r
}\r
\r
/// <summary>\r
/// <param name="message">\r
/// The message to send\r
/// </param>\r
- private static void SendErrorEvent(string message)\r
+ public static void SendErrorEvent(string message)\r
{\r
- if (ErrorLogged != null)\r
- {\r
- log.LogMessage(message, LogMessageType.ScanOrEncode, LogLevel.Error);\r
- ErrorLogged(null, new MessageLoggedEventArgs(message));\r
- }\r
+ ErrorLogged?.Invoke(null, new MessageLoggedEventArgs(message));\r
}\r
}\r
}\r
using System.Linq;
using System.Text;
+ using HandBrake.ApplicationServices.Interop;
+ using HandBrake.ApplicationServices.Interop.EventArgs;
using HandBrake.ApplicationServices.Services.Logging.EventArgs;
using HandBrake.ApplicationServices.Services.Logging.Interfaces;
using HandBrake.ApplicationServices.Services.Logging.Model;
private StreamWriter fileWriter;
private string logHeader;
+ public LogService()
+ {
+ HandBrakeUtils.MessageLogged += this.HandBrakeUtils_MessageLogged;
+ HandBrakeUtils.ErrorLogged += this.HandBrakeUtils_ErrorLogged;
+ }
+
/// <summary>
/// Fires when a new QueueTask starts
/// </summary>
}
}
- /// <summary>
- /// Helper method for logging content to disk
- /// </summary>
- /// <param name="msg">
- /// Log message to write.
- /// </param>
- private void LogMessageToDisk(LogMessage msg)
- {
- if (!this.isDiskLoggingEnabled)
- {
- return;
- }
-
- try
- {
- lock (this.fileWriterLock)
- {
- if (this.fileWriter != null && this.fileWriter.BaseStream.CanWrite)
- {
- this.fileWriter.WriteLine(msg.Content);
- }
- }
- }
- catch (Exception exc)
- {
- Debug.WriteLine(exc); // This exception doesn't warrant user interaction, but it should be logged
- }
- }
-
/// <summary>
/// Called when a log message is created.
/// </summary>
{
this.LogReset?.Invoke(this, System.EventArgs.Empty);
}
+
+ /// <summary>
+ /// Helper method for logging content to disk
+ /// </summary>
+ /// <param name="msg">
+ /// Log message to write.
+ /// </param>
+ private void LogMessageToDisk(LogMessage msg)
+ {
+ if (!this.isDiskLoggingEnabled)
+ {
+ return;
+ }
+
+ try
+ {
+ lock (this.fileWriterLock)
+ {
+ if (this.fileWriter != null && this.fileWriter.BaseStream.CanWrite)
+ {
+ this.fileWriter.WriteLine(msg.Content);
+ }
+ }
+ }
+ catch (Exception exc)
+ {
+ Debug.WriteLine(exc); // This exception doesn't warrant user interaction, but it should be logged
+ }
+ }
+
+ private void HandBrakeUtils_ErrorLogged(object sender, MessageLoggedEventArgs e)
+ {
+ if (e == null || string.IsNullOrEmpty(e.Message))
+ {
+ return;
+ }
+
+ this.LogMessage(e.Message, LogMessageType.ScanOrEncode, LogLevel.Error);
+ }
+
+ private void HandBrakeUtils_MessageLogged(object sender, MessageLoggedEventArgs e)
+ {
+ if (e == null || string.IsNullOrEmpty(e.Message))
+ {
+ return;
+ }
+
+ this.LogMessage(e.Message, LogMessageType.ScanOrEncode, LogLevel.Info);
+ }
}
}