home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 2 / goldfish_vol2_cd1.bin / files / dev / e / amiga_e / src / tools / cookrawkey / cookrawkey.e < prev    next >
Text File  |  1992-09-02  |  2KB  |  63 lines

  1. /*---------------------------------------------------------------------------*
  2.   cookRawkey.e - Use console.device to convert rawkeys to asciikeys.
  3.  *---------------------------------------------------------------------------*/
  4. OPT MODULE
  5.  
  6. MODULE 'console',
  7.        'devices/console',
  8.        'devices/conunit',
  9.        'devices/inputevent',
  10.        'devices/keymap',
  11.        'exec/io',
  12.        'exec/ports'
  13.  
  14. EXPORT CONST ER_NONE        = 0,
  15.              ER_CREATEPORT  = "PORT",
  16.              ER_CREATEIO    = "IO",
  17.              ER_OPENDEVICE  = "DEV",
  18.              ER_ASKKEYMAP   = "KMAP"
  19.  
  20. DEF consoleMessagePort:PTR TO mp,
  21.     consoleIO:PTR TO iostd
  22.  
  23. EXPORT PROC warmupRawkeyCooker()
  24.   IF (consoleMessagePort:=CreateMsgPort())=NIL THEN RETURN ER_CREATEPORT
  25.   IF (consoleIO:=CreateIORequest(consoleMessagePort, SIZEOF iostd))=
  26.        NIL THEN RETURN ER_CREATEIO
  27.   IF OpenDevice('console.device', CONU_LIBRARY,
  28.                 consoleIO, CONFLAG_DEFAULT) THEN RETURN ER_OPENDEVICE
  29.   consoleIO.command:=CD_ASKKEYMAP
  30.   consoleIO.length:=SIZEOF keymap
  31.   consoleIO.data:=NewR(SIZEOF keymap)
  32.   IF DoIO(consoleIO) THEN RETURN ER_ASKKEYMAP
  33.   IF (consoleIO.flags AND IOF_QUICK)=0 THEN WaitIO(consoleIO)
  34.   consoledevice:=consoleIO.device
  35. ENDPROC  ER_NONE
  36.   /* warmupRawkeyCooker */
  37.  
  38. EXPORT PROC shutdownRawkeyCooker()
  39.   IF consoleIO
  40.     IF consoleIO.data THEN Dispose(consoleIO.data)
  41.     IF consoleIO.device
  42.       AbortIO(consoleIO)
  43.       CloseDevice(consoleIO)
  44.     ENDIF
  45.     DeleteIORequest(consoleIO)
  46.   ENDIF
  47.   IF consoleMessagePort THEN DeleteMsgPort(consoleMessagePort)
  48. ENDPROC
  49.   /* shutdownRawkeyCooker */
  50.  
  51. EXPORT PROC cookRawkey(idcmpCode, idcmpQualifier, iAddress)
  52.   DEF asciiChar=0, ie:inputevent, buffer[1]:STRING, actual
  53.   ie.nextevent:=NIL
  54.   ie.class:=IECLASS_RAWKEY
  55.   ie.subclass:=0
  56.   ie.code:=idcmpCode
  57.   ie.qualifier:=idcmpQualifier
  58.   PutLong(ie+10, iAddress)
  59.   actual:=RawKeyConvert(ie, buffer, 1, consoleIO.data)
  60.   IF actual=1 THEN asciiChar:=buffer[0]
  61. ENDPROC  asciiChar
  62.   /* cookRawkey */
  63.