home *** CD-ROM | disk | FTP | other *** search
/ C++ Games Programming / CPPGAMES.ISO / thx / source / theatrix / kdsrvr.cpp < prev    next >
C/C++ Source or Header  |  1995-04-26  |  915b  |  47 lines

  1. #include <iostream.h>
  2. #include <fastgraf.h>
  3. #include <dos.h>
  4. #include "standard.h"
  5. #include "kdfold.h"
  6. #include "kdsrvr.h"
  7.  
  8.  
  9. const int CLOCKVECT = 0x1C;
  10.  
  11. static void interrupt newhandler(...);     // our replacement handler
  12. static void interrupt (*oldhandler)(...);  // ptr to default handler
  13. int HotkeyServer::newtick;
  14.  
  15. void HotkeyServer::startup()
  16.   {
  17.   newtick=FALSE;
  18.   oldhandler=getvect(CLOCKVECT);
  19.   setvect(CLOCKVECT,newhandler);
  20.   cout << "KEYDOWNSERVER: hooked timer interrupt...\n";
  21.   }
  22.  
  23. void HotkeyServer::shutdown()
  24.   {
  25.   if (oldhandler)
  26.     {
  27.     setvect(CLOCKVECT,oldhandler);
  28.     cout << "KEYDOWNSERVER: restored timer interrupt...\n";
  29.     oldhandler = 0;
  30.     }
  31.   }
  32.  
  33. void HotkeyServer::check(Folder& fld)
  34.   {
  35.   if (newtick)
  36.     {
  37.     newtick=FALSE;
  38.     fld.dispatch();
  39.     }
  40.   }
  41.  
  42. void interrupt newhandler(...)
  43.   {
  44.   HotkeyServer::newtick=TRUE;
  45.   oldhandler(...); 
  46.   }
  47.