Home | History | Annotate | Download | only in nds
      1 /*
      2     SDL - Simple DirectMedia Layer
      3     Copyright (C) 1997-2012 Sam Lantinga
      4 
      5     This library is free software; you can redistribute it and/or
      6     modify it under the terms of the GNU Lesser General Public
      7     License as published by the Free Software Foundation; either
      8     version 2.1 of the License, or (at your option) any later version.
      9 
     10     This library is distributed in the hope that it will be useful,
     11     but WITHOUT ANY WARRANTY; without even the implied warranty of
     12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13     Lesser General Public License for more details.
     14 
     15     You should have received a copy of the GNU Lesser General Public
     16     License along with this library; if not, write to the Free Software
     17     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
     18 
     19     Sam Lantinga
     20     slouken (at) libsdl.org
     21 */
     22 #include "SDL_config.h"
     23 
     24 #ifndef __SOUNDCOMMON_H
     25 #define __SOUNDCOMMON_H
     26 
     27 #include <nds.h>
     28 
     29 #define CLOCK (1 << 25)
     30 
     31 #ifdef __cplusplus
     32 extern "C" {
     33 #endif
     34 
     35 typedef enum
     36 {
     37 	NONE = 0,
     38 	INIT = 1,
     39 	MIX = 2,
     40 	MIXING = 4,
     41 	STOP = 8
     42 }CommandType;
     43 
     44 typedef enum
     45 {
     46 	FIFO_NONE = 0,
     47 	UPDATEON_ARM9 = 1,
     48 	MIXCOMPLETE_ONARM9 = 2,
     49 }FifoType;
     50 
     51 typedef struct
     52 {
     53 	s8 *mixbuffer;//,*soundbuffer;
     54 	u32 rate;
     55 	u32 buffersize;
     56 	u32 cmd;
     57 	u8 channel,format;
     58 	u32 soundcursor,numsamples;
     59 	s32 prevtimer;
     60 	s16 period;
     61 }S_SoundSystem;
     62 
     63 #define soundsystem ((S_SoundSystem*)((u32)(IPC)+sizeof(TransferRegion)))
     64 
     65 #ifdef ARM9
     66 extern void SoundSystemInit(u32 rate,u32 buffersize,u8 channel,u8 format);
     67 extern void SoundStartMixer(void);
     68 extern void SendCommandToArm7(u32 command);
     69 #else
     70 extern void SoundVBlankIrq(void);
     71 extern void SoundSwapAndMix(void);
     72 extern void SoundSetTimer(int period);
     73 extern void SoundFifoHandler(void);
     74 extern void SendCommandToArm9(u32 command);
     75 #endif
     76 
     77 #ifdef __cplusplus
     78 }
     79 #endif
     80 #endif
     81