home *** CD-ROM | disk | FTP | other *** search
/ Virtual Reality Zone / VRZONE.ISO / mac / PC / PCGLOVE / GLOVE / MIDIGL.ZIP / UF_GLOV1.CPP < prev    next >
Text File  |  1992-10-27  |  3KB  |  119 lines

  1. // Original Author:  Mitch Allen
  2. // Program:  uf_glove.cpp
  3.  
  4. // Extended by Mark Pflaging 5/29/92 thru 9/21/92
  5.  
  6. #include <dos.h>
  7. #include <bios.h>
  8. #include <stdlib.h>
  9.  
  10. #include "smooth.hpp"
  11. #include "glgrph.hpp"
  12. #include "ini.hpp"
  13. #include <conio.h>
  14. #include <iostream.h>
  15.  
  16. // added by Mick Imfeld for midi functions
  17. #include "stdio.h"
  18. #include "ctype.h"
  19. #include "\ptk\asm\mcc.h"
  20. // #include "\vr\glove\mq\cpp\tkxmpl.h"
  21. int irq; //interface's Irq level for midi
  22. // int oldx; for future use
  23. // int oldy;
  24. // int oldz;
  25. int oldnote;
  26. int oldmidfinger;
  27. int start_note;
  28. int num_of_notes;
  29. int numdiv;
  30. int pitchbend_on;
  31. int main()
  32. {
  33.  
  34.     cout << "Edit GLOVE.INI to change startup parameters if "
  35.         "you experience trouble." << endl;
  36.     cout << "HELPME!.DOC contains important troubleshooting "
  37.         "information!" << endl;
  38.     cout << "Reading GLOVE.INI..." << endl;
  39.     InitFile * gloveIni = new InitFile("glove.ini");
  40.     cout << "Determining timing values for this machine..." << endl;
  41.  
  42.  
  43. //    cfGlove & GLOVE = *(new smooth(*gloveIni));
  44.     smooth & GLOVE = *(new smooth(*gloveIni));
  45.     cout << endl << "Report of timing values:" << endl;
  46.     GLOVE.test();
  47.     cout << endl << endl
  48.         << "GLOVE.INI also contains some aesthetic "
  49. "parameters, so READ IT!."<<endl
  50. << "     Midi interface must be at 330h, read midiglov.doc" << endl;
  51.     cout << "        Enter number of notes to spread on x axis: ";
  52.     cin >> num_of_notes;
  53.     numdiv=256/num_of_notes;
  54.     cout << endl;
  55.     cout << "        Enter bottom starting note (60 = middle C): " ;
  56.     cin >> start_note;
  57.     cout << endl;
  58.     cout << "        Turn pitch bend on? (0=off, 1=on): ";
  59.     cin >> pitchbend_on;
  60.     cout << endl;
  61.     cout << "            Press any keyboard key to begin." << endl
  62.         << "Press the '1' key on the Glove during "
  63.         "the demo to display help." << endl;
  64.  
  65.     getch();
  66.  
  67. //midi interface initialization functions, added by Mick Imfeld
  68. //  oldx=1;   for future use
  69. //  oldy=1;
  70. //  oldz=1;
  71.   oldnote=60; //these are initialized for use in glgrph
  72.   oldmidfinger=0;
  73.  
  74.   irq=mcc_irq(0x330);                   /* find IRQ for use */
  75.   if (irq == 0)
  76.     {
  77.       puts("\n\nMIDI interface not installed\n\n");
  78.       abort();
  79.     }
  80.   if (!mcc_open(0x330,irq))             /* open interface for use */
  81.     {
  82.       puts("\n\nMIDI interface not installed\n\n");
  83.       abort();
  84.     }
  85.    set_slih(&mcc_noslih);                /* establish SLIH */
  86.   mcc_command(DISABLE_THRU);
  87.   mcc_command(UART_MODE);               /* put MCC into pass-thru mode */
  88.  
  89. // back to o2glove
  90.  
  91.     graphicsActor &gloveGraph = *(new graphicsActor(*gloveIni));
  92.     gloveIni->write();
  93.     delete gloveIni;
  94.  
  95.     cleardevice();
  96.     GLOVE.run(gloveGraph);
  97.  
  98.     getch();                       // exit when kbhit()
  99.  
  100. //midi interface close functions added by Mick Imfeld
  101. //send midi all notes off, this only works on some synths
  102. mcc_put(0xB0); // midi all notes off
  103.   mcc_put(0x7B);
  104.   mcc_put(0);
  105.   mcc_command(RESET_MCC);               /* return to coproc mode */
  106.   mcc_close();                          /* close MCC (interface) */
  107.  
  108. // back to o2glove
  109.     delete &GLOVE;
  110.     delete &gloveGraph;
  111.     cout << "Thank You for trying Mark's Power Glove demo V2.0." << endl
  112.         << "Please read the source and GLOVE.INI "
  113.         "for more information." << endl
  114.         << "Brought to you by Area 13 (Virtual Reality) of" << endl
  115.         << "GO COMART on Compuserve.  Copyright 1992, "
  116.         "Mark Thomas Pflaging" << endl;
  117.     return 0;
  118. }
  119.