]> git.mxchange.org Git - flightgear.git/blob - src/Joystick/js_demo.cxx
MSVC compatibility changes and code tweaks for minor nits caught by the
[flightgear.git] / src / Joystick / js_demo.cxx
1
2 #include <plib/js.h>
3
4 #define Z 8
5
6 int main ( int, char ** )
7 {
8   jsJoystick *js[Z] ;
9   float      *ax[Z] ;
10   int i, j, t, useful[Z];
11
12   for ( i = 0; i < Z; i++ )
13       js[i] = new jsJoystick ( i ) ;
14
15   printf ( "Joystick test program.\n" ) ;
16   printf ( "~~~~~~~~~~~~~~~~~~~~~~\n" ) ;
17
18   t = 0;
19   for ( i = 0; i < Z; i++ )
20   { useful[i] = ! ( js[i]->notWorking () );
21     if ( useful[i] )
22          t++;
23     else printf ( "Joystick %i not detected\n", i ) ;
24   }
25   if ( t == 0 ) exit ( 1 ) ;
26
27   for ( i = 0; i < Z; i++ )
28     if ( useful[i] )
29        ax[i] = new float [ js[i]->getNumAxes () ] ;
30
31   for ( i = 0 ; i < Z ; i++ )
32     if ( useful[i] )
33        printf ( "+---------------JS.%d-----------------", i ) ;
34
35   printf ( "+\n" ) ;
36
37   for ( i = 0 ; i < Z ; i++ )
38    if ( useful[i] )
39    {
40     if ( js[i]->notWorking () )
41       printf ( "|       ~~~ Not Detected ~~~         " ) ;
42     else
43     {
44       printf ( "| Btns " ) ;
45
46       for ( j = 0 ; j < js[i]->getNumAxes () ; j++ )
47         printf ( "Ax:%d ", j ) ;
48
49       for ( ; j < 6 ; j++ )
50         printf ( "     " ) ;
51     }
52    }
53
54   printf ( "|\n" ) ;
55
56   for ( i = 0 ; i < Z ; i++ )
57     if ( useful[i] )
58       printf ( "+------------------------------------" ) ;
59
60   printf ( "+\n" ) ;
61
62   while (1)
63   {
64     for ( i = 0 ; i < Z ; i++ )
65     if ( useful[i] )
66      {
67       if ( js[i]->notWorking () )
68         printf ( "|  .   .   .   .   .   .   .   .   . " ) ;
69       else
70       {
71         int b ;
72
73         js[i]->read ( &b, ax[i] ) ;
74
75         printf ( "| %04x ", b ) ;
76
77         for ( j = 0 ; j < js[i]->getNumAxes () ; j++ )
78           printf ( "%+.1f ", ax[i][j] ) ;
79
80         for ( ; j < 6 ; j++ )
81           printf ( "  .  " ) ;
82       }
83      }
84
85     printf ( "|\r" ) ;
86     fflush ( stdout ) ;
87
88     /* give other processes a chance */
89
90 #ifdef WIN32
91     Sleep ( 1 ) ;
92 #elif defined(sgi)
93     sginap ( 1 ) ;
94 #else
95     usleep ( 1000 ) ;
96 #endif
97   }
98
99   return 0 ;
100 }
101
102