寻求帮助:QNX控制台捕获鼠标事件

中文QNX 讨论: 欢迎大家灌水,讨论有关QNX 问题。

寻求帮助:QNX控制台捕获鼠标事件

帖子youbo » 周三 5月 13, 2009 9:57 am

老师布置了一个任务,如题。在网上找了个代码。
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <linux/input.h>
static int event0_fd = -1;
struct input_event ev0[64];

//for handling event0, mouse/key/ts
static int handle_event0() {
int button = 0, realx = 0, realy = 0, i, rd;

rd = read(event0_fd, ev0, sizeof(struct input_event) * 64);
if ( rd < sizeof(struct input_event) ) return 0;

for (i = 0; i < rd / sizeof(struct input_event); i++) {
printf("", ev0[i].type, ev0[i].code, ev0[i].value);
if (ev0[i].type == 3 && ev0[i].code == 0)
realx = ev0[i].value;
else if (ev0[i].type == 3 && ev0[i].code == 1)
realy = ev0[i].value;
else if (ev0[i].type == 1) {
if (ev0[i].code == 158) {
//if key esc then exit
return 0;
}
} else if (ev0[i].type == 0 && ev0[i].code == 0 && ev0[i].value == 0) {
realx = 0, realy = 0;
}
printf("event(%d): type: %d; code: %3d; value: %3d; realx: %3d; realy: %3d\n", i,
ev0[i].type, ev0[i].code, ev0[i].value, realx, realy);
}

return 1;
}

int main(void) {
int done = 1;
printf("sizeof(struct input_event) = %d\n", sizeof(struct input_event));

event0_fd = open("/dev/input/event0", O_RDWR);

if ( event0_fd < 0 )
return -1;

while ( done ) {
printf("begin handel_event0...\n");
done = handle_event0();
printf("end handel_event0...\n");
}

if ( event0_fd > 0 ) {
close(event0_fd);
event0_fd = -1;
}

return 0;
}
我有两个问题请教:1。我装的是QNX虚拟机,在我的/dev下面找不到鼠标设备文件阿,open()不了。请高手指点哪个是鼠标设备。
2。#include <linux/input.h>头文件是在linux下,在qnx里面是否有与它对应的头文件,里面声明了结构体input_event。
youbo
New Member
 
帖子: 3
注册: 周三 5月 13, 2009 9:44 am

回到 四海同心QNX论坛

在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客

cron