Subversion Repositories Kolibri OS

Rev

Rev 5668 | Rev 5677 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5668 Rev 5670
Line 13... Line 13...
13
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
13
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 14... Line 14...
14
 
14
 
Line 15... Line 15...
15
format binary as ""
15
format binary as ""
16
 
16
 
Line 17... Line 17...
17
__DEBUG__       = 1
17
__DEBUG__       = 1
Line 18... Line 18...
18
__DEBUG_LEVEL__ = 1
18
__DEBUG_LEVEL__ = 2
Line 58... Line 58...
58
        name_length     dd ?
58
        name_length     dd ?
59
        name            rb 256
59
        name            rb 256
60
ends
60
ends
Line 61... Line 61...
61
 
61
 
62
xpos                    = 4
62
xpos                    = 4
Line 63... Line 63...
63
ypos                    = 22
63
ypos                    = 21
Line 64... Line 64...
64
 
64
 
Line 65... Line 65...
65
TIMEOUT                 = 5             ; timeout in seconds
65
TIMEOUT                 = 5             ; timeout in seconds
66
 
66
 
-
 
67
RECEIVE_BUFFER_SIZE     = 8*1024*1024   ; 8 Mib
67
RECEIVE_BUFFER_SIZE     = 8*1024*1024   ; 8 Mib
68
 
68
 
69
STATUS_INITIAL          = 0
Line 69... Line 70...
69
STATUS_INITIAL          = 0
70
STATUS_CONNECTING       = 1
70
STATUS_CONNECTING       = 1
71
STATUS_REQ_LOGIN        = 2
71
STATUS_LOGIN            = 2
72
STATUS_LOGIN            = 3
72
STATUS_CONNECTED        = 3
73
STATUS_CONNECTED        = 4
Line 110... Line 111...
110
        add     esi, ypos+xpos
111
        add     esi, ypos+xpos
111
        mcall   67, 10, 10              ; resize the window
112
        mcall   67, 10, 10              ; resize the window
Line 112... Line 113...
112
 
113
 
Line -... Line 114...
-
 
114
        mcall   40, EVM_MOUSE + EVM_MOUSE_FILTER + EVM_KEY + EVM_REDRAW + EVM_BUTTON
-
 
115
 
-
 
116
        mcall   66, 1, 1                ; Switch keyboard to scancode mode
113
        mcall   40, EVM_MOUSE + EVM_MOUSE_FILTER + EVM_KEY + EVM_REDRAW + EVM_BUTTON
117
        mcall   26, 2, 1, keymap        ; Read keymap
114
 
118
 
Line 115... Line 119...
115
redraw:
119
redraw:
116
        mcall   12, 1
120
        mcall   12, 1
117
 
121
 
118
        mov     ebx, dword[screen]
122
        mov     ebx, dword[screen]
119
        movzx   ecx, bx
123
        movzx   ecx, bx
120
        shr     ebx, 16
124
        shr     ebx, 16
Line 121... Line -...
121
        mov     edx, 0x74ffffff
-
 
122
        mov     edi, name
-
 
123
        mcall   0                       ; draw window
125
        mov     edx, 0x74ffffff
Line -... Line 126...
-
 
126
        mov     edi, name
-
 
127
        mcall   0                       ; draw window
-
 
128
 
-
 
129
        mcall   12, 2
124
 
130
 
125
        call    drawbuffer
131
draw_framebuffer:
126
 
132
        mcall   7, framebuffer_data, dword[screen], 0
-
 
133
        mov     [update_framebuffer], 0
-
 
134
 
Line 127... Line 135...
127
        mcall   12, 2
135
mainloop:
Line 128... Line 136...
128
 
136
        cmp     [status], STATUS_CONNECTED
129
mainloop:
137
        jne     draw_gui
130
        cmp     [status], STATUS_CONNECTED
138
        cmp     [update_framebuffer], 0
131
        jne     draw_gui
139
        jne     draw_framebuffer
Line 140... Line 148...
140
        jz      button
148
        jz      button
141
        sub     eax, 3
149
        sub     eax, 3
142
        jz      mouse
150
        jz      mouse
143
        jmp     mainloop
