]> git.mxchange.org Git - flightgear.git/blob - src/Input/jssuper.cxx
Small tweaks to initialization sequence and logic so we can default to
[flightgear.git] / src / Input / jssuper.cxx
1 // jssuper.cxx -- manage access to multiple joysticks
2 //
3 // Written by Tony Peden, started May 2001
4 //
5 // Copyright (C) 2001  Tony Peden (apeden@earthlink.net)
6 //
7 // This program is free software; you can redistribute it and/or
8 // modify it under the terms of the GNU General Public License as
9 // published by the Free Software Foundation; either version 2 of the
10 // License, or (at your option) any later version.
11 //
12 // This program is distributed in the hope that it will be useful, but
13 // WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 // General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program; if not, write to the Free Software
19 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20
21
22 #include <jssuper.h>
23
24
25 jsSuper::jsSuper(void) {
26   int i;
27
28   activeJoysticks=0;
29   currentJoystick=0;
30   first=-1;
31   last=0;
32   for ( i = 0; i < MAX_JOYSTICKS; i++ )
33       js[i] = new jsJoystick( i );
34   
35   for ( i = 0; i < MAX_JOYSTICKS; i++ )
36   { 
37     active[i] = ! ( js[i]->notWorking () );
38     if ( active[i] ) {
39          activeJoysticks++;
40          if(first < 0) {
41             first=i;
42          }
43          last=i;
44     }        
45   }
46   
47 }  
48
49
50 int jsSuper::nextJoystick(void) { 
51   // int i;
52   if(!activeJoysticks) return 0;
53   if(currentJoystick == last ) return 0; 
54   currentJoystick++;
55   while(!active[currentJoystick]){ currentJoystick++; };
56   return 1;
57 }    
58         
59 int jsSuper::prevJoystick(void) { 
60   // int i;
61   if(!activeJoysticks) return 0; 
62   if(currentJoystick == first ) return 0; 
63   currentJoystick--;
64   while(!active[currentJoystick]){ currentJoystick--; };
65   return 1;
66 }    
67
68
69
70
71 jsSuper::~jsSuper(void) {
72   int i;
73   for ( i = 0; i < MAX_JOYSTICKS; i++ )
74       delete js[i];
75 }      
76   
77     
78
79     
80