From 466a8fce3c5693fa51cc34ec5d9e718459484e0b Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 25 Mar 2025 03:09:35 +0100 Subject: start on own fmod sound bank impl --- src/classes/audio_clip.rs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'src/classes') 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:?}"), } -- cgit v1.2.3-70-g09d2