#ifndef signalpath_h_
#define signalpath_h_

//return the amount of samples filled in the out buffer
typedef int (*signalFunc)(float *in, float *out,int buffSize, void *userParam);

typedef struct signalStep
{
    void *nxt;
    signalFunc function;
    void *userParam;
}signalStep;

float * runSignalPath(signalStep *root,float *in, float *out, int buffSize);

int extractChannelFromStereo(float *in,float *out,int buffSize,void *channel);

int writeToChannel(float *in, float *out,int buffSize, void *channel);

int stereoToMono(float *in, float *out,int buffSize ,void*channel);


#endif //signalpath_h_