diff options
author | JanHenrik <janhenrik@janhenrik.org> | 2020-04-01 00:40:03 +0200 |
---|---|---|
committer | JanHenrik <janhenrik@janhenrik.org> | 2020-04-01 00:40:03 +0200 |
commit | f7de54fc6fa6b40dfa2dfbe4c2a8ee933affa126 (patch) | |
tree | 78465e38a01011dc9f17eb73416011310532017f /midi-dials/Inc/curelib_inc | |
parent | 3ec13d81e70e52246545c720abe756ccf09fb231 (diff) | |
download | minikbd-f7de54fc6fa6b40dfa2dfbe4c2a8ee933affa126.tar.gz minikbd-f7de54fc6fa6b40dfa2dfbe4c2a8ee933affa126.tar.bz2 minikbd-f7de54fc6fa6b40dfa2dfbe4c2a8ee933affa126.zip |
added files
Diffstat (limited to 'midi-dials/Inc/curelib_inc')
-rw-r--r-- | midi-dials/Inc/curelib_inc/curebuffer.h | 76 | ||||
-rw-r--r-- | midi-dials/Inc/curelib_inc/curemisc.h | 49 |
2 files changed, 125 insertions, 0 deletions
diff --git a/midi-dials/Inc/curelib_inc/curebuffer.h b/midi-dials/Inc/curelib_inc/curebuffer.h new file mode 100644 index 0000000..2802c61 --- /dev/null +++ b/midi-dials/Inc/curelib_inc/curebuffer.h @@ -0,0 +1,76 @@ +/*
+ *******************************************************************************
+ * [curebuffer.h]
+ * This module is for FIFO buffer.
+ *
+ * This program is under the terms of the GPLv3.
+ * https://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * Copyright(c) 2017 Keshikan (www.keshikan.net)
+ *******************************************************************************
+ */
+
+#ifndef CUREBUFFER_H_
+#define CUREBUFFER_H_
+
+#include <stdint.h>
+
+typedef enum{
+ BUFFER_FAILURE,BUFFER_SUCCESS
+}BUFFER_STATUS;
+
+typedef struct{
+ uint16_t idx_front;
+ uint16_t idx_rear;
+ uint16_t length;
+ uint8_t *buffer;
+}RingBufferU8;
+
+typedef struct{
+ uint16_t idx_front;
+ uint16_t idx_rear;
+ uint16_t length;
+ int16_t *buffer;
+}RingBuffer16;
+
+typedef struct{
+ uint16_t idx_front;
+ uint16_t idx_rear;
+ uint16_t length;
+ uint32_t *buffer;
+}RingBuffer32;
+
+
+/////////////////////////////
+//methods for uint8_t FIFO.
+/////////////////////////////
+extern BUFFER_STATUS cureRingBufferU8Init(RingBufferU8 *rbuf, uint16_t buflen);
+extern BUFFER_STATUS cureRingBufferU8Free(RingBufferU8 *rbuf);
+extern BUFFER_STATUS cureRingBufferU8Enqueue(RingBufferU8 *rbuf, uint8_t *inputc);
+extern BUFFER_STATUS cureRingBufferU8Dequeue(RingBufferU8 *rbuf, uint8_t *ret);
+
+/////////////////////////////
+//methods for int16_t FIFO.
+/////////////////////////////
+extern BUFFER_STATUS cureRingBuffer16Init(RingBuffer16 *rbuf, uint16_t buflen);
+extern BUFFER_STATUS cureRingBuffer16Free(RingBuffer16 *rbuf);
+extern BUFFER_STATUS cureRingBuffer16Enqueue(RingBuffer16 *rbuf, int16_t *inputc);
+extern BUFFER_STATUS cureRingBuffer16EnqueueIgnoreErr(RingBuffer16 *rbuf, int16_t *inputc);
+extern BUFFER_STATUS cureRingBuffer16Dequeue(RingBuffer16 *rbuf, int16_t *ret);
+extern BUFFER_STATUS cureRingBuffer16GetElement(RingBuffer16 *rbuf, int16_t *ret, uint16_t delaynum, uint16_t length);
+
+/////////////////////////////
+//methods for uint32_t FIFO.
+/////////////////////////////
+extern BUFFER_STATUS cureRingBufferU32Init(RingBuffer32 *rbuf, uint16_t buflen);
+extern BUFFER_STATUS cureRingBufferU32Free(RingBuffer32 *rbuf);
+extern BUFFER_STATUS cureRingBufferU32Enqueue(RingBuffer32 *rbuf, uint32_t *inputc);
+extern BUFFER_STATUS cureRingBufferU32EnqueueIgnoreErr(RingBuffer32 *rbuf, uint32_t *inputc);
+extern BUFFER_STATUS cureRingBufferU32Dequeue(RingBuffer32 *rbuf, uint32_t *ret);
+extern BUFFER_STATUS cureRingBufferU32GetElement(RingBuffer32 *rbuf, uint32_t *ret, uint16_t delaynum, uint16_t delay_buffer_length);
+
+
+//debug
+extern uint16_t _cureRingBufferU8GetUsedSize(RingBufferU8 *rbuf);
+
+#endif /* CUREBUFFER_H_ */
diff --git a/midi-dials/Inc/curelib_inc/curemisc.h b/midi-dials/Inc/curelib_inc/curemisc.h new file mode 100644 index 0000000..5c924e2 --- /dev/null +++ b/midi-dials/Inc/curelib_inc/curemisc.h @@ -0,0 +1,49 @@ +/*
+ *******************************************************************************
+ * [curemisc.h]
+ *
+ * This program is under the terms of the GPLv3.
+ * https://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * Copyright(c) 2017 Keshikan (www.keshikan.net)
+ *******************************************************************************
+ */
+
+#ifndef _CUREMISC_H_
+#define _CUREMISC_H_
+
+
+#include <stdbool.h>
+#include <stdint.h>
+
+
+#ifndef BOOL
+ #define BOOL bool
+ #define TRUE true
+ #define FALSE false
+#endif
+
+
+//LO(HI)WORD: return lower(higher) 16bit of 32bit
+//LO(HI)BYTE: return lower(higher) 4bit of 8bit
+#ifndef LOWORD
+ #define LOWORD(n) ( (uint16_t)(n) )
+#endif
+
+#ifndef HIWORD
+ #define HIWORD(n) ( (uint16_t)(((uint32_t)(n) >> 16) & 0xFFFF) )
+#endif
+
+#ifndef LOBYTE
+ #define LOBYTE(n) ( ((uint8_t)(n)) & 0x0F )
+#endif
+
+#ifndef HIBYTE
+ #define HIBYTE(n) ( (uint8_t)(((n) >> 4) & 0x0F) )
+#endif
+
+typedef enum{
+ FUNC_ERROR,FUNC_SUCCESS
+}FUNC_STATUS;
+
+#endif
|