[riot-notifications] [RIOT-OS/RIOT] drivers/periph_common: dac: add dac_play() (#13908)
notifications at github.com
Mon Nov 9 19:17:35 CET 2020
> - (How) Can the application detect that it ran into an underflow?
If `dac_dds_is_playing()` returns `false` when it's our turn to fill the buffer, we know an underrun occurred.
> - 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.
> - 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
Yea that's why I initially put this to `periph/` so we can have a per-cpu implementation overwriting the generic one.
However, there we can't depend on periodic timers 'only if no CPU implementation exists.
The whole mess with `rtt_rtc` 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.
> - 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?
That sure could be done, but I'd rather avoid making the implementation more complex 'just in case'.
I don't expect switching between formats to be a thing that will occur often.
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the notifications