mirror of
https://github.com/cookiengineer/audacity
synced 2025-04-30 23:59:41 +02:00
37 lines
1008 B
Plaintext
37 lines
1008 B
Plaintext
(FROMOBJ-ALG
|
|
(NAME "fromobject")
|
|
(ARGUMENTS ("time_type" "t0") ("rate_type" "sr") ("LVAL" "src"))
|
|
(SUPPORT-FUNCTIONS "
|
|
/* IMPLEMENTATION NOTE:
|
|
* The src argument is an XLisp object that returns either a
|
|
* FLONUM sample or NIL. The output of fromobj is simply the
|
|
* sequence of the samples.
|
|
*/
|
|
|
|
#include \"samples.h\"
|
|
")
|
|
|
|
(SAMPLE-RATE "sr")
|
|
(STATE
|
|
("boolean" "done" "false")
|
|
("LVAL" "src" "src"))
|
|
|
|
(OUTER-LOOP " if (susp->done) {
|
|
togo = 0; /* indicate termination */
|
|
break; /* we're done */
|
|
}
|
|
")
|
|
(INNER-LOOP "LVAL rslt = xleval(cons(s_send, cons(src,
|
|
consa(s_next))));
|
|
if (floatp(rslt)) {
|
|
output = (sample_type) getflonum(rslt);
|
|
} else {
|
|
done = true;
|
|
/* adjust togo to what it should have been */
|
|
break;
|
|
}")
|
|
(CONSTANT "length" "samples" "array" "src")
|
|
(TERMINATE COMPUTED)
|
|
)
|
|
|