use ffi;
use std::default::Default;
pub fn from_ptr(pointer: ffi::FMOD_REVERB_PROPERTIES) -> ReverbProperties {
ReverbProperties {
instance: pointer.Instance,
environment: pointer.Environment,
env_diffusion: pointer.EnvDiffusion,
room: pointer.Room,
room_HF: pointer.RoomHF,
room_LF: pointer.RoomLF,
decay_time: pointer.DecayTime,
decay_HF_ratio: pointer.DecayHFRatio,
decay_LF_ratio: pointer.DecayLFRatio,
reflections: pointer.Reflections,
reflections_delay: pointer.ReflectionsDelay,
reverb: pointer.Reverb,
reverb_delay: pointer.ReverbDelay,
modulation_time: pointer.ModulationTime,
modulation_depth: pointer.ModulationDepth,
HF_reference: pointer.HFReference,
LF_reference: pointer.LFReference,
diffusion: pointer.Diffusion,
density: pointer.Density,
flags: pointer.Flags
}
}
pub fn get_ffi(reverb: ReverbProperties) -> ffi::FMOD_REVERB_PROPERTIES {
ffi::FMOD_REVERB_PROPERTIES {
Instance: reverb.instance,
Environment: reverb.environment,
EnvDiffusion: reverb.env_diffusion,
Room: reverb.room,
RoomHF: reverb.room_HF,
RoomLF: reverb.room_LF,
DecayTime: reverb.decay_time,
DecayHFRatio: reverb.decay_HF_ratio,
DecayLFRatio: reverb.decay_LF_ratio,
Reflections: reverb.reflections,
ReflectionsDelay: reverb.reflections_delay,
Reverb: reverb.reverb,
ReverbDelay: reverb.reverb_delay,
ModulationTime: reverb.modulation_time,
ModulationDepth: reverb.modulation_depth,
HFReference: reverb.HF_reference,
LFReference: reverb.LF_reference,
Diffusion: reverb.diffusion,
Density: reverb.density,
Flags: reverb.flags
}
}
#[derive(Clone, Copy)]
pub struct ReverbProperties
{
pub instance : i32,
pub environment : i32,
pub env_diffusion : f32,
pub room : i32,
pub room_HF : i32,
pub room_LF : i32,
pub decay_time : f32,
pub decay_HF_ratio : f32,
pub decay_LF_ratio : f32,
pub reflections : i32,
pub reflections_delay: f32,
pub reverb : i32,
pub reverb_delay : f32,
pub modulation_time : f32,
pub modulation_depth : f32,
pub HF_reference : f32,
pub LF_reference : f32,
pub diffusion : f32,
pub density : f32,
pub flags : u32
}
impl Default for ReverbProperties {
fn default() -> ReverbProperties {
ReverbProperties {
instance: 0i32,
environment: -1i32,
env_diffusion: 1.0f32,
room: -1000i32,
room_HF: -100i32,
room_LF: 0i32,
decay_time: 1.49f32,
decay_HF_ratio: 0.83f32,
decay_LF_ratio: 1f32,
reflections: -2602i32,
reflections_delay: 0.007f32,
reverb: 200i32,
reverb_delay: 0.011f32,
modulation_time: 0.25f32,
modulation_depth: 0f32,
HF_reference: 5000f32,
LF_reference: 250f32,
diffusion: 100f32,
density: 100f32,
flags: 0u32
}
}
}