aboutsummaryrefslogtreecommitdiffstats
path: root/src/gaudin/driver.h
diff options
context:
space:
mode:
authorinmarket <andrewh@inmarket.com.au>2014-02-19 07:45:47 +1000
committerinmarket <andrewh@inmarket.com.au>2014-02-19 07:45:47 +1000
commit6d372f13528f44919ec193d03248d55a53484968 (patch)
tree66f6ba33c6bcfed2b5b3846cf1f309e9b7e715e6 /src/gaudin/driver.h
parent03914d2d2b438062d3062e2c3a588d53d3040cff (diff)
parent37966ff16d923bbca53c9464815cb49cbd7fc3be (diff)
downloaduGFX-6d372f13528f44919ec193d03248d55a53484968.tar.gz
uGFX-6d372f13528f44919ec193d03248d55a53484968.tar.bz2
uGFX-6d372f13528f44919ec193d03248d55a53484968.zip
Merge branch 'master' into freertos
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 */
+/** @} */