mirror of
https://github.com/vgmstream/vgmstream.git
synced 2025-02-11 08:33:02 +01:00
The layout was designed to do subframe deinterleave (when less-than-a-frame bytes of each channel are interleaved) in an array and pass it to "mem" decoders. In practice this only happens in a handful of formats, was only used with DSP, and since making "mem" decoders is required it's simpler to make normal decoders handling the byte layout directly. In an effort to simplify vgmstream's layouts, code, and other esoteric features I changed the old decode_ngc_dsp_mem for decode_ngc_dsp_subint; results are byte-exact.
83 lines
2.9 KiB
C
83 lines
2.9 KiB
C
#ifndef _LAYOUT_H
|
|
#define _LAYOUT_H
|
|
|
|
#include "../streamtypes.h"
|
|
#include "../vgmstream.h"
|
|
|
|
/* blocked layouts */
|
|
void render_vgmstream_blocked(sample * buffer, int32_t sample_count, VGMSTREAM * vgmstream);
|
|
|
|
void ast_block_update(off_t block_ofset, VGMSTREAM * vgmstream);
|
|
|
|
void mxch_block_update(off_t block_ofset, VGMSTREAM * vgmstream);
|
|
|
|
void halpst_block_update(off_t block_ofset, VGMSTREAM * vgmstream);
|
|
|
|
void xa_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void block_update_ea_schl(off_t block_offset, VGMSTREAM * vgmstream);
|
|
void block_update_ea_1snh(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void caf_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void wsi_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void str_snds_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void ws_aud_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void matx_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void block_update_dec(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void vs_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void emff_ps2_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void emff_ngc_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void gsb_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void xvas_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void thp_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void filp_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void block_update_ivaud(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void psx_mgav_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void ps2_adm_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void dsp_bdsp_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void tra_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void ps2_iab_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void ps2_strlr_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void rws_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void hwas_block_update(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
void block_update_ea_sns(off_t block_offset, VGMSTREAM * vgmstream);
|
|
void block_update_awc(off_t block_offset, VGMSTREAM * vgmstream);
|
|
void block_update_vgs(off_t block_offset, VGMSTREAM * vgmstream);
|
|
|
|
/* other layouts */
|
|
void render_vgmstream_interleave(sample * buffer, int32_t sample_count, VGMSTREAM * vgmstream);
|
|
|
|
void render_vgmstream_nolayout(sample * buffer, int32_t sample_count, VGMSTREAM * vgmstream);
|
|
|
|
void render_vgmstream_mus_acm(sample * buffer, int32_t sample_count, VGMSTREAM * vgmstream);
|
|
|
|
void render_vgmstream_aix(sample * buffer, int32_t sample_count, VGMSTREAM * vgmstream);
|
|
|
|
void render_vgmstream_aax(sample * buffer, int32_t sample_count, VGMSTREAM * vgmstream);
|
|
|
|
void render_vgmstream_scd_int(sample * buffer, int32_t sample_count, VGMSTREAM * vgmstream);
|
|
|
|
#endif
|