/uspace/trunk/kbd/include/keys.h |
---|
37,11 → 37,7 |
#ifndef _KBD_KEYS_H_ |
#define _KBD_KEYS_H_ |
#define KBD_PUSHCHAR 1024 |
#define KBD_MS_LEFT 1025 |
#define KBD_MS_RIGHT 1026 |
#define KBD_MS_MIDDLE 1027 |
#define KBD_MS_MOVE 1028 |
#define KBD_PUSHCHAR 1024 |
#define KBD_KEY_F1 0x3b |
#define KBD_KEY_F2 0x3c |
/uspace/trunk/kbd/include/kbd.h |
---|
37,10 → 37,8 |
#ifndef __KBD_H__ |
#define __KBD_H__ |
#include <key_buffer.h> |
int kbd_arch_process(keybuffer_t *keybuffer, ipc_call_t *call); |
int mouse_arch_process(int phoneid, ipc_call_t *call); |
#endif |
/uspace/trunk/kbd/arch/ia32/src/mouse.c |
---|
File deleted |
/uspace/trunk/kbd/arch/ia32/src/kbd.c |
---|
449,16 → 449,17 |
{ |
int status = IPC_GET_ARG1(*call); |
if ((status & i8042_MOUSE_DATA)) |
return 0; |
int scan_code = IPC_GET_ARG2(*call); |
if (scan_code != IGNORE_CODE) { |
if (scan_code & KEY_RELEASE) |
key_released(keybuffer, scan_code ^ KEY_RELEASE); |
else |
key_pressed(keybuffer, scan_code); |
if ((status & i8042_MOUSE_DATA)) { |
; |
} else { |
int scan_code = IPC_GET_ARG2(*call); |
if (scan_code != IGNORE_CODE) { |
if (scan_code & KEY_RELEASE) |
key_released(keybuffer, scan_code ^ KEY_RELEASE); |
else |
key_pressed(keybuffer, scan_code); |
} |
} |
return 1; |
} |
/uspace/trunk/kbd/generic/kbd.c |
---|
64,15 → 64,10 |
{ |
int chr; |
#ifdef MOUSE_ENABLED |
if (mouse_arch_process(phone2cons, call)) |
return; |
#endif |
kbd_arch_process(&keybuffer, call); |
if (cons_connected && phone2cons != -1) { |
/* recode to ASCII - one interrupt can produce more than one code so result is stored in fifo */ |
kbd_arch_process(&keybuffer, call); |
while (!keybuffer_empty(&keybuffer)) { |
if (!keybuffer_pop(&keybuffer, (int *)&chr)) |
break; |
/uspace/trunk/kbd/Makefile |
---|
48,17 → 48,6 |
ARCH_SOURCES = \ |
arch/$(ARCH)/src/kbd.c |
ifeq ($(ARCH), ia32) |
ARCH_SOURCES += arch/$(ARCH)/src/mouse.c |
CFLAGS += -DMOUSE_ENABLED |
endif |
ifeq ($(ARCH), amd64) |
ARCH_SOURCES += arch/$(ARCH)/src/mouse.c |
CFLAGS += -DMOUSE_ENABLED |
endif |
GENERIC_OBJECTS := $(addsuffix .o,$(basename $(GENERIC_SOURCES))) |
ARCH_OBJECTS := $(addsuffix .o,$(basename $(ARCH_SOURCES))) |
/uspace/trunk/libc/include/ipc/fb.h |
---|
70,8 → 70,6 |
#define FB_ANIM_START 1204 |
#define FB_ANIM_STOP 1205 |
#define FB_POINTER_MOVE 1300 |
#endif |
/uspace/trunk/console/console.c |
---|
298,9 → 298,6 |
case IPC_M_PHONE_HUNGUP: |
/* TODO: Handle hangup */ |
return; |
case KBD_MS_MOVE: |
gcons_mouse_move(IPC_GET_ARG1(call), IPC_GET_ARG2(call)); |
break; |
case KBD_PUSHCHAR: |
/* got key from keyboard driver */ |
/uspace/trunk/console/gcons.c |
---|
230,28 → 230,6 |
vp_switch(0); |
} |
static inline int limit(int a,int left, int right) |
{ |
if (a < left) |
a = left; |
if (a >= right) |
a = right - 1; |
return a; |
} |
void gcons_mouse_move(int dx, int dy) |
{ |
static int x = 0; |
static int y = 0; |
x = limit(x+dx, 0, xres); |
y = limit(y+dy, 0, yres); |
async_msg_2(fbphone, FB_POINTER_MOVE, x, y); |
} |
/** Draw a PPM pixmap to framebuffer |
* |
* @param logo Pointer to PPM data |
/uspace/trunk/console/gcons.h |
---|
41,7 → 41,6 |
void gcons_in_kernel(void); |
void gcons_notify_connect(int consnum); |
void gcons_notify_disconnect(int consnum); |
void gcons_mouse_move(int dx, int dy); |
#endif |
/uspace/trunk/fb/fb.c |
---|
1124,10 → 1124,6 |
case FB_GET_RESOLUTION: |
ipc_answer_fast(callid, 0, screen.xres,screen.yres); |
continue; |
case FB_POINTER_MOVE: |
putpixel(&viewports[0], IPC_GET_ARG1(call), IPC_GET_ARG2(call), |
0xd0a080); |
break; |
default: |
retval = ENOENT; |
} |