Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 5446 → Rev 5445

/programs/media/volume/volume.asm
1,6 → 1,3
; 1.0.1
 
DEBUG equ 0
WIN_SIZE equ 120
TIMER equ 60
 
7,18 → 4,17
use32
org 0
db 'MENUET01'
dd 1, daemon_entry, @end, @memory, @stack, @params, 0
dd 1, @entry, @end, @memory, @stack, @params, 0
 
include "../../macros.inc"
include "../../proc32.inc"
include "../../dll.inc"
; include "../../debug.inc"
include "macros.inc"
if DEBUG eq 1
include "../../debug.inc"
end if
 
;=====================================================================
 
daemon_entry:
@entry:
mcall 68, 11
mcall 68, 22, shm_name, 512, 5
mov [shm], eax
30,14 → 26,9
@@:
mcall 9, buffer, edi
cmpe dword[buffer + 30], esi, .next
cmpe dword[buffer + 10], dword "@Vol", open_1
cmpe dword[buffer + 10], dword "@VOL", open_1
cmpe dword[buffer + 10], dword "@vol", open_1
if DEBUG eq 1
cmpe dword[buffer + 10], dword "Volu", open_1
cmpe dword[buffer + 10], dword "VOLu", open_1
cmpe dword[buffer + 10], dword "volu", open_1
end if
cmpe dword[buffer + 10], dword "@Vol", @open_1
cmpe dword[buffer + 10], dword "@VOL", @open_1
cmpe dword[buffer + 10], dword "@vol", @open_1
.next:
dec edi
jnz @b
46,12 → 37,10
mov [eax], dword 0
mcall 40, 10b
mcall 66, 1, 1
;mcall 66, 4, 16, 0x110
mcall 66, 4, 77, 0x110
mcall 66, 4, 75, 0x110
mcall 66, 4, 80, 0x110
if DEBUG eq 1
mcall 66, 4, 16, 0x110
end if
 
stdcall dll.Load, @imports
stdcall dword[img.decode], icons, icons.size, 0
64,21 → 53,14
mov [snd_driver], eax
cmpe eax, 0, exit
 
mcall 70, is_load
cmpe eax, 0, @f
mov dword[volume], 5
@@:
mcall 70, is_save
call set_sound_proc
 
update:
@update:
mcall 23, 5
cmpe al, EV_KEY, key
cmpe al, EV_KEY, @key
mov eax, [shm]
cmpne [eax], dword 0, open_2
jmp update
cmpne [eax], dword 0, @open_2
jmp @update
 
open_1:
@open_1:
mov ebx, 1
cmpne [@params], byte '+', @f
mov ebx, 2
89,30 → 71,31
cmpne [@params], byte 'm', @f
mov ebx, 4
@@:
cmpne [@params], byte 's', @f
mov ebx, 5
@@:
mov eax, [shm]
mov [eax], ebx
jmp exit
jmp @exit
 
open_2:
@open_2:
mov eax, [shm]
mov ebx, [eax]
mov [command], ebx
mov [eax], dword 0
cmpne [win.pid], dword 0, update
cmpne [win.pid], dword 0, @update
mcall 51, 1, _entry, _stack
jmp update
jmp @update
 
key:
@key:
mcall 2
if DEBUG
cmpe ah, 16, exit
end if
;cmpe ah, 16, @exit
mov edx, [shm]
cmpne ah, 77, @f
.cm_1:
cmpne [win.pid], 0, .else_1
mov [edx], dword 2
jmp open_2
jmp @open_2
.else_1:
mov [command], 2
@@:
120,7 → 103,7
.cm_2:
cmpne [win.pid], 0, .else_2
mov [edx], dword 3
jmp open_2
jmp @open_2
.else_2:
mov [command], 3
@@:
127,14 → 110,11
cmpne ah, 80, @f
.cm_3:
mov [edx], dword 4
jmp open_2
jmp @open_2
@@:
jmp update
jmp @update
 
exit:
if DEBUG eq 1
dps "EXIT"
end if
@exit:
mcall -1
 
;=====================================================================
186,10 → 166,12
jmp .apply
@@:
cmpne [command], 4, @f
mov eax, 1
sub eax, [mute]
mov [mute], eax
mov [mute], 1
jmp .apply
@@:
cmpne [command], 5, @f
mov [mute], 0
jmp .apply
 
.apply:
mov [command], 0
200,7 → 182,7
mov ecx, eax
mcall 9, buffer
mov eax, dword[buffer + 30]
cmpne [win.pid], eax, _exit
cmpne [win.pid], eax, exit
 
dec dword[timer]
jnz _update
207,10 → 189,7
 
;----------------------------
 
_exit:
if DEBUG eq 1
dps "CLOSE"
end if
exit:
mov [win.pid], 0
mcall 70, is_save
mcall -1
219,7 → 198,7
 
_button:
mcall 17
cmpe ah, 1, _exit
cmpe ah, 1, exit
cmpe ah, 3, toggle_mute
jmp _update
 
227,13 → 206,15
 
_key:
mcall 2
cmpe ah, 027, _exit
cmpe ah, 027, exit
cmpe ah, 176, dec_volume ; <-
cmpe ah, 183, dec_volume ; PgDown
cmpe ah, 179, inc_volume ; ->
cmpe ah, 184, inc_volume ; PgUp
cmpe ah, 177, toggle_mute ; v
cmpe ah, 181, toggle_mute ; End
cmpe ah, 178, unmute_volume ; ^
cmpe ah, 180, unmute_volume ; Home
cmpe ah, 177, mute_volume ; v
cmpe ah, 181, mute_volume ; End
 
jmp _update
 
263,8 → 244,11
inc_volume:
cmpe dword[volume], 10, _update
inc dword[volume]
jmp unmute_volume
 
unmute_volume:
mov [mute], 0
jmp @f
 
toggle_mute:
mov eax, 1
sub eax, [mute]
271,18 → 255,11
mov [mute], eax
jmp @f
 
unmute_volume:
mov dword[mute], 0
mute_volume:
mov [mute], 1
 
set_sound:
@@:
call set_sound_proc
mov dword[timer], TIMER
call draw_icon
call draw_bar
jmp _update
 
set_sound_proc:
mov [snd_driver.command], 6
mov [snd_driver.inputsz], 4
mov [snd_driver.output], 0
296,8 → 273,12
neg edi
mov dword[buffer], edi
mcall 68, 17, snd_driver
ret
 
mov dword[timer], TIMER
call draw_icon
call draw_bar
jmp _update
 
;----------------------------
 
_redraw: