Usb Device Interface, protocol, and programming homework #4 Audio Control device

Dependencies:   C12832_lcd USBDevice mbed

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?

UserRevisionLine numberNew 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