USB Mouse (relative) example for mbed NXP LPC11U24 beta
HID_devices/USBMouseKeyboard.h@1:e089be2a6aa1, 2011-11-09 (annotated)
- Committer:
- chris
- Date:
- Wed Nov 09 15:55:10 2011 +0000
- Revision:
- 1:e089be2a6aa1
- Parent:
- 0:163560051396
removed include for <math.h> that is already included by mbed.h
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
chris | 0:163560051396 | 1 | /* USBMouseKeyboard.h */ |
chris | 0:163560051396 | 2 | /* USB device example: Keyboard with a relative mouse */ |
chris | 0:163560051396 | 3 | /* Copyright (c) 2011 ARM Limited. All rights reserved. */ |
chris | 0:163560051396 | 4 | |
chris | 0:163560051396 | 5 | #ifndef _USB_KEYBOARD_REL_MOUSE_ |
chris | 0:163560051396 | 6 | #define _USB_KEYBOARD_REL_MOUSE_ |
chris | 0:163560051396 | 7 | |
chris | 0:163560051396 | 8 | #include "GenericMouse.h" |
chris | 0:163560051396 | 9 | #include "GenericKeyboard.h" |
chris | 0:163560051396 | 10 | #include "USBHID.h" |
chris | 0:163560051396 | 11 | |
chris | 0:163560051396 | 12 | /** USB device: a keyboard and a relative mouse |
chris | 0:163560051396 | 13 | * |
chris | 0:163560051396 | 14 | * Warning: you can only instantiate one instance of a USB device: USBMouse, USBKeyboard, USBAbsMouse, USBMouseKeyboard, or USBAbsMouseKeyboard. |
chris | 0:163560051396 | 15 | * |
chris | 0:163560051396 | 16 | * Example: |
chris | 0:163560051396 | 17 | * @code |
chris | 0:163560051396 | 18 | * |
chris | 0:163560051396 | 19 | * #include "mbed.h" |
chris | 0:163560051396 | 20 | * #include "USBMouseKeyboard.h" |
chris | 0:163560051396 | 21 | * |
chris | 0:163560051396 | 22 | * USBMouseKeyboard key_mouse; |
chris | 0:163560051396 | 23 | * |
chris | 0:163560051396 | 24 | * int main(void) |
chris | 0:163560051396 | 25 | * { |
chris | 0:163560051396 | 26 | * while(1) |
chris | 0:163560051396 | 27 | * { |
chris | 0:163560051396 | 28 | * key_mouse.move(20, 0); |
chris | 0:163560051396 | 29 | * key_mouse.puts("Hello World\r\n"); |
chris | 0:163560051396 | 30 | * wait(2); |
chris | 0:163560051396 | 31 | * } |
chris | 0:163560051396 | 32 | * } |
chris | 0:163560051396 | 33 | * @endcode |
chris | 0:163560051396 | 34 | */ |
chris | 0:163560051396 | 35 | class USBMouseKeyboard: public GenericMouse, public GenericKeyboard, public USBHID |
chris | 0:163560051396 | 36 | { |
chris | 0:163560051396 | 37 | public: |
chris | 0:163560051396 | 38 | |
chris | 0:163560051396 | 39 | /** |
chris | 0:163560051396 | 40 | * Constructor for a relative mouse and a keyboard |
chris | 0:163560051396 | 41 | * |
chris | 0:163560051396 | 42 | */ |
chris | 0:163560051396 | 43 | USBMouseKeyboard(){}; |
chris | 0:163560051396 | 44 | |
chris | 0:163560051396 | 45 | /** |
chris | 0:163560051396 | 46 | * Write a state of the mouse |
chris | 0:163560051396 | 47 | * |
chris | 0:163560051396 | 48 | * @param x x relative position |
chris | 0:163560051396 | 49 | * @param y y relative position |
chris | 0:163560051396 | 50 | * @param buttons buttons state (first bit represents MOUSE_LEFT, second bit MOUSE_RIGHT and third bit MOUSE_MIDDLE) |
chris | 0:163560051396 | 51 | * @param z wheel state (>0 to scroll down, <0 to scroll up) |
chris | 0:163560051396 | 52 | * @return true if there is no error, false otherwise |
chris | 0:163560051396 | 53 | */ |
chris | 0:163560051396 | 54 | virtual bool update(int16_t x, int16_t y, uint8_t buttons, int8_t z); |
chris | 0:163560051396 | 55 | |
chris | 0:163560051396 | 56 | virtual uint8_t * ReportDesc(); |
chris | 0:163560051396 | 57 | |
chris | 0:163560051396 | 58 | |
chris | 0:163560051396 | 59 | private: |
chris | 0:163560051396 | 60 | bool mouseWrite(int8_t x, int8_t y, uint8_t buttons, int8_t z); |
chris | 0:163560051396 | 61 | }; |
chris | 0:163560051396 | 62 | |
chris | 0:163560051396 | 63 | #endif |