1 Star 0 Fork 1

upczap/vrpn

forked from ianaxe/vrpn 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
vrpn_Event.C 3.36 KB
一键复制 编辑 原始数据 按行查看 历史
/**************************************************************************************************/
/* */
/* Copyright (C) 2004 Bauhaus University Weimar */
/* Released into the public domain on 6/23/2007 as part of the VRPN project */
/* by Jan P. Springer. */
/* */
/**************************************************************************************************/
/* */
/* module : vrpn_Linux.h */
/* project : */
/* description: provide functionality for Event interface */
/* */
/**************************************************************************************************/
// includes, system
#include <stdio.h> // for perror
#if ! defined(_WIN32)
#include <fcntl.h> // for open, O_RDONLY
#include <unistd.h> // for close, read
#endif
// includes project
#include "vrpn_Event.h"
namespace vrpn_Event {
/************************************************************************************************/
/* open the specified event interface */
/************************************************************************************************/
int
vrpn_open_event( const char* file) {
#if defined(_WIN32)
fprintf( stderr, "vrpn_Event::vrpn_open_event(): Not yet implemented on this architecture.");
return -1;
#else // #if defined(LINUX)
return open( file, O_RDONLY);
#endif
}
/************************************************************************************************/
/* close the event interface */
/************************************************************************************************/
void
vrpn_close_event( const int fd) {
#if defined(_WIN32)
fprintf( stderr, "vrpn_Event::vrpn_close_event(): Not yet implemented on this architecture.");
#else // #if defined(LINUX)
close(fd);
#endif
}
/************************************************************************************************/
/* read data from the interface */
/************************************************************************************************/
int
vrpn_read_event( int fd, input_event * data, int max_elements) {
#if defined(_WIN32)
fprintf( stderr, "vrpn_Event::vrpn_read_event(): Not yet implemented on this architecture.");
return -1;
#else /// #if defined(LINUX)
int read_bytes = read(fd, data, sizeof(struct input_event) * max_elements);
if (read_bytes < (int) sizeof(struct input_event)) {
perror("vrpn_Event_Linux::vrpn_read_event() : short read");
}
return (read_bytes / sizeof(struct input_event));
#endif
}
} // end namespace vrpn_Event
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/jari/vrpn.git
git@gitee.com:jari/vrpn.git
jari
vrpn
vrpn
master

搜索帮助