Opened 19 years ago
Closed 19 years ago
#475 closed patch (fixed)
Problems changing channels when using browse and Picture in Picture
Reported by: | Owned by: | danielk | |
---|---|---|---|
Priority: | minor | Milestone: | 0.19 |
Component: | mythtv | Version: | head |
Severity: | medium | Keywords: | Picture in Picture PiP |
Cc: | Ticket locked: | no |
Description
This patch addresses these problems:
- When channels are set to change normally and the PiP window has focus, the browse button does not bring up the browse window.
- 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.
- 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.
- 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)
Change History (5)
Changed 19 years ago by
Attachment: | channelchange.diff added |
---|
comment:1 Changed 19 years ago by
comment:2 Changed 19 years ago by
Milestone: | → 0.19 |
---|---|
Owner: | changed from Isaac Richards to danielk |
Status: | new → assigned |
comment:3 Changed 19 years ago by
Version: | 0.18.1 → head |
---|
Can you update this patch to apply to SVN?
15 out of 16 hunks fail against SVN.
comment:4 Changed 19 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
(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.
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.