#include "dpi.h"
#include "usb.h"
 
Go to the source code of this file.
 | 
| 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) | 
|   | 
| char *  | printdpi (const dpiset *dpi, const usbdevice *kb) | 
|   | 
| int  | updatedpi (usbdevice *kb, int force) | 
|   | 
| int  | savedpi (usbdevice *kb, dpiset *dpi, lighting *light) | 
|   | 
| int  | loaddpi (usbdevice *kb, dpiset *dpi, lighting *light) | 
|   | 
      
        
          | 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) ...