Synergy client: support for right, middle, 4th and 5th mouse buttons

git-svn-id: svn://kolibrios.org@4380 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
hidnplayr 2013-12-19 13:11:19 +00:00
parent 74e3156491
commit cf59000c24

View File

@ -67,6 +67,8 @@ start:
push str0 push str0
call [con_write_asciiz] call [con_write_asciiz]
restart:
invoke ini.get_str, path, str_remote, str_ip, buffer_ptr, 16, 0 invoke ini.get_str, path, str_remote, str_ip, buffer_ptr, 16, 0
test eax, eax test eax, eax
jnz error jnz error
@ -106,12 +108,13 @@ start:
mov [sockaddr1.ip], eax mov [sockaddr1.ip], eax
mcall connect, [socketnum], sockaddr1, 18 mcall connect, [socketnum], sockaddr1, 18
test eax, eax
jnz error
push str7 push str7
call [con_write_asciiz] call [con_write_asciiz]
mcall 40, EVM_STACK mcall 40, EVM_STACK
mcall 10
login: login:
call wait_for_data call wait_for_data
@ -262,14 +265,20 @@ mainloop:
jmp .next jmp .next
.dmdn: .dmdn:
movzx eax, byte [edi + 8] movzx eax, byte[edi + 8]
cmp eax, 5
ja .next
movzx eax, [mousecodes + eax]
or [mousestate], eax or [mousestate], eax
mcall 18, 19, 5, [mousestate] mcall 18, 19, 5, [mousestate]
mcall send, [socketnum], cnop, cnop.length, 0 ; reply with NOP mcall send, [socketnum], cnop, cnop.length, 0 ; reply with NOP
jmp .next jmp .next
.dmup: .dmup:
movzx eax, byte [edi + 8] movzx eax, byte[edi + 8]
cmp eax, 5
ja .next
movzx eax, [mousecodes + eax]
not eax not eax
and [mousestate], eax and [mousestate], eax
mcall 18, 19, 5, [mousestate] mcall 18, 19, 5, [mousestate]
@ -335,7 +344,11 @@ closed:
push str_cls push str_cls
call [con_write_asciiz] call [con_write_asciiz]
jmp wait_for_key mcall close, [socketnum]
mcall 5, 200
jmp restart
@ -377,6 +390,7 @@ cnop:
db 'CNOP' db 'CNOP'
.length = $ - cnop .length = $ - cnop
mousecodes db 0, 1b, 100b, 10b, 1000b, 10000b
mousestate dd 0 mousestate dd 0
@ -422,5 +436,5 @@ align 4
i_end: i_end:
socketnum dd ? socketnum dd ?
buffer_ptr rb BUFFERSIZE buffer_ptr rb BUFFERSIZE
path rb 4096 ; stack path rb 4096
mem: mem: