- /** Sends a Remote Wakeup request to the host. This signals to the host that the device should\r
- * be taken out of suspended mode, and communications should resume.\r
- *\r
- * Typically, this is implemented so that HID devices (mice, keyboards, etc.) can wake up the\r
- * host computer when the host has suspended all USB devices to enter a low power state.\r
- *\r
- * \note This macro should only be used if the device has indicated to the host that it\r
- * supports the Remote Wakeup feature in the device descriptors, and should only be\r
- * issued if the host is currently allowing remote wakeup events from the device (i.e.,\r
- * the USB_RemoteWakeupEnabled flag is set, see DevChapter9.h documentation).\r
- *\r
- * \see StdDescriptors.h for more information on the RMWAKEUP feature and device descriptors.\r
- */\r
- #define USB_Device_SendRemoteWakeup() MACROS{ UDCON |= (1 << RMWKUP); }MACROE\r
+ /* Pseudo-Function Macros: */\r
+ #if defined(__DOXYGEN__)\r
+ /** Sends a Remote Wakeup request to the host. This signals to the host that the device should\r
+ * be taken out of suspended mode, and communications should resume.\r
+ *\r
+ * Typically, this is implemented so that HID devices (mice, keyboards, etc.) can wake up the\r
+ * host computer when the host has suspended all USB devices to enter a low power state.\r
+ *\r
+ * \note This macro should only be used if the device has indicated to the host that it\r
+ * supports the Remote Wakeup feature in the device descriptors, and should only be\r
+ * issued if the host is currently allowing remote wakeup events from the device (i.e.,\r
+ * the \ref USB_RemoteWakeupEnabled flag is set). When the NO_DEVICE_REMOTE_WAKEUP compile\r
+ * time option is used, this macro is unavailable.\r
+ *\r
+ * \see \ref Group_Descriptors for more information on the RMWAKEUP feature and device descriptors.\r
+ */\r
+ static inline void USB_Device_SendRemoteWakeup(void);\r
+ \r
+ /** Indicates if a Remote Wakeup request is being sent to the host. This returns true if a\r
+ * remote wakeup is currently being sent, false otherwise.\r
+ *\r
+ * This can be used in conjunction with the \ref USB_Device_IsUSBSuspended() macro to determine if\r
+ * a sent RMWAKEUP request was accepted or rejected by the host.\r
+ *\r
+ * \note This macro should only be used if the device has indicated to the host that it\r
+ * supports the Remote Wakeup feature in the device descriptors. When the NO_DEVICE_REMOTE_WAKEUP\r
+ * compile time option is used, this macro is unavailable.\r
+ *\r
+ * \see \ref Group_Descriptors for more information on the RMWAKEUP feature and device descriptors.\r
+ *\r
+ * \return Boolean true if no Remote Wakeup request is currently being sent, false otherwise\r
+ */\r
+ static inline bool USB_Device_IsRemoteWakeupSent(void);\r
+ \r
+ /** Indicates if the device is currently suspended by the host. Whilst suspended, the device is\r
+ * to enter a low power state until resumed by the host. No USB traffic to or from the device\r
+ * can occur (except for Remote Wakeup requests) during suspension by the host.\r
+ *\r
+ * \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, synchronized 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
+ #if !defined(NO_DEVICE_REMOTE_WAKEUP)\r
+ #define USB_Device_SendRemoteWakeup() MACROS{ UDCON |= (1 << RMWKUP); }MACROE\r