aboutsummaryrefslogtreecommitdiffhomepage
path: root/adpcm.h
diff options
context:
space:
mode:
Diffstat (limited to 'adpcm.h')
-rw-r--r--adpcm.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/adpcm.h b/adpcm.h
index 48c0116ae8..92ac77c73d 100644
--- a/adpcm.h
+++ b/adpcm.h
@@ -1,15 +1,27 @@
#ifndef ADPCM_H
#define ADPCM_H
+#define IMA_ADPCM_PREAMBLE_SIZE 2
#define IMA_ADPCM_BLOCK_SIZE 0x22
-#define IMA_ADPCM_SAMPLES_PER_BLOCK 0x40
+#define IMA_ADPCM_SAMPLES_PER_BLOCK \
+ ((IMA_ADPCM_BLOCK_SIZE - IMA_ADPCM_PREAMBLE_SIZE) * 2)
+#define MS_ADPCM_PREAMBLE_SIZE 7
#define MS_ADPCM_BLOCK_SIZE 256
-#define MS_ADPCM_SAMPLES_PER_BLOCK ((256 - 7) * 2)
+#define MS_ADPCM_SAMPLES_PER_BLOCK \
+ ((MS_ADPCM_BLOCK_SIZE - MS_ADPCM_PREAMBLE_SIZE) * 2)
+
+// pretend there's such a thing as mono for this format
+#define FOX62_ADPCM_PREAMBLE_SIZE 8
+#define FOX62_ADPCM_BLOCK_SIZE 0x400
+#define FOX62_ADPCM_SAMPLES_PER_BLOCK \
+ ((FOX62_ADPCM_BLOCK_SIZE - FOX62_ADPCM_PREAMBLE_SIZE) * 2)
int ima_adpcm_decode_block(unsigned short *output, unsigned char *input,
int channels);
int ms_adpcm_decode_block(unsigned short *output, unsigned char *input,
int channels);
+int fox62_adpcm_decode_block(unsigned short *output, unsigned char *input,
+ int channels);
#endif