Removed AudioEncoderSettings/AudioDecoderSettings classes, all of their functionality is now in IAudioEncoderSettings/IAudioDecoderSettings interfaces.

This commit is contained in:
Grigory Chudov
2018-03-25 17:24:27 -04:00
parent 50fcd93ab9
commit 320e75d709
98 changed files with 5274 additions and 4863 deletions

View File

@@ -11,7 +11,7 @@ namespace CUETools.Codecs.CommandLine
WAV.AudioDecoder rdr;
private DecoderSettings m_settings;
public AudioDecoderSettings Settings => m_settings;
public IAudioDecoderSettings Settings => m_settings;
public long Position
{

View File

@@ -30,7 +30,7 @@ namespace CUETools.Codecs.CommandLine
// !!!! Must not start the process in constructor, so that we can set CompressionLevel via Settings!
private EncoderSettings m_settings;
public AudioEncoderSettings Settings => m_settings;
public IAudioEncoderSettings Settings => m_settings;
public string Path { get { return _path; } }

View File

@@ -7,37 +7,48 @@ using Newtonsoft.Json;
namespace CUETools.Codecs.CommandLine
{
[JsonObject(MemberSerialization.OptIn)]
public class DecoderSettings : AudioDecoderSettings
public class DecoderSettings : IAudioDecoderSettings
{
public override string Name => name;
#region IAudioDecoderSettings implementation
[DefaultValue("")]
[JsonProperty]
public string Name { get; set; }
public override string Extension => extension;
[DefaultValue("")]
[JsonProperty]
public string Extension { get; set; }
[Browsable(false)]
public Type DecoderType => typeof(AudioDecoder);
[Browsable(false)]
public int Priority => 2;
public IAudioDecoderSettings Clone()
{
return MemberwiseClone() as IAudioDecoderSettings;
}
#endregion
public DecoderSettings()
: base()
{
this.Init();
}
public DecoderSettings(
string _name,
string _extension,
string _path,
string _parameters)
string name,
string extension,
string path,
string parameters)
: base()
{
name = _name;
extension = _extension;
Path = _path;
Parameters = _parameters;
Name = name;
Extension = extension;
Path = path;
Parameters = parameters;
}
[JsonProperty]
public string name;
[JsonProperty]
public string extension;
[DefaultValue(null)]
[DefaultValue("")]
[JsonProperty]
public string Path
{
@@ -45,7 +56,7 @@ namespace CUETools.Codecs.CommandLine
set;
}
[DefaultValue(null)]
[DefaultValue("")]
[JsonProperty]
public string Parameters
{

View File

@@ -7,50 +7,79 @@ using Newtonsoft.Json;
namespace CUETools.Codecs.CommandLine
{
[JsonObject(MemberSerialization.OptIn)]
public class EncoderSettings : AudioEncoderSettings
public class EncoderSettings : IAudioEncoderSettings
{
public override string Name => name;
#region IAudioEncoderSettings implementation
[DefaultValue("")]
[JsonProperty]
public string Name { get; set; }
public override string Extension => extension;
[DefaultValue("")]
[JsonProperty]
public string Extension { get; set; }
public override Type EncoderType => typeof(AudioEncoder);
[Browsable(false)]
public Type EncoderType => typeof(AudioEncoder);
public override bool Lossless => lossless;
[JsonProperty]
public bool Lossless { get; set; }
[Browsable(false)]
public int Priority => 0;
[DefaultValue("")]
[JsonProperty]
public string SupportedModes { get; set; }
public string DefaultMode => EncoderMode;
[Browsable(false)]
[DefaultValue("")]
[JsonProperty]
public string EncoderMode { get; set; }
[Browsable(false)]
public AudioPCMConfig PCM { get; set; }
[Browsable(false)]
public int BlockSize { get; set; }
[Browsable(false)]
[DefaultValue(4096)]
public int Padding { get; set; }
public IAudioEncoderSettings Clone()
{
return MemberwiseClone() as IAudioEncoderSettings;
}
#endregion
public EncoderSettings()
: base()
{
this.Init();
}
public EncoderSettings(
string _name,
string _extension,
bool _lossless,
string _supported_modes,
string _default_mode,
string _path,
string _parameters
string name,
string extension,
bool lossless,
string supportedModes,
string defaultMode,
string path,
string parameters
)
{
name = _name;
extension = _extension;
lossless = _lossless;
SupportedModes = _supported_modes;
EncoderMode = _default_mode;
Path = _path;
Parameters = _parameters;
this.Init();
Name = name;
Extension = extension;
Lossless = lossless;
SupportedModes = supportedModes;
Path = path;
EncoderMode = defaultMode;
Parameters = parameters;
}
[JsonProperty]
public string name;
[JsonProperty]
public string extension;
[JsonProperty]
public bool lossless;
[DefaultValue(null)]
[DefaultValue("")]
[JsonProperty]
public string Path
{
@@ -58,25 +87,12 @@ namespace CUETools.Codecs.CommandLine
set;
}
[DefaultValue(null)]
[DefaultValue("")]
[JsonProperty]
public string Parameters
{
get;
set;
}
[JsonProperty]
public string SupportedModes
{
get
{
return m_supported_modes;
}
set
{
m_supported_modes = value;
}
}
}
}