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}