Last week I finished the main items on my agenda -- those being the functions that populated the listview with information from the files in the appropriate directory. Today I moved on to writing the backend code for the minor widgets: the label which shows time progress, the volume element, etc. I have to say that my brain is kind of in a knot over the volume element. I think this is mainly because I was reading the source code from Empathy, which I think is a lot more complicated than what I need to write.
I think I'm mainly on track to finish this phase of coding on time. I have two more weeks in my calendar before I start on frontend code. I haven't been sticking to my schedule exactly, but instead have been transposing tasks based on interdependencies in the code. As usual, my solutions seem to me to be more circuitous than necessary, but I think I'm starting to get a better understanding of the language, which I am pleased about. I think I spend around two thirds of my coding time trying to understand what I am doing, one sixth writing functional code, and one sixth correcting what I wrote. The understanding part feels pretty frustrating sometimes, but luckily (I guess) I find that not understanding how to do something, or not knowing how something works, or just having no idea at all what a piece of code is saying is motivating rather than discouraging. Anyway, I don't have much else to report, so I'll close with my code reading list from this past week:
1. Empathy audiosrc.c
2. Sushi sushi-file-loader.c (for glib print formatting, which I couldn't find docs for)
3. Rhythmbox rb-encoder-gst.c (Gstreamer time queries)
4. Music player.js (formatting nanoseconds as seconds)
5. Gstreamer Plugins Bad id3tag.c (because it doesn't support the tag I want to set, and I wanted to know why)
and etc :)