ckb-next  beta-v0.2.8 at branch testing
ckb-next driver for corsair devices
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
device_vtable.c
Go to the documentation of this file.
1 #include "command.h"
2 #include "device.h"
3 #include "dpi.h"
4 #include "firmware.h"
5 #include "input.h"
6 #include "led.h"
7 #include "notify.h"
8 #include "profile.h"
9 
10 // Do-nothing functions
11 static void cmd_none(usbdevice* kb, usbmode* dummy1, int dummy2, int dummy3, const char* dummy4){
12 }
13 static int cmd_io_none(usbdevice* kb, usbmode* dummy1, int dummy2, int dummy3, const char* dummy4){
14  return 0;
15 }
16 static void cmd_macro_none(usbdevice* kb, usbmode* dummy1, int dummy2, const char* dummy3, const char* dummy4){
17 }
18 static int loadprofile_none(usbdevice* kb){
19  return 0;
20 }
21 static void int1_void_none(usbdevice* kb, int dummy){
22 }
23 static int int1_int_none(usbdevice* kb, int dummy){
24  return 0;
25 }
26 
30  .hwload = cmd_hwload_kb,
31  .hwsave = cmd_hwsave_kb,
32  .fwupdate = cmd_fwupdate,
33  .pollrate = cmd_io_none,
34 
35  .active = cmd_active_kb,
36  .idle = cmd_idle_kb,
37 
38  .erase = cmd_erase,
39  .eraseprofile = cmd_eraseprofile,
40  .name = cmd_name,
41  .profilename = cmd_profilename,
42  .id = cmd_id,
43  .profileid = cmd_profileid,
44 
45  .rgb = cmd_rgb,
46  .ioff = cmd_ioff,
47  .ion = cmd_ion,
48  .iauto = cmd_iauto,
49 
50  .bind = cmd_bind,
51  .unbind = cmd_unbind,
52  .rebind = cmd_rebind,
53  .macro = cmd_macro,
54 
55  .dpi = cmd_macro_none,
56  .dpisel = cmd_none,
57  .lift = cmd_none,
58  .snap = cmd_none,
59 
60  .notify = cmd_notify,
61  .inotify = cmd_inotify,
62  .get = cmd_get,
63  .restart = cmd_restart,
64 
65  .start = start_dev,
66  .setmodeindex = int1_void_none,
67  .allocprofile = allocprofile,
68  .loadprofile = loadprofile,
69  .freeprofile = freeprofile,
70  .updatergb = updatergb_kb,
71  .updateindicators = updateindicators_kb,
72  .updatedpi = int1_int_none
73 };
74 
75 // Non-RGB keyboard vtable (K70)
77  .hwload = cmd_io_none,
78  .hwsave = cmd_io_none,
79  .fwupdate = cmd_io_none,
80  .pollrate = cmd_io_none,
81 
82  .active = cmd_io_none,
83  .idle = cmd_io_none,
84 
85  .erase = cmd_erase,
86  .eraseprofile = cmd_eraseprofile,
87  .name = cmd_name,
88  .profilename = cmd_profilename,
89  .id = cmd_id,
90  .profileid = cmd_profileid,
91 
92  .rgb = cmd_none,
93  .ioff = cmd_ioff,
94  .ion = cmd_ion,
95  .iauto = cmd_iauto,
96 
97  .bind = cmd_bind,
98  .unbind = cmd_unbind,
99  .rebind = cmd_rebind,
100  .macro = cmd_macro,
101 
102  .dpi = cmd_macro_none,
103  .dpisel = cmd_none,
104  .lift = cmd_none,
105  .snap = cmd_none,
106 
107  .notify = cmd_notify,
108  .inotify = cmd_inotify,
109  .get = cmd_get,
110  .restart = cmd_restart,
111 
112  .start = start_kb_nrgb,
113  .setmodeindex = setmodeindex_nrgb,
114  .allocprofile = allocprofile,
115  .loadprofile = loadprofile_none,
116  .freeprofile = freeprofile,
117  .updatergb = int1_int_none,
118  .updateindicators = updateindicators_kb,
119  .updatedpi = int1_int_none
120 };
121 
122 // RGB mouse vtable
124  .hwload = cmd_hwload_mouse,
125  .hwsave = cmd_hwsave_mouse,
126  .fwupdate = cmd_fwupdate,
127  .pollrate = cmd_pollrate,
128 
129  .active = cmd_active_mouse,
130  .idle = cmd_idle_mouse,
131 
132  .erase = cmd_erase,
133  .eraseprofile = cmd_eraseprofile,
134  .name = cmd_name,
135  .profilename = cmd_profilename,
136  .id = cmd_id,
137  .profileid = cmd_profileid,
138 
139  .rgb = cmd_rgb,
140  .ioff = cmd_none,
141  .ion = cmd_none,
142  .iauto = cmd_none,
143 
144  .bind = cmd_bind,
145  .unbind = cmd_unbind,
146  .rebind = cmd_rebind,
147  .macro = cmd_macro,
148 
149  .dpi = cmd_dpi,
150  .dpisel = cmd_dpisel,
151  .lift = cmd_lift,
152  .snap = cmd_snap,
153 
154  .notify = cmd_notify,
155  .inotify = cmd_none,
156  .get = cmd_get,
157  .restart = cmd_restart,
158 
159  .start = start_dev,
160  .setmodeindex = int1_void_none,
161  .allocprofile = allocprofile,
162  .loadprofile = loadprofile,
163  .freeprofile = freeprofile,
164  .updatergb = updatergb_mouse,
165  .updateindicators = int1_void_none,
166  .updatedpi = updatedpi
167 };
void cmd_ioff(usbdevice *kb, usbmode *mode, int dummy1, int dummy2, const char *led)
Definition: led.c:38
void freeprofile(usbdevice *kb)
Definition: profile.c:228
Definition: command.h:73
void cmd_dpi(usbdevice *kb, usbmode *mode, int dummy, const char *stages, const char *values)
Definition: dpi.c:4
void cmd_lift(usbdevice *kb, usbmode *mode, int dummy1, int dummy2, const char *height)
Definition: dpi.c:53
void updateindicators_kb(usbdevice *kb, int force)
Definition: input.c:261
int updatergb_mouse(usbdevice *kb, int force)
Definition: led_mouse.c:20
void cmd_id(usbdevice *kb, usbmode *mode, int dummy1, int dummy2, const char *id)
Definition: profile.c:160
int start_dev(usbdevice *kb, int makeactive)
Definition: device.c:80
int cmd_hwload_mouse(usbdevice *kb, usbmode *dummy1, int dummy2, int apply, const char *dummy3)
Definition: profile_mouse.c:6
int cmd_hwsave_mouse(usbdevice *kb, usbmode *dummy1, int dummy2, int dummy3, const char *dummy4)
Definition: profile_mouse.c:50
static int loadprofile_none(usbdevice *kb)
Definition: device_vtable.c:18
void cmd_rgb(usbdevice *kb, usbmode *mode, int dummy, int keyindex, const char *code)
Definition: led.c:6
static int cmd_io_none(usbdevice *kb, usbmode *dummy1, int dummy2, int dummy3, const char *dummy4)
Definition: device_vtable.c:13
int updatedpi(usbdevice *kb, int force)
Definition: dpi.c:89
const devcmd vtable_mouse
void cmd_name(usbdevice *kb, usbmode *mode, int dummy1, int dummy2, const char *name)
Definition: profile.c:117
void cmd_inotify(usbdevice *kb, usbmode *mode, int nnumber, int dummy, const char *led)
Definition: led.c:62
int updatergb_kb(usbdevice *kb, int force)
Definition: led_keyboard.c:77
int start_kb_nrgb(usbdevice *kb, int makeactive)
int cmd_hwload_kb(usbdevice *kb, usbmode *dummy1, int dummy2, int apply, const char *dummy3)
void cmd_profilename(usbdevice *kb, usbmode *dummy1, int dummy2, int dummy3, const char *name)
Definition: profile.c:124
void cmd_unbind(usbdevice *kb, usbmode *mode, int dummy, int keyindex, const char *to)
Definition: input.c:329
void cmd_snap(usbdevice *kb, usbmode *mode, int dummy1, int dummy2, const char *enable)
Definition: dpi.c:62
void allocprofile(usbdevice *kb)
Definition: profile.c:182
int cmd_active_mouse(usbdevice *kb, usbmode *dummy1, int dummy2, int dummy3, const char *dummy4)
Definition: device_mouse.c:44
void cmd_profileid(usbdevice *kb, usbmode *mode, int dummy1, int dummy2, const char *id)
Definition: profile.c:167
void cmd_notify(usbdevice *kb, usbmode *mode, int nnumber, int keyindex, const char *toggle)
Definition: notify.c:61
void cmd_macro(usbdevice *kb, usbmode *mode, const int notifynumber, const char *keys, const char *assignment)
Definition: input.c:467
void cmd_get(usbdevice *kb, usbmode *mode, int nnumber, int dummy, const char *setting)
Definition: notify.c:215
int cmd_hwsave_kb(usbdevice *kb, usbmode *dummy1, int dummy2, int dummy3, const char *dummy4)
static void cmd_none(usbdevice *kb, usbmode *dummy1, int dummy2, int dummy3, const char *dummy4)
Definition: device_vtable.c:11
int cmd_idle_kb(usbdevice *kb, usbmode *dummy1, int dummy2, int dummy3, const char *dummy4)
void cmd_bind(usbdevice *kb, usbmode *mode, int dummy, int keyindex, const char *to)
Definition: input.c:307
int cmd_idle_mouse(usbdevice *kb, usbmode *dummy1, int dummy2, int dummy3, const char *dummy4)
Definition: device_mouse.c:48
void cmd_dpisel(usbdevice *kb, usbmode *mode, int dummy1, int dummy2, const char *stage)
Definition: dpi.c:44
void setmodeindex_nrgb(usbdevice *kb, int index)
void cmd_erase(usbdevice *kb, usbmode *mode, int dummy1, int dummy2, const char *dummy3)
Definition: profile.c:203
void cmd_restart(usbdevice *kb, usbmode *mode, int nnumber, int dummy, const char *content)
Definition: notify.c:223
static void cmd_macro_none(usbdevice *kb, usbmode *dummy1, int dummy2, const char *dummy3, const char *dummy4)
Definition: device_vtable.c:16
static int int1_int_none(usbdevice *kb, int dummy)
Definition: device_vtable.c:23
int cmd_fwupdate(usbdevice *kb, usbmode *dummy1, int nnumber, int dummy2, const char *path)
Definition: firmware.c:154
int cmd_active_kb(usbdevice *kb, usbmode *dummy1, int dummy2, int dummy3, const char *dummy4)
static void int1_void_none(usbdevice *kb, int dummy)
Definition: device_vtable.c:21
const devcmd vtable_keyboard
RGB keyboard vtable holds functions for each device type.
Definition: device_vtable.c:29
void cmd_iauto(usbdevice *kb, usbmode *mode, int dummy1, int dummy2, const char *led)
Definition: led.c:54
void cmd_rebind(usbdevice *kb, usbmode *mode, int dummy, int keyindex, const char *to)
Definition: input.c:337
int cmd_pollrate(usbdevice *kb, usbmode *dummy1, int dummy2, int rate, const char *dummy3)
Definition: device_mouse.c:52
void cmd_eraseprofile(usbdevice *kb, usbmode *dummy1, int dummy2, int dummy3, const char *dummy4)
Definition: profile.c:221
const devcmd vtable_keyboard_nonrgb
Definition: device_vtable.c:76
int loadprofile(usbdevice *kb)
Definition: profile.c:192
void cmd_ion(usbdevice *kb, usbmode *mode, int dummy1, int dummy2, const char *led)
Definition: led.c:46