/tinyletter

The Programs of the Week of the Great American Eclipse

This Week’s Program: Aug 21 - Aug 25

If you’re reading this, that means you managed to get through this week’s total solar eclipse without major damage to your eyes! Today is also my birthday! Happy Birthday to me and the moon.

This week I kept on writing documentation for my GObject Introspection Racket module, stubbing out more of the functions. Nearly done there. As I’ve been writing the docs, I’ve noticed that there are some things that don’t feel quite right to me and I’m scratching my head about how to improve the library. I made the decision to use the same identifier names as the racket/class library, and that decision sometimes makes sense and then other times doesn’t. Once I have the documentation complete I guess I’ll see how it reads and how it feels as I expand the GStreamer module.

e42ad6ac43fe678e857d74dd8691888af8eb6123

I want to keep tabs on the events that are coming through the message bus of the broadcast pipeline. To do this, I actually create another box called current-bus that I set alongside the current-broadcast. This way, the message bus for the current broadcast is global, and I can handle events from it in any place I choose.

6d35e2f76a416d933bdd518337604aaf194c27aa

That duplication of having both a current-bus and a current-broadcast doesn’t feel quite right to me. Here, I create a simple struct called pipeline designed to encapsulate both of them, and be used for synchronization. The idea being that this struct would hold both the GStreamer pipeline and also the message bus that it communicates over, and this would be global to the rest of the program. This still doesn’t feel quite baked, and I think this would be a good thing to have be a part of the GStreamer module. Will continue to noodle in this direction next week.

Until next time,
🍰 Mark