This week I implemented the Memstats, Card and CardProfile interfaces. Memstats allows clients to query how much memory PulseAudio uses for audio data. Card provides information about sound cards (including bluetooth devices etc.). One important aspect of Cards is that they may contain multiple switchable CardProfiles, one of which is “active” at any given time. The active profile determines how many and what kind of sinks and sources the user can use. For example, analog stereo output + digital stereo input would be one profile, and analog 7.1 surround output would be another.
I have now about three weeks left. Completing the D-Bus interface requires implementing the Device, DevicePort, Stream, Sample, Module and Client interfaces. I believe there won’t be trouble achieving that. I have neglected testing lately (I only make sure the D-Bus module loads without errors or crashes), and I really hope I will have time for testing after all the initial implementations are done. Before I consider the work worth merging in upstream I will need to reimplement the server discovery logic, as I’ve mentioned earlier. There’s some chance that I can do it this month, but I don’t have high hopes about that. It will get done eventually, however, even if it means that I will do it on my free time later this fall.
Well, time to start working on the Device interface…