home *** CD-ROM | disk | FTP | other *** search
/ Virtual Reality Zone / VRZONE.ISO / mac / PC / PCGLOVE / GLOVE / GLOVE.H < prev    next >
Text File  |  1991-11-07  |  2KB  |  47 lines

  1. /***** GLOVE DATA SPECIFICATIONS **************
  2.  
  3.  The glove_data array has been simplified. These are its functions:
  4.  
  5.  
  6. x =   X position, 3mm per number
  7. y =   Y position, 3mm per number
  8. z =   distance,  14mm per number 
  9. rot = wrist twist. 0 is up 1 is slightly CW, 5 is down, 11 is slightly CCW.
  10.       About 30 to 40 degrees per count.
  11.  
  12.  Note: exact scaling of all above change with distance! Closer is higher res.
  13.  
  14. fingers = packed 2-bit values, 0 is open, 3 is (tight) fist:
  15.       Bit format: TtIiMmRr  for Thumb, Index, Middle, and Ring fingers.
  16.  
  17. keys: $FF or $80 is no key. Responds with 0 to 9 for keys "0" thru "9"
  18.       $82 = START, $83 = SEL, $0A = "A", $0B = "B", 0 is "Center"
  19.       Up,down,left,right are $0D,$0E,$0C,$0F respectively.
  20.  
  21. */
  22.  
  23. typedef struct glove_data { 
  24.     signed char x,y,z,rot,fingers,keys;
  25.     unsigned int nmissed;  /* number of samples missed */
  26.     } glove_data;
  27.  
  28. /* prototypes */
  29.  
  30. void Hires (void);             /* puts glove in hires mode   */
  31. void getglove (glove_data *);    /* get data packet from glove */
  32. int  glove_ready(void);            /* returns 0 if not ready     */
  33. void glove_delay(void);            /* delay required between polls */
  34.  
  35. int glove_init(int mode, void (*function)());  /* returns actual mode used */
  36. int glove_read(glove_data *glov);    /* reads glove data, with de-glitching */
  37. void glove_quit(void);     /* release the glove */
  38.  
  39. /* Modes passed to glove_init */
  40.  
  41. #define LORES  0    /* polled low-resolution */
  42. #define HIRES  1    /* polled high-resolution */
  43. #define ILORES 2    /* interrupt-driven low-resolution */
  44. #define IHIRES 3    /* interrupt-driven high-resolution */
  45.  
  46. /* End of glove.h */
  47.