I went back and reworked the code. Everything seems to be working correctly. Enhancements #4 and #5 below are the result of people's suggestions this past week.
New Enhancements: 1) Pressing "C" in the EPG will toggle the Input. This will update the channel list as well as the preview video. 2) Pressing "Y" in the EPG will switch the card (if you have more than one) This will update the channel list as well as the preview video. 3) The channel guide "jumps" to the correct channel when you switch inputs. If you are on input 1 with channel 5 and switch to input 2 with channel 230, it will automatically jump the guide to 230. 4) Selecting a channel in the guide will result in switching to a different input if the selected channel is not available on the current recorder. Example: I have channel 3 that is ONLY on recorder 1. I have channel 230 that is ONLY on recorder 2. If I'm on recorder 1, and select channel 230 in the guide, it will first switch to the second recorder, and then change the channel to 230. 5) This enhancement is very much like #4, but it solves the multiple channels with the same number problem. If you have two channels of the same number, selecting it will change to the correct one. Example: I have two channel 11's. The previous behavior was that no matter which one I selected, it would go to channel 11 on my current recorder. With the new code, it will determine which recorder it should navigate to first (if it's not the current one), then set the channel to 11. This ensures that the program you select will be the one shown on the TV. Code Changes: - Added a new QUERY_RECORDER query type: SHOULD_SWITCH_CARD - this takes in a channel id and checks against the current recorder to determine whether we need to switch the card in order to switch the channel - GET_FREE_RECORDER_LIST - this returns a list of all free recorders in the system - RunProgramGuide now returns channelid instead of channelnum. The channelnum is returned in the argument list, which is now passed by reference - Added two new actions SWITCHCARDS and TOGGLEINPUTS to the context of "TV Frontend". Each will call the corresponding helper function to do its task - Added GuideGrid::GetLastChannelId, very much like the GetLastChannel function - m_channelInfos now keeps track of the sourceid as well. - TV::ChangeChannelByString now correctly handles channel changes using channel id, and handles different cards. - Implemented TV::GetValidRecorderList, which when given a channelid, returns a list of recorders that support this channel - Implemented in RemoteUtil.cpp: RemoteRequestFreeRecorderFromList, which returns a free recorder filtered by the list that is passed to it. Not sure whether the protocol version needs to be upped since I introduced 2 new commands. Let me know if this is the case and I'll submit more. Please let me know if anyone has any questions about the changes. Thanks, Harvard
EPGUpdate.diff.bz2
Description: BZip2 compressed data
_______________________________________________ mythtv-dev mailing list [email protected] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
