chdlady-disc 0.2.2

Disc geometries and physical media formats for chdlady
//! Optical disc geometries and block media handling for chdlady.
#![deny(missing_docs)]
#![deny(unsafe_code)]
#![cfg_attr(docsrs, feature(doc_auto_cfg))]

/// CloneCD (.ccd) descriptor parsing and generation.
pub mod ccd;
/// CHD media image creation pipelines.
pub mod create;
/// CUE sheet parsing and generation.
pub mod cue;
/// Error definitions for disc operations.
pub mod error;
/// Extraction routines for optical disc and hard disk media.
pub mod extract;
/// Sega Dreamcast GDI parsing and generation.
pub mod gdi;
/// Hard disk physical geometry definitions.
pub mod hd;
/// Laserdisc media creation and extraction pipelines.
#[cfg(feature = "ld")]
pub mod ld;
/// Alcohol 120% (.mds) descriptor parsing and generation.
pub mod mds;
/// Nero Burning ROM (.nrg) container parsing and generation.
pub mod nrg;
/// CHD track metadata serialization and deserialization.
pub mod metadata;
/// CloneCD .sub subchannel frame parsing, conversion, and streaming.
pub mod sub;
/// Optical subcode channels and audio sample processing.
pub mod subcode;
/// CDRDAO TOC parsing and generation.
pub mod toc;
/// Fundamental optical disc types, track formats, and timestamps.
pub mod types;

pub use ccd::{CcdEntry, CcdSession, CcdSheet, CcdTrackInfo};
pub use create::{
    codec_name, create_cd, create_dvd, create_hd, create_raw, format_codecs, format_with_commas,
    inspect_create_cd, inspect_create_dvd, inspect_create_hd, inspect_create_raw,
    msf_string_from_frames, parse_compression_codecs, CdCreateInfo, CdStreamReader,
    CreateCdOptions, CreateDvdOptions, CreateHdOptions, CreateRawOptions, DvdCreateInfo,
    HdCreateInfo, RawCreateInfo, DEFAULT_CD_CODECS, DEFAULT_HD_CODECS, DEFAULT_RAW_CODECS,
};
pub use cue::CueSheet;
pub use error::DiscError;
pub use extract::{
    extract_cd, extract_cd_with_progress, extract_hd, extract_hd_with_progress, extract_raw,
    extract_raw_with_progress,
};
pub use gdi::GdiSheet;
pub use hd::{guess_chs, HardDiskGeo, HdTemplate, HD_TEMPLATES};
#[cfg(feature = "ld")]
pub use ld::{
    create_ld, extract_ld, inspect_create_ld, CreateLdOptions, ExtractLdOptions, LdCreateInfo,
    LdError, AV_LD_METADATA_TAG, AV_METADATA_TAG, DEFAULT_LD_CODECS,
};
pub use mds::{MdsDisc, MdsHeader, MdsSession, MdsTrack};
pub use metadata::{
    create_metadata_from_toc, format_track_metadata, parse_toc_from_metadata, parse_track_metadata,
};
pub use nrg::{NrgDisc, NrgTrack};
pub use sub::{
    SubChannelQ, SubFrame, SubIndexEvent, SubScanSummary, SubScanner, SUBCODE_FRAME_SIZE,
};
pub use subcode::{
    compute_subcode_crc, deinterleave_subcode, generate_q_subcode, interleave_subcode,
    swap_audio_endianness, to_bcd,
};
pub use toc::CdrdaoToc;
pub use types::{
    CdSubcodeType, CdToc, CdTrack, CdTrackType, DiscType, Msf, CDROM_OLD_METADATA_TAG,
    CDROM_TRACK_METADATA2_TAG, CDROM_TRACK_METADATA_TAG, CD_FRAMES_PER_SECOND, CD_FRAME_SIZE,
    CD_SUBCODE_SIZE, CD_TOTAL_FRAME_SIZE, DVD_METADATA_TAG, GDROM_OLD_METADATA_TAG,
    GDROM_TRACK_METADATA_TAG, HARD_DISK_IDENT_METADATA_TAG, HARD_DISK_METADATA_TAG,
};