#include "includes.h"
#include "device.h"
Go to the source code of this file.
|
int | updatedpi (usbdevice *kb, int force) |
|
int | savedpi (usbdevice *kb, dpiset *dpi, lighting *light) |
|
int | loaddpi (usbdevice *kb, dpiset *dpi, lighting *light) |
|
char * | printdpi (const dpiset *dpi, const usbdevice *kb) |
|
void | cmd_dpi (usbdevice *kb, usbmode *mode, int dummy, const char *stages, const char *values) |
|
void | cmd_dpisel (usbdevice *kb, usbmode *mode, int dummy1, int dummy2, const char *stage) |
|
void | cmd_lift (usbdevice *kb, usbmode *mode, int dummy1, int dummy2, const char *height) |
|
void | cmd_snap (usbdevice *kb, usbmode *mode, int dummy1, int dummy2, const char *enable) |
|
void cmd_dpi |
( |
usbdevice * |
kb, |
|
|
usbmode * |
mode, |
|
|
int |
dummy, |
|
|
const char * |
stages, |
|
|
const char * |
values |
|
) |
| |
Definition at line 4 of file dpi.c.
References usbmode::dpi, DPI_COUNT, dpiset::enabled, dpiset::x, and dpiset::y.
8 if(sscanf(values,
"%hu,%hu", &x, &y) != 2){
10 if(sscanf(values,
"%hu", &x) == 1)
12 else if(!strncmp(values,
"off", 3))
19 if((x == 0 || y == 0) && !disable)
22 int left = strlen(stages);
23 int position = 0, field = 0;
25 while(position < left && sscanf(stages + position,
"%2[^,]%n", stagename, &field) == 1){
27 if(sscanf(stagename,
"%hhu", &stagenum) && stagenum <
DPI_COUNT){
31 mode->
dpi.
x[stagenum] = 0;
32 mode->
dpi.
y[stagenum] = 0;
35 mode->
dpi.
x[stagenum] = x;
36 mode->
dpi.
y[stagenum] = y;
39 if(stages[position += field] ==
',')
void cmd_dpisel |
( |
usbdevice * |
kb, |
|
|
usbmode * |
mode, |
|
|
int |
dummy1, |
|
|
int |
dummy2, |
|
|
const char * |
stage |
|
) |
| |
void cmd_lift |
( |
usbdevice * |
kb, |
|
|
usbmode * |
mode, |
|
|
int |
dummy1, |
|
|
int |
dummy2, |
|
|
const char * |
height |
|
) |
| |
void cmd_snap |
( |
usbdevice * |
kb, |
|
|
usbmode * |
mode, |
|
|
int |
dummy1, |
|
|
int |
dummy2, |
|
|
const char * |
enable |
|
) |
| |
Definition at line 152 of file dpi.c.
References lighting::b, ckb_err, dpiset::current, DPI_COUNT, dpiset::enabled, lighting::g, LED_MOUSE, dpiset::lift, LIFT_MAX, LIFT_MIN, MSG_SIZE, N_MOUSE_ZONES, lighting::r, dpiset::snap, usbrecv, dpiset::x, and dpiset::y.
Referenced by cmd_hwload_mouse().
155 { 0x0e, 0x13, 0x05, 1, },
156 { 0x0e, 0x13, 0x02, 1, },
157 { 0x0e, 0x13, 0x03, 1, },
158 { 0x0e, 0x13, 0x04, 1, }
161 for(
int i = 0; i < 4; i++){
162 if(!
usbrecv(kb, data_pkt[i], in_pkt[i]))
164 if(memcmp(in_pkt[i], data_pkt[i], 4)){
175 dpi->
lift = in_pkt[2][4];
178 dpi->
snap = !!in_pkt[3][4];
185 if(!
usbrecv(kb, data_pkt, in_pkt))
187 if(memcmp(in_pkt, data_pkt, 4)){
192 dpi->
x[i] = *(
ushort*)(in_pkt + 5);
193 dpi->
y[i] = *(
ushort*)(in_pkt + 7);
#define ckb_err(fmt, args...)
#define usbrecv(kb, out_msg, in_msg)
usbrecv macro is used to wrap _usbrecv() with debugging information (file and lineno) ...
Definition at line 69 of file dpi.c.
References _readlines_ctx::buffer, DPI_COUNT, dpiset::enabled, dpiset::x, and dpiset::y.
Referenced by _cmd_get().
71 const int BUFFER_LEN = 100;
72 char* buffer = malloc(BUFFER_LEN);
77 snprintf(buffer + length, BUFFER_LEN - length, length == 0 ?
"%d%n" :
" %d%n", i, &newlen);
81 snprintf(buffer + length, BUFFER_LEN - length,
":off%n", &newlen);
83 snprintf(buffer + length, BUFFER_LEN - length,
":%u,%u%n", dpi->
x[i], dpi->
y[i], &newlen);
Definition at line 124 of file dpi.c.
References lighting::b, dpiset::current, DPI_COUNT, dpiset::enabled, lighting::g, LED_MOUSE, dpiset::lift, MSG_SIZE, N_MOUSE_ZONES, lighting::r, dpiset::snap, usbsend, dpiset::x, and dpiset::y.
Referenced by cmd_hwsave_mouse().
129 *(
ushort*)(data_pkt + 5) = dpi->
x[i];
130 *(
ushort*)(data_pkt + 7) = dpi->
y[i];
141 { 0x07, 0x13, 0x05, 1, dpi->
enabled },
142 { 0x07, 0x13, 0x02, 1, dpi->
current },
143 { 0x07, 0x13, 0x03, 1, dpi->
lift },
144 { 0x07, 0x13, 0x04, 1, dpi->
snap, 0x05 }
146 if(!
usbsend(kb, data_pkt[0], 4))
#define usbsend(kb, messages, count)
usbsend macro is used to wrap _usbsend() with debugging information (file and lineno) ...
Definition at line 89 of file dpi.c.
References usbdevice::active, dpiset::current, usbprofile::currentmode, usbmode::dpi, DPI_COUNT, dpiset::enabled, dpiset::forceupdate, usbprofile::lastdpi, dpiset::lift, MSG_SIZE, usbdevice::profile, dpiset::snap, usbsend, dpiset::x, and dpiset::y.
96 && !memcmp(lastdpi, newdpi,
sizeof(
dpiset)))
104 *(
ushort*)(data_pkt + 5) = newdpi->
x[i];
105 *(
ushort*)(data_pkt + 7) = newdpi->
y[i];
112 { 0x07, 0x13, 0x05, 0, newdpi->
enabled },
113 { 0x07, 0x13, 0x02, 0, newdpi->
current },
114 { 0x07, 0x13, 0x03, 0, newdpi->
lift },
115 { 0x07, 0x13, 0x04, 0, newdpi->
snap, 0x05 }
117 if(!
usbsend(kb, data_pkt[0], 4))
120 memcpy(lastdpi, newdpi,
sizeof(
dpiset));
#define usbsend(kb, messages, count)
usbsend macro is used to wrap _usbsend() with debugging information (file and lineno) ...