summaryrefslogtreecommitdiff
path: root/shared-bindings/audiobusio/__init__.c
diff options
context:
space:
mode:
authorScott Shawcroft <scott.shawcroft@gmail.com>2018-03-12 16:09:13 -0700
committerScott Shawcroft <scott.shawcroft@gmail.com>2018-04-12 16:35:13 -0700
commit28642ab10d6b32fe91dce916d6d57e1b5b9607bc (patch)
tree3a593e0815e237c58a21946b1f98b99f88cfffcb /shared-bindings/audiobusio/__init__.c
parente311d17905ae8d46e2f15a5773628c6c9b27dfbb (diff)
Add audio output support!
This evolves the API from 2.x (and breaks it). Playback devices are now separate from the samples themselves. This allows for greater playback flexibility. Two sample sources are audioio.RawSample and audioio.WaveFile. They can both be mono or stereo. They can be output to audioio.AudioOut or audiobusio.I2SOut. Internally, the dma tracking has changed from a TC counting block transfers to an interrupt generated by the block event sent to the EVSYS. This reduces the overhead of each DMA transfer so multiple can occure without using up TCs. Fixes #652. Fixes #522. Huge progress on #263
Diffstat (limited to 'shared-bindings/audiobusio/__init__.c')
-rw-r--r--shared-bindings/audiobusio/__init__.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/shared-bindings/audiobusio/__init__.c b/shared-bindings/audiobusio/__init__.c
index bdd999b04..528a8fb31 100644
--- a/shared-bindings/audiobusio/__init__.c
+++ b/shared-bindings/audiobusio/__init__.c
@@ -31,6 +31,7 @@
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/audiobusio/__init__.h"
+#include "shared-bindings/audiobusio/I2SOut.h"
#include "shared-bindings/audiobusio/PDMIn.h"
//| :mod:`audiobusio` --- Support for audio input and output over digital bus
@@ -50,6 +51,7 @@
//| .. toctree::
//| :maxdepth: 3
//|
+//| I2SOut
//| PDMIn
//|
//| All libraries change hardware state and should be deinitialized when they
@@ -59,7 +61,8 @@
STATIC const mp_rom_map_elem_t audiobusio_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_audiobusio) },
- { MP_ROM_QSTR(MP_QSTR_PDMIn), MP_ROM_PTR(&audiobusio_pdmin_type) },
+ { MP_ROM_QSTR(MP_QSTR_I2SOut), MP_ROM_PTR(&audiobusio_i2sout_type) },
+ //{ MP_ROM_QSTR(MP_QSTR_PDMIn), MP_ROM_PTR(&audiobusio_pdmin_type) },
};
STATIC MP_DEFINE_CONST_DICT(audiobusio_module_globals, audiobusio_module_globals_table);