Subversion Repositories Kolibri OS

Rev

Rev 568 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 568 Rev 575
Line 87... Line 87...
87
           jb @f
87
           jb @f
88
           sub eax, 64*1024
88
           sub eax, 64*1024
89
@@:
89
@@:
90
           mov [esi+STREAM.out_rp], eax
90
           mov [esi+STREAM.out_rp], eax
Line 91... Line -...
91
 
-
 
92
           cmp word [esi+STREAM.format], PCM_2_16_48
-
 
93
           je .copy
-
 
94
 
91
 
95
           cmp [esi+STREAM.out_count], 16384
92
           cmp [esi+STREAM.out_count], 16384
Line 96... Line 93...
96
           ja .skip
93
           ja .skip
97
 
94
 
Line 102... Line 99...
102
.skip:
99
.skip:
103
           inc [stream_index]
100
           inc [stream_index]
104
           dec [play_count]
101
           dec [play_count]
105
           jnz .l1
102
           jnz .l1
106
           ret
103
           ret
107
 
-
 
108
.ring:
104
.ring:
109
           stdcall refill_ring, esi
105
           stdcall refill_ring, esi
110
           jmp .skip
106
           jmp .skip
111
.copy:
-
 
112
           mov ebx, esi
-
 
113
           mov esi, [ebx+STREAM.in_rp]
-
 
114
           mov edi, [ebx+STREAM.out_wp]
-
 
115
           cmp edi, [ebx+STREAM.out_top]
-
 
116
           jb @f
-
 
117
 
-
 
118
           sub edi, 64*1024
-
 
119
           mov [ebx+STREAM.out_wp], edi
-
 
120
@@:
-
 
121
           test [ebx+STREAM.format], PCM_RING
-
 
122
           jnz .stream
-
 
123
 
-
 
124
           mov ecx, [ebx+STREAM.in_count]
-
 
125
           test ecx, ecx
-
 
126
           jz .done
-
 
127
 
-
 
128
           cmp ecx, 16384
-
 
129
           jbe @F
-
 
130
           mov ecx, 16386
-
 
131
@@:
-
 
132
           sub [ebx+STREAM.in_count], ecx
-
 
133
.stream:
-
 
134
           add [ebx+STREAM.in_free], ecx
-
 
135
           add [ebx+STREAM.out_count], ecx
-
 
136
 
-
 
137
           shr ecx, 2
-
 
138
           cld
-
 
139
           rep movsd
-
 
140
 
-
 
141
           mov [ebx+STREAM.out_wp], edi
-
 
142
           cmp esi, [ebx+STREAM.in_top]
-
 
143
           jb @f
-
 
144
 
-
 
145
           sub esi, [ebx+STREAM.in_size]
-
 
146
@@:
-
 
147
           mov [ebx+STREAM.in_rp], esi
-
 
148
           test [ebx+STREAM.format], PCM_RING
-
 
149
           jz .done
-
 
150
 
-
 
151
           sub esi, [ebx+STREAM.in_base]
-
 
152
           sub esi, 128
-
 
153
           lea edx, [event]
-
 
154
 
-
 
155
           mov dword [edx], RT_INP_EMPTY
-
 
156
           mov dword [edx+4], 0
-
 
157
           mov dword [edx+8], ebx
-
 
158
           mov dword [edx+12], esi
-
 
159
 
-
 
160
           mov eax, [ebx+STREAM.notify_event]
-
 
161
           test eax, eax
-
 
162
           jz .l_end
-
 
163
 
-
 
164
           mov ebx, [ebx+STREAM.notify_id]
-
 
165
           xor ecx, ecx
-
 
166
           call RaiseEvent   ;eax, ebx, ecx, edx
-
 
167
           jmp .l_end
-
 
168
.done:
-
 
169
           mov eax, [ebx+STREAM.notify_event]
-
 
170
           test eax, eax
-
 
171
           jz .l_end
-
 
172
 
-
 
173
           mov ebx, [ebx+STREAM.notify_id]
-
 
174
           mov ecx, EVENT_WATCHED
-
 
175
           xor edx, edx
-
 
176
           call RaiseEvent     ;eax, ebx, ecx, edx
-
 
177
.l_end:
-
 
178
           inc [stream_index]
-
 
179
           dec [play_count]
-
 
180
           jnz .l1
-
 
181
           ret
-
 
182
endp
107
endp
Line 183... Line 108...
183
 
108
 
184
align 4
109
align 4
185
proc refill stdcall, str:dword
110
proc refill stdcall, str:dword
Line 487... Line 412...
487
           mov ecx, [r_size]
412
           mov ecx, [r_size]
488
           mov eax, ecx
413
           mov eax, ecx
489
           shr ecx, 2
414
           shr ecx, 2
490
           mov esi, [src]
415
           mov esi, [src]
491
           mov edi, [dest]
416
           mov edi, [dest]
-
 
417
           cld
492
           rep movsd
418
           rep movsd
493
           mov eax, 16384
-
 
494
           ret
419
           ret
495
endp
420
endp
Line 496... Line 421...
496
 
421
 
497
align 4
422
align 4