As someone who has worked in the actual Sonos codebase with the Desktop controller, i have to say this won’t get you very far. The codebase is an ugly combination of old C/C++ (SClib) and normal C#/WPF with an interesting glue layer between the two. There are many open source Sonos projects and their code is going to be a lot easier to read than the SCLib code in the Sonos tree.
Reverse engineering 80% of a controller can be done with a network monitor and a decent UPnP tool. That is so much easier than trawling through the SCLib code. Trust me on this.
Yes. Even nostalgia isn't what it used to be.
May I suggest you invest in some snartplugs? No contortions are needed in order to say 'Alexa, trim off Sonos'.
And surely you must have all your electronics plugged into switched surge protectors
Oh you mean that system that spies on us? the system that can begin recording me just because I said something that sounds to it like an instruction?
FFS just put switches on appliances like we used to see.
As someone who has worked in the actual Sonos codebase with the Desktop controller, i have to say this won’t get you very far. The codebase is an ugly combination of old C/C++ (SClib) and normal C#/WPF with an interesting glue layer between the two. There are many open source Sonos projects and their code is going to be a lot easier to read than the SCLib code in the Sonos tree.
Reverse engineering 80% of a controller can be done with a network monitor and a decent UPnP tool. That is so much easier than trawling through the SCLib code. Trust me on this.
Well oddly enough I did just that about 7 years ago or so.
I studied the UPnP “specifications” in depth and discovered various “additions” that were made by Sonos.
I got a pretty functional totally managed implementation of a Sonos controller API working and was testing on my Surface back then.
The goal was to make Windows Phone app that was 100% managed code and I got the core API behaving pretty well (I could modify a unit’s volume and the API would also see the events for this coming back and would adjust the UI).
It was a lot of work though and the code is pretty much shelved now in Github, no idea if what I have is useful still or superceded by some of the open source stuff you mentioned...
…
Yep just checked, its all sitting in Bitbucket, May 2014 was the last time I touched that code.