I don't really know at all where to "go next", as far as ringbuffers go.. that's it. There's a thread on LAD from a while back that covers useful OOP class inheritance / derivation stuffs as far as creating an "Event" class which can be passed around as a "generic" event. ( The whole conversation is quite long, in short: this entry is the way to go:
http://linuxaudio.org/mailarchive/lad/2011/8/20/184255 )
That thread might shed some light on writing "smarter" data into the ringbuffer, or using it more effectively than just writing integers in.
-Harry