Subversion Repositories Kolibri OS

Rev

Rev 291 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
168 serge 1
;
378 serge 2
;   This file is part of the Infinity sound driver.
3
;   (C) copyright Serge 2006-2007
168 serge 4
;   email: infinity_sound@mail.ru
5
;
6
;   This program is free software; you can redistribute it and/or modify
7
;   it under the terms of the GNU General Public License as published by
8
;   the Free Software Foundation; either version 2 of the License, or
9
;   (at your option) any later version.
10
;
11
;   This program is distributed in the hope that it will be useful,
12
;   but WITHOUT ANY WARRANTY; without even the implied warranty of
13
;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
;   GNU General Public License for more details.
15
 
378 serge 16
 
17
SOUND_VERSION  equ   0x01000100
18
 
19
PLAY_SYNC      equ   0x80000000
20
 
21
 
22
PCM_ALL        equ   0
23
 
24
PCM_OUT        equ   0x08000000
25
PCM_RING       equ   0x10000000
26
PCM_STATIC     equ   0x20000000
27
PCM_FLOAT      equ   0x40000000     ;reserved
28
PCM_FILTER     equ   0x80000000     ;reserved
29
 
168 serge 30
PCM_2_16_48    equ   1
31
PCM_1_16_48    equ   2
32
 
33
PCM_2_16_44    equ   3
34
PCM_1_16_44    equ   4
35
 
36
PCM_2_16_32    equ   5
37
PCM_1_16_32    equ   6
38
 
39
PCM_2_16_24    equ   7
40
PCM_1_16_24    equ   8
41
 
42
PCM_2_16_22    equ   9
43
PCM_1_16_22    equ  10
44
 
45
PCM_2_16_16    equ  11
46
PCM_1_16_16    equ  12
47
 
48
PCM_2_16_12    equ  13
49
PCM_1_16_12    equ  14
50
 
51
PCM_2_16_11    equ  15
52
PCM_1_16_11    equ  16
53
 
378 serge 54
PCM_2_16_8     equ  17
55
PCM_1_16_8     equ  18
168 serge 56
 
378 serge 57
PCM_2_8_48     equ  19
58
PCM_1_8_48     equ  20
168 serge 59
 
378 serge 60
PCM_2_8_44     equ  21
61
PCM_1_8_44     equ  22
168 serge 62
 
378 serge 63
PCM_2_8_32     equ  23
64
PCM_1_8_32     equ  24
168 serge 65
 
378 serge 66
PCM_2_8_24     equ  25
67
PCM_1_8_24     equ  26
168 serge 68
 
378 serge 69
PCM_2_8_22     equ  27
70
PCM_1_8_22     equ  28
168 serge 71
 
378 serge 72
PCM_2_8_16     equ  29
73
PCM_1_8_16     equ  30
168 serge 74
 
378 serge 75
PCM_2_8_12     equ  31
76
PCM_1_8_12     equ  32
168 serge 77
 
378 serge 78
PCM_2_8_11     equ  33
79
PCM_1_8_11     equ  34
168 serge 80
 
378 serge 81
PCM_2_8_8      equ  35
82
PCM_1_8_8      equ  36
168 serge 83
 
378 serge 84
SRV_GETVERSION      equ 0
85
SND_CREATE_BUFF     equ 1
86
SND_DESTROY_BUFF    equ 2
87
SND_SETFORMAT       equ 3
88
SND_GETFORMAT       equ 4
89
SND_RESET           equ 5
90
SND_SETPOS          equ 6
91
SND_GETPOS          equ 7
92
SND_SETBUFF         equ 8
93
SND_OUT             equ 9
94
SND_PLAY            equ 10
95
SND_STOP            equ 11
96
SND_SETVOLUME       equ 12
97
SND_GETVOLUME       equ 13
98
SND_SETPAN          equ 14
99
SND_GETPAN          equ 15
100
SND_GETBUFFSIZE     equ 16
168 serge 101
 
102
struc STREAM
291 serge 103
{
104
    .magic         dd ?   ;'WAVE'
105
    .destroy       dd ?   ;internal destructor
106
    .fd            dd ?   ;next object in list
107
    .bk            dd ?   ;prev object in list
108
    .pid           dd ?   ;owner id
168 serge 109
 
291 serge 110
    .size          dd ?
111
    .str_fd        dd ?
112
    .str_bk        dd ?
113
    .device        dd ?
114
    .format        dd ?
115
    .flags         dd ?
168 serge 116
 
378 serge 117
    .out_base      dd ?
118
    .out_wp        dd ?
119
    .out_rp        dd ?
120
    .out_count     dd ?
121
    .out_top       dd ?
122
 
291 serge 123
    .r_size        dd ?
124
    .r_dt          dd ?
125
    .r_silence     dd ?
378 serge 126
    .resample      dd ?
127
    .l_vol         dd ?
128
    .r_vol         dd ?
129
    .l_amp         dw ?
130
    .r_amp         dw ?
131
    .pan           dd ?
281 serge 132
 
378 serge 133
    .in_base       dd ?
134
    .in_size       dd ?
135
    .in_wp         dd ?
136
    .in_rp         dd ?
137
    .in_count      dd ?
138
    .in_free       dd ?
139
    .in_top        dd ?
291 serge 140
 
378 serge 141
    .notify_event  dd ?
142
    .notify_id     dd ?
168 serge 143
}
144
 
378 serge 145
STREAM_SIZE    equ 34*4
291 serge 146
FD_OFFSET      equ 24
168 serge 147
 
148
virtual at 0
149
 STREAM STREAM
150
end virtual
151
 
152
struc WAVE_HEADER
153
{   .riff_id        dd  ?
154
    .riff_size      dd  ?
155
    .riff_format    dd  ?
156
 
157
    .fmt_id         dd  ?
158
    .fmt_size       dd  ?
159
    .format_tag     dw  ?
160
    .channels       dw  ?
161
    .freq           dd  ?
162
    .bytes_sec      dd  ?
163
    .block_align    dw  ?
164
    .bits_sample    dw  ?
165
 
166
    .data_id        dd  ?
167
    .data_size      dd  ?
168
}
169