Prepare Bass-Reactive patterns
This commit is contained in:
parent
6df8a7344d
commit
63e4ced365
1
rust_native_module/index.d.ts
vendored
1
rust_native_module/index.d.ts
vendored
@ -45,6 +45,7 @@ declare module rust_native_module {
|
|||||||
setConfig: (config: TrackerConfig) => void,
|
setConfig: (config: TrackerConfig) => void,
|
||||||
tap: () => void,
|
tap: () => void,
|
||||||
getProgress: () => Option<number>,
|
getProgress: () => Option<number>,
|
||||||
|
getCurrentBass: () => number,
|
||||||
stop: () => Result<never>,
|
stop: () => Result<never>,
|
||||||
getGraphPoints: () => GraphPoints,
|
getGraphPoints: () => GraphPoints,
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,9 @@ pub fn get_beat_tracker(mut cx: FunctionContext) -> JsResult<JsObject> {
|
|||||||
let get_progress_function = JsFunction::new(&mut cx, get_progress)?;
|
let get_progress_function = JsFunction::new(&mut cx, get_progress)?;
|
||||||
value_obj.set(&mut cx, "getProgress", get_progress_function)?;
|
value_obj.set(&mut cx, "getProgress", get_progress_function)?;
|
||||||
|
|
||||||
|
let get_current_bass_function = JsFunction::new(&mut cx, get_current_bass)?;
|
||||||
|
value_obj.set(&mut cx, "getCurrentBass", get_current_bass_function)?;
|
||||||
|
|
||||||
let close_function = JsFunction::new(&mut cx, close)?;
|
let close_function = JsFunction::new(&mut cx, close)?;
|
||||||
value_obj.set(&mut cx, "close", close_function)?;
|
value_obj.set(&mut cx, "close", close_function)?;
|
||||||
|
|
||||||
@ -122,6 +125,18 @@ pub fn get_progress(mut cx: FunctionContext) -> JsResult<JsObject> {
|
|||||||
Ok(obj)
|
Ok(obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn get_current_bass(mut cx: FunctionContext) -> JsResult<JsNumber> {
|
||||||
|
let this = cx.this();
|
||||||
|
|
||||||
|
let boxed_tracker = this
|
||||||
|
.get(&mut cx, "_rust_ptr")?
|
||||||
|
.downcast_or_throw::<BoxedTracker, _>(&mut cx)?;
|
||||||
|
|
||||||
|
let bass = boxed_tracker.borrow().get_current_bass();
|
||||||
|
|
||||||
|
Ok(cx.number(bass))
|
||||||
|
}
|
||||||
|
|
||||||
fn get_graph_points(mut cx: FunctionContext) -> JsResult<JsObject> {
|
fn get_graph_points(mut cx: FunctionContext) -> JsResult<JsObject> {
|
||||||
let this = cx.this();
|
let this = cx.this();
|
||||||
|
|
||||||
|
@ -226,6 +226,14 @@ impl BeatTracker {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_current_bass(&self) -> f32 {
|
||||||
|
self.audio_capture_thread
|
||||||
|
.get_points()
|
||||||
|
.last()
|
||||||
|
.unwrap()
|
||||||
|
.clone()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn stop(&mut self) -> Result<()> {
|
pub fn stop(&mut self) -> Result<()> {
|
||||||
self.audio_capture_thread.stop()
|
self.audio_capture_thread.stop()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user