Subversion Repositories Kolibri OS

Rev

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

Rev 227 Rev 281
Line 104... Line 104...
104
	   cld
104
           cld
105
	   rep stosd
105
           rep stosd
106
	   ret
106
           ret
107
endp
107
endp
Line 108... Line -...
108
 
-
 
109
 
108
 
110
align 4
109
align 4
111
proc update_stream
110
proc update_stream
112
	   locals
111
           locals
113
             stream_index  dd ?
112
             stream_index  dd ?
Line 139... Line 138...
139
	   stdcall refill, esi
138
           stdcall refill, esi
140
@@:
139
@@:
141
	   inc [stream_index]
140
           inc [stream_index]
142
	   dec [play_count]
141
           dec [play_count]
143
	   jnz .l1
142
           jnz .l1
144
 
-
 
145
	   ret
143
           ret
146
.copy:
144
.copy:
147
	   mov ebx, esi
145
           mov ebx, esi
148
	   mov edi, [ebx+STREAM.work_write]
146
           mov edi, [ebx+STREAM.work_write]
149
	   cmp edi, [ebx+STREAM.work_top]
147
           cmp edi, [ebx+STREAM.work_top]
Line 156... Line 154...
156
	   cld
154
           cld
157
	   rep movsd
155
           rep movsd
Line 158... Line 156...
158
 
156
 
Line 159... Line 157...
159
           mov [ebx+STREAM.work_write], edi
157
           mov [ebx+STREAM.work_write], edi
160
 
158
 
Line 161... Line 159...
161
	   cmp esi, [ebx+STREAM.limit]
159
           cmp esi, [ebx+STREAM.lim_0]
-
 
160
           jb @f
-
 
161
 
-
 
162
           mov esi, [ebx+STREAM.seg_0]
-
 
163
           mov eax, [ebx+STREAM.lim_0]
-
 
164
           xchg esi, [ebx+STREAM.seg_1]
162
	   jb @f
165
           xchg eax, [ebx+STREAM.lim_1]
163
 
166
           mov [ebx+STREAM.seg_0], esi
Line 164... Line 167...
164
	   mov esi, [ebx+STREAM.base]
167
           mov [ebx+STREAM.lim_0], eax
165
@@:
168
@@:
Line 174... Line 177...
174
	   je @f
177
           je @f
Line 175... Line 178...
175
 
178
 
176
	   inc [stream_index]
179
           inc [stream_index]
177
	   dec [play_count]
180
           dec [play_count]
178
	   jnz .l1
-
 
179
 
181
           jnz .l1
180
	   ret
182
           ret
181
@@:
183
@@:
182
           mov [ev_code], 0xFF000001
184
           mov [ev_code], 0xFF000001
183
           mov [ev_offs], ecx
185
           mov [ev_offs], ecx
Line 231... Line 233...
231
	   add [ebx+STREAM.work_count], eax;
233
           add [ebx+STREAM.work_count], eax;
232
	   add [ebx+STREAM.work_write], eax;
234
           add [ebx+STREAM.work_write], eax;
Line 233... Line 235...
233
 
235
 
234
	   mov eax, [ebx+STREAM.curr_seg]
236
           mov eax, [ebx+STREAM.curr_seg]
235
	   add eax, [ebx+STREAM.r_size]
237
           add eax, [ebx+STREAM.r_size]
236
	   cmp eax, [ebx+STREAM.limit]
238
           cmp eax, [ebx+STREAM.lim_0]
-
 
239
           jb @f
237
	   jb @f
240
 
-
 
241
           mov eax, [ebx+STREAM.seg_0]
-
 
242
           mov ecx, [ebx+STREAM.lim_0]
-
 
243
           xchg eax, [ebx+STREAM.seg_1]
-
 
244
           xchg ecx, [ebx+STREAM.lim_1]
-
 
245
           mov [ebx+STREAM.seg_0], eax
238
	   mov eax, [ebx+STREAM.base]
246
           mov [ebx+STREAM.lim_0], ecx
239
@@:
247
@@:
Line 240... Line 248...
240
	   mov [ebx+STREAM.curr_seg], eax
248
           mov [ebx+STREAM.curr_seg], eax
241
 
249
 
242
	   xor ecx, ecx
250
           xor ecx, ecx
Line 243... Line 251...
243
	   cmp eax, [ebx+STREAM.notify_off2]
251
           cmp eax, [ebx+STREAM.notify_off2]
244
	   je @f
252
           je @f
245
 
253
 
246
	   mov ecx,0x8000
-
 
247
	   cmp eax, [ebx+STREAM.notify_off1]
254
           mov ecx,0x8000
248
	   je @f
255
           cmp eax, [ebx+STREAM.notify_off1]
249
 
256
           je @f
250
	   ret
257
           ret
251
@@:
258
@@:
Line 601... Line 608...
601
 
608
 
602
align 4
609
align 4
603
proc s8_stereo stdcall, dest:dword,src:dword,r_buff:dword,\
610
proc s8_stereo stdcall, dest:dword,src:dword,r_buff:dword,\
Line 604... Line -...
604
		       r_dt:dword, r_size:dword,r_end:dword
-
 
605
 
611
		       r_dt:dword, r_size:dword,r_end:dword
606
 
612
 
607
	   mov esi, [src]
613
           mov esi, [src]
608
	   mov edi, [dest]
614
           mov edi, [dest]
Line 1014... Line 1020...
1014
	movq	[edx+80], mm2
1020
           movq [edx+80], mm2
Line 1015... Line 1021...
1015
 
1021
 
1016
	movq	mm3, [eax+88]
1022
           movq mm3, [eax+88]
1017
	paddsw	mm3, [ecx+88]
1023
           paddsw mm3, [ecx+88]
1018
       ; psraw   mm3, 1
-
 
1019
 
1024
           ; psraw   mm3, 1
Line 1020... Line 1025...
1020
	movq [edx+88], mm3
1025
           movq [edx+88], mm3
1021
 
1026
 
1022
	movq	mm0, [eax+96]
1027
           movq mm0, [eax+96]
1023
	paddsw	mm0, [ecx+96]
-
 
1024
       ; psraw   mm0, 1
1028
           paddsw mm0, [ecx+96]
Line 1025... Line 1029...
1025
 
1029
           ; psraw   mm0, 1
1026
	movq	[edx+96], mm0
1030
           movq [edx+96], mm0
1027
 
1031
 
1028
	movq	mm1, [eax+104]
-
 
1029
	paddsw	mm1, [ecx+104]
1032
           movq mm1, [eax+104]
Line 1030... Line 1033...
1030
       ; psraw   mm1, 1
1033
           paddsw mm1, [ecx+104]
1031
 
1034
           ; psraw   mm1, 1
1032
	movq	[edx+104], mm1
1035
           movq [edx+104], mm1
1033
 
-
 
1034
	movq	mm2, [eax+112]
1036
 
Line 1035... Line 1037...
1035
	paddsw	mm2, [ecx+112]
1037
           movq mm2, [eax+112]
1036
       ; psraw   mm2, 1
1038
           paddsw mm2, [ecx+112]
1037
 
1039
           ; psraw   mm2, 1
1038
	movq	[edx+112], mm2
-
 
1039
 
1040
           movq [edx+112], mm2
Line 1040... Line 1041...
1040
	movq	mm3, [eax+120]
1041
 
1041
	paddsw	mm3, [ecx+120]
1042
           movq mm3, [eax+120]