1 /* 2 Reggae definitions for FLAC format. 3 4 Reggae FLAC decoder and encoder give access to many format details and internals. 5 This file contains definitions for FLAC specific attributes and methods. 6 */ 7 8 #ifndef CLASSES_MULTIMEDIA_FLAC_H 9 #define CLASSES_MULTIMEDIA_FLAC_H 10 11 #include <classes/multimedia/multimedia.h> 12 13 14 /* methods (to override) */ 15 16 #define MMM_Flac_AcceptBlock (MMA_Dummy + 1100) 17 18 struct mmopFlacAcceptBlock 19 { 20 ULONG MethodID; 21 struct TagItem *BlockInfo; 22 }; 23 24 25 /* Attributes provided as a taglist sent to MMM_Flac_AcceptBlock(). */ 26 27 #define MMA_Flac_BlockData (MMA_Dummy + 1110) /* UBYTE*, pointer to FLAC data */ 28 #define MMA_Flac_BlockLength (MMA_Dummy + 1111) /* LONG, block length in bytes */ 29 #define MMA_Flac_HeaderLength (MMA_Dummy + 1112) /* LONG, block header length in bytes */ 30 #define MMA_Flac_HeaderChecksum (MMA_Dummy + 1113) /* UBYTE, CRC-8 checksum of header */ 31 #define MMA_Flac_ChecksumLoaded (MMA_Dummy + 1114) /* UWORD, CRC-16 of block as read from stream */ 32 #define MMA_Flac_ChecksumComputed (MMA_Dummy + 1115) /* UWORD, CRC-16 of block as calculated from data */ 33 #define MMA_Flac_StreamPosition (MMA_Dummy + 1116) /* QUAD*, block position in (headerless) stream */ 34 #define MMA_Flac_AudioFrames (MMA_Dummy + 1117) /* LONG, number of audio frames in block */ 35 #define MMA_Flac_VariableBlock (MMA_Dummy + 1118) /* BOOL, TRUE if blocking mode flag set for the block */ 36 #define MMA_Flac_SampleRate (MMA_Dummy + 1119) /* LONG, sample rate of block in Hz */ 37 #define MMA_Flac_Channels (MMA_Dummy + 1120) /* LONG, number of audio channels in block */ 38 #define MMA_Flac_StereoMode (MMA_Dummy + 1121) /* LONG, stereo decorrelation mode (see values below) */ 39 #define MMA_Flac_BitsPerSample (MMA_Dummy + 1122) /* LONG, bits per sample (already taken from demuxer if needed) */ 40 #define MMA_Flac_FirstAudioFrame (MMA_Dummy + 1123) /* QUAD*, first audio frame of block */ 41 42 /* Stereo decorrelation modes. */ 43 44 #define MMV_Flac_StereoMode_None 0 /* block is not stereo */ 45 #define MMV_Flac_StereoMode_LR 1 /* channel 0: left, channel 1: right */ 46 #define MMV_Flac_StereoMode_LS 2 /* channel 0: left, channel 1: side */ 47 #define MMV_Flac_StereoMode_SR 3 /* channel 0: side, channel 1: right */ 48 #define MMV_Flac_StereoMode_MS 4 /* channel 0: middle, channel 1: side */ 49 50 /* Subblock types. */ 51 52 #define MMV_Flac_SubType_Undefined 0 53 #define MMV_Flac_SubType_Constant 1 54 #define MMV_Flac_SubType_Verbatim 2 55 #define MMV_Flac_SubType_Fixed 3 56 #define MMV_Flac_SubType_LPC 4 57 58 59 #endif /* CLASSES_MULTIMEDIA_FLAC_H */