Pinscape Controller version 1 fork. This is a fork to allow for ongoing bug fixes to the original controller version, from before the major changes for the expansion board project.

Dependencies:   FastIO FastPWM SimpleDMA mbed

Fork of Pinscape_Controller by Mike R

Revision:
55:e47a4b7ab348
Parent:
53:02408ec83097
diff -r af65c577a563 -r e47a4b7ab348 USBDevice/USBHID/USBHID.h
--- a/USBDevice/USBHID/USBHID.h	Thu Feb 11 19:08:37 2016 +0000
+++ b/USBDevice/USBHID/USBHID.h	Thu Feb 11 19:14:12 2016 +0000
@@ -149,7 +149,39 @@
     * @returns pointer to the configuration descriptor
     */
     virtual uint8_t * configurationDesc();
-
+    
+    /*
+    * Set the idle time on the given interface.  The idle time is the time between
+    * INTERRUPT IN reports sent from the device to the host in the absence of any
+    * updates in values.  E.g., for a keyboard, this is the time between reports
+    * when there's no new key up/down activity to report.  An infinite idle time
+    * means that reports are sent only when new activity occurs.
+    *
+    * @param ifc Interface index (this specifies which interface is affected, in
+    * cases where the device has multiple interfaces)
+    *
+    * @param reportID Report ID (specifies which report type is affected, in cases
+    * where the device has multiple report types)
+    *
+    * @param t Idle time in 4ms units, with the special case that 0 means infinity.
+    * The maximum value is 255 units (1.02s).
+    */
+    virtual void setIdleTime(int ifc, int reportId, int t) { }
+    
+    /*
+    * Get the idle time on the given interface.  Returns the idle time information
+    * previously set with setIdleTime().
+    *
+    * @param ifc Interface index (specifies which interface is being queried, in
+    * cases where the device has multiple interfaces)
+    *
+    * @param reportID Report ID (specifies which report type is being queried, in
+    * cases where the device has multiple report types)
+    *
+    * @return The idle time currently set on the interface, in 4ms units.  0 means
+    * infinity (so reports will only be sent when there's new data)
+    */
+    virtual uint8_t getIdleTime(int ifc, int reportId) { return 0; }
 
     /*
     * HID Report received by SET_REPORT request. Warning: Called in ISR context
@@ -183,6 +215,7 @@
     HID_REPORT outputReport;
     uint8_t output_length;
     uint8_t input_length;
+    uint8_t idleData;
 };
 
 #endif