]> git.mxchange.org Git - flightgear.git/commitdiff
Allow input systems to be disabled
authorTorsten Dreyer <torsten@ŧ3r.de>
Sat, 11 Oct 2014 18:23:13 +0000 (20:23 +0200)
committerTorsten Dreyer <torsten@ŧ3r.de>
Thu, 6 Nov 2014 21:27:59 +0000 (22:27 +0100)
To avoid trouble when running multiple instances on one machine, disable
e.g. joystick input for second instance by
--prop:bool:/sim/input/no-joystick-input=true

Also allowed:
--prop:bool:/sim/input/no-event-input=true
--prop:bool:/sim/input/no-mouse-input=true
--prop:bool:/sim/input/no-keyboard-input=true

src/Input/input.cxx

index 3804e8e9408c404ffb7a4ecb1fdcb487d7c21d8e..55ea02d99e18e2a50be782257e5c14c51c82cd2b 100644 (file)
@@ -30,6 +30,7 @@
 
 #include <simgear/compiler.h>
 
+#include <Main/fg_props.hxx>
 #include "FGMouseInput.hxx"
 #include "FGKeyboardInput.hxx"
 #include "FGJoystickInput.hxx"
 
 FGInput::FGInput ()
 {
-  set_subsystem( "input-mouse", new FGMouseInput() );
-  set_subsystem( "input-keyboard", new FGKeyboardInput() );
-  set_subsystem( "input-joystick", new FGJoystickInput() );
+  if( fgGetBool("/sim/input/no-mouse-input",false) ) {
+    SG_LOG(SG_INPUT,SG_ALERT,"Mouse input disabled!");
+  } else {
+    set_subsystem( "input-mouse", new FGMouseInput() );
+  }
+
+  if( fgGetBool("/sim/input/no-keyboard-input",false) ) {
+    SG_LOG(SG_INPUT,SG_ALERT,"Keyboard input disabled!");
+  } else {
+    set_subsystem( "input-keyboard", new FGKeyboardInput() );
+  }
+
+  if( fgGetBool("/sim/input/no-joystick-input",false) ) {
+    SG_LOG(SG_INPUT,SG_ALERT,"Joystick input disabled!");
+  } else {
+    set_subsystem( "input-joystick", new FGJoystickInput() );
+  }
 #ifdef INPUTEVENT_CLASS
-  set_subsystem( "input-event", new INPUTEVENT_CLASS() );
+  if( fgGetBool("/sim/input/no-event-input",false) ) {
+    SG_LOG(SG_INPUT,SG_ALERT,"Event input disabled!");
+  } else {
+    set_subsystem( "input-event", new INPUTEVENT_CLASS() );
+  }
 #endif
 }