improved error handling

This commit is contained in:
stax76
2022-05-20 14:50:56 +02:00
parent 3e499befbc
commit 354d5493c4
2 changed files with 28 additions and 19 deletions

View File

@@ -23,6 +23,7 @@ namespace mpvnet
public static bool AutoLoadFolder { get; set; } = true; public static bool AutoLoadFolder { get; set; } = true;
public static bool AutoPlay { get; set; } public static bool AutoPlay { get; set; }
public static bool DebuggerAttached { get; set; } = Debugger.IsAttached;
public static bool DebugMode { get; set; } public static bool DebugMode { get; set; }
public static bool Exit { get; set; } public static bool Exit { get; set; }
public static bool IsTerminalAttached { get; } = Environment.GetEnvironmentVariable("_started_from_console") == "yes"; public static bool IsTerminalAttached { get; } = Environment.GetEnvironmentVariable("_started_from_console") == "yes";

View File

@@ -679,7 +679,8 @@ namespace mpvnet
public void Command(string command) public void Command(string command)
{ {
mpv_error err = mpv_command_string(Handle, command); mpv_error err = mpv_command_string(Handle, command);
HandleError(err, "error executing command:", command); if (err < 0)
HandleError(err, "error executing command:", command);
} }
public void CommandV(params string[] args) public void CommandV(params string[] args)
@@ -703,7 +704,8 @@ namespace mpvnet
Marshal.FreeHGlobal(ptr); Marshal.FreeHGlobal(ptr);
Marshal.FreeHGlobal(rootPtr); Marshal.FreeHGlobal(rootPtr);
HandleError(err, "error executing command:", string.Join("\n", args)); if (err < 0)
HandleError(err, "error executing command:", string.Join("\n", args));
} }
public string Expand(string value) public string Expand(string value)
@@ -754,7 +756,8 @@ namespace mpvnet
{ {
mpv_error err = mpv_get_property(Handle, GetUtf8Bytes(name), mpv_error err = mpv_get_property(Handle, GetUtf8Bytes(name),
mpv_format.MPV_FORMAT_FLAG, out IntPtr lpBuffer); mpv_format.MPV_FORMAT_FLAG, out IntPtr lpBuffer);
HandleError(err, $"error getting property: {name}"); if (err < 0)
HandleError(err, $"error getting property: {name}");
return lpBuffer.ToInt32() != 0; return lpBuffer.ToInt32() != 0;
} }
@@ -762,14 +765,15 @@ namespace mpvnet
{ {
long val = value ? 1 : 0; long val = value ? 1 : 0;
mpv_error err = mpv_set_property(Handle, GetUtf8Bytes(name), mpv_format.MPV_FORMAT_FLAG, ref val); mpv_error err = mpv_set_property(Handle, GetUtf8Bytes(name), mpv_format.MPV_FORMAT_FLAG, ref val);
HandleError(err, $"error setting property: {name} = {value}"); if (err < 0)
HandleError(err, $"error setting property: {name} = {value}");
} }
public int GetPropertyInt(string name) public int GetPropertyInt(string name)
{ {
mpv_error err = mpv_get_property(Handle, GetUtf8Bytes(name), mpv_error err = mpv_get_property(Handle, GetUtf8Bytes(name),
mpv_format.MPV_FORMAT_INT64, out IntPtr lpBuffer); mpv_format.MPV_FORMAT_INT64, out IntPtr lpBuffer);
if (App.DebugMode) if (err < 0 && (App.DebugMode || App.DebuggerAttached))
HandleError(err, $"error getting property: {name}"); HandleError(err, $"error getting property: {name}");
return lpBuffer.ToInt32(); return lpBuffer.ToInt32();
} }
@@ -778,20 +782,23 @@ namespace mpvnet
{ {
long val = value; long val = value;
mpv_error err = mpv_set_property(Handle, GetUtf8Bytes(name), mpv_format.MPV_FORMAT_INT64, ref val); mpv_error err = mpv_set_property(Handle, GetUtf8Bytes(name), mpv_format.MPV_FORMAT_INT64, ref val);
HandleError(err, $"error setting property: {name} = {value}"); if (err < 0)
HandleError(err, $"error setting property: {name} = {value}");
} }
public void SetPropertyLong(string name, long value) public void SetPropertyLong(string name, long value)
{ {
mpv_error err = mpv_set_property(Handle, GetUtf8Bytes(name), mpv_format.MPV_FORMAT_INT64, ref value); mpv_error err = mpv_set_property(Handle, GetUtf8Bytes(name), mpv_format.MPV_FORMAT_INT64, ref value);
HandleError(err, $"error setting property: {name} = {value}"); if (err < 0)
HandleError(err, $"error setting property: {name} = {value}");
} }
public long GetPropertyLong(string name) public long GetPropertyLong(string name)
{ {
mpv_error err = mpv_get_property(Handle, GetUtf8Bytes(name), mpv_error err = mpv_get_property(Handle, GetUtf8Bytes(name),
mpv_format.MPV_FORMAT_INT64, out IntPtr lpBuffer); mpv_format.MPV_FORMAT_INT64, out IntPtr lpBuffer);
HandleError(err, $"error getting property: {name}"); if (err < 0)
HandleError(err, $"error getting property: {name}");
return lpBuffer.ToInt64(); return lpBuffer.ToInt64();
} }
@@ -799,7 +806,7 @@ namespace mpvnet
{ {
mpv_error err = mpv_get_property(Handle, GetUtf8Bytes(name), mpv_error err = mpv_get_property(Handle, GetUtf8Bytes(name),
mpv_format.MPV_FORMAT_DOUBLE, out double value); mpv_format.MPV_FORMAT_DOUBLE, out double value);
if (App.DebugMode) if (err < 0 && (App.DebugMode || App.DebuggerAttached))
HandleError(err, $"error getting property: {name}"); HandleError(err, $"error getting property: {name}");
return value; return value;
} }
@@ -808,7 +815,8 @@ namespace mpvnet
{ {
double val = value; double val = value;
mpv_error err = mpv_set_property(Handle, GetUtf8Bytes(name), mpv_format.MPV_FORMAT_DOUBLE, ref val); mpv_error err = mpv_set_property(Handle, GetUtf8Bytes(name), mpv_format.MPV_FORMAT_DOUBLE, ref val);
HandleError(err, $"error setting property: {name} = {value}"); if (err < 0)
HandleError(err, $"error setting property: {name} = {value}");
} }
public string GetPropertyString(string name) public string GetPropertyString(string name)
@@ -823,7 +831,7 @@ namespace mpvnet
return ret; return ret;
} }
if (App.DebugMode) if (err < 0 && (App.DebugMode || App.DebuggerAttached))
HandleError(err, $"error getting property: {name}"); HandleError(err, $"error getting property: {name}");
return ""; return "";
@@ -833,7 +841,8 @@ namespace mpvnet
{ {
byte[] bytes = GetUtf8Bytes(value); byte[] bytes = GetUtf8Bytes(value);
mpv_error err = mpv_set_property(Handle, GetUtf8Bytes(name), mpv_format.MPV_FORMAT_STRING, ref bytes); mpv_error err = mpv_set_property(Handle, GetUtf8Bytes(name), mpv_format.MPV_FORMAT_STRING, ref bytes);
HandleError(err, $"error setting property: {name} = " + value); if (err < 0)
HandleError(err, $"error setting property: {name} = " + value);
} }
public string GetPropertyOsdString(string name) public string GetPropertyOsdString(string name)
@@ -848,7 +857,9 @@ namespace mpvnet
return ret; return ret;
} }
HandleError(err, $"error getting property: {name}"); if (err < 0)
HandleError(err, $"error getting property: {name}");
return ""; return "";
} }
@@ -972,13 +983,10 @@ namespace mpvnet
public void HandleError(mpv_error err, params string[] messages) public void HandleError(mpv_error err, params string[] messages)
{ {
if (err < 0) foreach (string msg in messages)
{ Terminal.WriteError(msg);
foreach (string msg in messages)
Terminal.WriteError(msg);
Terminal.WriteError(GetError(err)); Terminal.WriteError(GetError(err));
}
} }
public void ProcessCommandLine(bool preInit) public void ProcessCommandLine(bool preInit)