forked from KolibriOS/kolibrios
sound.asm: fix counter bug
git-svn-id: svn://kolibrios.org@1697 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
4f80db8269
commit
8a4afd01d4
@ -359,6 +359,9 @@ align 4
|
|||||||
cmp [edi+out_size], 8
|
cmp [edi+out_size], 8
|
||||||
jne .fail
|
jne .fail
|
||||||
|
|
||||||
|
pushfd
|
||||||
|
cli
|
||||||
|
|
||||||
xor ebx, ebx
|
xor ebx, ebx
|
||||||
push 48
|
push 48
|
||||||
push ebx ; local storage
|
push ebx ; local storage
|
||||||
@ -392,6 +395,7 @@ align 4
|
|||||||
@@:
|
@@:
|
||||||
mov edi, [edi+output]
|
mov edi, [edi+output]
|
||||||
|
|
||||||
|
emms
|
||||||
fild qword [edx+STREAM.time_stamp]
|
fild qword [edx+STREAM.time_stamp]
|
||||||
fiadd dword [esp] ; primary buffer offset
|
fiadd dword [esp] ; primary buffer offset
|
||||||
fidiv dword [esp+4] ; total_samples / frequency
|
fidiv dword [esp+4] ; total_samples / frequency
|
||||||
@ -399,6 +403,8 @@ align 4
|
|||||||
fstp qword [edi]
|
fstp qword [edi]
|
||||||
add esp, 8
|
add esp, 8
|
||||||
|
|
||||||
|
popfd
|
||||||
|
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
@ -547,6 +553,7 @@ proc CreateBuffer stdcall, format:dword, size:dword
|
|||||||
|
|
||||||
mov dword [edi+STREAM.time_stamp], ebx
|
mov dword [edi+STREAM.time_stamp], ebx
|
||||||
mov dword [edi+STREAM.time_stamp+4], ebx
|
mov dword [edi+STREAM.time_stamp+4], ebx
|
||||||
|
mov dword [edi+STREAM.last_ts], ebx
|
||||||
|
|
||||||
stdcall AllocPages, dword 64/4
|
stdcall AllocPages, dword 64/4
|
||||||
mov edi, [str]
|
mov edi, [str]
|
||||||
|
@ -127,6 +127,7 @@ align 8
|
|||||||
|
|
||||||
.time_base dq ?
|
.time_base dq ?
|
||||||
.time_stamp dq ?
|
.time_stamp dq ?
|
||||||
|
.last_ts dd ?
|
||||||
|
|
||||||
.notify_event dd ?
|
.notify_event dd ?
|
||||||
.notify_id dd ?
|
.notify_id dd ?
|
||||||
|
@ -100,6 +100,7 @@ proc update_streams
|
|||||||
|
|
||||||
add dword [esi+STREAM.time_stamp], 4096
|
add dword [esi+STREAM.time_stamp], 4096
|
||||||
adc dword [esi+STREAM.time_stamp+4], 0
|
adc dword [esi+STREAM.time_stamp+4], 0
|
||||||
|
mov dword [esi+STREAM.last_ts], 0
|
||||||
|
|
||||||
mov eax, [esi+STREAM.out_rp]
|
mov eax, [esi+STREAM.out_rp]
|
||||||
cmp eax, [esi+STREAM.out_top]
|
cmp eax, [esi+STREAM.out_top]
|
||||||
|
@ -459,10 +459,12 @@ proc service_proc stdcall, ioctl:dword
|
|||||||
cmp eax, DEV_GET_POS
|
cmp eax, DEV_GET_POS
|
||||||
jne @F
|
jne @F
|
||||||
|
|
||||||
mov ebx, 4096
|
mov ebx, 8192
|
||||||
mov edx, 0x18
|
mov edx, 0x18
|
||||||
|
xor eax, eax
|
||||||
call [ctrl.ctrl_read16]
|
call [ctrl.ctrl_read16]
|
||||||
sub ebx, eax
|
sub ebx, eax
|
||||||
|
shr ebx, 1
|
||||||
mov edx, [edi+output]
|
mov edx, [edi+output]
|
||||||
mov [edx], ebx
|
mov [edx], ebx
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
|
Loading…
Reference in New Issue
Block a user