Skip to content

Commit 4b1c5ae

Browse files
committed
usb camera changed iso endpoint name + added support for setting custom endpoint sizes for mcu with smaller endpoints
1 parent 60c0b97 commit 4b1c5ae

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

klib/usb/device/camera.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#include <klib/usb/usb/video/descriptor.hpp>
1111

1212
namespace klib::usb::device {
13-
template <uint32_t Width, uint32_t Height, uint32_t InterruptEndpoint = 6, uint32_t Endpoint = 8>
13+
template <uint32_t Width, uint32_t Height, uint32_t InterruptEndpoint = 6, uint32_t IsoEndpoint = 8, uint32_t MaxIsoEndpointSize = 1023>
1414
class camera {
1515
protected:
1616
/**
@@ -228,7 +228,7 @@ namespace klib::usb::device {
228228
sizeof(video::video_mjpeg_format) +
229229
sizeof(video::video_mjpeg_frame<video::continuous_frame_intervals>)
230230
),
231-
.bEndpointAddress = 0x80 | Endpoint,
231+
.bEndpointAddress = 0x80 | IsoEndpoint,
232232
.bmInfo = 0x00,
233233
.bTerminalLink = static_cast<uint8_t>(unit_index::output_unit),
234234
.bStillCaptureMethod = 0x01,
@@ -272,9 +272,9 @@ namespace klib::usb::device {
272272
.iInterface = 0x00,
273273
},
274274
{
275-
.bEndpointAddress = 0x80 | Endpoint,
275+
.bEndpointAddress = 0x80 | IsoEndpoint,
276276
.bmAttributes = static_cast<uint8_t>(klib::usb::descriptor::transfer_type::isochronous),
277-
.wMaxPacketSize = 1023,
277+
.wMaxPacketSize = MaxIsoEndpointSize,
278278
.bInterval = 0x01
279279
}
280280
};
@@ -296,7 +296,7 @@ namespace klib::usb::device {
296296
// serial number string descriptor
297297
const __attribute__((aligned(4))) static inline auto serial = string_descriptor("00001337");
298298

299-
__attribute__((aligned(4))) static inline uint8_t video_buffer[1023] = {};
299+
__attribute__((aligned(4))) static inline uint8_t video_buffer[MaxIsoEndpointSize] = {};
300300

301301
// configuration value. Value is set in the set config function
302302
static inline uint8_t configuration = 0x00;
@@ -524,7 +524,7 @@ namespace klib::usb::device {
524524
>(), "invalid interrupt selected");
525525

526526
static_assert(Usb::template is_valid_endpoint<
527-
Endpoint,
527+
IsoEndpoint,
528528
klib::usb::descriptor::transfer_type::isochronous
529529
>(), "invalid isochronous selected");
530530
}

0 commit comments

Comments
 (0)