Opened 15 years ago

Closed 15 years ago

#475 closed patch (fixed)

Problems changing channels when using browse and Picture in Picture

Reported by: tahoward@… Owned by: danielk
Priority: minor Milestone: 0.19
Component: mythtv Version: head
Severity: medium Keywords: Picture in Picture PiP
Cc: Ticket locked: no


This patch addresses these problems:

  1. When channels are set to change normally and the PiP window has focus, the browse button does not bring up the browse window.
  1. When channel changing is set to always browse and the PiP window has focus, the browse screen works normally, but pressing enter does not change the channel.
  1. When the PiP window has focus and I enter numbers to change the channel, mythtv only accepts the first digit, and changes to that channel.
  1. Unrelated to PiP - when I'm watching a channel on one tuner and I change to another tuner, if I try to go to the channel I was watching on the first tuner, nothing happens.

Attachments (1)

channelchange.diff (5.4 KB) - added by tahoward@… 15 years ago.

Download all attachments as: .zip

Change History (5)

Changed 15 years ago by tahoward@…

Attachment: channelchange.diff added

comment:1 Changed 15 years ago by tahoward@…

Forgot to mention what I changed - in the original code, BrowseStart? will return without doing anything if the PiP window is active. That prevents the browse button from appearing when the browse button is pressed. If BrowseStart? has never been called, browsemode is never set to true, and the code to change channels when the browse window is up depends on that being set to actually change a channel. BrowseStart? now works regardless of which window is active.

Several places in the code won't display the osd if the PiP window is active. In the main loop, if there is a channel (or partial channel) in the buffer and the OSD is not displaying, it will switch to that channel. When you enter a channel in PiP mode, it accepts the first digit, the loop sees the digit and the OSD is not up, so it changes without waiting for another digit. I made the OSD display regardless of which window is active in places where channel changing is involved.

Whenever it switches channels, it stores that channel. If you try to change channels to that channel, it sees that it is the most recently viewed channel, and does not change (since it is always there). This doesn't take into account tuner changes, which effectively change the channel (to whatever the tuner was set to) without going through the channel code. I added a check to see if the tuner has been tuned to anything yet in addition to check that the new channel is different from the old channel. If the tuner hasn't been tuned yet, it changes channels regardless of what the last channel seen was.

comment:2 Changed 15 years ago by danielk

Milestone: 0.19
Owner: changed from Isaac Richards to danielk
Status: newassigned

comment:3 Changed 15 years ago by danielk

Version: 0.18.1head

Can you update this patch to apply to SVN?

15 out of 16 hunks fail against SVN.

comment:4 Changed 15 years ago by danielk

Resolution: fixed
Status: assignedclosed

(In [7504]) Closes #475. This allows browse mode channel changing of the PiP window channel when it is active.

This is however mostly a cleanup commit. For the fix, I just removed the "if (activerecorder != recorder) return;" from BrowseChannel?().

The rest of the patch in #475 needs to be updated to work against SVN before I can review it.

Note: See TracTickets for help on using tickets.