15 #define SET_KEYBIT(array, index) do { (array)[(index) / 8] |= 1 << ((index) % 8); } while(0) 
   16 #define CLEAR_KEYBIT(array, index) do { (array)[(index) / 8] &= ~(1 << ((index) % 8)); } while(0) 
   24 #define OUTFIFO_MAX 10 
   51 #define MACRO_MAX   1024 
   82 #define MD_NAME_LEN 16 
   99 #define PR_NAME_LEN 16 
  136 #define FEAT_RGB        0x001   // RGB backlighting? 
  137 #define FEAT_MONOCHROME 0x002   // RGB protocol but single-color only? 
  138 #define FEAT_POLLRATE   0x004   // Known poll rate? 
  139 #define FEAT_ADJRATE    0x008   // Adjustable poll rate? 
  140 #define FEAT_BIND       0x010   // Rebindable keys? 
  141 #define FEAT_NOTIFY     0x020   // Key notifications? 
  142 #define FEAT_FWVERSION  0x040   // Has firmware version? 
  143 #define FEAT_FWUPDATE   0x080   // Has firmware update? 
  144 #define FEAT_HWLOAD     0x100   // Hardware load enabled? 
  146 #define FEAT_ANSI       0x200   // ANSI/ISO layout toggle (Mac only - not needed on Linux) 
  147 #define FEAT_ISO        0x400 
  148 #define FEAT_MOUSEACCEL 0x800   // Mouse acceleration (also Mac only) 
  151 #define FEAT_COMMON     (FEAT_BIND | FEAT_NOTIFY | FEAT_FWVERSION | FEAT_MOUSEACCEL | FEAT_HWLOAD) 
  152 #define FEAT_STD_RGB    (FEAT_COMMON | FEAT_RGB | FEAT_POLLRATE | FEAT_FWUPDATE) 
  153 #define FEAT_STD_NRGB   (FEAT_COMMON) 
  154 #define FEAT_LMASK      (FEAT_ANSI | FEAT_ISO) 
  157 #define HAS_FEATURES(kb, feat)      (((kb)->features & (feat)) == (feat)) 
  158 #define HAS_ANY_FEATURE(kb, feat)   (!!((kb)->features & (feat))) 
  161 #define NEEDS_FW_UPDATE(kb) ((kb)->fwversion == 0 && HAS_FEATURES((kb), FEAT_FWUPDATE | FEAT_FWVERSION)) 
  164 #define SCROLL_ACCELERATED  0 
  166 #define SCROLL_MAX          10 
  174 #define KB_NAME_LEN 40 
  175 #define SERIAL_LEN  34 
  197     io_object_t rm_notify[
IFACE_MAX * 2 + 1];   
 
  198     int epcount_hid, epcount_usb;
 
  200     kern_return_t lastresult;
 
  204     CFRunLoopRef input_loop;
 
  205     CFRunLoopTimerRef krtimer;
 
  206     struct timespec keyrepeat;
 
  209     pthread_t indicthread;
 
  210     IOOptionBits modifiers;
 
  254 #endif  // STRUCTURES_H 
#define N_MOUSE_ZONES_EXTENDED
 
struct udev_device * udev
 
const union devcmd * vtable
 
const union devcmd vtable_keyboard_nonrgb
 
const union devcmd vtable_keyboard
RGB keyboard vtable holds functions for each device type. 
 
const union devcmd vtable_mouse