-
Notifications
You must be signed in to change notification settings - Fork 7
/
ProTrinketMouse.cpp
60 lines (46 loc) · 1.78 KB
/
ProTrinketMouse.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*
This is the part of the ProTrinketMouse code that is exposed to the user
See the header file for more comments on the functions
Copyright (c) 2015 Adafruit Industries
All rights reserved.
ProTrinketMouse is free software: you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option) any
later version.
ProTrinketMouse is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
details.
You should have received a copy of the GNU Lesser General Public
License along with ProTrinketMouse. If not, see
<http://www.gnu.org/licenses/>.
*/
#include "ProTrinketMouse.h"
#include "ProTrinketMouseC.h"
#include "cmdline_defs.h"
#include <avr/interrupt.h>
#include <stdint.h>
#include <util/delay.h>
// create an instance that the user can use
Trinket_Mouse TrinketMouse;
// empty constructor
Trinket_Mouse::Trinket_Mouse() {
// nothing to do
}
// starts the USB driver, causes re-enumeration
void Trinket_Mouse::begin() { usbBegin(); }
// makes a mouse movement, must be called at least once every 10ms, even if no
// movement
void Trinket_Mouse::move(signed char x, signed char y, signed char wheel,
uint8_t buttonMask) {
signed char *signed_ptr =
(signed char *)report_buffer; // this converts signed to unsigned
// format the report structure
signed_ptr[1] = x;
signed_ptr[2] = y;
signed_ptr[3] = wheel;
report_buffer[0] = buttonMask;
usbReportSend();
}
// checks if USB is connected, 0 if not connected
char Trinket_Mouse::isConnected() { return usb_hasCommed; }