INNER CODE UNIT · Rust
amplitude_to_decibels
PistonDevelopers/piston_window · src/piston_script.rs:412
fn amplitude_to_decibels(amplitude: f32) -> kira::Decibels {
if amplitude <= 0.0 {return kira::Decibels::SILENCE};
(20.0 * amplitude.log10()).into()
}
dyon_fn!{fn play_sound_forever__name_volume(name: Arc<String>, volume: f64) {
use crate::piston_script::Sounds;
use crate::piston_script::AudioManager;
use kira::sound::static_sound::StaticSoundData;
use std::path::Path;
let f = |x| amplitude_to_decibels(x);
let audio_manager = unsafe { &mut *Current::<AudioManager>::new() };
let sounds = unsafe { &mut *Current::<Sounds>::new() };
let sound_track = audio_manager.main_track();
if let Some((file, sound_data)) = sounds.get_mut(&name) {
if let Some(sound_data) = sound_data {