aboutsummaryrefslogtreecommitdiff
path: root/engines/cge/wav.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/cge/wav.h')
-rw-r--r--engines/cge/wav.h175
1 files changed, 93 insertions, 82 deletions
diff --git a/engines/cge/wav.h b/engines/cge/wav.h
index a8da4f9e72..6d46769cf9 100644
--- a/engines/cge/wav.h
+++ b/engines/cge/wav.h
@@ -25,117 +25,128 @@
* Copyright (c) 1994-1995 Janus B. Wisniewski and L.K. Avalon
*/
-#ifndef __WAV__
-#define __WAV__
+#ifndef __WAV__
+#define __WAV__
-#include "cge/general.h"
-#include <string.h>
+#include "cge/general.h"
+#include <string.h>
namespace CGE {
-#define WAVE_FORMAT_PCM 0x0001
-#define IBM_FORMAT_MULAW 0x0101
-#define IBM_FORMAT_ALAW 0x0102
-#define IBM_FORMAT_ADPCM 0x0103
+#define WAVE_FORMAT_PCM 0x0001
+#define IBM_FORMAT_MULAW 0x0101
+#define IBM_FORMAT_ALAW 0x0102
+#define IBM_FORMAT_ADPCM 0x0103
+typedef char FOURCC[4]; // Four-character code
+typedef uint32 CKSIZE; // 32-bit unsigned size
-typedef char FOURCC[4]; // Four-character code
-typedef uint32 CKSIZE; // 32-bit unsigned size
-
-class CKID // Chunk type identifier
-{
- union { FOURCC Tx; uint32 Id; };
+class CKID { // Chunk type identifier
+ union {
+ FOURCC Tx;
+ uint32 Id;
+ };
protected:
- static XFILE * ckFile;
+ static XFILE *ckFile;
public:
- CKID (FOURCC t) { memcpy(Tx, t, sizeof(Tx)); }
- CKID (uint32 d) { Id = d; }
- CKID (XFILE * xf) { (ckFile = xf)->Read(Tx, sizeof(Tx)); }
- bool operator !=(CKID& X) { return Id != X.Id; }
- bool operator ==(CKID& X) { return Id == X.Id; }
- const char * Name (void);
+ CKID(FOURCC t) {
+ memcpy(Tx, t, sizeof(Tx));
+ }
+ CKID(uint32 d) {
+ Id = d;
+ }
+ CKID(XFILE *xf) {
+ (ckFile = xf)->Read(Tx, sizeof(Tx));
+ }
+ bool operator !=(CKID &X) {
+ return Id != X.Id;
+ }
+ bool operator ==(CKID &X) {
+ return Id == X.Id;
+ }
+ const char *Name(void);
};
-
-
-class CKHEA : public CKID
-{
+class CKHEA : public CKID {
protected:
- CKSIZE ckSize; // Chunk size field (size of ckData)
+ CKSIZE ckSize; // Chunk size field (size of ckData)
public:
- CKHEA (XFILE * xf) : CKID(xf) { XRead(xf, &ckSize); }
- CKHEA (char id[]) : CKID(id), ckSize(0) { }
- void Skip (void);
- CKSIZE Size (void) { return ckSize; }
+ CKHEA(XFILE *xf) : CKID(xf) {
+ XRead(xf, &ckSize);
+ }
+ CKHEA(char id[]) : CKID(id), ckSize(0) { }
+ void Skip(void);
+ CKSIZE Size(void) {
+ return ckSize;
+ }
};
-
-
-
-class FMTCK : public CKHEA
-{
- struct WAV
- {
- uint16 wFormatTag; // Format category
- uint16 wChannels; // Number of channels
- uint32 dwSamplesPerSec; // Sampling rate
- uint32 dwAvgBytesPerSec; // For buffer estimation
- uint16 wBlockAlign; // Data block size
- } Wav;
-
- union
- {
- struct PCM
- {
- uint16 wBitsPerSample; // Sample size
- } Pcm;
- };
+class FMTCK : public CKHEA {
+ struct WAV {
+ uint16 wFormatTag; // Format category
+ uint16 wChannels; // Number of channels
+ uint32 dwSamplesPerSec; // Sampling rate
+ uint32 dwAvgBytesPerSec; // For buffer estimation
+ uint16 wBlockAlign; // Data block size
+ } Wav;
+
+ union {
+ struct PCM {
+ uint16 wBitsPerSample; // Sample size
+ } Pcm;
+ };
public:
- FMTCK (CKHEA& hea);
- inline uint16 Channels (void) { return Wav.wChannels; }
- inline uint32 SmplRate (void) { return Wav.dwSamplesPerSec; }
- inline uint32 ByteRate (void) { return Wav.dwAvgBytesPerSec; }
- inline uint16 BlckSize (void) { return Wav.wBlockAlign; }
- inline uint16 SmplSize (void) { return Pcm.wBitsPerSample; }
+ FMTCK(CKHEA &hea);
+ inline uint16 Channels(void) {
+ return Wav.wChannels;
+ }
+ inline uint32 SmplRate(void) {
+ return Wav.dwSamplesPerSec;
+ }
+ inline uint32 ByteRate(void) {
+ return Wav.dwAvgBytesPerSec;
+ }
+ inline uint16 BlckSize(void) {
+ return Wav.wBlockAlign;
+ }
+ inline uint16 SmplSize(void) {
+ return Pcm.wBitsPerSample;
+ }
};
-
-
-
-class DATACK : public CKHEA
-{
- bool e;
- union
- {
- uint8 * Buf;
- EMS * EBuf;
- };
+class DATACK : public CKHEA {
+ bool e;
+ union {
+ uint8 *Buf;
+ EMS *EBuf;
+ };
public:
- DATACK (CKHEA& hea);
- DATACK (CKHEA& hea, EMM * emm);
- DATACK (int first, int last);
- ~DATACK (void);
- inline uint8 * Addr (void) { return Buf; }
- inline EMS * EAddr (void) { return EBuf; }
+ DATACK(CKHEA &hea);
+ DATACK(CKHEA &hea, EMM *emm);
+ DATACK(int first, int last);
+ ~DATACK(void);
+ inline uint8 *Addr(void) {
+ return Buf;
+ }
+ inline EMS *EAddr(void) {
+ return EBuf;
+ }
};
+extern CKID RIFF;
+extern CKID WAVE;
+extern CKID FMT;
+extern CKID DATA;
-extern CKID RIFF;
-extern CKID WAVE;
-extern CKID FMT;
-extern CKID DATA;
-
-
-DATACK * LoadWave (XFILE * file, EMM * emm = NULL);
+DATACK *LoadWave(XFILE *file, EMM *emm = NULL);
} // End of namespace CGE
-
#endif