mirror of
https://github.com/claunia/cuetools.net.git
synced 2025-12-16 18:14:25 +00:00
initial checkin
This commit is contained in:
57
MAC_SDK/Source/MACLib/APEHeader.h
Normal file
57
MAC_SDK/Source/MACLib/APEHeader.h
Normal file
@@ -0,0 +1,57 @@
|
||||
#ifndef APE_HEADER_H
|
||||
#define APE_HEADER_H
|
||||
|
||||
/*****************************************************************************************
|
||||
APE header that all APE files have in common (old and new)
|
||||
*****************************************************************************************/
|
||||
struct APE_COMMON_HEADER
|
||||
{
|
||||
char cID[4]; // should equal 'MAC '
|
||||
uint16 nVersion; // version number * 1000 (3.81 = 3810)
|
||||
};
|
||||
|
||||
/*****************************************************************************************
|
||||
APE header structure for old APE files (3.97 and earlier)
|
||||
*****************************************************************************************/
|
||||
struct APE_HEADER_OLD
|
||||
{
|
||||
char cID[4]; // should equal 'MAC '
|
||||
uint16 nVersion; // version number * 1000 (3.81 = 3810)
|
||||
uint16 nCompressionLevel; // the compression level
|
||||
uint16 nFormatFlags; // any format flags (for future use)
|
||||
uint16 nChannels; // the number of channels (1 or 2)
|
||||
uint32 nSampleRate; // the sample rate (typically 44100)
|
||||
uint32 nHeaderBytes; // the bytes after the MAC header that compose the WAV header
|
||||
uint32 nTerminatingBytes; // the bytes after that raw data (for extended info)
|
||||
uint32 nTotalFrames; // the number of frames in the file
|
||||
uint32 nFinalFrameBlocks; // the number of samples in the final frame
|
||||
};
|
||||
|
||||
struct APE_FILE_INFO;
|
||||
class CIO;
|
||||
|
||||
/*****************************************************************************************
|
||||
CAPEHeader - makes managing APE headers a little smoother (and the format change as of 3.98)
|
||||
*****************************************************************************************/
|
||||
class CAPEHeader
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
CAPEHeader(CIO * pIO);
|
||||
~CAPEHeader();
|
||||
|
||||
int Analyze(APE_FILE_INFO * pInfo);
|
||||
|
||||
protected:
|
||||
|
||||
int AnalyzeCurrent(APE_FILE_INFO * pInfo);
|
||||
int AnalyzeOld(APE_FILE_INFO * pInfo);
|
||||
|
||||
int FindDescriptor(BOOL bSeek);
|
||||
|
||||
CIO * m_pIO;
|
||||
};
|
||||
|
||||
#endif // #ifndef APE_HEADER_H
|
||||
|
||||
Reference in New Issue
Block a user