home *** CD-ROM | disk | FTP | other *** search
/ Virtual Reality Zone / VRZONE.ISO / mac / PC / PCGLOVE / GLOVE / OBJGLV.ZIP / SRC / SIMPLE.CPP < prev    next >
C/C++ Source or Header  |  1993-05-12  |  4KB  |  156 lines

  1. //
  2. // Simple.cpp:
  3. //    Exercises Object Glove functions in a simple way.
  4. //    Example use of Object Glove.
  5. //
  6. // Compatibility:
  7. //    DOS and Windows.
  8. //
  9. // Copyright 1992, 1993   Mark Thomas Pflaging
  10. //
  11. // Date:            11/20/92 (Release 2.1)
  12. //                   3/22/93 (Release 3.0)
  13. //
  14. #include <dos.h>
  15. #include <bios.h>
  16. #include <stdlib.h>
  17.  
  18. #include <conio.h>
  19.  
  20. #include <strstream.h>
  21. #include <iomanip.h>
  22. #include <string.h>
  23.  
  24. #include "smooth.hpp"
  25. #include "ini.hpp"
  26. #include "gesture.hpp"
  27. #include "shamless.hpp"
  28.  
  29. #pragma argsused
  30. void simpleOutput(gloveDriver & gd, void * sysarg)
  31. {
  32. #ifndef _Windows
  33.     gotoxy(1,1 + gd.whichGlove());
  34.     ostrstream temp;
  35.     temp <<
  36. #else
  37.     cout <<
  38. #endif
  39.     setw(8) << gd.getFingers()
  40.         << setw(8) << gd.getRotation()
  41.         << setw(8) << gd.getX()
  42.         << setw(8) << gd.getY()
  43.         << setw(8) << gd.getZ()
  44.         << setw(8) << gd.getKeys()
  45. #ifndef _Windows
  46.         << '\0';
  47.     char * byebye;
  48.     cprintf(byebye = temp.str());
  49.     free(byebye);
  50. #else
  51.         << endl;
  52. #endif
  53. }
  54.  
  55. Boolean keyhit_quit()
  56. {
  57.     if (kbhit()) {
  58.         getch();
  59.                 return True;
  60.     }
  61.     return False;
  62. }
  63.  
  64. int main()
  65. {
  66.     cout << "Edit GLOVE.INI to change startup parameters if "
  67.         "you experience trouble." << endl;
  68.     cout << "HELPME!.DOC contains important troubleshooting "
  69.         "information!" << endl;
  70.     cout << "Reading GLOVE.INI..." << endl;
  71.     InitFile * gloveIni = new InitFile("glove.ini");
  72.  
  73. #ifndef _Windows
  74.     cout << "Determining timing values for this machine..." << endl;
  75. #endif
  76.  
  77.     gloveDriver * GLOVE1;
  78.         cout << "Looking for glove #1...(Press any key to quit.)" << endl;
  79.     if (!strcmp(gloveIni->find("1.Smoothing", "smoothingEnabled", "True"),
  80.          "True"))
  81.         GLOVE1 = new smoothGlove(*gloveIni, NULL, keyhit_quit);
  82.     else
  83.         GLOVE1 = new rawGlove(*gloveIni, NULL, keyhit_quit);
  84.     GLOVE1->test();
  85.  
  86.     if (GLOVE1->driverStatus() == gloveDriver::EverythingOK) {
  87.         ((rawGlove *)GLOVE1)->initFunction(simpleOutput);
  88.         gloveDriver * GLOVE2;
  89.         cout << "Looking for glove #2...(Press any key to proceed with one glove.)" << endl;
  90.         if (!strcmp(gloveIni->find("2.Smoothing", "smoothingEnabled", "True"),
  91.              "True"))
  92.             GLOVE2 = new smoothGlove(*gloveIni, NULL, keyhit_quit);
  93.         else
  94.             GLOVE2 = new rawGlove(*gloveIni, NULL, keyhit_quit);
  95.  
  96.         if (GLOVE2->driverStatus() == gloveDriver::EverythingOK) {
  97.             cout << endl << endl
  98.                 << "            Press any keyboard key to begin." << endl
  99.                 << endl;
  100.             getch();
  101. #ifndef _Windows
  102.             clrscr();
  103. #endif
  104.             ((rawGlove *)GLOVE2)->initFunction(simpleOutput);
  105.             GLOVE1->Start(strcmp(gloveIni->find(
  106.                 gloveDriver::getTitle(),
  107.                 "PolledOperation", "False"),
  108.                 "True") ? True : False);
  109.             gloveIni->write();
  110.             delete gloveIni;
  111.             rawGlove::run();
  112. #ifndef _Windows
  113.             clrscr();
  114. #endif
  115.             delete GLOVE2;
  116.             delete GLOVE1;
  117.             shamelessFunc();
  118.         }
  119.         else {
  120.  
  121.             cout << endl << endl
  122.                 << "            Press any keyboard key to begin." << endl
  123.                 << endl;
  124.             getch();
  125. #ifndef _Windows
  126.             clrscr();
  127. #endif
  128.             delete GLOVE2;
  129.             GLOVE1->Start(strcmp(gloveIni->find(
  130.                 gloveDriver::getTitle(),
  131.                 "PolledOperation", "False"),
  132.                 "True") ? True : False);
  133.             gloveIni->write();
  134.             delete gloveIni;
  135.             rawGlove::run();
  136. #ifndef _Windows
  137.             clrscr();
  138. #endif
  139.             delete GLOVE1;
  140.             shamelessFunc();
  141.         }
  142.     }
  143.     else {
  144.         if (GLOVE1->driverStatus() == gloveDriver::WindowsParametersMissing)
  145.             cout << "Delay values are not specified in \"glove.ini\"." << endl
  146.                 << "Please EXIT WINDOWS and run \"INITGLOV.EXE\"" << endl
  147.                 << "while you are in the same directory as GLOVE.INI." << endl;
  148.         else
  149.             cout << "You pressed a key to end the program." << endl;
  150.         gloveIni->write();
  151.         delete gloveIni;
  152.         delete GLOVE1;
  153.     }
  154.     return 0;
  155. }
  156.