USBMOUSE
Dependents: ESD_Project_USBMouse
USBHID/USBMouse.h
- Committer:
- priyankapashte
- Date:
- 2015-12-13
- Revision:
- 0:78a4faee5b0f
File content as of revision 0:78a4faee5b0f:
#ifndef USBMOUSE_H #define USBMOUSE_H #include "USBHID.h" #define REPORT_ID_MOUSE 2 #define X_MIN_REL (-127) /*!< The maximum value that we can move to the left on the x-axis */ #define Y_MIN_REL (-127) /*!< The maximum value that we can move up on the y-axis */ #define X_MAX_REL (127) /*!< The maximum value that we can move to the right on the x-axis */ #define Y_MAX_REL (127) /*!< The maximum value that we can move down on the y-axis */ enum MOUSE_BUTTON { MOUSE_LEFT = 1, MOUSE_RIGHT = 2, MOUSE_MIDDLE = 4, }; enum MOUSE_TYPE { REL_MOUSE, ABS_MOUSE }; class USBMouse: public USBHID { public: USBMouse(MOUSE_TYPE mouse_type = REL_MOUSE, uint16_t vendor_id = 0x1234, uint16_t product_id = 0x0001, uint16_t product_release = 0x0001): USBHID(0, 0, vendor_id, product_id, product_release, false) { button = 0; this->mouse_type = mouse_type; connect(); }; bool update(int16_t x, int16_t y, uint8_t buttons, int8_t z); bool move(int16_t x, int16_t y); bool press(uint8_t button); bool release(uint8_t button); bool doubleClick(); bool click(uint8_t button); bool scroll(int8_t z); virtual uint8_t * reportDesc(); protected: virtual uint8_t * configurationDesc(); private: MOUSE_TYPE mouse_type; uint8_t button; bool mouseSend(int8_t x, int8_t y, uint8_t buttons, int8_t z); }; #endif