Subversion Repositories Kolibri OS

Rev

Rev 291 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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