Skip to content

Commit b1cebd2

Browse files
committed
add WEBUSB_URL_DEF() to avoid using flexible array member in C++
1 parent ba7b4d4 commit b1cebd2

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

examples/WebUSB/webusb_serial/webusb_serial.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
Adafruit_USBD_WebUSB usb_web;
3232

3333
// Landing Page: scheme (0: http, 1: https), url
34-
const tusb_desc_webusb_url_t landingPage = TUD_WEBUSB_URL_DESCRIPTOR(1 /*https*/, "adafruit.github.io/Adafruit_TinyUSB_Arduino/examples/webusb-serial");
34+
WEBUSB_URL_DEF(landingPage, 1 /*https*/, "adafruit.github.io/Adafruit_TinyUSB_Arduino/examples/webusb-serial");
3535

3636
int led_pin = LED_BUILTIN;
3737

src/Adafruit_USBD_WebUSB.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@
2727

2828
#include "Adafruit_TinyUSB_Core.h"
2929

30+
#define WEBUSB_URL_DEF(_name, _scheme, _url) \
31+
struct TU_ATTR_PACKED { \
32+
uint8_t bLength; \
33+
uint8_t bDescriptorType; \
34+
uint8_t bScheme; \
35+
char url[3 + sizeof(_url)]; \
36+
} const _name = { 3 + sizeof(_url) - 1, 3, _scheme, _url }
37+
3038
class Adafruit_USBD_WebUSB : public Stream, Adafruit_USBD_Interface
3139
{
3240
public:

0 commit comments

Comments
 (0)