diff --git a/src/coding/coding.h b/src/coding/coding.h index 9c6f41a7..0df74d42 100644 --- a/src/coding/coding.h +++ b/src/coding/coding.h @@ -24,4 +24,6 @@ void decode_pcm8(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, void decode_psx(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); +void decode_xa(VGMSTREAMCHANNEL * stream, sample * outbuf, int channelspacing, int32_t first_sample, int32_t samples_to_do); + #endif diff --git a/src/layout/layout.h b/src/layout/layout.h index de310379..c4753bbd 100644 --- a/src/layout/layout.h +++ b/src/layout/layout.h @@ -10,6 +10,8 @@ void render_vgmstream_blocked(sample * buffer, int32_t sample_count, VGMSTREAM * void halpst_block_update(off_t block_ofset, VGMSTREAM * vgmstream); +void xa_block_update(off_t block_offset, VGMSTREAM * vgmstream); + void render_vgmstream_interleave(sample * buffer, int32_t sample_count, VGMSTREAM * vgmstream); void render_vgmstream_nolayout(sample * buffer, int32_t sample_count, VGMSTREAM * vgmstream); diff --git a/src/meta/psx_cdxa.c b/src/meta/psx_cdxa.c index aab82ee2..10219b8c 100644 --- a/src/meta/psx_cdxa.c +++ b/src/meta/psx_cdxa.c @@ -1,9 +1,12 @@ #include "meta.h" +#include "../layout/layout.h" #include "../util.h" /* Sony PSX CD-XA */ /* No looped file ! */ +off_t init_xa_channel(int channel,VGMSTREAM* vgmstream); + uint8_t AUDIO_CODING_GET_STEREO(uint8_t value) { return (uint8_t)(value & 3); } @@ -73,7 +76,7 @@ VGMSTREAM * init_vgmstream_cdxa(const char * const filename) { } } - xa_block_update(init_xa_channel(0),vgmstream); + xa_block_update(init_xa_channel(0,vgmstream),vgmstream); return vgmstream; @@ -103,4 +106,4 @@ begin: goto begin; } return block_offset; -} \ No newline at end of file +}