libctru/libctru/include/3ds/services/csnd.h
2014-08-26 23:18:14 +02:00

31 lines
952 B
C

#pragma once
#define CSND_SHAREDMEM_DEFAULT 0x10004000
typedef enum{
CSND_LOOP_DISABLE,
CSND_LOOP_ENABLE
} CSND_LOOPING;
typedef enum{
CSND_ENCODING_PCM8,
CSND_ENCODING_PCM16,
CSND_ENCODING_IMA_ADPCM,
CSND_ENCODING_PSG//"3 = PSG, similar to DS?"
} CSND_ENCODING;
//See here regarding CSND shared-mem commands, etc: http://3dbrew.org/wiki/CSND_Shared_Memory
Result CSND_initialize(u32* sharedMem);
Result CSND_shutdown();
Result CSND_playsound(u32 channel, u32 looping, u32 encoding, u32 samplerate, u32 *vaddr0, u32 *vaddr1, u32 totalbytesize, u32 unk0, u32 unk1);
void CSND_setchannel_playbackstate(u32 channel, u32 value);
void CSND_sharedmemtype0_cmd0(u32 channel, u32 value);
void CSND_writesharedmem_cmdtype0(u16 cmdid, u8 *cmdparams);
Result CSND_sharedmemtype0_cmdupdatestate(int waitdone);
Result CSND_getchannelstate(u32 entryindex, u32 *out);
Result CSND_getchannelstate_isplaying(u32 entryindex, u8 *status);