diff options
author | metamuffin <metamuffin@disroot.org> | 2025-03-25 03:09:35 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-03-25 03:09:35 +0100 |
commit | 466a8fce3c5693fa51cc34ec5d9e718459484e0b (patch) | |
tree | 8d53af8de01d50e8b858b29bfcb93bf2a8a66224 /src/classes | |
parent | 407841b7d2516823e1d44344b3d2c1d52ffa2db9 (diff) | |
download | unity-tools-466a8fce3c5693fa51cc34ec5d9e718459484e0b.tar unity-tools-466a8fce3c5693fa51cc34ec5d9e718459484e0b.tar.bz2 unity-tools-466a8fce3c5693fa51cc34ec5d9e718459484e0b.tar.zst |
start on own fmod sound bank impl
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:?}"), } |