1 /* 2 * UAE - The Un*x Amiga Emulator 3 * 4 * DOS Sound Blaster interface. 5 * 6 * (c) 1996 Peter Remmers 7 */ 8 9 /* internally used types */ 10 typedef UWORD BOOL; 11 12 typedef enum 13 { 14 SB_Type_StdSB, 15 SB_Type_SbPro, 16 SB_Type_SB16 17 } 18 tSBType; 19 20 extern tSBType SB_Type; 21 22 extern volatile int IsPlaying; 23 extern int CurrentBuffer; 24 25 BOOL SB_Reset (void); 26 inline void SB_WriteDSP (UBYTE value); 27 inline UBYTE SB_ReadDSP (void); 28 inline void SB_WriteMixer (UBYTE reg, UBYTE data); 29 inline UBYTE SB_ReadMixer (UBYTE reg); 30 BOOL SB_DetectMixer (void); 31 void SB_Play_8Bit_Std (UWORD bytes); 32 void SB_Play_8Bit_SbPro (UWORD bytes); 33 void SB_Play_8Bit_SB16 (UWORD bytes); 34 void SB_Play_16Bit (UWORD bytes); 35 void SB_IntHandler (void); 36 void SB_SetRate_LoSpeed (UWORD rate); 37 void SB_SetRate_HiSpeed (UWORD rate); 38 void SB_SetRate_SB16 (UWORD rate); 39 int SB_SetRate (unsigned short rate); 40 int SB_SetBits (unsigned char bits); 41 int SB_SetChannels (unsigned char channels); 42 int SB_SetSigned (int sign); 43 void SB_SpeakerOff(void); 44 void SB_SpeakerOn(void); 45 void SB_SetVolume(UBYTE vol); 46 void irq2 (void); 47 void irq5 (void); 48 void irq7 (void); 49 void irq10 (void); 50 int SB_Detect (unsigned short *base, unsigned short *irq, unsigned short *dmalo, unsigned short *dmahi); 51 int SB_InitBuffers(int bufsize); 52 int SB_Init (unsigned short base, unsigned short irq, unsigned short dmalo, unsigned short dmahi); 53 void SB_Done (void); 54 void SB_DirectWrite(unsigned int size, int freq); 55 void SB_GetVersion (unsigned char *Maj, unsigned char *Min); 56 int SB_DetectInitSound(int *dspbits, int *dsprate, int *sndbufsize, unsigned int *direct_buffers, int *stereo_sound); 57