home *** CD-ROM | disk | FTP | other *** search
/ Virtual Reality Zone / VRZONE.ISO / mac / PC / PCGLOVE / GLOVE / OBJGLV.ZIP / SRC / INITGLOV.CPP < prev    next >
C/C++ Source or Header  |  1993-04-27  |  2KB  |  62 lines

  1. // Set the machine timings in glove.ini.
  2. // Copyright 1993 Mark Pflaging
  3. #include "ini.hpp"
  4. #include "hardware.hpp"
  5.  
  6. machineTimer * D2BYTES, * D2BITS, * D2SLOW;
  7.  
  8. char * title = "Timings";
  9.  
  10. void calibrate(InitFile & ini)
  11. {
  12.     D2BITS = new machineTimer(
  13.         ini.find(title, "D2BITS", 15), NULL
  14.         );
  15.     D2BYTES = new machineTimer(
  16.         ini.find(title, "D2BYTES", 70), NULL
  17.         );
  18.     D2SLOW = new machineTimer(
  19.         ini.find(title, "D2SLOW", 1000), NULL
  20.         );
  21. }
  22.  
  23. #include <stdio.h>
  24.  
  25. void doForce(machineTimer & arg, char * variable, InitFile & ini)
  26. {
  27.     cout << "N/D=" << int(arg.getNum()) << "/" << int(arg.getDen()) << " for ";
  28.     cout << (arg.getVal()) << "usec delay.";
  29.     cout << " (100 sample avg. = " << abs(arg.getTestValue()) << " usec)";
  30.     cout << endl;
  31.     char temp[80];
  32.     strcpy(temp, variable);
  33.     strcat(temp, ".N");
  34.     char temp2[80];
  35.     sprintf(temp2, "%d", int(arg.getNum()));
  36.     ini.forceIn(title, temp, temp2);
  37.     strcpy(temp, variable);
  38.     strcat(temp, ".D");
  39.     sprintf(temp2, "%d", int(arg.getDen()));
  40.     ini.forceIn(title, temp, temp2);
  41. }
  42.  
  43. main()
  44. {
  45.     InitFile gloveIni("glove.ini");
  46.     if (gloveIni.getStatus() == Key::FileDidNotExist) {
  47.          cout << "Cannot open \"glove.ini\".  Exiting." << endl;
  48.          exit(-1);
  49.     }
  50.     if (gloveIni.getStatus() == Key::ErrorReadingFile) {
  51.          cout << "Error in \"glove.ini\".  Exiting." << endl;
  52.          exit(-1);
  53.     }
  54.     calibrate(gloveIni);
  55.     doForce(*D2BITS, "D2BITS", gloveIni);
  56.     doForce(*D2BYTES, "D2BYTES", gloveIni);
  57.     doForce(*D2SLOW, "D2SLOW", gloveIni);
  58.     gloveIni.write();
  59.     cout << endl << "These values have been written to \"GLOVE.INI\"." << endl;
  60.     return 0;
  61. }
  62.