home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_10_03 / 1003054a < prev    next >
Text File  |  1991-10-07  |  1KB  |  52 lines

  1. /*
  2.  *  LISTING 4, tape.h
  3.  *
  4.  *  state table macros and structure definitions
  5.  *  for TAPE device.
  6.  */
  7.  
  8. /* Device states .... */
  9. enum device_states {
  10.     OFF,        //0
  11.     ON,         //1
  12.     READY,      //2
  13.     RECORD,     //3
  14.     PLAY,       //4
  15.     FFORWARD,   //5
  16.     REWIND,     //6
  17.     MAX_STATE   //7
  18.     };
  19.  
  20. /* User commands (events)..... */
  21. enum user_cmds {
  22.     CMD_POWER_ON,
  23.     CMD_POWER_OFF,
  24.     CMD_INSERT,
  25.     CMD_EJECT,
  26.     CMD_RECORD,
  27.     CMD_PLAY,
  28.     CMD_FFORWARD,
  29.     CMD_REWIND,
  30.     CMD_CHK_STATUS,
  31.     CMD_STOP
  32.     };
  33.  
  34. #define END -1
  35. #define OK  0
  36. #define NOTOK   -1
  37.  
  38. typedef struct command_arg    {
  39.     int c_state;    //current state
  40.     int cmd;        //driver command
  41.     int status;     //device status
  42.     } CMDARG;
  43.  
  44. typedef struct state_table  {
  45.     int event;
  46.     int n_state;
  47.     int (**procs)(CMDARG far *arg);  //-> to array of
  48.                           //....pointers to functions
  49.     } S_TAB;
  50.  
  51. /* ----- End of File ------------------------------- */
  52.