<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/examples/host/audio_host/src/main.c, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/tinyusb.git/atom/examples/host/audio_host/src/main.c?h=master</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/examples/host/audio_host/src/main.c?h=master'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-08-27T08:36:52Z</updated>
<entry>
<title>audio: service example FIFOs at watermarks</title>
<updated>2026-08-27T08:36:52Z</updated>
<author>
<name>HiFiPHile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-08-27T07:58:09Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=ed70f7206694e2ee5dfc0e7b3b947c27413deba0'/>
<id>urn:sha1:ed70f7206694e2ee5dfc0e7b3b947c27413deba0</id>
<content type='text'>
Move capture and playback FIFO servicing into the main-loop task at half-full and half-drained watermarks. Use transfer callbacks only for diagnostics, share one conversion buffer, and demonstrate that application reads and writes need not be synchronized to USB callbacks.

Signed-off-by: HiFiPHile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>audio: add UAC2 host streaming support</title>
<updated>2026-08-27T08:34:33Z</updated>
<author>
<name>HiFiPHile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-08-26T13:54:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=cca648556dd0c096aa7210ee5a2b962efae36440'/>
<id>urn:sha1:cca648556dd0c096aa7210ee5a2b962efae36440</id>
<content type='text'>
Add protocol-selectable UAC1/UAC2 parsing, UAC2 terminal and Feature Unit topology, Clock Source discovery, sampling-frequency ranges, and protocol-specific stream controls. Cover UAC2 playback, capture, control discovery, and malformed descriptors with unit tests.

Signed-off-by: HiFiPHile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>fix(audio): repair the host audio example build</title>
<updated>2026-08-25T07:27:35Z</updated>
<author>
<name>HiFiPHile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-08-25T07:27:35Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=3db8be8ba1a79b7a38814237508108eff9bcd5d6'/>
<id>urn:sha1:3db8be8ba1a79b7a38814237508108eff9bcd5d6</id>
<content type='text'>
Add the missing preset and shared declarations, remove duplicate initialization, and correct callback call sites so the new example builds through the normal CMake flow.

Signed-off-by: HiFiPHile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>feat(class/audio): rework TUH_AUDIO into a WASAPI/ALSA-like stream API</title>
<updated>2026-08-14T03:17:00Z</updated>
<author>
<name>Zhang, Zhenjiang</name>
<email>zhenjiang.zhang@gehealthcare.com</email>
</author>
<published>2026-08-14T03:10:23Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=c950109bcef6404971c3609a6e4caeb0421120b8'/>
<id>urn:sha1:c950109bcef6404971c3609a6e4caeb0421120b8</id>
<content type='text'>
Provide a high-level audio streaming API over UAC 1.0 devices while
keeping the USB topology private: applications select supported
{format, sample_rate, channels} configurations per logical stream, and
the driver owns the mapping to AS interface, alternate setting, and
endpoint.

- One logical stream per direction per instance; multiple AS interfaces
  and alternate settings in a direction are merged into the stream's
  configuration list (discrete tuples; continuous ranges exposed as a
  single configuration at the top rate)
- Asynchronous tuh_audio_configure(): SET_INTERFACE to the selected
  alternate setting, open/reconfigure the endpoint, set the sampling
  frequency when supported, initialize the FIFO and packet scheduler,
  then invoke the completion callback
- Frame-based FIFO streaming: tuh_audio_read()/tuh_audio_write() queue
  whole frames; the driver owns transfer replenishment and fractional
  packet scheduling (44.1 kHz pays back the 0.1 frame/ms remainder via
  an accumulator for exact average pacing)
- tuh_audio_start()/tuh_audio_stop() activate/deactivate the stream
  interface through SET_INTERFACE (alt n / alt 0)

Driver correctness fixes:
- Parse only the AC header's interface collection; MIDI Streaming and
  other subclasses are skipped
- Keep every discrete format as a separate configuration; endpoints are
  opened only for the alternate setting selected by tuh_audio_configure()
- Check tuh_interface_set() return values and SET_INTERFACE transfer
  results instead of ignoring failures
- Validate instance state, direction, buffers, and frame counts in every
  transfer API
- Feature Unit requests use the control's real width (mute/AGC/loudness
  1 byte, others 2 bytes) and convert multibyte values to host order
- Failed/stalled/aborted isochronous transfers reach only the error
  callback, never the capture/playback callbacks

The audio_host example uses the new API: 48 kHz stereo by default,
automatic stream restart on error callbacks, a sine test tone on the
playback stream, and periodic mic-only / spk-only / echo phase switching.
</content>
</entry>
<entry>
<title>feat(audio): add USB Audio Host (UAC 1.0) support</title>
<updated>2026-07-16T07:03:31Z</updated>
<author>
<name>Zhang, Zhenjiang</name>
<email>zhenjiang.zhang@gehealthcare.com</email>
</author>
<published>2026-07-16T07:03:31Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=439015377976bb51f6d9ae6c3101b72385ecfb1a'/>
<id>urn:sha1:439015377976bb51f6d9ae6c3101b72385ecfb1a</id>
<content type='text'>
Add TinyUSB Host Audio class driver supporting UAC 1.0 devices.

Features:
- Support multiple Audio Streaming (AS) interfaces with independent format storage
- Support both IN (Microphone) and OUT (Speaker) endpoints
- Per-AS interface format info: channels, sample rate, bit resolution
- Support Feature Unit volume control
- Support sampling frequency get/set
- Add host/audio_host example for STM32F407 discovery board
- Support mono-to-stereo conversion for loopback

Changes:
- Add src/class/audio/audio_host.c and audio_host.h
- Register AUDIO driver in usbh.c
- Add CFG_TUH_AUDIO macro in tusb_option.h
- Add host/audio_host example with CMake and Makefile build support

Tested with Jabra USB headset (stereo speaker + mono microphone) on STM32F407 disco.
</content>
</entry>
</feed>
