home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / C / AETSK101 / KEYBDTSK.CC < prev    next >
C/C++ Source or Header  |  1991-10-11  |  1KB  |  45 lines

  1. /**********************************************************************
  2.  *  
  3.  *  NAME:           keybdtsk.cpp
  4.  *  
  5.  *  DESCRIPTION:    example task to handle keyboard input (polling)
  6.  *  
  7.  *  copyright (c) 1991 J. Alan Eldridge
  8.  * 
  9.  *  M O D I F I C A T I O N   H I S T O R Y
  10.  *
  11.  *  when        who                 what
  12.  *  -------------------------------------------------------------------
  13.  *  05/09/91    J. Alan Eldridge    created
  14.  *  
  15.  *********************************************************************/
  16.  
  17. #include    "aedef.h"
  18. #include    "task.h"
  19. #include    "keybdtsk.h"
  20.  
  21. #define QSize       128 //  # chars in keyboard queue
  22.  
  23. #define SendDelay   50  //  # milliseconds to wait to send
  24. #define SleepTime   50  //  # milliseconds between polling 
  25.  
  26. KeybdTask           KbdTask;
  27. BPipe               KbdPipe(QSize);
  28.  
  29. void
  30. KeybdTask::TaskMain()
  31. {
  32.     for (;;) {
  33.         if (kbhit()) {
  34.             uchar   ch = getch();
  35.             
  36.             KbdPipe.send(ch, SendDelay);
  37.             if (ch == 0xE0 || ch == 0x00) {
  38.                 ch = getch();
  39.                 KbdPipe.send(ch, SendDelay);
  40.             }
  41.         }
  42.         sleep(SleepTime);
  43.     }
  44. }
  45.