<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/src/class/midi/midi_device.h, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/tinyusb.git/atom/src/class/midi/midi_device.h?h=master</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/src/class/midi/midi_device.h?h=master'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-07-02T14:55:45Z</updated>
<entry>
<title>license: use SPDX identifiers for src/ headers (#3749)</title>
<updated>2026-07-02T14:55:45Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-07-02T14:55:45Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=7a4111b96ef6279e75579f9a18443834f6a0871d'/>
<id>urn:sha1:7a4111b96ef6279e75579f9a18443834f6a0871d</id>
<content type='text'>
* license: use SPDX identifiers for src/ headers

Replace the full ~20-line MIT license boilerplate on every src/ file with a
two-line SPDX tag (SPDX-FileCopyrightText + SPDX-License-Identifier), following
the REUSE convention used by CircuitPython and the Linux kernel. Removes ~3500
lines of duplicated boilerplate.</content>
</entry>
<entry>
<title>refactor(config): separate endpoint buffer sizes into RX and TX definitions for clarity and flexibility</title>
<updated>2026-03-12T04:43:32Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-03-12T04:43:32Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=78bbc7dc2e80daba79351bc37e11b13243fd6f8c'/>
<id>urn:sha1:78bbc7dc2e80daba79351bc37e11b13243fd6f8c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>midi device: add cable-aware stream read (tud_midi_n_demux_stream_read)</title>
<updated>2026-02-25T15:38:44Z</updated>
<author>
<name>Saulo Veríssimo</name>
<email>sauloverissimo@gmail.com</email>
</author>
<published>2026-02-25T15:38:44Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=4d402194dc506a98ed574233cd542ca7f27ff991'/>
<id>urn:sha1:4d402194dc506a98ed574233cd542ca7f27ff991</id>
<content type='text'>
The existing tud_midi_n_stream_read() accepts a cable_num parameter but
ignores it — all cables share a single FIFO and stream parser state, so
data from different virtual cables is silently mixed together.

Add tud_midi_n_demux_stream_read() which returns the cable number of the
data that was actually read.  It peeks at each USB-MIDI event packet
header before consuming it and stops when the next packet belongs to a
different cable, allowing callers to dispatch per-cable without losing
data.

Implementation details:
- Mirrors the host-side tuh_midi_stream_read() approach: tu_edpt_stream_peek
  for cable inspection, CIN-based byte count (USB MIDI 1.0 Table 4-1),
  leftover handling via existing midi_driver_stream_t
- *p_cable_num initialized to 0xff sentinel so callers can detect
  "no data" even when return value is 0
- Cable-change check (total_read &gt; 0 guard) covers both leftover-originated
  reads and freshly consumed packets
- TU_VERIFY uses explicit != NULL comparisons, consistent with codebase style
- Note: shares stream-&gt;buffer with tud_midi_n_stream_read(); do not mix
  calls on the same interface
- Adds single-interface convenience wrapper tud_midi_demux_stream_read()

Closes #1838
</content>
</entry>
<entry>
<title>migrate midi_device to use edpt stream API</title>
<updated>2025-11-12T10:46:38Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2025-11-12T03:41:58Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=fc661abc18beefb57f5d1352219ed72678b59e0b'/>
<id>urn:sha1:fc661abc18beefb57f5d1352219ed72678b59e0b</id>
<content type='text'>
also add tud_midi_n_packet_write/read_n()
</content>
</entry>
<entry>
<title>fix Identifiers that start with '__' or '_[A-Z]' are reserved.</title>
<updated>2025-10-28T07:14:01Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2025-10-28T06:21:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=d92b810df7670aae0e195fd02abef5014470c2f7'/>
<id>urn:sha1:d92b810df7670aae0e195fd02abef5014470c2f7</id>
<content type='text'>
fix compiling with nuc family
</content>
</entry>
<entry>
<title>Update weak callbacks to new syntax</title>
<updated>2025-09-17T20:48:59Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2025-09-17T20:37:45Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=369a1ff5153a472327d2847c7bc7386309486b34'/>
<id>urn:sha1:369a1ff5153a472327d2847c7bc7386309486b34</id>
<content type='text'>
Signed-off-by: HiFiPhile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>add class driver deinit</title>
<updated>2024-04-08T15:07:56Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2024-04-08T15:07:56Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=c3c06484560d0102366a3a1b1101c35301009f97'/>
<id>urn:sha1:c3c06484560d0102366a3a1b1101c35301009f97</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix trailing space and new line</title>
<updated>2023-03-17T09:12:49Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2023-03-17T09:12:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=3623ba1884ddff23e9b64766cb6dd032f1425846'/>
<id>urn:sha1:3623ba1884ddff23e9b64766cb6dd032f1425846</id>
<content type='text'>
temporarily disable codespell
</content>
</entry>
<entry>
<title>include clean up</title>
<updated>2021-05-27T10:40:39Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2021-05-27T10:40:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=9736e54734a85c03d9055c24414e23f112a67968'/>
<id>urn:sha1:9736e54734a85c03d9055c24414e23f112a67968</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rename midi write()/read() to stream_write() stream_read()</title>
<updated>2021-04-02T07:43:38Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2021-04-02T07:43:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=da59c4ad4434b64691aa7a93e03381702633964d'/>
<id>urn:sha1:da59c4ad4434b64691aa7a93e03381702633964d</id>
<content type='text'>
also add deprecated for warning and rename hint
</content>
</entry>
</feed>
