mirror of
https://github.com/claunia/cuetools.net.git
synced 2025-12-16 18:14:25 +00:00
CUETools.Codecs.FLAKE: split classes into separate files.
This commit is contained in:
@@ -59,15 +59,28 @@
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="ChannelMode.cs" />
|
||||
<Compile Include="FlacFrame.cs" />
|
||||
<Compile Include="FlacSubframe.cs" />
|
||||
<Compile Include="FlacSubframeInfo.cs" />
|
||||
<Compile Include="Flake.cs" />
|
||||
<Compile Include="FlakeReader.cs" />
|
||||
<Compile Include="FlakeWriter.cs" />
|
||||
<Compile Include="MetadataType.cs" />
|
||||
<Compile Include="OrderMethod.cs" />
|
||||
<Compile Include="PredictionType.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="RiceContext.cs" />
|
||||
<Compile Include="SeekPoint.cs" />
|
||||
<Compile Include="StereoMethod.cs" />
|
||||
<Compile Include="SubframeType.cs" />
|
||||
<Compile Include="WindowFunction.cs" />
|
||||
<Compile Include="WindowMethod.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\CUETools.Codecs\CUETools.Codecs.csproj">
|
||||
|
||||
11
CUETools.Codecs.FLAKE/ChannelMode.cs
Normal file
11
CUETools.Codecs.FLAKE/ChannelMode.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace CUETools.Codecs.FLAKE
|
||||
{
|
||||
public enum ChannelMode
|
||||
{
|
||||
NotStereo = 0,
|
||||
LeftRight = 1,
|
||||
LeftSide = 8,
|
||||
RightSide = 9,
|
||||
MidSide = 10
|
||||
}
|
||||
}
|
||||
95
CUETools.Codecs.FLAKE/FlacFrame.cs
Normal file
95
CUETools.Codecs.FLAKE/FlacFrame.cs
Normal file
@@ -0,0 +1,95 @@
|
||||
namespace CUETools.Codecs.FLAKE
|
||||
{
|
||||
unsafe public class FlacFrame
|
||||
{
|
||||
public int blocksize;
|
||||
public int bs_code0, bs_code1;
|
||||
public ChannelMode ch_mode;
|
||||
//public int ch_order0, ch_order1;
|
||||
public byte crc8;
|
||||
public FlacSubframeInfo[] subframes;
|
||||
public int frame_number;
|
||||
public FlacSubframe current;
|
||||
public float* window_buffer;
|
||||
|
||||
public BitWriter writer = null;
|
||||
public int writer_offset = 0;
|
||||
|
||||
public FlacFrame(int subframes_count)
|
||||
{
|
||||
subframes = new FlacSubframeInfo[subframes_count];
|
||||
for (int ch = 0; ch < subframes_count; ch++)
|
||||
subframes[ch] = new FlacSubframeInfo();
|
||||
current = new FlacSubframe();
|
||||
}
|
||||
|
||||
public void InitSize(int bs, bool vbs)
|
||||
{
|
||||
blocksize = bs;
|
||||
int i = 15;
|
||||
if (!vbs)
|
||||
{
|
||||
for (i = 0; i < 15; i++)
|
||||
{
|
||||
if (bs == Flake.flac_blocksizes[i])
|
||||
{
|
||||
bs_code0 = i;
|
||||
bs_code1 = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (i == 15)
|
||||
{
|
||||
if (blocksize <= 256)
|
||||
{
|
||||
bs_code0 = 6;
|
||||
bs_code1 = blocksize - 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
bs_code0 = 7;
|
||||
bs_code1 = blocksize - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void ChooseBestSubframe(int ch)
|
||||
{
|
||||
if (current.size >= subframes[ch].best.size)
|
||||
return;
|
||||
FlacSubframe tmp = subframes[ch].best;
|
||||
subframes[ch].best = current;
|
||||
current = tmp;
|
||||
}
|
||||
|
||||
public void SwapSubframes(int ch1, int ch2)
|
||||
{
|
||||
FlacSubframeInfo tmp = subframes[ch1];
|
||||
subframes[ch1] = subframes[ch2];
|
||||
subframes[ch2] = tmp;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Swap subframes according to channel mode.
|
||||
/// It is assumed that we have 4 subframes,
|
||||
/// 0 is right, 1 is left, 2 is middle, 3 is difference
|
||||
/// </summary>
|
||||
public void ChooseSubframes()
|
||||
{
|
||||
switch (ch_mode)
|
||||
{
|
||||
case ChannelMode.MidSide:
|
||||
SwapSubframes(0, 2);
|
||||
SwapSubframes(1, 3);
|
||||
break;
|
||||
case ChannelMode.RightSide:
|
||||
SwapSubframes(0, 3);
|
||||
break;
|
||||
case ChannelMode.LeftSide:
|
||||
SwapSubframes(1, 3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
21
CUETools.Codecs.FLAKE/FlacSubframe.cs
Normal file
21
CUETools.Codecs.FLAKE/FlacSubframe.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
namespace CUETools.Codecs.FLAKE
|
||||
{
|
||||
unsafe public class FlacSubframe
|
||||
{
|
||||
public FlacSubframe()
|
||||
{
|
||||
rc = new RiceContext();
|
||||
coefs = new int[lpc.MAX_LPC_ORDER];
|
||||
}
|
||||
public SubframeType type;
|
||||
public int order;
|
||||
public int* residual;
|
||||
public RiceContext rc;
|
||||
public uint size;
|
||||
|
||||
public int cbits;
|
||||
public int shift;
|
||||
public int[] coefs;
|
||||
public int window;
|
||||
};
|
||||
}
|
||||
37
CUETools.Codecs.FLAKE/FlacSubframeInfo.cs
Normal file
37
CUETools.Codecs.FLAKE/FlacSubframeInfo.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
|
||||
namespace CUETools.Codecs.FLAKE
|
||||
{
|
||||
unsafe public class FlacSubframeInfo
|
||||
{
|
||||
public FlacSubframeInfo()
|
||||
{
|
||||
best = new FlacSubframe();
|
||||
lpc_ctx = new LpcContext[lpc.MAX_LPC_WINDOWS];
|
||||
for (int i = 0; i < lpc.MAX_LPC_WINDOWS; i++)
|
||||
lpc_ctx[i] = new LpcContext();
|
||||
}
|
||||
|
||||
public void Init(int* s, int* r, int bps, int w)
|
||||
{
|
||||
if (w > bps)
|
||||
throw new Exception("internal error");
|
||||
samples = s;
|
||||
obits = bps - w;
|
||||
wbits = w;
|
||||
best.residual = r;
|
||||
best.type = SubframeType.Verbatim;
|
||||
best.size = AudioSamples.UINT32_MAX;
|
||||
for (int iWindow = 0; iWindow < lpc.MAX_LPC_WINDOWS; iWindow++)
|
||||
lpc_ctx[iWindow].Reset();
|
||||
done_fixed = 0;
|
||||
}
|
||||
|
||||
public FlacSubframe best;
|
||||
public int obits;
|
||||
public int wbits;
|
||||
public int* samples;
|
||||
public uint done_fixed;
|
||||
public LpcContext[] lpc_ctx;
|
||||
};
|
||||
}
|
||||
@@ -18,11 +18,7 @@
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using CUETools.Codecs;
|
||||
|
||||
namespace CUETools.Codecs.FLAKE
|
||||
{
|
||||
@@ -70,300 +66,4 @@ namespace CUETools.Codecs.FLAKE
|
||||
return (WindowFunction)(Enum.Parse(typeof(WindowFunction), name, true));
|
||||
}
|
||||
}
|
||||
|
||||
unsafe public class RiceContext
|
||||
{
|
||||
public RiceContext()
|
||||
{
|
||||
rparams = new int[Flake.MAX_PARTITIONS];
|
||||
esc_bps = new int[Flake.MAX_PARTITIONS];
|
||||
}
|
||||
/// <summary>
|
||||
/// partition order
|
||||
/// </summary>
|
||||
public int porder;
|
||||
|
||||
/// <summary>
|
||||
/// coding method: rice parameters use 4 bits for coding_method 0 and 5 bits for coding_method 1
|
||||
/// </summary>
|
||||
public int coding_method;
|
||||
|
||||
/// <summary>
|
||||
/// Rice parameters
|
||||
/// </summary>
|
||||
public int[] rparams;
|
||||
|
||||
/// <summary>
|
||||
/// bps if using escape code
|
||||
/// </summary>
|
||||
public int[] esc_bps;
|
||||
};
|
||||
|
||||
unsafe public class FlacSubframe
|
||||
{
|
||||
public FlacSubframe()
|
||||
{
|
||||
rc = new RiceContext();
|
||||
coefs = new int[lpc.MAX_LPC_ORDER];
|
||||
}
|
||||
public SubframeType type;
|
||||
public int order;
|
||||
public int* residual;
|
||||
public RiceContext rc;
|
||||
public uint size;
|
||||
|
||||
public int cbits;
|
||||
public int shift;
|
||||
public int[] coefs;
|
||||
public int window;
|
||||
};
|
||||
|
||||
unsafe public class FlacSubframeInfo
|
||||
{
|
||||
public FlacSubframeInfo()
|
||||
{
|
||||
best = new FlacSubframe();
|
||||
lpc_ctx = new LpcContext[lpc.MAX_LPC_WINDOWS];
|
||||
for (int i = 0; i < lpc.MAX_LPC_WINDOWS; i++)
|
||||
lpc_ctx[i] = new LpcContext();
|
||||
}
|
||||
|
||||
public void Init(int* s, int* r, int bps, int w)
|
||||
{
|
||||
if (w > bps)
|
||||
throw new Exception("internal error");
|
||||
samples = s;
|
||||
obits = bps - w;
|
||||
wbits = w;
|
||||
best.residual = r;
|
||||
best.type = SubframeType.Verbatim;
|
||||
best.size = AudioSamples.UINT32_MAX;
|
||||
for (int iWindow = 0; iWindow < lpc.MAX_LPC_WINDOWS; iWindow++)
|
||||
lpc_ctx[iWindow].Reset();
|
||||
done_fixed = 0;
|
||||
}
|
||||
|
||||
public FlacSubframe best;
|
||||
public int obits;
|
||||
public int wbits;
|
||||
public int* samples;
|
||||
public uint done_fixed;
|
||||
public LpcContext[] lpc_ctx;
|
||||
};
|
||||
|
||||
unsafe public class FlacFrame
|
||||
{
|
||||
public FlacFrame(int subframes_count)
|
||||
{
|
||||
subframes = new FlacSubframeInfo[subframes_count];
|
||||
for (int ch = 0; ch < subframes_count; ch++)
|
||||
subframes[ch] = new FlacSubframeInfo();
|
||||
current = new FlacSubframe();
|
||||
}
|
||||
|
||||
public void InitSize(int bs, bool vbs)
|
||||
{
|
||||
blocksize = bs;
|
||||
int i = 15;
|
||||
if (!vbs)
|
||||
{
|
||||
for (i = 0; i < 15; i++)
|
||||
{
|
||||
if (bs == Flake.flac_blocksizes[i])
|
||||
{
|
||||
bs_code0 = i;
|
||||
bs_code1 = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (i == 15)
|
||||
{
|
||||
if (blocksize <= 256)
|
||||
{
|
||||
bs_code0 = 6;
|
||||
bs_code1 = blocksize - 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
bs_code0 = 7;
|
||||
bs_code1 = blocksize - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void ChooseBestSubframe(int ch)
|
||||
{
|
||||
if (current.size >= subframes[ch].best.size)
|
||||
return;
|
||||
FlacSubframe tmp = subframes[ch].best;
|
||||
subframes[ch].best = current;
|
||||
current = tmp;
|
||||
}
|
||||
|
||||
public void SwapSubframes(int ch1, int ch2)
|
||||
{
|
||||
FlacSubframeInfo tmp = subframes[ch1];
|
||||
subframes[ch1] = subframes[ch2];
|
||||
subframes[ch2] = tmp;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Swap subframes according to channel mode.
|
||||
/// It is assumed that we have 4 subframes,
|
||||
/// 0 is right, 1 is left, 2 is middle, 3 is difference
|
||||
/// </summary>
|
||||
public void ChooseSubframes()
|
||||
{
|
||||
switch (ch_mode)
|
||||
{
|
||||
case ChannelMode.MidSide:
|
||||
SwapSubframes(0, 2);
|
||||
SwapSubframes(1, 3);
|
||||
break;
|
||||
case ChannelMode.RightSide:
|
||||
SwapSubframes(0, 3);
|
||||
break;
|
||||
case ChannelMode.LeftSide:
|
||||
SwapSubframes(1, 3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public int blocksize;
|
||||
public int bs_code0, bs_code1;
|
||||
public ChannelMode ch_mode;
|
||||
//public int ch_order0, ch_order1;
|
||||
public byte crc8;
|
||||
public FlacSubframeInfo[] subframes;
|
||||
public int frame_number;
|
||||
public FlacSubframe current;
|
||||
public float* window_buffer;
|
||||
|
||||
public BitWriter writer = null;
|
||||
public int writer_offset = 0;
|
||||
}
|
||||
|
||||
public enum OrderMethod
|
||||
{
|
||||
/// <summary>
|
||||
/// Select orders based on Akaike's criteria
|
||||
/// </summary>
|
||||
Akaike = 0
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Type of linear prediction
|
||||
/// </summary>
|
||||
public enum PredictionType
|
||||
{
|
||||
/// <summary>
|
||||
/// Verbatim
|
||||
/// </summary>
|
||||
None = 0,
|
||||
/// <summary>
|
||||
/// Fixed prediction only
|
||||
/// </summary>
|
||||
Fixed = 1,
|
||||
/// <summary>
|
||||
/// Levinson-Durbin recursion
|
||||
/// </summary>
|
||||
Levinson = 2,
|
||||
/// <summary>
|
||||
/// Exhaustive search
|
||||
/// </summary>
|
||||
Search = 3
|
||||
}
|
||||
|
||||
public enum StereoMethod
|
||||
{
|
||||
Independent = 0,
|
||||
Estimate = 1,
|
||||
Evaluate = 2,
|
||||
Search = 3
|
||||
}
|
||||
|
||||
public enum WindowMethod
|
||||
{
|
||||
Estimate = 0,
|
||||
Evaluate = 1,
|
||||
Search = 2
|
||||
}
|
||||
|
||||
public enum SubframeType
|
||||
{
|
||||
Constant = 0,
|
||||
Verbatim = 1,
|
||||
Fixed = 8,
|
||||
LPC = 32
|
||||
};
|
||||
|
||||
public enum ChannelMode
|
||||
{
|
||||
NotStereo = 0,
|
||||
LeftRight = 1,
|
||||
LeftSide = 8,
|
||||
RightSide = 9,
|
||||
MidSide = 10
|
||||
}
|
||||
|
||||
public enum WindowFunction
|
||||
{
|
||||
Welch = 1,
|
||||
Tukey = 2,
|
||||
Hann = 4,
|
||||
Flattop = 8,
|
||||
Bartlett = 16,
|
||||
TukeyFlattop = 10
|
||||
}
|
||||
|
||||
public struct SeekPoint
|
||||
{
|
||||
public long number;
|
||||
public long offset;
|
||||
public int framesize;
|
||||
}
|
||||
|
||||
public enum MetadataType
|
||||
{
|
||||
/// <summary>
|
||||
/// <A HREF="../format.html#metadata_block_streaminfo">STREAMINFO</A> block
|
||||
/// </summary>
|
||||
StreamInfo = 0,
|
||||
|
||||
/// <summary>
|
||||
/// <A HREF="../format.html#metadata_block_padding">PADDING</A> block
|
||||
/// </summary>
|
||||
Padding = 1,
|
||||
|
||||
/// <summary>
|
||||
/// <A HREF="../format.html#metadata_block_application">APPLICATION</A> block
|
||||
/// </summary>
|
||||
Application = 2,
|
||||
|
||||
/// <summary>
|
||||
/// <A HREF="../format.html#metadata_block_seektable">SEEKTABLE</A> block
|
||||
/// </summary>
|
||||
Seektable = 3,
|
||||
|
||||
/// <summary>
|
||||
/// <A HREF="../format.html#metadata_block_vorbis_comment">VORBISCOMMENT</A> block (a.k.a. FLAC tags)
|
||||
/// </summary>
|
||||
VorbisComment = 4,
|
||||
|
||||
/// <summary>
|
||||
/// <A HREF="../format.html#metadata_block_cuesheet">CUESHEET</A> block
|
||||
/// </summary>
|
||||
CUESheet = 5,
|
||||
|
||||
/// <summary>
|
||||
/// <A HREF="../format.html#metadata_block_picture">PICTURE</A> block
|
||||
/// </summary>
|
||||
Picture = 6,
|
||||
|
||||
/// <summary>
|
||||
/// marker to denote beginning of undefined type range; this number will increase as new metadata types are added
|
||||
/// </summary>
|
||||
Undefined = 7
|
||||
};
|
||||
}
|
||||
|
||||
45
CUETools.Codecs.FLAKE/MetadataType.cs
Normal file
45
CUETools.Codecs.FLAKE/MetadataType.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
namespace CUETools.Codecs.FLAKE
|
||||
{
|
||||
public enum MetadataType
|
||||
{
|
||||
/// <summary>
|
||||
/// <A HREF="../format.html#metadata_block_streaminfo">STREAMINFO</A> block
|
||||
/// </summary>
|
||||
StreamInfo = 0,
|
||||
|
||||
/// <summary>
|
||||
/// <A HREF="../format.html#metadata_block_padding">PADDING</A> block
|
||||
/// </summary>
|
||||
Padding = 1,
|
||||
|
||||
/// <summary>
|
||||
/// <A HREF="../format.html#metadata_block_application">APPLICATION</A> block
|
||||
/// </summary>
|
||||
Application = 2,
|
||||
|
||||
/// <summary>
|
||||
/// <A HREF="../format.html#metadata_block_seektable">SEEKTABLE</A> block
|
||||
/// </summary>
|
||||
Seektable = 3,
|
||||
|
||||
/// <summary>
|
||||
/// <A HREF="../format.html#metadata_block_vorbis_comment">VORBISCOMMENT</A> block (a.k.a. FLAC tags)
|
||||
/// </summary>
|
||||
VorbisComment = 4,
|
||||
|
||||
/// <summary>
|
||||
/// <A HREF="../format.html#metadata_block_cuesheet">CUESHEET</A> block
|
||||
/// </summary>
|
||||
CUESheet = 5,
|
||||
|
||||
/// <summary>
|
||||
/// <A HREF="../format.html#metadata_block_picture">PICTURE</A> block
|
||||
/// </summary>
|
||||
Picture = 6,
|
||||
|
||||
/// <summary>
|
||||
/// marker to denote beginning of undefined type range; this number will increase as new metadata types are added
|
||||
/// </summary>
|
||||
Undefined = 7
|
||||
}
|
||||
}
|
||||
10
CUETools.Codecs.FLAKE/OrderMethod.cs
Normal file
10
CUETools.Codecs.FLAKE/OrderMethod.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace CUETools.Codecs.FLAKE
|
||||
{
|
||||
public enum OrderMethod
|
||||
{
|
||||
/// <summary>
|
||||
/// Select orders based on Akaike's criteria
|
||||
/// </summary>
|
||||
Akaike = 0
|
||||
}
|
||||
}
|
||||
25
CUETools.Codecs.FLAKE/PredictionType.cs
Normal file
25
CUETools.Codecs.FLAKE/PredictionType.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
namespace CUETools.Codecs.FLAKE
|
||||
{
|
||||
/// <summary>
|
||||
/// Type of linear prediction
|
||||
/// </summary>
|
||||
public enum PredictionType
|
||||
{
|
||||
/// <summary>
|
||||
/// Verbatim
|
||||
/// </summary>
|
||||
None = 0,
|
||||
/// <summary>
|
||||
/// Fixed prediction only
|
||||
/// </summary>
|
||||
Fixed = 1,
|
||||
/// <summary>
|
||||
/// Levinson-Durbin recursion
|
||||
/// </summary>
|
||||
Levinson = 2,
|
||||
/// <summary>
|
||||
/// Exhaustive search
|
||||
/// </summary>
|
||||
Search = 3
|
||||
}
|
||||
}
|
||||
30
CUETools.Codecs.FLAKE/RiceContext.cs
Normal file
30
CUETools.Codecs.FLAKE/RiceContext.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
namespace CUETools.Codecs.FLAKE
|
||||
{
|
||||
unsafe public class RiceContext
|
||||
{
|
||||
public RiceContext()
|
||||
{
|
||||
rparams = new int[Flake.MAX_PARTITIONS];
|
||||
esc_bps = new int[Flake.MAX_PARTITIONS];
|
||||
}
|
||||
/// <summary>
|
||||
/// partition order
|
||||
/// </summary>
|
||||
public int porder;
|
||||
|
||||
/// <summary>
|
||||
/// coding method: rice parameters use 4 bits for coding_method 0 and 5 bits for coding_method 1
|
||||
/// </summary>
|
||||
public int coding_method;
|
||||
|
||||
/// <summary>
|
||||
/// Rice parameters
|
||||
/// </summary>
|
||||
public int[] rparams;
|
||||
|
||||
/// <summary>
|
||||
/// bps if using escape code
|
||||
/// </summary>
|
||||
public int[] esc_bps;
|
||||
};
|
||||
}
|
||||
9
CUETools.Codecs.FLAKE/SeekPoint.cs
Normal file
9
CUETools.Codecs.FLAKE/SeekPoint.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace CUETools.Codecs.FLAKE
|
||||
{
|
||||
public struct SeekPoint
|
||||
{
|
||||
public long number;
|
||||
public long offset;
|
||||
public int framesize;
|
||||
}
|
||||
}
|
||||
11
CUETools.Codecs.FLAKE/StereoMethod.cs
Normal file
11
CUETools.Codecs.FLAKE/StereoMethod.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
namespace CUETools.Codecs.FLAKE
|
||||
{
|
||||
public enum StereoMethod
|
||||
{
|
||||
Independent = 0,
|
||||
Estimate = 1,
|
||||
Evaluate = 2,
|
||||
Search = 3
|
||||
}
|
||||
}
|
||||
10
CUETools.Codecs.FLAKE/SubframeType.cs
Normal file
10
CUETools.Codecs.FLAKE/SubframeType.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace CUETools.Codecs.FLAKE
|
||||
{
|
||||
public enum SubframeType
|
||||
{
|
||||
Constant = 0,
|
||||
Verbatim = 1,
|
||||
Fixed = 8,
|
||||
LPC = 32
|
||||
}
|
||||
}
|
||||
12
CUETools.Codecs.FLAKE/WindowFunction.cs
Normal file
12
CUETools.Codecs.FLAKE/WindowFunction.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
namespace CUETools.Codecs.FLAKE
|
||||
{
|
||||
public enum WindowFunction
|
||||
{
|
||||
Welch = 1,
|
||||
Tukey = 2,
|
||||
Hann = 4,
|
||||
Flattop = 8,
|
||||
Bartlett = 16,
|
||||
TukeyFlattop = 10
|
||||
}
|
||||
}
|
||||
9
CUETools.Codecs.FLAKE/WindowMethod.cs
Normal file
9
CUETools.Codecs.FLAKE/WindowMethod.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace CUETools.Codecs.FLAKE
|
||||
{
|
||||
public enum WindowMethod
|
||||
{
|
||||
Estimate = 0,
|
||||
Evaluate = 1,
|
||||
Search = 2
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user