aboutsummaryrefslogtreecommitdiffstats
path: root/src/gaudin/driver.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gaudin/driver.h')
-rw-r--r--src/gaudin/driver.h102
1 files changed, 102 insertions, 0 deletions
diff --git a/src/gaudin/driver.h b/src/gaudin/driver.h
new file mode 100644
index 00000000..bd04858a
--- /dev/null
+++ b/src/gaudin/driver.h
@@ -0,0 +1,102 @@
+/*
+ * This file is subject to the terms of the GFX License. If a copy of
+ * the license was not distributed with this file, you can obtain one at:
+ *
+ * http://ugfx.org/license.html
+ */
+
+/**
+ * @file src/gaudin/driver.h
+ * @brief GAUDIN - Audio Input driver header file.
+ *
+ * @defgroup Driver Driver
+ * @ingroup GAUDIN
+ * @{
+ */
+
+#ifndef _GAUDIN_LLD_H
+#define _GAUDIN_LLD_H
+
+#include "gfx.h"
+
+#if GFX_USE_GAUDIN || defined(__DOXYGEN__)
+
+/*===========================================================================*/
+/* Type definitions */
+/*===========================================================================*/
+
+/**
+ * @brief The structure passed to start a audio conversion
+ * @note We use the structure instead of parameters purely to save
+ * interrupt stack space which is very limited in some platforms.
+ * @{
+ */
+typedef struct gaudin_params_t {
+ uint16_t channel;
+ uint32_t frequency;
+ audin_sample_t *buffer;
+ size_t bufcount;
+ size_t samplesPerEvent;
+ } gaudin_params;
+/** @} */
+
+/**
+ * @brief These routines are the callbacks that the driver uses.
+ * @details Defined in the high level GAUDIN code.
+ *
+ * @iclass
+ * @notapi
+ *
+ * @{
+ */
+
+/**
+ * @param[in] buffer The buffer
+ * @param[in] n The amount of samples
+ * */
+extern void GAUDIN_ISR_CompleteI(audin_sample_t *buffer, size_t n);
+
+extern void GAUDIN_ISR_ErrorI(void);
+/**
+ * @}
+ */
+
+/*===========================================================================*/
+/* External declarations. */
+/*===========================================================================*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief Initialise the driver
+ *
+ * @param[in] paud Initialisation parameters
+ *
+ * @api
+ */
+void gaudin_lld_init(const gaudin_params *paud);
+
+/**
+ * @brief Start the audio input sampling
+ *
+ * @api
+ */
+void gadc_lld_start(void);
+
+/**
+ * @brief Stop the audio input sampling
+ *
+ * @api
+ */
+void gadc_lld_stop(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GFX_USE_GADC */
+
+#endif /* _GADC_LLD_H */
+/** @} */