You've already forked pico-launcher
mirror of
https://github.com/LNH-team/pico-launcher.git
synced 2026-01-09 16:28:48 -08:00
103 lines
1.6 KiB
C
103 lines
1.6 KiB
C
#pragma once
|
|
#include "common.h"
|
|
|
|
#define BCSTM_FORMAT_DSP_ADPCM 2
|
|
|
|
struct bcstm_ref_t
|
|
{
|
|
u16 typeId;
|
|
u16 padding;
|
|
u32 offset;
|
|
};
|
|
|
|
struct bcstm_sized_ref_t
|
|
{
|
|
u16 typeId;
|
|
u16 padding;
|
|
u32 offset;
|
|
u32 size;
|
|
};
|
|
|
|
struct bcstm_ref_table_t
|
|
{
|
|
u32 count;
|
|
bcstm_ref_t references[1];
|
|
};
|
|
|
|
struct bcstm_header_t
|
|
{
|
|
u32 signature;
|
|
u16 endianness;
|
|
u16 headerSize;
|
|
u32 version;
|
|
u32 fileSize;
|
|
u16 nrBlocks;
|
|
u16 reserved;
|
|
bcstm_sized_ref_t infoBlockRef;
|
|
bcstm_sized_ref_t seekBlockRef;
|
|
bcstm_sized_ref_t dataBlockRef;
|
|
};
|
|
|
|
struct bcstm_info_stream_t
|
|
{
|
|
u8 format;
|
|
u8 loop;
|
|
u8 nrChannels;
|
|
u8 padding;
|
|
u32 sampleRate;
|
|
u32 loopStart;
|
|
u32 loopEnd;
|
|
u32 nrBlocks;
|
|
u32 blockSize;
|
|
u32 blockSampleCount;
|
|
u32 lastBlockSize;
|
|
u32 lastBlockSampleCount;
|
|
u32 lastBlockPaddedSize;
|
|
u32 seekEntrySize;
|
|
u32 seekInterval;
|
|
bcstm_ref_t dataRef;
|
|
};
|
|
|
|
struct bcstm_info_channel_t
|
|
{
|
|
bcstm_ref_t codecInfoRef;
|
|
};
|
|
|
|
struct bcstm_dspadpcm_context_t
|
|
{
|
|
u8 predictorAndScale;
|
|
u8 reserved;
|
|
s16 last1;
|
|
s16 last2;
|
|
};
|
|
|
|
struct alignas(4) bcstm_dspadpcm_t
|
|
{
|
|
s16 coefs[16];
|
|
bcstm_dspadpcm_context_t context;
|
|
bcstm_dspadpcm_context_t loopContext;
|
|
};
|
|
|
|
struct bcstm_info_t
|
|
{
|
|
u32 signature;
|
|
u32 sectionSize;
|
|
bcstm_ref_t streamInfoRef;
|
|
bcstm_ref_t trackInfoRef;
|
|
bcstm_ref_t channelInfoRef;
|
|
};
|
|
|
|
struct bcstm_seek_t
|
|
{
|
|
u32 signature;
|
|
u32 sectionSize;
|
|
u8 seekData[1];
|
|
};
|
|
|
|
struct bcstm_data_t
|
|
{
|
|
u32 signature;
|
|
u32 sectionSize;
|
|
u8 data[1];
|
|
};
|