I have been really unhappy with MythTV’s visibility of program “Original Air Date” information, which as far as I could tell is only visible through the Program Finder. I wanted to be able to see original air date while I browsed my recordings. Digging through the MythTV code has proven very difficult. The documentation has been minimal, and I haven’t found any tutorials on theme creation, which seems to be where all the visible components of the mythfrontend get their details from.
While looking for the bleeding-edge code, I did find http://cvs.mythtv.org/ which is actually a Subversion repository, bug tracker, and wiki. There a nice start to information there, including doxygen output. Also, the #mythtv-users channel on freenode has a nice MythTV FAQ.
The bulk of the display stuff I was looking from takes place in programs/mythfrontend/playbackbox.cpp
(thank Bryce). The “cursorDown” function led me through to the “update*” functions, and eventually ToMap/SetText calls, which load program information into a hash, and then pass that hash to the theme engine.
libs/libmythtv/programinfo.cpp
has ToMap defined, and all the various hash keys are visible, including the original air date variable I was looking for:
progMap[“title”] = title;
progMap[“subtitle”] = subtitle;
progMap[“description”] = description;
…
progMap[“originalairdate”]= originalAirDate.toString(dateFormat);
SetText is in libs/libmyth/uitypes.cpp
. Hash items are uppercased to match %-enclosed words from the themes. The first “|” seen is to identify “what appears in front”, and the second is “what’s after”.
I modified the ui.xml from my theme (G.A.N.T. currently) from:
<value>%SUBTITLE|”|”
%%STARS%%DESCRIPTION%</value>
to:
<value>%SUBTITLE|”|” %%ORIGINALAIRDATE|(|)
%%STARS%%DESCRIPTION%</value>
So now, when I scroll down to Smallville, I see in the description box:
“Aqua” (2005-10-20)
During a beach party Lois hits her head when she jumps into the lake, and …
Ta-da! Original Air Date in parens. Now, being able to see the year is important, so I had to change my date format to one that included the year, but it’s ugly. To fix this, I need to actually change code. In “MythDateFormat” from programs/mythfrontend/globalsettings.cpp
, I added:
gc->addSelection(sampdate.toString(“ddd MMM d, yyyy”), “ddd MMM d, yyyy”);
Now I just have to get it compiled. :)
© 2005, Kees Cook. This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 License.