So I've updated my working copy to include support for a multi-level OSD when watching TV, and I'm still not completely happy with how it works. So I'm thinking the osd behavior could be enhanced to provide a little more flexibility. The main change I'm proposing is a small and large program info OSD. Pressing info displays the small if it is available, pressing again displays the large, pressing again hides all info. If either are missing it is skipped. Here is some pseudocode which sums up all the state changes:
In WatchingLiveTV function, non browse mode:
On Channel change: hide channel_number, display smallinfo
On INFO command
 If nothing displaying
   If has smallinfo
     display smallinfo
   Else
     display longinfo
 Else If smallinfo displaying
   If has longinfo
     display longinfo
   Else
     HideAll
 Else If longinfo displaying
   HideAll

On browsemode activated: Display smallbroswseinfo
On browse channel change: display smallbroswseinfo
On INFO command
 If channel = currentlytunedchannel
   Use non browse mode logic
 Else If smallbroswseinfo displaying and has longbrowseinfo
   display longbrowseinfo
 Else If longbrowseinfo and has smallbrowseinfo
   display smallbrowseinfo

Note that I've put the channum back into each respective osd container, since the varying sizes of the containers does not lend itself to having the channel number in the same place all the time. This is the only change needed to existing osds to make them work with the new system (because only largeinfo will be used if smallinfos aren't present).

Anywho, I'd be happy to code this up and submit a patch, since I've already gotten a good start on it... assuming there are no objections to the new behavior.
_______________________________________________
mythtv-dev mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev

Reply via email to