Skip to content

Commit 3b4fb29

Browse files
authored
Fix I2S::write(const uint8_t *buffer, size_t size) (#1461)
According to this: #1450
1 parent a1ae61b commit 3b4fb29

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

libraries/I2S/src/I2S.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -376,13 +376,14 @@ bool I2S::read32(int32_t *l, int32_t *r) {
376376

377377
size_t I2S::write(const uint8_t *buffer, size_t size) {
378378
// We can only write 32-bit chunks here
379-
if (size & 0x3) {
379+
if (size & 0x3 || !_running || !_isOutput) {
380380
return 0;
381381
}
382+
382383
size_t writtenSize = 0;
383-
int32_t *p = (int32_t *)buffer;
384+
uint32_t *p = (uint32_t *)buffer;
384385
while (size) {
385-
if (!write((int32_t)*p)) {
386+
if (!_arb->write(*p, false)) {
386387
// Blocked, stop write here
387388
return writtenSize;
388389
} else {

0 commit comments

Comments
 (0)