FlightGear
next
js_demo.cxx
Go to the documentation of this file.
1
2
#include <config.h>
3
4
#include <chrono>
5
#include <thread>
6
7
#include "FlightGear_js.h"
8
9
10
#define Z 8
11
12
int
main
(
int
,
char
** )
13
{
14
jsJoystick *js[
Z
] ;
15
float
*ax[
Z
] ;
16
int
i
, j, t, useful[
Z
];
17
18
jsInit();
19
20
for
(
i
= 0;
i
<
Z
;
i
++ )
21
js[
i
] =
new
jsJoystick (
i
) ;
22
23
printf (
"Joystick test program.\n"
) ;
24
printf (
"~~~~~~~~~~~~~~~~~~~~~~\n"
) ;
25
26
t = 0;
27
for
(
i
= 0;
i
<
Z
;
i
++ )
28
{ useful[
i
] = ! ( js[
i
]->notWorking () );
29
if
( useful[
i
] ) {
30
t++;
31
printf (
"Joystick %i: \"%s\"\n"
,
i
, js[
i
]->getName() ) ;
32
}
else
printf (
"Joystick %i not detected\n"
,
i
) ;
33
}
34
if
( t == 0 ) exit ( 1 ) ;
35
36
for
(
i
= 0;
i
<
Z
;
i
++ )
37
if
( useful[
i
] )
38
ax[
i
] =
new
float
[ js[
i
]->getNumAxes () ] ;
39
40
for
(
i
= 0 ;
i
<
Z
;
i
++ )
41
if
( useful[
i
] )
42
printf (
"+--------------------JS.%d----------------------"
,
i
) ;
43
44
printf (
"+\n"
) ;
45
46
for
(
i
= 0 ;
i
<
Z
;
i
++ )
47
if
( useful[
i
] )
48
{
49
if
( js[
i
]->notWorking () )
50
printf (
"| ~~~ Not Detected ~~~ "
) ;
51
else
52
{
53
printf (
"| Btns "
) ;
54
55
for
( j = 0 ; j < js[
i
]->getNumAxes () ; j++ )
56
printf (
"Ax:%1d "
, j ) ;
57
58
for
( ; j < 8 ; j++ )
59
printf (
" "
) ;
60
}
61
}
62
63
printf (
"|\n"
) ;
64
65
for
(
i
= 0 ;
i
<
Z
;
i
++ )
66
if
( useful[
i
] )
67
printf (
"+----------------------------------------------"
) ;
68
69
printf (
"+\n"
) ;
70
71
while
(1)
72
{
73
for
(
i
= 0 ;
i
<
Z
;
i
++ )
74
if
( useful[
i
] )
75
{
76
if
( js[
i
]->notWorking () )
77
printf (
"| . . . . . . . . . . . "
) ;
78
else
79
{
80
int
b ;
81
82
js[
i
]->read ( &b, ax[
i
] ) ;
83
84
printf (
"| %04x "
, b ) ;
85
86
for
( j = 0 ; j < js[
i
]->getNumAxes () ; j++ )
87
printf (
"%+.1f "
, ax[
i
][j] ) ;
88
89
for
( ; j < 8 ; j++ )
90
printf (
" . "
) ;
91
}
92
}
93
94
printf (
"|\r"
) ;
95
fflush ( stdout ) ;
96
97
/* give other processes a chance */
98
{
99
using namespace
std::chrono_literals;
100
std::this_thread::sleep_for(std::chrono::milliseconds(1ms));
101
}
102
}
103
104
return
0;
105
}
i
#define i(x)
main
int main()
Definition
fg_dds_log.cpp:63
Z
#define Z
Definition
js_demo.cxx:10
src
Input
js_demo.cxx
Generated on Tue Jun 3 2025 12:58:39 for FlightGear by
1.13.2