|
|
1.1 ! root 1: /* ! 2: * UAE - The Un*x Amiga Emulator ! 3: * ! 4: * Support for the AF sound system ! 5: * ! 6: * Copyright 1996 Marcus Sundberg ! 7: */ ! 8: ! 9: #include <AF/AFlib.h> ! 10: ! 11: extern AFAudioConn *aud; ! 12: extern AC ac; ! 13: extern long aftime; ! 14: extern int rate; ! 15: extern int sndbufsize; ! 16: extern uae_u16 sndbuffer[]; ! 17: extern uae_u16 *sndbufpt; ! 18: ! 19: static __inline__ void flush_sound_buffer(void) ! 20: { ! 21: long size = (char *)sndbufpt - (char *)sndbuffer; ! 22: if (AFGetTime(ac) > aftime) ! 23: aftime = AFGetTime(ac); ! 24: AFPlaySamples(ac, aftime, size, (unsigned char*) sndbuffer); ! 25: aftime += size / 2; ! 26: sndbufpt = sndbuffer; ! 27: } ! 28: ! 29: static __inline__ void check_sound_buffers (void) ! 30: { ! 31: if ((char *)sndbufpt - (char *)sndbuffer >= sndbufsize) { ! 32: flush_sound_buffer(); ! 33: } ! 34: } ! 35: ! 36: #define PUT_SOUND_BYTE(b) do { *(uae_u8 *)sndbufpt = b; sndbufpt = (uae_u16 *)(((uae_u8 *)sndbufpt) + 1); } while (0) ! 37: #define PUT_SOUND_WORD(b) do { *(uae_u16 *)sndbufpt = b; sndbufpt = (uae_u16 *)(((uae_u8 *)sndbufpt) + 2); } while (0) ! 38: #define SOUND16_BASE_VAL 0 ! 39: #define SOUND8_BASE_VAL 128 ! 40: ! 41: #define DEFAULT_SOUND_BSIZ 8192 ! 42: #define DEFAULT_SOUND_BITS 16 ! 43: #define DEFAULT_SOUND_FREQ 44100 ! 44:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.