]> defiant.homedns.org Git - ros_wild_thumper.git/blobdiff - avr/nano/ringbuffer.h
added initial avr/nano program
[ros_wild_thumper.git] / avr / nano / ringbuffer.h
diff --git a/avr/nano/ringbuffer.h b/avr/nano/ringbuffer.h
new file mode 100644 (file)
index 0000000..ed8b022
--- /dev/null
@@ -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
+