Wrote a simple PSIP parser for Kaffeine. Successfully parsed the MGT and TVCT tables when scanning and extracted the channel major/minor number, short name, modulation, etc. All that is left is to tell Kaffeine about the results so the entries appear in the GUI's channel list. A bit of code cleanup and I'll submit a patch to the maintainer.
After that, I'll look at extending the parser to get program guide info from the PSIP stream. But at least at this point it's working and casual users looking for something to watch TV with will be able to use it.
Air conditioner being installed tomorrow. Finally, my apartment will not be like an oven. Yay.