|
|
1.1.1.2 root 1: /*
1.1 root 2: * UAE - The Un*x Amiga Emulator
1.1.1.2 root 3: *
1.1 root 4: * Support for the AF sound system
1.1.1.2 root 5: *
1.1 root 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();
1.1.1.3 ! root 33: return 1;
1.1 root 34: }
1.1.1.3 ! root 35: return 0;
1.1 root 36: }
37:
38: #define PUT_SOUND_BYTE(b) do { *(uae_u8 *)sndbufpt = b; sndbufpt = (uae_u16 *)(((uae_u8 *)sndbufpt) + 1); } while (0)
39: #define PUT_SOUND_WORD(b) do { *(uae_u16 *)sndbufpt = b; sndbufpt = (uae_u16 *)(((uae_u8 *)sndbufpt) + 2); } while (0)
40: #define SOUND16_BASE_VAL 0
41: #define SOUND8_BASE_VAL 128
42:
43: #define DEFAULT_SOUND_BSIZ 8192
44: #define DEFAULT_SOUND_BITS 16
45: #define DEFAULT_SOUND_FREQ 44100
46:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.