Subversion Repositories Kolibri OS

Rev

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

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