In _usbd_driver array (in file usbd.c), could add a include like
#ifdef USBD_DRIVER_INCLUDE_H
#include USBD_DRIVER_INCLUDE_H
#endif
#ifdef USBD_DRIVER_INCLUDE
#include USBD_DRIVER_INCLUDE
#endif
to support user custom usbd drivers, avoiding modifying files.
The file will be like:
#include "tusb.h"
#include "device/usbd.h"
#include "device/usbd_pvt.h"
#include "device/dcd.h"
#ifdef USBD_DRIVER_INCLUDE_H
#include USBD_DRIVER_INCLUDE_H
#endif
// ...
static usbd_class_driver_t const _usbd_driver[] =
{
// Original content
#if CFG_TUD_CDC
{
DRIVER_NAME("CDC")
.init = cdcd_init,
.reset = cdcd_reset,
.open = cdcd_open,
.control_request = cdcd_control_request,
.control_complete = cdcd_control_complete,
.xfer_cb = cdcd_xfer_cb,
.sof = NULL
},
#endif
// More ...
// Add this
#ifdef USBD_DRIVER_INCLUDE
#include USBD_DRIVER_INCLUDE
#endif
};
// ...
User can define USBD_DRIVER_INCLUDE, e.g. <usbd_driver.include>
The file usbd_driver.include content could be like:
{
DRIVER_NAME("CCID")
.init = ccid_init,
.reset = ccid_reset,
.open = ccid_open,
.control_request = ccid_control_request,
.control_complete = ccid_control_complete,
.xfer_cb = ccid_xfer_cb,
.sof = NULL
},
// More ...
In _usbd_driver array (in file usbd.c), could add a include like
to support user custom usbd drivers, avoiding modifying files.
The file will be like:
User can define USBD_DRIVER_INCLUDE, e.g.
<usbd_driver.include>The file
usbd_driver.includecontent could be like:{ DRIVER_NAME("CCID") .init = ccid_init, .reset = ccid_reset, .open = ccid_open, .control_request = ccid_control_request, .control_complete = ccid_control_complete, .xfer_cb = ccid_xfer_cb, .sof = NULL }, // More ...