diff options
author | Takamichi Horikawa <takamichiho@gmail.com> | 2016-11-26 20:57:57 +0900 |
---|---|---|
committer | Takamichi Horikawa <takamichiho@gmail.com> | 2016-11-26 20:57:57 +0900 |
commit | 6fd10cdacb5cbe47a4fc339c20a733d4a9a384a1 (patch) | |
tree | c7f479a70c350dca0b73d76078e46db41d9c4133 /libopna/opna.c |
initial
Diffstat (limited to 'libopna/opna.c')
-rw-r--r-- | libopna/opna.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libopna/opna.c b/libopna/opna.c new file mode 100644 index 0000000..4e198a0 --- /dev/null +++ b/libopna/opna.c @@ -0,0 +1,24 @@ +#include "opna.h" + +void opna_reset(struct opna *opna) { + opna_fm_reset(&opna->fm); + opna_ssg_reset(&opna->ssg); + opna_ssg_resampler_reset(&opna->resampler); + opna_drum_reset(&opna->drum); + opna_adpcm_reset(&opna->adpcm); +} + +void opna_writereg(struct opna *opna, unsigned reg, unsigned val) { + val &= 0xff; + opna_fm_writereg(&opna->fm, reg, val); + opna_ssg_writereg(&opna->ssg, reg, val); + opna_drum_writereg(&opna->drum, reg, val); + opna_adpcm_writereg(&opna->adpcm, reg, val); +} + +void opna_mix(struct opna *opna, int16_t *buf, unsigned samples) { + opna_fm_mix(&opna->fm, buf, samples); + opna_ssg_mix_55466(&opna->ssg, &opna->resampler, buf, samples); + opna_drum_mix(&opna->drum, buf, samples); + opna_adpcm_mix(&opna->adpcm, buf, samples); +} |