FFMpegCore/FFMpegCore/FFMPEG/Argument/Argument.cs
Malte Rosenbjerg 7d77c33609 Remove ArgumentStringifier + cleanup
No reason to split the responsibility


Former-commit-id: 0e2c788796
2020-02-27 20:16:17 +01:00

61 lines
1.5 KiB
C#

namespace FFMpegCore.FFMPEG.Argument
{
/// <summary>
/// Abstract class implements basic functionality of ffmpeg arguments
/// </summary>
public abstract class Argument
{
/// <summary>
/// String representation of the argument
/// </summary>
/// <returns>String representation of the argument</returns>
public abstract string GetStringValue();
public override string ToString()
{
return GetStringValue();
}
}
/// <summary>
/// Abstract class implements basic functionality of ffmpeg arguments with one value property
/// </summary>
public abstract class Argument<T> : Argument
{
/// <summary>
/// Value type of <see cref="T"/>
/// </summary>
public T Value { get; protected set; }
public Argument() { }
public Argument(T value)
{
Value = value;
}
}
/// <summary>
/// Abstract class implements basic functionality of ffmpeg arguments with two values properties
/// </summary>
public abstract class Argument<T1, T2> : Argument
{
/// <summary>
/// First value type of <see cref="T"/>
/// </summary>
public T1 First { get; set; }
/// <summary>
/// Second value type of <see cref="T"/>
/// </summary>
public T2 Second { get; set; }
public Argument() { }
public Argument(T1 first, T2 second)
{
First = first;
Second = second;
}
}
}