Hi everyone, I'd like to introduce you libdaisy_nim , a Nim wrapper for the libDaisy HAL for the Electro-Smith Daisy embedded platform ! I've wanted to use Nim in embedded audio for a while now and thanks to copilot cli I've been able to write a wrapper for libDaisy to use it with. It's still in it's early days and while it's far from complete but I think the global architecture of the wrapper is sufficiently stable to share it with people now. There's a technical document explaining how the wrapper works in detail for those who are curious. Feel free to contribute to and/or correct my poorly written Nim as it is my first project with it and my first open source project on top of that !
Since I'm on the Nim forum I'll take this opportunity to ask: Is there a way to map a Nim generics to a C++ template class ? Basically for the SSD1306 driver I've been unable to map the template class SSD130xDriver to a Nim generic since Nim generates invalid C++ forward declarations for functions returning generic template types (basically the parameter aren't replaced in the forward declaration). For now I've manually wrapped each alias for the different screen sizes but idealy I would like the end user to be able to pass the screen size to Nim and that Nim generate the correct type at compile time. This has also been a roadblock for updating the June library (a JUCE C++ wrapper) to Nim 2.x.