shithub: soundpipe

ref: 25a9fcc24ad00c6a406042818b9e6f2e7bba0dd1
dir: soundpipe/modules/switch.c

View raw version
/* This code is placed in the public domain. */

#include <stdlib.h>
#include "soundpipe.h"

int sp_switch_create(sp_switch **p)
{
    *p = malloc(sizeof(sp_switch));
    return SP_OK;
}

int sp_switch_destroy(sp_switch **p)
{
    free(*p);
    return SP_OK;
}

int sp_switch_init(sp_data *sp, sp_switch *p)
{
    USED(sp);

    p->mode = 0;
    return SP_OK;
}

int sp_switch_compute(sp_data *sp, sp_switch *p, SPFLOAT *trig,
    SPFLOAT *in1, SPFLOAT *in2, SPFLOAT *out)
{
    USED(sp);

    if (*trig) {
        p->mode = p->mode == 0 ? 1 : 0;
    }

    if(p->mode == 0) {
        *out = *in1;
    } else {
        *out = *in2;
    }

    return SP_OK;
}