1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
#define __RAW_WAVE_H
#ifndef __SAMPLE_H
#include "sample.h"
#endif
#ifndef __SAMPLE_PRODUCER_H
#include "sample_producer.h"
#endif
typedef struct raw_wave{
sample *(*get_buffer)(struct raw_wave *);
void (*next_buffer)(struct raw_wave *);
sample_producer **(*get_children)(struct raw_wave *);
char **(*get_header)(struct raw_wave *);
char **(*get_code)(struct raw_wave *);
char **(*get_footer)(struct raw_wave *);
void (* schedule)(sample_producer *sp, event *e, int offset);
void (* trigger) (sample_producer *this);
event **events;
char* filename;
sample *table;
sample *buffer;
double current_index;
int length;
int next;
double pitch;
}raw_wave;
raw_wave *raw_wave_new(char *filename);
sample *raw_wave_get_buffer(raw_wave *this);
void raw_wave_set_pitch(raw_wave *this, double p);
void raw_wave_next_buffer(raw_wave *this);
void raw_wave_trigger(raw_wave *this);
void raw_wave_set_sample_file(raw_wave* this, char *filename);
event *event_pitch_change_new(int seq_handle, double pitch);
#define FB_SAMPLES "."
|