|
@@ -14,6 +14,8 @@
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
*/
|
|
|
|
|
|
+#include "rn42.h"
|
|
|
+
|
|
|
#include "report.h"
|
|
|
#include "uart.h"
|
|
|
|
|
@@ -69,33 +71,35 @@ void rn42_send_keyboard(report_keyboard_t *report) {
|
|
|
uart_write(0xFD);
|
|
|
uart_write(0x09);
|
|
|
uart_write(0x01);
|
|
|
+
|
|
|
uart_write(report->mods);
|
|
|
uart_write(0x00);
|
|
|
- for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) {
|
|
|
- uart_write(report->keys[i]);
|
|
|
- }
|
|
|
+ uart_write(report->keys[0]);
|
|
|
+ uart_write(report->keys[1]);
|
|
|
+ uart_write(report->keys[2]);
|
|
|
+ uart_write(report->keys[3]);
|
|
|
+ uart_write(report->keys[4]);
|
|
|
+ uart_write(report->keys[5]);
|
|
|
}
|
|
|
|
|
|
void rn42_send_mouse(report_mouse_t *report) {
|
|
|
uart_write(0xFD);
|
|
|
- uart_write(0x00);
|
|
|
- uart_write(0x03);
|
|
|
+ uart_write(0x05);
|
|
|
+ uart_write(0x02);
|
|
|
+
|
|
|
uart_write(report->buttons);
|
|
|
uart_write(report->x);
|
|
|
uart_write(report->y);
|
|
|
- uart_write(report->v); // should try sending the wheel v here
|
|
|
- uart_write(report->h); // should try sending the wheel h here
|
|
|
- uart_write(0x00);
|
|
|
+ uart_write(report->v);
|
|
|
}
|
|
|
|
|
|
-void rn42_send_consumer(uint16_t data) {
|
|
|
- static uint16_t last_data = 0;
|
|
|
- if (data == last_data) return;
|
|
|
- last_data = data;
|
|
|
- uint16_t bitmap = rn42_consumer_usage_to_bitmap(data);
|
|
|
+void rn42_send_consumer(uint16_t usage) {
|
|
|
+ uint16_t bitmap = rn42_consumer_usage_to_bitmap(usage);
|
|
|
+
|
|
|
uart_write(0xFD);
|
|
|
uart_write(0x03);
|
|
|
uart_write(0x03);
|
|
|
+
|
|
|
uart_write(bitmap & 0xFF);
|
|
|
- uart_write((bitmap >> 8) & 0xFF);
|
|
|
+ uart_write(bitmap >> 8);
|
|
|
}
|