Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 378 → Rev 377

/kernel/trunk/drivers/codec.inc
67,7 → 67,7
xor eax, eax
stdcall codec_write, dword CODEC_AUX_VOL
 
mov eax, 0x0B0B
mov eax, 0x1010
stdcall codec_write, dword CODEC_MASTER_VOL_REG
 
mov ax, 0x08
98,30 → 98,27
 
xor eax, eax ; exit with error
ret
 
endp
 
align 4
proc set_master_vol stdcall, vol:dword
 
; param
; eax= volume -10000 - 0 for both channels
 
align 4
set_master_vol:
cmp eax, 0
jl @F
xor eax, eax
jmp .set
mov ebx, 63
mov ecx, 20644
mov eax, [vol]
cmp eax, 90
jna @f
mov eax, 90
@@:
cmp eax, -9450
jg .set
mov eax, -9450 ;clamp into 6 bits
.set:
cdq
mov ebx, -150
idiv ebx
mov ah, al
mul ecx
shr eax, 15
sub ebx, eax
mov ah, bl
mov al, bl
stdcall codec_write, dword CODEC_MASTER_VOL_REG
xor eax, eax
ret
endp
 
align 4
proc get_master_vol stdcall, pvol:dword
128,10 → 125,16
 
stdcall codec_read, dword CODEC_MASTER_VOL_REG
and eax, 0x3F
imul eax, -150
mov ebx, 63
mov ecx, 20644
 
xchg eax, ebx
sub eax, ebx
shl eax, 15
xor edx, edx
div ecx
mov ebx, [pvol]
mov [ebx], eax
xor eax, eax
ret
endp