INNER CODE UNIT · Rust

audio_manager

PistonDevelopers/piston_window · src/piston_script.rs:374

        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 repeat == -1.0 {
                if let Some(sound_data) = sound_data {
                    let _ = sound_track.play(sound_data.clone().loop_region(..).volume(f(volume as f32)));
                } else {
                    let data = StaticSoundData::from_file(Path::new(&**file)).unwrap();
                    let _ = sound_track.play(data.clone().loop_region(..).volume(f(volume as f32)));
                    *sound_data = Some(data);
                }
            } else if repeat != 0.0 {
                if let Some(sound_data) = sound_data {
                    let _ = sound_track.play(sound_data.clone().volume(f(volume as f32)));
                } else {
                    let data = StaticSoundData::from_file(Path::new(&**file)).unwrap();
                    let _ = sound_track.play(data.clone().volume(f(volume as f32)));

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…