Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
431 serge 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                              ;;
3
;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;;
4
;; Distributed under terms of the GNU General Public License    ;;
5
;;                                                              ;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
7
 
378 serge 8
;   (C) copyright Serge 2006-2007
168 serge 9
;   email: infinity_sound@mail.ru
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
168 serge 93
 
94
struc STREAM
291 serge 95
{
96
    .magic         dd ?   ;'WAVE'
97
    .destroy       dd ?   ;internal destructor
98
    .fd            dd ?   ;next object in list
99
    .bk            dd ?   ;prev object in list
100
    .pid           dd ?   ;owner id
168 serge 101
 
291 serge 102
    .size          dd ?
103
    .str_fd        dd ?
104
    .str_bk        dd ?
105
    .device        dd ?
106
    .format        dd ?
107
    .flags         dd ?
168 serge 108
 
378 serge 109
    .out_base      dd ?
110
    .out_wp        dd ?
111
    .out_rp        dd ?
112
    .out_count     dd ?
113
    .out_top       dd ?
114
 
291 serge 115
    .r_size        dd ?
116
    .r_dt          dd ?
117
    .r_silence     dd ?
378 serge 118
    .resample      dd ?
119
    .l_vol         dd ?
120
    .r_vol         dd ?
121
    .l_amp         dw ?
122
    .r_amp         dw ?
123
    .pan           dd ?
281 serge 124
 
378 serge 125
    .in_base       dd ?
126
    .in_size       dd ?
127
    .in_wp         dd ?
128
    .in_rp         dd ?
129
    .in_count      dd ?
130
    .in_free       dd ?
131
    .in_top        dd ?
291 serge 132
 
378 serge 133
    .notify_event  dd ?
134
    .notify_id     dd ?
168 serge 135
}
136
 
378 serge 137
STREAM_SIZE    equ 34*4
291 serge 138
FD_OFFSET      equ 24
168 serge 139
 
140
virtual at 0
141
 STREAM STREAM
142
end virtual
143
 
144
struc WAVE_HEADER
145
{   .riff_id        dd  ?
146
    .riff_size      dd  ?
147
    .riff_format    dd  ?
148
 
149
    .fmt_id         dd  ?
150
    .fmt_size       dd  ?
151
    .format_tag     dw  ?
152
    .channels       dw  ?
153
    .freq           dd  ?
154
    .bytes_sec      dd  ?
155
    .block_align    dw  ?
156
    .bits_sample    dw  ?
157
 
158
    .data_id        dd  ?
159
    .data_size      dd  ?
160
}
161