<p></p>
<blockquote>
<ul>
<li>(How) Can the application detect that it ran into an underflow?</li>
</ul>
</blockquote>
<p>If <code>dac_dds_is_playing()</code> returns <code>false</code> when it's our turn to fill the buffer, we know an underrun occurred.</p>
<blockquote>
<ul>
<li>If dac_dds_set_cb is allowed to be called while playing (as "on the fly" implies), it'll need atomics or a critical section around writing that.</li>
</ul>
</blockquote>
<p>added</p>
<blockquote>
<ul>
<li>DMA operation will probably be specific to the chips and need more than just a generic DMA peripheral -- but we can still go there in time</li>
</ul>
</blockquote>
<p>Yea that's why I initially put this to <code>periph/</code> so we can have a per-cpu implementation overwriting the generic one.<br>
However, there we can't depend on periodic timers 'only if no CPU implementation exists.<br>
The whole mess with <code>rtt_rtc</code> showed that we currently have no mechanism for 'feature may be provided by CPU or as a software fallback', so I just moved it to a module instead.</p>
<blockquote>
<ul>
<li>If a full format switch is called for (as would be the case when enabling gapless playback, even though where most needed, gapless is between like-formatted data anyway), can the API (or can it be extended to -- I'd be happy with a rough roadmap) do that in a double-buffered fashion?</li>
</ul>
</blockquote>
<p>That sure could be done, but I'd rather avoid making the implementation more complex 'just in case'.<br>
I don't expect switching between formats to be a thing that will occur often.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/RIOT-OS/RIOT/pull/13908#issuecomment-724186234">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABE7WYGGFJ5YDGF7GXL6NETSPAW37ANCNFSM4MMKVWKQ">unsubscribe</a>.<img src="https://github.com/notifications/beacon/ABE7WYDYDMA6QSCJSGTOVSDSPAW37A5CNFSM4MMKVWK2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFMVDI6Q.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/RIOT-OS/RIOT/pull/13908#issuecomment-724186234",
"url": "https://github.com/RIOT-OS/RIOT/pull/13908#issuecomment-724186234",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>