Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
431 serge 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                              ;;
2465 Serge 3
;; Copyright (C) KolibriOS team 2006-2011. All rights reserved. ;;
431 serge 4
;; Distributed under terms of the GNU General Public License    ;;
5
;;                                                              ;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
7
 
694 serge 8
; Serge 2006-2008
9
; email:  infinity_sound@mail.ru
168 serge 10
 
378 serge 11
 
12
PLAY_SYNC      equ   0x80000000
13
 
14
PCM_ALL        equ   0
15
 
16
PCM_OUT        equ   0x08000000
17
PCM_RING       equ   0x10000000
18
PCM_STATIC     equ   0x20000000
19
PCM_FLOAT      equ   0x40000000     ;reserved
20
PCM_FILTER     equ   0x80000000     ;reserved
21
 
168 serge 22
PCM_2_16_48    equ   1
23
PCM_1_16_48    equ   2
24
 
25
PCM_2_16_44    equ   3
26
PCM_1_16_44    equ   4
27
 
28
PCM_2_16_32    equ   5
29
PCM_1_16_32    equ   6
30
 
31
PCM_2_16_24    equ   7
32
PCM_1_16_24    equ   8
33
 
34
PCM_2_16_22    equ   9
35
PCM_1_16_22    equ  10
36
 
37
PCM_2_16_16    equ  11
38
PCM_1_16_16    equ  12
39
 
40
PCM_2_16_12    equ  13
41
PCM_1_16_12    equ  14
42
 
43
PCM_2_16_11    equ  15
44
PCM_1_16_11    equ  16
45
 
378 serge 46
PCM_2_16_8     equ  17
47
PCM_1_16_8     equ  18
168 serge 48
 
378 serge 49
PCM_2_8_48     equ  19
50
PCM_1_8_48     equ  20
168 serge 51
 
378 serge 52
PCM_2_8_44     equ  21
53
PCM_1_8_44     equ  22
168 serge 54
 
378 serge 55
PCM_2_8_32     equ  23
56
PCM_1_8_32     equ  24
168 serge 57
 
378 serge 58
PCM_2_8_24     equ  25
59
PCM_1_8_24     equ  26
168 serge 60
 
378 serge 61
PCM_2_8_22     equ  27
62
PCM_1_8_22     equ  28
168 serge 63
 
378 serge 64
PCM_2_8_16     equ  29
65
PCM_1_8_16     equ  30
168 serge 66
 
378 serge 67
PCM_2_8_12     equ  31
68
PCM_1_8_12     equ  32
168 serge 69
 
378 serge 70
PCM_2_8_11     equ  33
71
PCM_1_8_11     equ  34
168 serge 72
 
378 serge 73
PCM_2_8_8      equ  35
74
PCM_1_8_8      equ  36
168 serge 75
 
378 serge 76
SRV_GETVERSION      equ 0
77
SND_CREATE_BUFF     equ 1
78
SND_DESTROY_BUFF    equ 2
79
SND_SETFORMAT       equ 3
80
SND_GETFORMAT       equ 4
81
SND_RESET           equ 5
82
SND_SETPOS          equ 6
83
SND_GETPOS          equ 7
84
SND_SETBUFF         equ 8
85
SND_OUT             equ 9
86
SND_PLAY            equ 10
87
SND_STOP            equ 11
88
SND_SETVOLUME       equ 12
89
SND_GETVOLUME       equ 13
90
SND_SETPAN          equ 14
91
SND_GETPAN          equ 15
92
SND_GETBUFFSIZE     equ 16
572 serge 93
SND_GETFREESPACE    equ 17
2010 serge 94
SND_SETTIMEBASE     equ 18
95
SND_GETTIMESTAMP    equ 19
168 serge 96
 
97
struc STREAM
291 serge 98
{
99
    .magic         dd ?   ;'WAVE'
100
    .destroy       dd ?   ;internal destructor
101
    .fd            dd ?   ;next object in list
102
    .bk            dd ?   ;prev object in list
103
    .pid           dd ?   ;owner id
168 serge 104
 
291 serge 105
    .size          dd ?
106
    .str_fd        dd ?
107
    .str_bk        dd ?
108
    .device        dd ?
109
    .format        dd ?
110
    .flags         dd ?
168 serge 111
 
378 serge 112
    .out_base      dd ?
113
    .out_wp        dd ?
114
    .out_rp        dd ?
115
    .out_count     dd ?
694 serge 116
    .out_top       dd ?          ;16*4
378 serge 117
 
2010 serge 118
    .in_base       dd ?
119
    .in_size       dd ?
120
    .in_wp         dd ?
121
    .in_rp         dd ?
122
    .in_count      dd ?
123
    .in_free       dd ?
124
    .in_top        dd ?
125
 
126
align 8
127
 
128
    .time_base     dq ?
129
    .time_stamp    dq ?
130
    .last_ts       dd ?
131
 
132
    .notify_event  dd ?
133
    .notify_id     dd ?
134
 
291 serge 135
    .r_size        dd ?
136
    .r_dt          dd ?
137
    .r_silence     dd ?
378 serge 138
    .resample      dd ?
139
    .l_vol         dd ?
140
    .r_vol         dd ?
141
    .l_amp         dw ?
142
    .r_amp         dw ?
143
    .pan           dd ?
694 serge 144
    .l_amp_f       dd ? ;float point left
145
    .r_amp_f       dd ? ;float point right
281 serge 146
 
2010 serge 147
    .sizeof:
168 serge 148
}
149
 
291 serge 150
FD_OFFSET      equ 24
168 serge 151
 
152
virtual at 0
153
 STREAM STREAM
154
end virtual
155
 
156
struc WAVE_HEADER
157
{   .riff_id        dd  ?
158
    .riff_size      dd  ?
159
    .riff_format    dd  ?
160
 
161
    .fmt_id         dd  ?
162
    .fmt_size       dd  ?
163
    .format_tag     dw  ?
164
    .channels       dw  ?
165
    .freq           dd  ?
166
    .bytes_sec      dd  ?
167
    .block_align    dw  ?
168
    .bits_sample    dw  ?
169
 
170
    .data_id        dd  ?
171
    .data_size      dd  ?
172
}
173