From 90b491bb0d4ca6ae88495e7fb3f9b936598d83e1 Mon Sep 17 00:00:00 2001 From: Grant Shangreaux Date: Tue, 26 Oct 2021 16:45:01 -0500 Subject: Add: TypedArray for godot buffer frames property --- klangfarbrs/src/lib.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'klangfarbrs/src') diff --git a/klangfarbrs/src/lib.rs b/klangfarbrs/src/lib.rs index 1a43aba..9bf1ded 100644 --- a/klangfarbrs/src/lib.rs +++ b/klangfarbrs/src/lib.rs @@ -1,20 +1,22 @@ // use gdnative::api::Resource; use gdnative::prelude::*; +use gdnative::core_types::TypedArray; #[derive(NativeClass)] #[inherit(Node)] pub struct MonoBuffer { - frames: [f32; 512] + #[property] + frames: TypedArray } -pub fn fill_frames() -> [f32; 512] { +pub fn fill_frames() -> TypedArray { let tau = std::f32::consts::FRAC_PI_2; let frequency = 440.0; let sample_rate = 8000.0; - let mut frames = [0.0; 512]; + let mut frames = TypedArray::new(); for i in 0..512 { - frames[i] = f32::sin(tau * frequency * i as f32/sample_rate); + frames.push(f32::sin(tau * frequency * i as f32/sample_rate)); } return frames @@ -26,10 +28,6 @@ impl MonoBuffer { MonoBuffer { frames: fill_frames() } } - fn frames(&self) -> [f32; 512] { - return self.frames; - } - #[export] fn _ready(&self, _owner: &Node) { godot_print!("Whatever, connected.") -- cgit v1.2.3