summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/libflash/adpcm.h
Side-by-side diff
Diffstat (limited to 'core/multimedia/opieplayer/libflash/adpcm.h') (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/libflash/adpcm.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/core/multimedia/opieplayer/libflash/adpcm.h b/core/multimedia/opieplayer/libflash/adpcm.h
new file mode 100644
index 0000000..5714c0c
--- a/dev/null
+++ b/core/multimedia/opieplayer/libflash/adpcm.h
@@ -0,0 +1,36 @@
+#ifndef _ADPCM_H_
+#define _ADPCM_H_
+
+class Adpcm {
+
+ // Destination format - note we always decompress to 16 bit
+ long stereo;
+ int nBits; // number of bits in each sample
+
+ long valpred[2]; // Current state
+ int index[2];
+
+ long nSamples; // number of samples decompressed so far
+
+ // Parsing Info
+ unsigned char *src;
+ long bitBuf; // this should always contain at least 24 bits of data
+ int bitPos;
+
+ void FillBuffer();
+
+ long GetBits(int n);
+
+ long GetSBits(int n);
+
+public:
+ Adpcm(unsigned char *buffer, long isStereo);
+
+ void Decompress(short * dst, long n); // return number of good samples
+#ifdef DUMP
+ void dump(BitStream *bs);
+ void Compress(short *pcm, long n, int bits);
+#endif
+};
+
+#endif /* _ADPCM_H_ */