X-Git-Url: https://defiant.homedns.org/gitweb/?p=ros_wild_thumper.git;a=blobdiff_plain;f=avr%2Fnano%2Fringbuffer.h;fp=avr%2Fnano%2Fringbuffer.h;h=ed8b0222af7143f4b23bb66a267aa2f391b2d4e7;hp=0000000000000000000000000000000000000000;hb=4053424236542640b1cb23624877725d5ae8e50f;hpb=34bae39fabd9b44e1d169087e8d18d542f4f1525 diff --git a/avr/nano/ringbuffer.h b/avr/nano/ringbuffer.h new file mode 100644 index 0000000..ed8b022 --- /dev/null +++ b/avr/nano/ringbuffer.h @@ -0,0 +1,34 @@ +#ifndef RINGBUFFER_H +#define RINGBUFFER_H + +#define RINGBUFFER_LEN 100 +#define RINGBUFFER_MAX_NUM 1 + +typedef struct ringbuffer { + char read[RINGBUFFER_LEN]; + char *in_read_ptr; + char *out_read_ptr; + char write[RINGBUFFER_LEN]; + char *in_write_ptr; + char *out_write_ptr; + FILE *dev; + FILE *dev_in_as_out; + uint8_t newlines; + char block_read; +} ringbuffer_t; + +ringbuffer_t *ringbuffers[RINGBUFFER_MAX_NUM]; +uint8_t num_ringbuffers; + +void ringbuffer_setup(FILE *stream, ringbuffer_t *buffer); +void ringbuffer_setup_in_as_out(FILE *stream, ringbuffer_t *buffer); +void init_ringbuffers(void); +void stream_setup(FILE *uart_stream); +void stream_setup_out_only(FILE *stream); +void stream_setup_in_as_out(FILE *stream, int ringbuffer_putchar_sound(char, FILE*)); +uint8_t ringbuffer_busy(void); +void ringbuffer_set_read_noblock(FILE *stream); +void ringbuffer_set_read_block(FILE *stream, char c); + +#endif +