3434#include "supervisor/shared/translate.h"
3535
3636//|class WaveFile:
37- //| """.. currentmodule:: audiocore
37+ //|""".. currentmodule:: audiocore
3838//|
39- //| :class:`WaveFile` -- Load a wave file for audio playback
40- //| ========================================================
39+ //|:class:`WaveFile` -- Load a wave file for audio playback
40+ //|========================================================
4141//|
42- //| A .wav file prepped for audio playback. Only mono and stereo files are supported. Samples must
43- //| be 8 bit unsigned or 16 bit signed. If a buffer is provided, it will be used instead of allocating
44- //| an internal buffer."""
45- //| def __init__(self, file: typing.BinaryIO, buffer: bytearray):
46- //| """Load a .wav file for playback with `audioio.AudioOut` or `audiobusio.I2SOut`.
42+ //|A .wav file prepped for audio playback. Only mono and stereo files are supported. Samples must
43+ //|be 8 bit unsigned or 16 bit signed. If a buffer is provided, it will be used instead of allocating
44+ //|an internal buffer."""
45+ //|def __init__(self, file: typing.BinaryIO, buffer: bytearray):
46+ //|"""Load a .wav file for playback with `audioio.AudioOut` or `audiobusio.I2SOut`.
4747//|
48- //| :param typing.BinaryIO file: Already opened wave file
49- //| :param bytearray buffer: Optional pre-allocated buffer, that will be split in half and used for double-buffering of the data. If not provided, two 512 byte buffers are allocated internally.
48+ //|:param typing.BinaryIO file: Already opened wave file
49+ //|:param bytearray buffer: Optional pre-allocated buffer, that will be split in half and used for double-buffering of the data. If not provided, two 512 byte buffers are allocated internally.
5050//|
5151//|
52- //| Playing a wave file from flash::
52+ //|Playing a wave file from flash::
5353//|
54- //| import board
55- //| import audiocore
56- //| import audioio
57- //| import digitalio
54+ //|import board
55+ //|import audiocore
56+ //|import audioio
57+ //|import digitalio
5858//|
59- //| # Required for CircuitPlayground Express
60- //| speaker_enable = digitalio.DigitalInOut(board.SPEAKER_ENABLE)
61- //| speaker_enable.switch_to_output(value=True)
59+ //|# Required for CircuitPlayground Express
60+ //|speaker_enable = digitalio.DigitalInOut(board.SPEAKER_ENABLE)
61+ //|speaker_enable.switch_to_output(value=True)
6262//|
63- //| data = open("cplay-5.1-16bit-16khz.wav", "rb")
64- //| wav = audiocore.WaveFile(data)
65- //| a = audioio.AudioOut(board.A0)
63+ //|data = open("cplay-5.1-16bit-16khz.wav", "rb")
64+ //|wav = audiocore.WaveFile(data)
65+ //|a = audioio.AudioOut(board.A0)
6666//|
67- //| print("playing")
68- //| a.play(wav)
69- //| while a.playing:
70- //| pass
71- //| print("stopped")"""
72- //| ...
67+ //|print("playing")
68+ //|a.play(wav)
69+ //|while a.playing:
70+ //|pass
71+ //|print("stopped")"""
72+ //|...
7373STATIC mp_obj_t audioio_wavefile_make_new (const mp_obj_type_t * type , size_t n_args , const mp_obj_t * args , mp_map_t * kw_args ) {
7474 mp_arg_check_num (n_args , kw_args , 1 , 2 , false);
7575
@@ -92,9 +92,9 @@ STATIC mp_obj_t audioio_wavefile_make_new(const mp_obj_type_t *type, size_t n_ar
9292 return MP_OBJ_FROM_PTR (self );
9393}
9494
95- //| def deinit(self, ) -> Any:
96- //| """Deinitialises the WaveFile and releases all memory resources for reuse."""
97- //| ...
95+ //|def deinit(self, ) -> Any:
96+ //|"""Deinitialises the WaveFile and releases all memory resources for reuse."""
97+ //|...
9898STATIC mp_obj_t audioio_wavefile_deinit (mp_obj_t self_in ) {
9999 audioio_wavefile_obj_t * self = MP_OBJ_TO_PTR (self_in );
100100 common_hal_audioio_wavefile_deinit (self );
@@ -108,27 +108,27 @@ STATIC void check_for_deinit(audioio_wavefile_obj_t *self) {
108108 }
109109}
110110
111- //| def __enter__(self, ) -> Any:
112- //| """No-op used by Context Managers."""
113- //| ...
111+ //|def __enter__(self, ) -> Any:
112+ //|"""No-op used by Context Managers."""
113+ //|...
114114// Provided by context manager helper.
115115
116- //| def __exit__(self, ) -> Any:
117- //| """Automatically deinitializes the hardware when exiting a context. See
118- //| :ref:`lifetime-and-contextmanagers` for more info."""
119- //| ...
116+ //|def __exit__(self, ) -> Any:
117+ //|"""Automatically deinitializes the hardware when exiting a context. See
118+ //|:ref:`lifetime-and-contextmanagers` for more info."""
119+ //|...
120120STATIC mp_obj_t audioio_wavefile_obj___exit__ (size_t n_args , const mp_obj_t * args ) {
121121 (void )n_args ;
122122 common_hal_audioio_wavefile_deinit (args [0 ]);
123123 return mp_const_none ;
124124}
125125STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (audioio_wavefile___exit___obj , 4 , 4 , audioio_wavefile_obj___exit__ );
126126
127- //| sample_rate: Any =
128- //| """32 bit value that dictates how quickly samples are loaded into the DAC
129- //| in Hertz (cycles per second). When the sample is looped, this can change
130- //| the pitch output without changing the underlying sample."""
131- //| ...
127+ //|sample_rate: Any =
128+ //|"""32 bit value that dictates how quickly samples are loaded into the DAC
129+ //|in Hertz (cycles per second). When the sample is looped, this can change
130+ //|the pitch output without changing the underlying sample."""
131+ //|...
132132STATIC mp_obj_t audioio_wavefile_obj_get_sample_rate (mp_obj_t self_in ) {
133133 audioio_wavefile_obj_t * self = MP_OBJ_TO_PTR (self_in );
134134 check_for_deinit (self );
@@ -151,9 +151,9 @@ const mp_obj_property_t audioio_wavefile_sample_rate_obj = {
151151 (mp_obj_t )& mp_const_none_obj },
152152};
153153
154- //| bits_per_sample: Any =
155- //| """Bits per sample. (read only)"""
156- //| ...
154+ //|bits_per_sample: Any =
155+ //|"""Bits per sample. (read only)"""
156+ //|...
157157STATIC mp_obj_t audioio_wavefile_obj_get_bits_per_sample (mp_obj_t self_in ) {
158158 audioio_wavefile_obj_t * self = MP_OBJ_TO_PTR (self_in );
159159 check_for_deinit (self );
@@ -168,9 +168,9 @@ const mp_obj_property_t audioio_wavefile_bits_per_sample_obj = {
168168 (mp_obj_t )& mp_const_none_obj },
169169};
170170
171- //| channel_count: Any =
172- //| """Number of audio channels. (read only)"""
173- //| ...
171+ //|channel_count: Any =
172+ //|"""Number of audio channels. (read only)"""
173+ //|...
174174STATIC mp_obj_t audioio_wavefile_obj_get_channel_count (mp_obj_t self_in ) {
175175 audioio_wavefile_obj_t * self = MP_OBJ_TO_PTR (self_in );
176176 check_for_deinit (self );
0 commit comments