USB Mouse (relative) example for mbed NXP LPC11U24 beta
HID_devices/USBAbsMouseKeyboard.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 | /* USBAbsMouseKeyboard.h */ |
chris | 0:163560051396 | 2 | /* USB device example: keyboard and an absolute mouse */ |
chris | 0:163560051396 | 3 | /* Copyright (c) 2011 ARM Limited. All rights reserved. */ |
chris | 0:163560051396 | 4 | |
chris | 0:163560051396 | 5 | #ifndef _USB_KEYBOARD_ABS_MOUSE_ |
chris | 0:163560051396 | 6 | #define _USB_KEYBOARD_ABS_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 | |
chris | 0:163560051396 | 13 | /** USB device: a keyboard and an absolute mouse |
chris | 0:163560051396 | 14 | * |
chris | 0:163560051396 | 15 | * Warning: you can only instantiate one instance of a USB device: USBMouse, USBKeyboard, USBAbsMouse, USBMouseKeyboard, or USBAbsMouseKeyboard. |
chris | 0:163560051396 | 16 | * |
chris | 0:163560051396 | 17 | * Example: |
chris | 0:163560051396 | 18 | * @code |
chris | 0:163560051396 | 19 | * |
chris | 0:163560051396 | 20 | * #include "mbed.h" |
chris | 0:163560051396 | 21 | * #include "USBAbsMouseKeyboard.h" |
chris | 0:163560051396 | 22 | * |
chris | 0:163560051396 | 23 | * USBAbsMouseKeyboard key_mouse; |
chris | 0:163560051396 | 24 | * |
chris | 0:163560051396 | 25 | * #define STEP (1000) |
chris | 0:163560051396 | 26 | * |
chris | 0:163560051396 | 27 | * int main(void) |
chris | 0:163560051396 | 28 | * { |
chris | 0:163560051396 | 29 | * int32_t a = X_MIN; |
chris | 0:163560051396 | 30 | * int32_t dir = STEP; |
chris | 0:163560051396 | 31 | * |
chris | 0:163560051396 | 32 | * while (1) |
chris | 0:163560051396 | 33 | * { |
chris | 0:163560051396 | 34 | * key_mouse.move(a, a); |
chris | 0:163560051396 | 35 | * key_mouse.puts("Hello From Mbed\r\n"); |
chris | 0:163560051396 | 36 | * |
chris | 0:163560051396 | 37 | * if (((a+dir) > X_MAX) || ((a+dir) < X_MIN)) |
chris | 0:163560051396 | 38 | * { |
chris | 0:163560051396 | 39 | * // Change direction |
chris | 0:163560051396 | 40 | * dir = -dir; |
chris | 0:163560051396 | 41 | * } |
chris | 0:163560051396 | 42 | * a += dir; |
chris | 0:163560051396 | 43 | * |
chris | 0:163560051396 | 44 | * wait(1); |
chris | 0:163560051396 | 45 | * } |
chris | 0:163560051396 | 46 | * } |
chris | 0:163560051396 | 47 | * @endcode |
chris | 0:163560051396 | 48 | */ |
chris | 0:163560051396 | 49 | class USBAbsMouseKeyboard: public GenericMouse, public GenericKeyboard, public USBHID |
chris | 0:163560051396 | 50 | { |
chris | 0:163560051396 | 51 | public: |
chris | 0:163560051396 | 52 | |
chris | 0:163560051396 | 53 | /** |
chris | 0:163560051396 | 54 | * Constructor for an absolute mouse and a keyboard |
chris | 0:163560051396 | 55 | */ |
chris | 0:163560051396 | 56 | USBAbsMouseKeyboard(){}; |
chris | 0:163560051396 | 57 | |
chris | 0:163560051396 | 58 | /** |
chris | 0:163560051396 | 59 | * Write a state of the mouse |
chris | 0:163560051396 | 60 | * |
chris | 0:163560051396 | 61 | * @param x x absolute position |
chris | 0:163560051396 | 62 | * @param y y absolute position |
chris | 0:163560051396 | 63 | * @param buttons buttons state (first bit represents MOUSE_LEFT, second bit MOUSE_RIGHT and third bit MOUSE_MIDDLE) |
chris | 0:163560051396 | 64 | * @param z wheel state (>0 to scroll down, <0 to scroll up) |
chris | 0:163560051396 | 65 | * @return true if there is no error, false otherwise |
chris | 0:163560051396 | 66 | */ |
chris | 0:163560051396 | 67 | virtual bool update(int16_t x, int16_t y, uint8_t buttons, int8_t z); |
chris | 0:163560051396 | 68 | |
chris | 0:163560051396 | 69 | virtual uint8_t * ReportDesc(); |
chris | 0:163560051396 | 70 | }; |
chris | 0:163560051396 | 71 | |
chris | 0:163560051396 | 72 | #endif |