Added new EVENT_USB_Device_StartOfFrame() event, controlled by the new USB_Device_Ena...
[pub/USBasp.git] / LUFA / Drivers / USB / LowLevel / Device.h
index d66def4..f107407 100644 (file)
                                 *  \return Boolean true if the USB communications have been suspended by the host, false otherwise.\r
                                 */\r
                                static inline bool USB_Device_IsUSBSuspended(void);\r
+                               \r
+                               /** Enables the device mode Start Of Frame events. When enabled, this causes the\r
+                                *  \ref EVENT_USB_Device_StartOfFrame() event to fire once per millisecond, synchronised to the USB bus,\r
+                                *  at the start of each USB frame when enumerated in device mode.\r
+                                */\r
+                               static inline bool USB_Device_EnableSOFEvents(void);\r
+                               \r
+                               /** Disables the device mode Start Of Frame events. When disabled, this stop the firing of the\r
+                                *  \ref EVENT_USB_Device_StartOfFrame() event when enumerated in device mode.\r
+                                */\r
+                               static inline bool USB_Device_DisableSOFEvents(void);\r
                        #else\r
                                #define USB_Device_SendRemoteWakeup()   MACROS{ UDCON |= (1 << RMWKUP); }MACROE\r
 \r
                                #define USB_Device_IsRemoteWakeupSent()       ((UDCON &  (1 << RMWKUP)) ? false : true)\r
 \r
                                #define USB_Device_IsUSBSuspended()           ((UDINT &  (1 << SUSPI)) ? true : false)\r
+                               \r
+                               #define USB_Device_EnableSOFEvents()    MACROS{ USB_INT_Enable(USB_INT_SOFI); }MACROE\r
+\r
+                               #define USB_Device_DisableSOFEvents()   MACROS{ USB_INT_Disable(USB_INT_SOFI); }MACROE\r
                        #endif\r
                        \r
                /* Type Defines: */\r