vrpn
07.33
Virtual Reality Peripheral Network
vrpn_Event.C
Go to the documentation of this file.
1
/**************************************************************************************************/
2
/* */
3
/* Copyright (C) 2004 Bauhaus University Weimar */
4
/* Released into the public domain on 6/23/2007 as part of the VRPN project */
5
/* by Jan P. Springer. */
6
/* */
7
/**************************************************************************************************/
8
/* */
9
/* module : vrpn_Linux.h */
10
/* project : */
11
/* description: provide functionality for Event interface */
12
/* */
13
/**************************************************************************************************/
14
15
// includes, system
16
17
#include <stdio.h>
// for perror
18
#if ! defined(_WIN32)
19
#include <fcntl.h>
// for open, O_RDONLY
20
#include <unistd.h>
// for close, read
21
#endif
22
23
// includes project
24
#include "
vrpn_Event.h
"
25
26
27
namespace
vrpn_Event
{
28
29
/************************************************************************************************/
30
/* open the specified event interface */
31
/************************************************************************************************/
32
int
33
vrpn_open_event
(
const
char
* file) {
34
35
#if defined(_WIN32)
36
37
fprintf( stderr,
"vrpn_Event::vrpn_open_event(): Not yet implemented on this architecture."
);
38
return
-1;
39
40
#else // #if defined(LINUX)
41
42
return
open( file, O_RDONLY);
43
44
#endif
45
}
46
47
/************************************************************************************************/
48
/* close the event interface */
49
/************************************************************************************************/
50
void
51
vrpn_close_event
(
const
int
fd) {
52
53
#if defined(_WIN32)
54
55
fprintf( stderr,
"vrpn_Event::vrpn_close_event(): Not yet implemented on this architecture."
);
56
57
#else // #if defined(LINUX)
58
59
close(fd);
60
61
#endif
62
}
63
64
/************************************************************************************************/
65
/* read data from the interface */
66
/************************************************************************************************/
67
int
68
vrpn_read_event
(
int
fd,
input_event
* data,
int
max_elements) {
69
70
#if defined(_WIN32)
71
72
fprintf( stderr,
"vrpn_Event::vrpn_read_event(): Not yet implemented on this architecture."
);
73
return
-1;
74
75
#else
76
77
int
read_bytes = read(fd, data,
sizeof
(
struct
input_event
) * max_elements);
78
79
if
(read_bytes < (
int
)
sizeof
(
struct
input_event
)) {
80
81
perror(
"vrpn_Event_Linux::vrpn_read_event() : short read"
);
82
}
83
84
return
(read_bytes /
sizeof
(
struct
input_event
));
85
86
#endif
87
}
88
89
}
// end namespace vrpn_Event
90
vrpn_Event::vrpn_read_event
int vrpn_read_event(int fd, input_event *data, int max_elements)
Definition:
vrpn_Event.C:68
vrpn_Event.h
vrpn_Event
Definition:
vrpn_Event.C:27
vrpn_Event::input_event
Definition:
vrpn_Event.h:23
vrpn_Event::vrpn_open_event
int vrpn_open_event(const char *file)
Definition:
vrpn_Event.C:33
vrpn_Event::vrpn_close_event
void vrpn_close_event(const int fd)
Definition:
vrpn_Event.C:51
vrpn_Event.C
Generated by
1.8.17