From 6ab94e0b318884bbcb95e2ea3835f951502e1d99 Mon Sep 17 00:00:00 2001 From: jaseg Date: Wed, 14 Oct 2020 12:47:28 +0200 Subject: Move firmware into subdirectory --- fw/midi-dials/Inc/curelib_inc/curebuffer.h | 76 ++++++++++++++++++++++++++++++ fw/midi-dials/Inc/curelib_inc/curemisc.h | 49 +++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 fw/midi-dials/Inc/curelib_inc/curebuffer.h create mode 100644 fw/midi-dials/Inc/curelib_inc/curemisc.h (limited to 'fw/midi-dials/Inc/curelib_inc') diff --git a/fw/midi-dials/Inc/curelib_inc/curebuffer.h b/fw/midi-dials/Inc/curelib_inc/curebuffer.h new file mode 100644 index 0000000..2802c61 --- /dev/null +++ b/fw/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 + +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/fw/midi-dials/Inc/curelib_inc/curemisc.h b/fw/midi-dials/Inc/curelib_inc/curemisc.h new file mode 100644 index 0000000..5c924e2 --- /dev/null +++ b/fw/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 +#include + + +#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 -- cgit