解决minigui在nvr上不支持鼠标热拔插

好几个月之前遇到的问题,nvr上鼠标拔下来再插进去就失效了。调试了下发现,鼠标拔出后,在nvr上,out集并不置位,但设备文件没了。

因此在每次收到鼠标事件都判断下设备文件是否存在,如果不存在就关掉套接字,让minigui在wait_event中尝试重连。

把minigui源码中src/ial/native/native.c的331~339行,替换为
if (kbddev == &kbddev_event && FD_ISSET (fd, out)){
    // FD_CLR (fd, out);
    // mousedev->Close();
    // mouse_fd = -1;
    // fprintf(stderr, "IAL Native Engine: mouse device has been disconnected.\n");
}else if (FD_ISSET (fd, in)) {
    if(access(mouse_device, F_OK) != 0)
    {
        mousedev->Close();
        mouse_fd = -1;
    }
    else
    {
        FD_CLR (fd, in);
        retvalue |= IAL_MOUSEEVENT;   
    }
}

你可能感兴趣的:(GUI)