The D-Bus interface for PulseAudio is now in some sense complete. All features listed in the interface documentation have been implemented.
I had a late realization that the D-Bus framework of PulseAudio still has one more good chance to reduce the amount of future work: the message argument types can be checked automatically, because the framework already forces the implementers of any D-Bus interface to tell the expected argument types of all method and property calls. Implementing this automatic checking is not finished yet (it requires changes to many places), but after it’s done, very often there will be no need to worry about message argument presence or type in received messages.
There are some other minor cleanups I want to do, but those shouldn’t take too long. I hope these tasks will be completed tomorrow or on Saturday. Then I will attempt to hack up a helper program that clients use to find out the server address. Currently the server lookup service is implemented in the main PulseAudio daemon executable, which has turned out to be a flawed idea. If I have any regular readers, they might remember that I planned in my previous post to do testing before fixing the server lookup logic. Well, I changed my mind. Testing will be left for a later time (it will be the top item on my todo list after writing the final report, so there should be no worry about me postponing it indefinetely).
If all goes well, maybe I can manage to write up the final report on Monday. If not, I will have enough time for it next week.