Package com.tino1b2be.dtmf.io


package com.tino1b2be.dtmf.io
Format-agnostic audio I/O surface for DTMF-Decoder v2.

This package hosts the public surface of the dtmf-io module: the unified pull-based read interface AudioSource, the SPI contract AudioSourceProvider that format modules implement and register via META-INF/services, the AudioSources facade that discovers providers through ServiceLoader and dispatches to the best match by content-based detection, the DtmfFileDecoder glue into com.tino1b2be.dtmf.DtmfDecoder, the RawPcmAudioSource wrapper for callers that already have PCM bytes in memory, the PcmEncoding discriminator enum, and the UnsupportedAudioFormatException subtype of IOException that distinguishes "format not recognized" from real I/O failures. Implementation details live under com.tino1b2be.dtmf.io.internal and are not part of the published API.

Zero external runtime dependencies live in this package by design (Requirement 1.2): WAV and MP3 support ships in the sibling com.tino1b2be.dtmf.io.wav and com.tino1b2be.dtmf.io.mp3 packages (and their matching Gradle modules dtmf-io-wav and dtmf-io-mp3), and future formats plug in the same way without touching this package or dtmf-core. All production classes in the dtmf-io module live under this package root (Requirement 2.4); the legacy v1 package com.tino1b2be.audio is not revived.

The concrete types are introduced starting at Stage 2 of the dtmf-io spec; this package-info.java is present from Stage 1 so the source tree exists for the build-shape smoke tests in Task 1.8.

Since:
2.1.0