//! SCD audio-container decoder — parses FFXIV sound files and decodes audio tracks.
//!
//! The central entry point is [`Scd::parse`], which borrows a byte slice and returns a
//! zero-copy view over all audio tracks.
//!
//! Key types:
//!
//! - [`Scd`] — top-level parsed container; exposes offset tables and decoded [`Track`]s.
//! - [`BinaryHeader`] / [`ScdHeader`] — the two-header layout at the start of every SCD file.
//! - [`Track`] — per-track metadata and raw audio bytes; provides [`Track::decode_to_pcm16`]
//!   for MS-ADPCM and [`Track::to_ogg_bytes`] for OGG Vorbis.
//! - [`ScdFormat`] — codec discriminant (OGG Vorbis, MS-ADPCM, ATRAC9, MP3, Empty).
//! - [`ExtraData`] — codec-specific header data parsed from each track's sub-info region.

mod decode;
mod format;
mod header;
mod parser;
mod track;

pub use format::ScdFormat;
pub use header::{
    BINARY_HEADER_SIZE, BinaryHeader, ENDIAN_TYPE_LITTLE, SCD_HEADER_SIZE, SCD_MAGIC_SUBTYPE,
    SCD_MAGIC_TYPE, ScdHeader,
};
pub use parser::Scd;
pub use track::{
    ADPCM_WAVE_FORMAT_SIZE, ATRAC9_HEADER_SIZE, AUDIO_BASIC_DESC_SIZE, AdpcmWaveFormat,
    Atrac9Header, AudioBasicDesc, AudioFlags, ExtraData, OGG_VORBIS_SEEK_TABLE_HEADER_SIZE,
    OggVorbisSeekTableHeader, PS3_MP3_SEEK_TABLE_HEADER_SIZE, Ps3Mp3SeekTableHeader,
    SUB_INFO_MARKER_CHUNK_SIZE, SubInfoMarkerChunk, Track,
};
