From 58f1c9a91226f4954a4799fab082f186923aa806 Mon Sep 17 00:00:00 2001 From: Andreas Eversberg Date: Sat, 3 Oct 2020 16:25:48 +0200 Subject: Add libraries from Osmocom-Analog --- src/libwave/wave.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/libwave/wave.h (limited to 'src/libwave/wave.h') diff --git a/src/libwave/wave.h b/src/libwave/wave.h new file mode 100644 index 0000000..064f914 --- /dev/null +++ b/src/libwave/wave.h @@ -0,0 +1,37 @@ + +typedef struct wave_rec { + FILE *fp; + int channels; + double max_deviation; + int samplerate; + uint32_t written; /* how much samples written */ + /* thread stuff */ + pthread_t tid; /* file io thread id */ + int finish; /* indicates end of thread */ + uint8_t *buffer; /* buffer to store sample data */ + int buffer_size; /* size of buffer in bytes */ + int buffer_readp; /* read pointer to next byte in buffer */ + int buffer_writep; /* write pointer to next byte in buffer */ +} wave_rec_t; + +typedef struct wave_play { + FILE *fp; + int channels; + double max_deviation; + uint32_t left; /* how much samples left */ + /* thread stuff */ + pthread_t tid; /* file io thread id */ + int finish; /* indicates end of thread */ + uint8_t *buffer; /* buffer to store sample data */ + int buffer_size; /* size of buffer in bytes */ + int buffer_readp; /* read pointer to next byte in buffer */ + int buffer_writep; /* write pointer to next byte in buffer */ +} wave_play_t; + +int wave_create_record(wave_rec_t *rec, const char *filename, int samplerate, int channels, double max_deviation); +int wave_create_playback(wave_play_t *play, const char *filename, int *samplerate_p, int *channels_p, double max_deviation); +int wave_read(wave_play_t *play, sample_t **samples, int length); +int wave_write(wave_rec_t *rec, sample_t **samples, int length); +void wave_destroy_record(wave_rec_t *rec); +void wave_destroy_playback(wave_play_t *play); + -- cgit v1.2.3