00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _sound_h_
00027 #define _sound_h_
00028
00043 #ifdef __cplusplus
00044 extern "C" {
00045 #endif
00046
00047 #include <nds/ndstypes.h>
00048
00049 typedef void (* MicCallback)(void* completedBuffer, int length);
00050
00052 typedef enum {
00053 SoundFormat_16Bit = 1,
00054 SoundFormat_8Bit = 0,
00055 SoundFormat_PSG = 3,
00056 SoundFormat_ADPCM = 2
00057 }SoundFormat;
00058
00060 typedef enum {
00061 MicFormat_8Bit = 1,
00062 MicFormat_12Bit = 0
00063 }MicFormat;
00064
00066 typedef enum {
00067 DutyCycle_0 = 7,
00068 DutyCycle_12 = 0,
00069 DutyCycle_25 = 1,
00070 DutyCycle_37 = 2,
00071 DutyCycle_50 = 3,
00072 DutyCycle_62 = 4,
00073 DutyCycle_75 = 5,
00074 DutyCycle_87 = 6
00075 }DutyCycle;
00076
00081 void soundEnable(void);
00082
00086 void soundDisable(void);
00087
00102 int soundPlaySample(const void* data, SoundFormat format, u32 dataSize, u16 freq, u8 volume, u8 pan, bool loop, u16 loopPoint);
00103
00113 int soundPlayPSG(DutyCycle cycle, u16 freq, u8 volume, u8 pan);
00114
00123 int soundPlayNoise(u16 freq, u8 volume, u8 pan);
00124
00129 void soundPause(int soundId);
00130
00136 void soundSetWaveDuty(int soundId, DutyCycle cycle);
00137
00142 void soundKill(int soundId);
00143
00148 void soundResume(int soundId);
00154 void soundSetVolume(int soundId, u8 volume);
00155
00161 void soundSetPan(int soundId, u8 pan);
00162
00168 void soundSetFreq(int soundId, u16 freq);
00169
00181 int soundMicRecord(void *buffer, u32 bufferLength, MicFormat format, int freq, MicCallback callback);
00182
00188 void soundMicOff(void);
00189
00190 #ifdef __cplusplus
00191 }
00192 #endif
00193
00194 #endif // _sound_h_