Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
USBHostMouse.h
00001 /* mbed USBHost Library 00002 * Copyright (c) 2006-2013 ARM Limited 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 #ifndef USBHOSTMOUSE_H 00018 #define USBHOSTMOUSE_H 00019 00020 #include "USBHostConf.h" 00021 00022 #if USBHOST_MOUSE 00023 00024 #include "USBHost.h" 00025 00026 /** 00027 * A class to communicate a USB mouse 00028 */ 00029 class USBHostMouse : public IUSBEnumerator 00030 { 00031 public: 00032 00033 /** 00034 * Constructor 00035 */ 00036 USBHostMouse(); 00037 00038 /** 00039 * Try to connect a mouse device 00040 * 00041 * @return true if connection was successful 00042 */ 00043 bool connect(); 00044 00045 /** 00046 * Check if a mouse is connected 00047 * 00048 * @returns true if a mouse is connected 00049 */ 00050 bool connected(); 00051 00052 /** 00053 * Attach a callback called when a mouse event is received 00054 * 00055 * @param ptr function pointer 00056 */ 00057 inline void attachEvent(void (*ptr)(uint8_t buttons, int8_t x, int8_t y, int8_t z)) 00058 { 00059 if (ptr != NULL) { 00060 onUpdate = ptr; 00061 } 00062 } 00063 00064 /** 00065 * Attach a callback called when the button state changes 00066 * 00067 * @param ptr function pointer 00068 */ 00069 inline void attachButtonEvent(void (*ptr)(uint8_t buttons)) 00070 { 00071 if (ptr != NULL) { 00072 onButtonUpdate = ptr; 00073 } 00074 } 00075 00076 /** 00077 * Attach a callback called when the X axis value changes 00078 * 00079 * @param ptr function pointer 00080 */ 00081 inline void attachXEvent(void (*ptr)(int8_t x)) 00082 { 00083 if (ptr != NULL) { 00084 onXUpdate = ptr; 00085 } 00086 } 00087 00088 /** 00089 * Attach a callback called when the Y axis value changes 00090 * 00091 * @param ptr function pointer 00092 */ 00093 inline void attachYEvent(void (*ptr)(int8_t y)) 00094 { 00095 if (ptr != NULL) { 00096 onYUpdate = ptr; 00097 } 00098 } 00099 00100 /** 00101 * Attach a callback called when the Z axis value changes (scrolling) 00102 * 00103 * @param ptr function pointer 00104 */ 00105 inline void attachZEvent(void (*ptr)(int8_t z)) 00106 { 00107 if (ptr != NULL) { 00108 onZUpdate = ptr; 00109 } 00110 } 00111 00112 protected: 00113 //From IUSBEnumerator 00114 virtual void setVidPid(uint16_t vid, uint16_t pid); 00115 virtual bool parseInterface(uint8_t intf_nb, uint8_t intf_class, uint8_t intf_subclass, uint8_t intf_protocol); //Must return true if the interface should be parsed 00116 virtual bool useEndpoint(uint8_t intf_nb, ENDPOINT_TYPE type, ENDPOINT_DIRECTION dir); //Must return true if the endpoint will be used 00117 00118 private: 00119 USBHost * host; 00120 USBDeviceConnected * dev; 00121 USBEndpoint * int_in; 00122 uint8_t report[64]; 00123 bool dev_connected; 00124 bool mouse_device_found; 00125 int mouse_intf; 00126 00127 uint8_t buttons; 00128 int8_t x; 00129 int8_t y; 00130 int8_t z; 00131 00132 void rxHandler(); 00133 void (*onUpdate)(uint8_t buttons, int8_t x, int8_t y, int8_t z); 00134 void (*onButtonUpdate)(uint8_t buttons); 00135 void (*onXUpdate)(int8_t x); 00136 void (*onYUpdate)(int8_t y); 00137 void (*onZUpdate)(int8_t z); 00138 int report_id; 00139 void init(); 00140 }; 00141 00142 #endif 00143 00144 #endif
Generated on Tue Jul 12 2022 12:22:28 by
