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 AutoPlay { get; set; }
public static bool DebuggerAttached { get; set; } = Debugger.IsAttached;
public static bool DebugMode { get; set; }
public static bool Exit { get; set; }
public static bool IsTerminalAttached { get; } = Environment.GetEnvironmentVariable("_started_from_console") == "yes";

View File

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