151
        jmp     mainloop
Line 144... Line -...
144
 
-
 
145
drawbuffer:
-
 
146
        mcall   7, framebuffer_data, dword[screen], 0
-
 
147
        ret
-
 
148
 
152
 
149
key:
-
 
150
;        DEBUGF  1, "Sending key event\n"
-
 
151
 
153
key:
-
 
154
        mcall   2
-
 
155
        cmp     ah, 224         ; ext
-
 
156
        je      mainloop        ;; TODO
-
 
157
 
-
 
158
        xor     al, al
-
 
159
        test    ah, 0x80        ; key up?
-
 
160
        jnz     @f
-
 
161
        inc     al
-
 
162
  @@:
-
 
163
        mov     byte[KeyEvent.down], al
-
 
164
 
-
 
165
        shr     eax, 8
-
 
166
        and     al, 0x7f
152
        mcall   2
167
        mov     al, [keymap+eax]
-
 
168
        mov     byte[KeyEvent.key+3], al
-
 
169
 
Line 153... Line 170...
153
        mov     byte[KeyEvent.key+3], ah
170
        DEBUGF  1, "Sending key: 0x%x\n", al
154
 
171
 
Line 155... Line 172...
155
        mcall   send, [socketnum], KeyEvent, 8, 0
172
        mcall   send, [socketnum], KeyEvent, 8, 0
156
        jmp     mainloop
173
        jmp     mainloop
Line 157... Line 174...
157
 
174
 
158
mouse:
-
 
159
;        DEBUGF  1, "Sending mouse event\n"
175
mouse:
160
 
176
;        DEBUGF  1, "Sending mouse event\n"
161
        mcall   37, 1           ; get mouse pos
177
 
162
        sub     eax, xpos shl 16 + ypos
178
        mcall   37, 1           ; get mouse pos
Line 267... Line 283...
267
beep            db 0x85, 0x25, 0x85, 0x40, 0
283
beep            db 0x85, 0x25, 0x85, 0x40, 0
Line 268... Line 284...
268
 
284
 
269
status          dd STATUS_INITIAL
285
status                  dd STATUS_INITIAL
270
update_gui      dd 0
286
update_gui              dd 0
-
 
287
mouse_dd                dd 0
Line 271... Line 288...
271
mouse_dd        dd 0
288
update_framebuffer      dd 0
-
 
289
 
-
 
290
URLbox          edit_box 235, 70, 10, 0xffffff, 0x6f9480, 0, 0, 0, 65535, serveraddr, mouse_dd, ed_focus, 0, 0
Line 272... Line 291...
272
 
291
USERbox         edit_box 150, 70, 10, 0xffffff, 0x6f9480, 0, 0, 0, 127, username, mouse_dd, ed_focus, 0, 0
273
URLbox          edit_box 200, 25, 16, 0xffffff, 0x6f9480, 0, 0, 0, 65535, serveraddr, mouse_dd, ed_focus, 0, 0
292
PASSbox         edit_box 150, 90, 10, 0xffffff, 0x6f9480, 0, 0, 0, 127, password, mouse_dd, 0, 0, 0
274
 
293
 
275
serverstr       db "server:"
294
serverstr       db "server:"
276
userstr         db "username:"
295
userstr         db "username:"
277
passstr         db "password:"
296
passstr         db "password:"
Line 278... Line 297...
278
connectstr      db "connect"
297
connectstr      db "Connect"
279
loginstr        db "login"
298
loginstr        db "Log in"
280
loginstr_e:
299
loginstr_e:
Line 350... Line 369...
350
 
369
 
351
screen:                 ; Remote screen resolution
370
screen:                 ; Remote screen resolution
352
.height                 dw ?
371
.height                 dw ?
Line -... Line 372...
-
 
372
.width                  dw ?
-
 
373
 
-
 
374
keymap                  rb 128
353
.width                  dw ?
375
username                rb 128
354
 
376
password                rb 128
355
serveraddr              rb 65536
377
serveraddr              rb 65536
Line 356... Line 378...
356
receive_buffer          rb RECEIVE_BUFFER_SIZE
378
receive_buffer          rb RECEIVE_BUFFER_SIZE