1,3 → 1,6 |
; 1.0.1 |
|
DEBUG equ 0 |
WIN_SIZE equ 120 |
TIMER equ 60 |
|
4,17 → 7,18 |
use32 |
org 0 |
db 'MENUET01' |
dd 1, @entry, @end, @memory, @stack, @params, 0 |
dd 1, daemon_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 |
;===================================================================== |
|
@entry: |
daemon_entry: |
mcall 68, 11 |
mcall 68, 22, shm_name, 512, 5 |
mov [shm], eax |
26,9 → 30,14 |
@@: |
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 |
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 |
.next: |
dec edi |
jnz @b |
37,10 → 46,12 |
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 |
53,14 → 64,21 |
mov [snd_driver], eax |
cmpe eax, 0, exit |
|
@update: |
mcall 70, is_load |
cmpe eax, 0, @f |
mov dword[volume], 5 |
@@: |
mcall 70, is_save |
call set_sound_proc |
|
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 |
71,31 → 89,30 |
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 |
;cmpe ah, 16, @exit |
if DEBUG |
cmpe ah, 16, exit |
end if |
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 |
@@: |
103,7 → 120,7 |
.cm_2: |
cmpne [win.pid], 0, .else_2 |
mov [edx], dword 3 |
jmp @open_2 |
jmp open_2 |
.else_2: |
mov [command], 3 |
@@: |
110,11 → 127,14 |
cmpne ah, 80, @f |
.cm_3: |
mov [edx], dword 4 |
jmp @open_2 |
jmp open_2 |
@@: |
jmp @update |
jmp update |
|
@exit: |
exit: |
if DEBUG eq 1 |
dps "EXIT" |
end if |
mcall -1 |
|
;===================================================================== |
166,12 → 186,10 |
jmp .apply |
@@: |
cmpne [command], 4, @f |
mov [mute], 1 |
mov eax, 1 |
sub eax, [mute] |
mov [mute], eax |
jmp .apply |
@@: |
cmpne [command], 5, @f |
mov [mute], 0 |
jmp .apply |
|
.apply: |
mov [command], 0 |
182,7 → 200,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 |
189,7 → 207,10 |
|
;---------------------------- |
|
exit: |
_exit: |
if DEBUG eq 1 |
dps "CLOSE" |
end if |
mov [win.pid], 0 |
mcall 70, is_save |
mcall -1 |
198,7 → 219,7 |
|
_button: |
mcall 17 |
cmpe ah, 1, exit |
cmpe ah, 1, _exit |
cmpe ah, 3, toggle_mute |
jmp _update |
|
206,15 → 227,13 |
|
_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, 178, unmute_volume ; ^ |
cmpe ah, 180, unmute_volume ; Home |
cmpe ah, 177, mute_volume ; v |
cmpe ah, 181, mute_volume ; End |
cmpe ah, 177, toggle_mute ; v |
cmpe ah, 181, toggle_mute ; End |
|
jmp _update |
|
244,11 → 263,8 |
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] |
255,11 → 271,18 |
mov [mute], eax |
jmp @f |
|
mute_volume: |
mov [mute], 1 |
unmute_volume: |
mov dword[mute], 0 |
|
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 |
273,12 → 296,8 |
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: |