copper_rs/afx/
audio.rs

1
2use wasm_bindgen::prelude::*;
3
4#[wasm_bindgen]
5extern {
6    fn copperCreateAudio(audio_url: &str) -> usize;
7
8    fn copperAudioLoaded(pointer: usize) -> bool;
9
10    fn copperDropAudio(pointer: usize);
11}
12
13pub struct Audio {
14    pub(crate) pointer: usize
15}
16
17impl Audio {
18    pub fn new(audio_url: &str) -> Audio { Audio { pointer: copperCreateAudio(audio_url) } }
19
20    pub fn loaded(&self) -> bool { copperAudioLoaded(self.pointer) }
21}
22
23impl Drop for Audio {
24    fn drop(&mut self) {
25        copperDropAudio(self.pointer);
26    }
27}