use symphonia_core::errors::Result;
use symphonia_core::io::ReadBytes;
use crate::atoms::{Atom, AtomHeader};
use crate::fp::FpI8;
#[derive(Debug)]
pub struct SmhdAtom {
header: AtomHeader,
pub balance: FpI8,
}
impl Atom for SmhdAtom {
fn header(&self) -> AtomHeader {
self.header
}
fn read<B: ReadBytes>(reader: &mut B, header: AtomHeader) -> Result<Self> {
let (_, _) = AtomHeader::read_extra(reader)?;
let balance = FpI8::parse_raw(reader.read_be_u16()? as i16);
let _ = reader.read_be_u16()?;
Ok(SmhdAtom { header, balance })
}
}