2019-12-13 13:17:05 -07:00
using System.Diagnostics.CodeAnalysis ;
2019-09-14 21:27:42 -07:00
using System.Globalization ;
using SkiaSharp ;
namespace Jellyfin.Drawing.Skia
{
/// <summary>
/// Represents errors that occur during interaction with Skia codecs.
/// </summary>
2019-12-13 13:17:05 -07:00
[SuppressMessage("Design", "CA1032:Implement standard exception constructors", Justification = "A custom property, CodecResult, is required when creating this exception type.")]
2019-09-14 21:27:42 -07:00
public class SkiaCodecException : SkiaException
{
/// <summary>
2019-12-13 13:17:05 -07:00
/// Returns the non-successful codec result returned by Skia.
2019-09-14 21:27:42 -07:00
/// </summary>
2019-12-13 13:17:05 -07:00
/// <value>The non-successful codec result returned by Skia.</value>
2019-09-14 21:27:42 -07:00
public SKCodecResult CodecResult { get ; }
/// <summary>
/// Initializes a new instance of the <see cref="SkiaCodecException" /> class.
/// </summary>
2019-12-13 13:17:05 -07:00
/// <param name="result">The non-successful codec result returned by Skia.</param>
2019-09-14 21:27:42 -07:00
public SkiaCodecException ( SKCodecResult result ) : base ( )
{
CodecResult = result ;
}
/// <summary>
/// Initializes a new instance of the <see cref="SkiaCodecException" /> class
/// with a specified error message.
/// </summary>
2019-12-13 13:17:05 -07:00
/// <param name="result">The non-successful codec result returned by Skia.</param>
2019-09-14 21:27:42 -07:00
/// <param name="message">The message that describes the error.</param>
public SkiaCodecException ( SKCodecResult result , string message )
: base ( message )
{
CodecResult = result ;
}
/// <inheritdoc />
public override string ToString ( )
= > string . Format (
CultureInfo . InvariantCulture ,
"Non-success codec result: {0}\n{1}" ,
CodecResult ,
2019-12-13 13:17:05 -07:00
base . ToString ( ) ) ;
2019-09-14 21:27:42 -07:00
}
}