Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5131 | clevermous | 1 | /* |
2 | Copyright (C) 1996-1997 Id Software, Inc. |
||
3 | |||
4 | This program is free software; you can redistribute it and/or |
||
5 | modify it under the terms of the GNU General Public License |
||
6 | as published by the Free Software Foundation; either version 2 |
||
7 | of the License, or (at your option) any later version. |
||
8 | |||
9 | This program is distributed in the hope that it will be useful, |
||
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
||
12 | |||
13 | See the GNU General Public License for more details. |
||
14 | |||
15 | You should have received a copy of the GNU General Public License |
||
16 | along with this program; if not, write to the Free Software |
||
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
||
18 | |||
19 | */ |
||
20 | |||
21 | #include "quakedef.h" |
||
22 | |||
23 | extern int desired_speed; |
||
24 | extern int desired_bits; |
||
25 | |||
26 | qboolean SNDDMA_Init(void) |
||
27 | { |
||
28 | int size; |
||
29 | |||
30 | size = 16384 + sizeof(dma_t); |
||
31 | shm = malloc (size); |
||
32 | memset((void*)shm, 0, size); |
||
33 | |||
34 | shm->buffer = (char*)shm + sizeof(dma_t); |
||
35 | shm->channels = 2; |
||
36 | shm->speed = desired_speed; |
||
37 | shm->samplebits = desired_bits; |
||
38 | shm->samples = 16384 / (desired_bits / 8); |
||
39 | shm->submission_chunk = 1; |
||
40 | |||
41 | return true; |
||
42 | } |
||
43 | |||
44 | // return the current sample position (in mono samples read) |
||
45 | // inside the recirculating dma buffer |
||
46 | int SNDDMA_GetDMAPos(void) |
||
47 | { |
||
48 | shm->samplepos = (int)(realtime*shm->speed*shm->channels) & (shm->samples-1); |
||
49 | |||
50 | return shm->samplepos; |
||
51 | } |
||
52 | |||
53 | void SNDDMA_Shutdown(void) |
||
54 | { |
||
55 | } |