BuildCubeE/BootableMPW/Interfaces/CIncludes/AIFF.h

231 lines
4.1 KiB
C

/************************************************************
Created: Monday, December 2, 1991 at 5:00 PM
AIFF.h
C Interface to the Macintosh Libraries
Copyright Apple Computer, Inc. 1990-1991
All rights reserved
************************************************************/
#ifndef __AIFF__
#define __AIFF__
#ifndef __TYPES__
#include <Types.h>
#endif
enum {
#define AIFFID 'AIFF'
#define AIFCID 'AIFC'
#define FormatVersionID 'FVER'
#define CommonID 'COMM'
#define FORMID 'FORM'
#define SoundDataID 'SSND'
#define MarkerID 'MARK'
#define InstrumentID 'INST'
#define MIDIDataID 'MIDI'
#define AudioRecordingID 'AESD'
#define ApplicationSpecificID 'APPL'
#define CommentID 'COMT'
#define NameID 'NAME'
#define AuthorID 'AUTH'
#define CopyrightID '(c) '
#define AnnotationID 'ANNO'
NoLooping = 0,
ForwardLooping = 1,
ForwardBackwardLooping = 2,
/* AIFF-C Versions */
AIFCVersion1 = 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"
/* Compression Types */
#define NoneType 'NONE'
#define ACE2Type 'ACE2'
#define ACE8Type 'ACE8'
#define MACE3Type 'MAC3'
#define MACE6Type '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];
};
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];
};
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;
char baseFrequency;
char detune;
char lowFrequency;
char highFrequency;
char lowVelocity;
char highVelocity;
short gain;
AIFFLoop sustainLoop;
AIFFLoop releaseLoop;
};
typedef struct InstrumentChunk InstrumentChunk;
typedef InstrumentChunk *InstrumentChunkPtr;
struct MIDIDataChunk {
ID ckID;
long ckSize;
unsigned char MIDIdata[1];
};
typedef struct MIDIDataChunk MIDIDataChunk;
typedef MIDIDataChunk *MIDIDataChunkPtr;
struct AudioRecordingChunk {
ID ckID;
long ckSize;
unsigned char AESChannelStatus[24];
};
typedef struct AudioRecordingChunk AudioRecordingChunk;
typedef AudioRecordingChunk *AudioRecordingChunkPtr;
struct ApplicationSpecificChunk {
ID ckID;
long ckSize;
OSType applicationSignature;
char data[1];
};
typedef struct ApplicationSpecificChunk ApplicationSpecificChunk;
typedef ApplicationSpecificChunk *ApplicationSpecificChunkPtr;
struct Comment {
unsigned long timeStamp;
MarkerIdType marker;
unsigned short count;
char text[1];
};
typedef struct Comment Comment;
struct CommentsChunk {
ID ckID;
long ckSize;
unsigned short numComments;
Comment comments[1];
};
typedef struct CommentsChunk CommentsChunk;
typedef CommentsChunk *CommentsChunkPtr;
struct TextChunk {
ID ckID;
long ckSize;
char text[1];
};
typedef struct TextChunk TextChunk;
typedef TextChunk *TextChunkPtr;
#endif