|
|
1.1 root 1: // =======================================================================
2: // Sound client does nothing but walk a circular sound buffer
3: // =======================================================================
4:
5: //#include <fcntl.h>
6: #include <sys/types.h>
7: //#include <sys/ioctl.h>
8: #include <stdio.h>
9: #include <audio.h>
10:
11: #include "quakedef.h"
12:
13: extern int samplewidth;
14: extern int numfragments;
15: extern int fragmentsize;
16:
17: extern dma_t *shm;
18:
19: void I_Error(char *, ...);
20: void I_Warn(char *, ...);
21: int log2(int);
22:
23: // =======================================================================
24: // System-specific data
25: // =======================================================================
26:
27: static ALconfig al_config;
28: static ALport al_outport;
29:
30: // =======================================================================
31: // Initializes DMA-like sound device
32: // =======================================================================
33:
34: void I_InitDMASound(void)
35: {
36:
37: long paramset[2];
38:
39: // open & setup audio device
40:
41: ALseterrorhandler(0); // turn off audio library error handler
42: al_config = ALnewconfig();
43:
44: ALsetchannels(al_config, AL_STEREO);
45: ALsetsampfmt(al_config, AL_SAMPFMT_TWOSCOMP);
46: ALsetwidth(al_config, samplewidth);
47: ALsetqueuesize(al_config, fragmentsize * 2);
48:
49: al_outport = ALopenport("iddigout2", "w", al_config);
50:
51: if (!al_outport)
52: I_Error("Could not open audio port");
53:
54: paramset[0] = AL_OUTPUT_RATE;
55: paramset[1] = shm->speed;
56: ALsetparams(AL_DEFAULT_DEVICE, paramset, 2);
57:
58: }
59:
60: // =======================================================================
61: // Submits data to DMA-like sound device
62: // =======================================================================
63:
64: void I_SubmitDMABuffer(void *buffer, int size)
65: {
66: ALwritesamps(al_outport, buffer, size);
67: }
68:
69: // =======================================================================
70: // Shuts down DMA-like sound device
71: // =======================================================================
72:
73: void I_ShutdownDMASound(void)
74: {
75: ALfreeconfig(al_config);
76: ALcloseport(al_outport);
77: }
78:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.