Usb Device Interface, protocol, and programming homework #4 Audio Control device
Dependencies: C12832_lcd USBDevice mbed
USBAudioControl.h@3:6da430f4818a, 2013-08-05 (annotated)
- Committer:
- jakowisp
- Date:
- Mon Aug 05 02:02:58 2013 +0000
- Revision:
- 3:6da430f4818a
- Parent:
- 1:948ffad3284f
Fixed several known issues to complete the assignment
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jakowisp | 0:69eb9d19fb91 | 1 | #ifndef USBaudiocontrol_H |
jakowisp | 0:69eb9d19fb91 | 2 | #define USBaudiocontrol_H |
jakowisp | 0:69eb9d19fb91 | 3 | |
jakowisp | 0:69eb9d19fb91 | 4 | #include "USBHID.h" |
jakowisp | 0:69eb9d19fb91 | 5 | |
jakowisp | 0:69eb9d19fb91 | 6 | |
jakowisp | 0:69eb9d19fb91 | 7 | /* Common usage */ |
jakowisp | 0:69eb9d19fb91 | 8 | |
jakowisp | 0:69eb9d19fb91 | 9 | /** |
jakowisp | 0:69eb9d19fb91 | 10 | * |
jakowisp | 0:69eb9d19fb91 | 11 | * @endcode |
jakowisp | 0:69eb9d19fb91 | 12 | */ |
jakowisp | 0:69eb9d19fb91 | 13 | |
jakowisp | 0:69eb9d19fb91 | 14 | class USBAudioControl: public USBHID |
jakowisp | 0:69eb9d19fb91 | 15 | { |
jakowisp | 0:69eb9d19fb91 | 16 | public: |
jakowisp | 0:69eb9d19fb91 | 17 | |
jakowisp | 0:69eb9d19fb91 | 18 | /** |
jakowisp | 0:69eb9d19fb91 | 19 | * Constructor |
jakowisp | 0:69eb9d19fb91 | 20 | * |
jakowisp | 0:69eb9d19fb91 | 21 | * @param vendor_id Your vendor_id (default: 0x1234) |
jakowisp | 0:69eb9d19fb91 | 22 | * @param product_id Your product_id (default: 0x0001) |
jakowisp | 0:69eb9d19fb91 | 23 | * @param product_release Your preoduct_release (default: 0x0001) |
jakowisp | 0:69eb9d19fb91 | 24 | * |
jakowisp | 0:69eb9d19fb91 | 25 | */ |
jakowisp | 0:69eb9d19fb91 | 26 | USBAudioControl( uint16_t vendor_id = 0x1234, uint16_t product_id = 0x0006, uint16_t product_release = 0x0001): |
jakowisp | 0:69eb9d19fb91 | 27 | USBHID(1, 1, 1, vendor_id, product_id, product_release, false) |
jakowisp | 1:948ffad3284f | 28 | { |
jakowisp | 1:948ffad3284f | 29 | // NO suspend callback by default. |
jakowisp | 0:69eb9d19fb91 | 30 | callbackSuspendChange=NULL; |
jakowisp | 0:69eb9d19fb91 | 31 | }; |
jakowisp | 0:69eb9d19fb91 | 32 | |
jakowisp | 0:69eb9d19fb91 | 33 | |
jakowisp | 0:69eb9d19fb91 | 34 | /* |
jakowisp | 0:69eb9d19fb91 | 35 | * To define the report descriptor. Warning: this method has to store the length of the report descriptor in reportLength. |
jakowisp | 0:69eb9d19fb91 | 36 | * |
jakowisp | 0:69eb9d19fb91 | 37 | * @returns pointer to the report descriptor |
jakowisp | 0:69eb9d19fb91 | 38 | */ |
jakowisp | 0:69eb9d19fb91 | 39 | virtual uint8_t * reportDesc(); |
jakowisp | 0:69eb9d19fb91 | 40 | |
jakowisp | 1:948ffad3284f | 41 | /* |
jakowisp | 1:948ffad3284f | 42 | * USBDevice does not ptovide a callback function for connection state changes |
jakowisp | 1:948ffad3284f | 43 | * This functions will poll the state |
jakowisp | 1:948ffad3284f | 44 | * |
jakowisp | 1:948ffad3284f | 45 | * @returns 0/1 for the Connected state |
jakowisp | 1:948ffad3284f | 46 | */ |
jakowisp | 0:69eb9d19fb91 | 47 | unsigned int getConnectState(); |
jakowisp | 1:948ffad3284f | 48 | |
jakowisp | 1:948ffad3284f | 49 | /* |
jakowisp | 1:948ffad3284f | 50 | * User accessable Function pointer for callbacks |
jakowisp | 1:948ffad3284f | 51 | */ |
jakowisp | 0:69eb9d19fb91 | 52 | void (*callbackSuspendChange)(unsigned int connected); |
jakowisp | 1:948ffad3284f | 53 | |
jakowisp | 1:948ffad3284f | 54 | /* |
jakowisp | 1:948ffad3284f | 55 | * |
jakowisp | 1:948ffad3284f | 56 | * Provide override function for USBDevice function suspendStateChanged |
jakowisp | 1:948ffad3284f | 57 | * USBDevice version of the function does nothing, the HIDAudiControl |
jakowisp | 1:948ffad3284f | 58 | * provides a use callback hool. |
jakowisp | 1:948ffad3284f | 59 | */ |
jakowisp | 0:69eb9d19fb91 | 60 | virtual void suspendStateChanged(unsigned int suspend); |
jakowisp | 0:69eb9d19fb91 | 61 | |
jakowisp | 0:69eb9d19fb91 | 62 | }; |
jakowisp | 0:69eb9d19fb91 | 63 | |
jakowisp | 0:69eb9d19fb91 | 64 | #endif |