Subversion Repositories Kolibri OS

Rev

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