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