State of Pianod
December 31, 2020
Looking forward at 2021, my hope is to implement JSON responses and look at an Amazon Music integration; my girlfriend has found a Python implementation of the protocol from which I can crib.
I think there are also open-source Spotify libraries out there. It would be nice to integrate with it, but now that COVID vaccines are on their way, I suspect I won’t find the time this year.
Open issues from 2017:
The design, coming from the original pianod, was built around a mostly-single-threaded model. The world is moving toward multithreaded models; it would make sense to move in this direction. Moving periodic() into its own thread, for example. That’ll need to be a slow, careful movement.
The Source object lifecycle is weird, with checks to make sure all music objects are out of use before reaping. Meanwhile, a source goes into a quasi-dead state, where it’s waiting for its objects to be done, sort of like a zombie process. This seems like a good candidate for std::shared_ptr.