-       /* Public Interface - May be used in end-application: */\r
-               /* Macros: */\r
-                       /** Raises a given event name, with the specified parameters. For events with no parameters the\r
-                        *  only argument to the macro is the event name, events with parameters list the parameter values\r
-                        *  after the name as a comma separated list.\r
-                        *\r
-                        *  When a given event is fired, its corresponding event handler code is executed.\r
-                        *\r
-                        *  Usage Examples:\r
-                        *  \code\r
-                        *  // Raise the USB_VBUSChange event, which takes no parameters\r
-                        *  RAISE_EVENT(USB_VBUSChange);\r
-                        *\r
-                        *  // Raise the USB_UnhandledControlPacket event which takes two parameters\r
-                        *  RAISE_EVENT(USB_UnhandledControlPacket, 0, 1);\r
-                        *  \endcode\r
-                        *\r
-                        *  \see RAISES_EVENT()\r
-                        */\r
-                       #define RAISE_EVENT(e, ...)                 Event_ ## e (__VA_ARGS__)\r
-\r
-                       /** Indicates that a given module can raise a given event. This is the equivalent of putting the\r
-                        *  event function's prototype into the module, but in a cleaner way. Each event which may be\r
-                        *  fired via the \ref RAISE_EVENT macro in the module should have an accompanying \ref RAISES_EVENT\r
-                        *  prototype in the module's header file.\r
-                        *\r
-                        *  Usage Examples:\r
-                        *  \code\r
-                        *  // Module can raise the USB_VBUSChange event\r
-                        *  RAISES_EVENT(USB_VBUSChange);\r
-                        *\r
-                        *  // ...\r
-                        *  // Inside a block of code in a function of the module, raise the USB_VBUSChange event\r
-                        *  RAISE_EVENT(USB_VBUSChange);\r
-                        *  \endcode\r
-                        *\r
-                        *  \see RAISE_EVENT()\r
-                        */\r
-                       #define RAISES_EVENT(e)                     HANDLES_EVENT(e)\r
-\r
-                       /** Defines an event handler for the given event. Event handlers should be short in length, as they\r
-                        *  may be raised from inside an ISR. The user application can react to each event as it sees fit,\r
-                        *  such as logging the event, indicating the change to the user or performing some other action.\r
-                        *\r
-                        *  Only one event handler may be defined in any user project for each individual event. Events may\r
-                        *  or may not have parameters - for each event, refer to its documentation elsewhere in this module\r
-                        *  to determine the presence and purpose of any event parameters.\r
-                        *\r
-                        *  Usage Example:\r
-                        *  \code\r
-                        *  // Create an event handler for the USB_VBUSChange event\r
-                        *  EVENT_HANDLER(USB_VBUSChange)\r
-                        *  {\r
-                        *      // Code to execute when the VBUS level changes\r
-                        *  }\r
-                        *  \endcode\r
-                        *\r
-                        *  \see HANDLES_EVENT()\r
-                        */\r
-                       #define EVENT_HANDLER(e)                    void Event_ ## e e ## _P\r
-                       \r
-                       /** Indicates that a given module handles an event. This is the equivalent of putting the\r
-                        *  event function's prototype into the module, but in a cleaner way. Each event which may be\r
-                        *  handled via the \ref EVENT_HANDLER macro in the module should have an accompanying \ref HANDLES_EVENT\r
-                        *  prototype in the module's header file.\r
-                        *\r
-                        *  Usage Examples:\r
-                        *  \code\r
-                        *  // Module handles the USB_VBUSChange event\r
-                        *  HANDLES_EVENT(USB_VBUSChange);\r
-                        *\r
-                        *  // Create the USB_VBUSChange event handler\r
-                        *  EVENT_HANDLER(USB_VBUSChange)\r
-                        *  {\r
-                        *      // Event handler code here\r
-                        *  }\r
-                        *  \endcode\r
-                        *\r
-                        *  \see EVENT_HANDLER()\r
-                        */\r
-                       #define HANDLES_EVENT(e)                    EVENT_HANDLER(e)\r
-                       \r