diff options
Diffstat (limited to 'src/classes')
-rw-r--r-- | src/classes/audio_clip.rs | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/classes/audio_clip.rs b/src/classes/audio_clip.rs index 53a265f..a3e8d22 100644 --- a/src/classes/audio_clip.rs +++ b/src/classes/audio_clip.rs @@ -1,10 +1,11 @@ use super::streamed_resource::StreamedResource; use crate::{ + fmod::FmodSoundBank, object::{Value, parser::FromValue}, unityfs::UnityFS, }; -use anyhow::{Result, anyhow, bail}; -use log::info; +use anyhow::{Ok, Result, anyhow, bail}; +use log::{debug, info}; use serde::Serialize; use std::io::{Cursor, Read, Seek}; @@ -48,15 +49,13 @@ impl AudioClip { match self.compression_format { AudioCompressionFormat::Vorbis => { info!("reading vorbis FMOD sound bank"); - let bank = fsbex::Bank::new(Cursor::new(data))?; - assert_eq!(bank.format(), fsbex::AudioFormat::Vorbis); - assert_eq!(u32::from(bank.num_streams()), 1); - let stream = bank.into_iter().next().unwrap(); + let mut bank = FmodSoundBank::open(Cursor::new(data))?; + // Ok(buf.into_inner()) + for i in 0..bank.streams.len() { + let data = bank.read_stream(i)?; + } - let mut buf = Cursor::new(Vec::new()); - stream.write(&mut buf)?; - - Ok(buf.into_inner()) + Ok(Vec::new()) } x => todo!("audio format {x:?}"), } |