]> git.mxchange.org Git - flightgear.git/blobdiff - src/Input/fgjs.cxx
throw an exception if not even a default joystick could be found;
[flightgear.git] / src / Input / fgjs.cxx
index e9ed0aa72639f3f77482279780617f0cdf87f9f0..a98429c0b2f65a480b4f5cc76580db3d5f0d5322 100644 (file)
 #include STL_FSTREAM
 #include STL_STRING
 
-#include <jssuper.h>
 #include <jsinput.h>
 
+SG_USING_STD(fstream);
+SG_USING_STD(cout);
+SG_USING_STD(endl);
+SG_USING_STD(ios);
 SG_USING_STD(string);
 
-
 string axes_humannames[8] = { "elevator", "ailerons", "rudder", "throttle", 
                               "mixture","propller pitch", "lateral view", 
                               "longitudinal view" 
                             };
 
-string axes_propnames[8]={ "/controls/elevator","/controls/aileron",
-                           "/controls/rudder","/controls/throttle",
-                           "/controls/mixture","/controls/pitch", 
+string axes_propnames[8]={ "/controls/flight/elevator","/controls/flight/aileron",
+                           "/controls/flight/rudder","/controls/engines/engine/throttle",
+                           "/controls/engines/engine/mixture","/controls/engines/engine/pitch", 
                            "/sim/views/axes/lat","/sim/views/axes/long" 
                          };
                       
 bool half_range[8]={ false,false,false,true,true,true,false,false };
 
 
-string button_humannames[7]= { "apply all brakes", "apply left brake", 
+string button_humannames[6]= { "apply left brake", 
                                "apply right brake", "step flaps up", 
                                "step flaps down","apply nose-up trim",
                                "apply nose-down trim"
                              }; 
 
-string button_propnames[7]={ "/controls/brakes/all", "/controls/brakes[0]",
-                             "/controls/brakes[1]", "/controls/flaps",
-                             "/controls/flaps","/controls/elevator-trim",
-                             "/controls/elevator-trim" 
+string button_propnames[6]={ "/controls/gear/brake-left",
+                             "/controls/gear/brake-right",
+                             "/controls/flight/flaps",
+                             "/controls/flight/flaps",
+                             "/controls/flight/elevator-trim",
+                             "/controls/flight/elevator-trim" 
                            };                                                   
  
 
-float button_step[7]={ 1.0, 1.0, 1.0, 0.34, -0.34, 0.001, -0.001 };
+float button_step[6]={ 1.0, 1.0, 0.34, -0.34, 0.001, -0.001 };
 
-string button_repeat[7]={ "false", "false", "false", "false", "false", 
+string button_repeat[6]={ "false", "false", "false", "false", 
                           "true", "true" };
 
 
@@ -84,15 +88,16 @@ void waitForButton(jsSuper *jss, int wait_ms) {
 
 void writeAxisProperties(fstream &fs, int control,int joystick, int axis) {
      
-     char jsDesc[40];
-     snprintf(jsDesc,40,"--prop:/input/joysticks/js[%d]/axis[%d]",joystick,axis);
-     fs << jsDesc  << "/control=" << axes_propnames[control] << endl; 
+     char jsDesc[80];
+     snprintf(jsDesc,80,"--prop:/input/joysticks/js[%d]/axis[%d]/binding",joystick,axis);
+     fs << jsDesc  << "/command=property-scale" << endl; 
+     fs << jsDesc  << "/property=" << axes_propnames[control] << endl; 
      
      fs << jsDesc << "/dead-band=0.02"  << endl; 
      
      if( half_range[control] == true) {
        fs << jsDesc << "/offset=-1.0" << endl; 
-       fs << jsDesc << "/factor=0.5" << endl;
+       fs << jsDesc << "/factor=-0.5" << endl;
      } else {
        fs << jsDesc << "/offset=0.0" << endl; 
        fs << jsDesc << "/factor=1.0" << endl;
@@ -102,13 +107,13 @@ void writeAxisProperties(fstream &fs, int control,int joystick, int axis) {
 
 void writeButtonProperties(fstream &fs, int property,int joystick, int button) {
      
-     char jsDesc[40];
-     snprintf(jsDesc,40,"--prop:/input/joysticks/js[%d]/button[%d]",joystick,button);
+     char jsDesc[80];
+     snprintf(jsDesc,80,"--prop:/input/joysticks/js[%d]/button[%d]/binding",joystick,button);
      
-     fs << jsDesc << "/action=adjust" << endl; 
-     fs << jsDesc << "/control=" << button_propnames[property] << endl;
-     fs << jsDesc << "/step=" << button_step[property] << endl; 
      fs << jsDesc << "/repeatable=" << button_repeat[property] << endl;
+     fs << jsDesc << "/command=property-adjust" << endl; 
+     fs << jsDesc << "/property=" << button_propnames[property] << endl;
+     fs << jsDesc << "/step=" << button_step[property] << endl; 
      fs << endl; 
 }    
 
@@ -116,10 +121,12 @@ void writeButtonProperties(fstream &fs, int property,int joystick, int button) {
 
       
 int main(void) {
+  jsInit();
+
   jsSuper *jss=new jsSuper();
   jsInput *jsi=new jsInput(jss);
   jsi->displayValues(false);
-  int i;
+  // int i;
   int control=0;
   
   
@@ -163,7 +170,7 @@ int main(void) {
       cout << endl;
   }
   
-  for(control=0;control<=6;control++) {
+  for(control=0;control<=5;control++) {
       cout << "Press the button you wish to use to " 
            << button_humannames[control]
            << endl;