ref: d0fbdd5916dbf269d35008a3414263c34bcf3d35
dir: /LEAF/Inc/leaf-sample.h/
/*============================================================================== leaf-sample.h Created: 23 Jan 2019 11:22:09am Author: Mike Mulshine ==============================================================================*/ #ifndef LEAF_SAMPLE_H_INCLUDED #define LEAF_SAMPLE_H_INCLUDED #ifdef __cplusplus extern "C" { #endif //============================================================================== #include "leaf-globals.h" #include "leaf-math.h" //============================================================================== typedef enum RecordMode { RecordOneShot = 0, RecordLoop, RecordModeNil } RecordMode; typedef struct _tSample { float* buff; uint32_t idx; uint32_t length; RecordMode mode; int active; } tSample; void tSample_init (tSample* const, uint32_t length); void tSample_free (tSample* const); void tSample_tick (tSample* const, float sample); void tSample_read(tSample* const, float* buff, uint32_t len); float tSample_get (tSample* const, int idx); void tSample_start (tSample* const); void tSample_stop (tSample* const); void tSample_setRecordMode (tSample* const, RecordMode mode); void tSample_clear (tSample* const); //============================================================================== typedef enum Mode { Normal, Loop, BackAndForth, SampleModeNil } Mode; typedef struct _tSamplePlayer { tSample* samp; float idx; float inc; int8_t dir; int8_t flip; int32_t start; int32_t end; uint32_t len; uint32_t cnt; Mode mode; int active; float g1; float g2; } tSamplePlayer; void tSamplePlayer_init (tSamplePlayer* const, tSample* s); void tSamplePlayer_free (tSamplePlayer* const); float tSamplePlayer_tick (tSamplePlayer* const); void tSamplePlayer_setSample (tSamplePlayer* const, tSample* s); void tSamplePlayer_setMode (tSamplePlayer* const, Mode mode); void tSamplePlayer_play (tSamplePlayer* const); void tSamplePlayer_stop (tSamplePlayer* const); void tSamplePlayer_setStart (tSamplePlayer* const, int32_t start); void tSamplePlayer_setEnd (tSamplePlayer* const, int32_t end); void tSamplePlayer_setRate (tSamplePlayer* const, float rate); //============================================================================== #ifdef __cplusplus } #endif #endif // LEAF_SAMPLE_H_INCLUDED //==============================================================================