diff options
Diffstat (limited to 'common/quicktime_win32/AIFF.h')
| -rw-r--r-- | common/quicktime_win32/AIFF.h | 233 |
1 files changed, 233 insertions, 0 deletions
diff --git a/common/quicktime_win32/AIFF.h b/common/quicktime_win32/AIFF.h new file mode 100644 index 0000000..4b43879 --- /dev/null +++ b/common/quicktime_win32/AIFF.h @@ -0,0 +1,233 @@ +/* + File: AIFF.h + + Contains: Definition of AIFF file format components. + + Version: QuickTime 7.3 + + Copyright: (c) 2007 (c) 1989-2001 by Apple Computer, Inc., all rights reserved. + + Bugs?: For bug reports, consult the following page on + the World Wide Web: + + http://developer.apple.com/bugreporter/ + +*/ +#ifndef __AIFF__ +#define __AIFF__ + +#ifndef __MACTYPES__ +#include <MacTypes.h> +#endif + + + + +#if PRAGMA_ONCE +#pragma once +#endif + +#if PRAGMA_IMPORT +#pragma import on +#endif + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=mac68k +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(push, 2) +#elif PRAGMA_STRUCT_PACK + #pragma pack(2) +#endif + +enum { + AIFFID = FOUR_CHAR_CODE('AIFF'), + AIFCID = FOUR_CHAR_CODE('AIFC'), + FormatVersionID = FOUR_CHAR_CODE('FVER'), + CommonID = FOUR_CHAR_CODE('COMM'), + FORMID = FOUR_CHAR_CODE('FORM'), + SoundDataID = FOUR_CHAR_CODE('SSND'), + MarkerID = FOUR_CHAR_CODE('MARK'), + InstrumentID = FOUR_CHAR_CODE('INST'), + MIDIDataID = FOUR_CHAR_CODE('MIDI'), + AudioRecordingID = FOUR_CHAR_CODE('AESD'), + ApplicationSpecificID = FOUR_CHAR_CODE('APPL'), + CommentID = FOUR_CHAR_CODE('COMT'), + NameID = FOUR_CHAR_CODE('NAME'), + AuthorID = FOUR_CHAR_CODE('AUTH'), + CopyrightID = FOUR_CHAR_CODE('(c) '), + AnnotationID = FOUR_CHAR_CODE('ANNO') +}; + +enum { + NoLooping = 0, + ForwardLooping = 1, + ForwardBackwardLooping = 2 +}; + +enum { + /* AIFF-C Versions */ + AIFCVersion1 = (long)0xA2805140 +}; + +/* Compression Names */ +#define NoneName "\pnot compressed" +#define ACE2to1Name "\pACE 2-to-1" +#define ACE8to3Name "\pACE 8-to-3" +#define MACE3to1Name "\pMACE 3-to-1" +#define MACE6to1Name "\pMACE 6-to-1" +enum { + /* Compression Types */ + NoneType = FOUR_CHAR_CODE('NONE'), + ACE2Type = FOUR_CHAR_CODE('ACE2'), + ACE8Type = FOUR_CHAR_CODE('ACE8'), + MACE3Type = FOUR_CHAR_CODE('MAC3'), + MACE6Type = FOUR_CHAR_CODE('MAC6') +}; + +typedef unsigned long ID; +typedef short MarkerIdType; +struct ChunkHeader { + ID ckID; + long ckSize; +}; +typedef struct ChunkHeader ChunkHeader; +struct ContainerChunk { + ID ckID; + long ckSize; + ID formType; +}; +typedef struct ContainerChunk ContainerChunk; +struct FormatVersionChunk { + ID ckID; + long ckSize; + unsigned long timestamp; +}; +typedef struct FormatVersionChunk FormatVersionChunk; +typedef FormatVersionChunk * FormatVersionChunkPtr; +struct CommonChunk { + ID ckID; + long ckSize; + short numChannels; + unsigned long numSampleFrames; + short sampleSize; + extended80 sampleRate; +}; +typedef struct CommonChunk CommonChunk; +typedef CommonChunk * CommonChunkPtr; +struct ExtCommonChunk { + ID ckID; + long ckSize; + short numChannels; + unsigned long numSampleFrames; + short sampleSize; + extended80 sampleRate; + ID compressionType; + char compressionName[1]; /* variable length array, Pascal string */ +}; +typedef struct ExtCommonChunk ExtCommonChunk; +typedef ExtCommonChunk * ExtCommonChunkPtr; +struct SoundDataChunk { + ID ckID; + long ckSize; + unsigned long offset; + unsigned long blockSize; +}; +typedef struct SoundDataChunk SoundDataChunk; +typedef SoundDataChunk * SoundDataChunkPtr; +struct Marker { + MarkerIdType id; + unsigned long position; + Str255 markerName; +}; +typedef struct Marker Marker; +struct MarkerChunk { + ID ckID; + long ckSize; + unsigned short numMarkers; + Marker Markers[1]; /* variable length array */ +}; +typedef struct MarkerChunk MarkerChunk; +typedef MarkerChunk * MarkerChunkPtr; +struct AIFFLoop { + short playMode; + MarkerIdType beginLoop; + MarkerIdType endLoop; +}; +typedef struct AIFFLoop AIFFLoop; +struct InstrumentChunk { + ID ckID; + long ckSize; + UInt8 baseFrequency; + UInt8 detune; + UInt8 lowFrequency; + UInt8 highFrequency; + UInt8 lowVelocity; + UInt8 highVelocity; + short gain; + AIFFLoop sustainLoop; + AIFFLoop releaseLoop; +}; +typedef struct InstrumentChunk InstrumentChunk; +typedef InstrumentChunk * InstrumentChunkPtr; +struct MIDIDataChunk { + ID ckID; + long ckSize; + UInt8 MIDIdata[1]; /* variable length array */ +}; +typedef struct MIDIDataChunk MIDIDataChunk; +typedef MIDIDataChunk * MIDIDataChunkPtr; +struct AudioRecordingChunk { + ID ckID; + long ckSize; + UInt8 AESChannelStatus[24]; +}; +typedef struct AudioRecordingChunk AudioRecordingChunk; +typedef AudioRecordingChunk * AudioRecordingChunkPtr; +struct ApplicationSpecificChunk { + ID ckID; + long ckSize; + OSType applicationSignature; + UInt8 data[1]; /* variable length array */ +}; +typedef struct ApplicationSpecificChunk ApplicationSpecificChunk; +typedef ApplicationSpecificChunk * ApplicationSpecificChunkPtr; +struct Comment { + unsigned long timeStamp; + MarkerIdType marker; + unsigned short count; + char text[1]; /* variable length array, Pascal string */ +}; +typedef struct Comment Comment; +struct CommentsChunk { + ID ckID; + long ckSize; + unsigned short numComments; + Comment comments[1]; /* variable length array */ +}; +typedef struct CommentsChunk CommentsChunk; +typedef CommentsChunk * CommentsChunkPtr; +struct TextChunk { + ID ckID; + long ckSize; + char text[1]; /* variable length array, Pascal string */ +}; +typedef struct TextChunk TextChunk; +typedef TextChunk * TextChunkPtr; + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=reset +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(pop) +#elif PRAGMA_STRUCT_PACK + #pragma pack() +#endif + +#ifdef PRAGMA_IMPORT_OFF +#pragma import off +#elif PRAGMA_IMPORT +#pragma import reset +#endif + + +#endif /* __AIFF__ */ + |