Package com.tino1b2be.dtmf.io
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
-
ClassDescriptionPull-based read interface returned by every
AudioSourceProviderand byRawPcmAudioSource.Service Provider Interface (SPI) for format-specific audio decoders.Entry point for opening audio from any source.One-call facade overAudioSourcesandDtmfDecoder.PCM encoding discriminator forRawPcmAudioSourceand other linear-PCM carriers indtmf-io.AudioSourcewrapping an in-memorybyte[]of raw linear PCM bytes with caller-supplied format metadata.Thrown when noAudioSourceProvidercan open a given input, or when a provider that scored non-negative onAudioSourceProvider.canOpen(java.nio.file.Path)cannot in fact decode the file once it opens it (structural mismatch, unsupported compression code, malformed header after the magic-byte prefix, etc.).