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
00027 #ifndef FIFOMESSAGE_H
00028 #define FIFOMESSAGE_H
00029
00030 #include "ndstypes.h"
00031 #include <nds/touch.h>
00032
00037 typedef enum {
00038 SOUND_PLAY_MESSAGE = 0x1234,
00039 SOUND_PSG_MESSAGE = 0x1235,
00040 SOUND_NOISE_MESSAGE = 0x1236,
00041 MIC_RECORD_MESSAGE = 0x1237,
00042 MIC_BUFFER_FULL_MESSAGE = 0x1238,
00043 SYS_INPUT_MESSAGE = 0x1239
00044 }FifoMessageType;
00045
00046 typedef struct FifoMessage {
00047 u16 type;
00048
00049 union {
00050
00051 struct {
00052 u16 type;
00053 const void* data;
00054 u16 loopPoint;
00055 u16 dataSize;
00056 u16 freq;
00057 u8 volume;
00058 u8 pan;
00059 bool loop;
00060 u8 format;
00061 } SoundPlay;
00062
00063 struct{
00064 u16 freq;
00065 u8 dutyCycle;
00066 u8 volume;
00067 u8 pan;
00068 } SoundPsg;
00069
00070 struct{
00071 void* buffer;
00072 u32 bufferLength;
00073 u16 freq;
00074 u8 format;
00075 } MicRecord;
00076
00077 struct{
00078 void* buffer;
00079 u32 length;
00080 } MicBufferFull;
00081
00082 struct{
00083 touchPosition touch;
00084 u16 keys;
00085 } SystemInput;
00086 };
00087
00088 } ALIGN(4) FifoMessage;
00089
00090
00091 #endif