ref: 0f9bc249e79a9181613b46effd008f15d9bc7904
parent: 3a3b446c59acabc34e39d73af846ecb37a8dff77
author: Paul Batchelor <thisispaulbatchelor@gmail.com>
date: Sun Feb 7 03:16:08 EST 2021
added sp_phasor_reset
--- a/h/phasor.h
+++ b/h/phasor.h
@@ -11,3 +11,4 @@
int sp_phasor_destroy(sp_phasor **p);
int sp_phasor_init(sp_data *sp, sp_phasor *p, SPFLOAT iphs);
int sp_phasor_compute(sp_data *sp, sp_phasor *p, SPFLOAT *in, SPFLOAT *out);
+int sp_phasor_reset(sp_data *sp, sp_phasor *p, SPFLOAT iphs);
--- a/modules/data/phasor.lua
+++ b/modules/data/phasor.lua
@@ -11,6 +11,19 @@
destroy = "sp_phasor_destroy",
init = "sp_phasor_init",
compute = "sp_phasor_compute",
+ other = {
+ sp_phasor_reset = {
+ description = "resets the phase to a value.",
+ args = {
+ {
+ name = "value",
+ type = "SPFLOAT",
+ description = "value to reset to.",
+ default = 0
+ },
+ }
+ }
+ }
},
params = {
--- a/modules/phasor.c
+++ b/modules/phasor.c
@@ -43,3 +43,9 @@
*out = sk_phasor_tick(p->phasor);
return SP_OK;
}
+
+int sp_phasor_reset(sp_data *sp, sp_phasor *p, SPFLOAT iphs)
+{
+ sk_phasor_reset(p->phasor, iphs);
+ return SP_OK;
+}
--- a/tangled/phasor.c
+++ b/tangled/phasor.c
@@ -37,4 +37,10 @@
return out;
}
+#line 164 "phasor.org"
+void sk_phasor_reset(sk_phasor *phs, SKFLT val)
+{
+ if (val >= 0) phs->phs = val;
+ else phs->phs = 0;
+}
#line 49 "phasor.org"
--- a/tangled/phasor.h
+++ b/tangled/phasor.h
@@ -15,6 +15,8 @@
void sk_phasor_freq(sk_phasor *ph, SKFLT freq);
#line 113 "phasor.org"
SKFLT sk_phasor_tick(sk_phasor *ph);
+#line 159 "phasor.org"
+void sk_phasor_reset(sk_phasor *phs, SKFLT val);
#line 41 "phasor.org"
#ifdef SK_PHASOR_PRIV
#line 70 "phasor.org"