105 uint8_t *data=ri->
data;
106 uint8_t shift=ri->
shift;
114 if (ri->
count <= ndx)
124 shift=(uint8_t)(bofs%8);
127 for(x=0; x < ((ri->
size & 0x7) ? (ri->
size/8)+1 : (ri->
size/8)); x++)
129 val=(uint32_t)(*data << (x*8));
131 val=(val >> shift) & ((1<<ri->
size)-1);
133 if (val < ri->logical_min || val > ri->
logical_max)
140 if ((ri->
sign) && (val & (1<<(ri->
size-1))))
143 int vs=(int)((-1 & ~((1<<(ri->
size))-1)) | val);
147 return((uint32_t)vs);
173 uint8_t *data=ri->
data;
174 uint8_t shift=ri->
shift;
176 if (value < ri->physical_min || value > ri->
physical_max)
185 if (ri->
count >= ndx)
194 shift=(uint8_t)(bofs%8);
205 mask=(uint32_t)((1<<ri->
size)-1);
206 value = (value & mask) << shift;
208 for(x=0; x < ((ri->
size & 0x7) ? (ri->
size/8)+1 : (ri->
size/8)); x++)
210 *(ri->
data+x)=(uint8_t)((*(ri->
data+x) & ~(mask>>(x*8))) | ((value>>(x*8)) & (mask>>(x*8))));
uint32_t HID_ReadItem(HID_Report_ItemTypedef *ri, uint8_t ndx)
HID_ReadItem The function read a report item.
uint32_t HID_WriteItem(HID_Report_ItemTypedef *ri, uint32_t value, uint8_t ndx)
HID_WriteItem The function write a report item.