1-click ChannelUp/ChannelDown possible?
#1
I've tried to set up Kodi to frontend for my vdr and pretty much everything is working like I would like to except channel changing. Currently when I press up or channelup from my remote or keyboard the first press shows the info about current channel and channel changes only when I press up again. I couldn't find a setting for this, can it be done somehow?
Reply
#2
Are you sure it is *exactly* like you wrote?

up/down keys behave like you described, but channel up/channel down keys should switch channels with just one click.

Please note that "up" and "channel up" are different keys as well as "down" / "channel down".

EDIT: does it make a difference if you set "channel switch delay" to zero?

EDIT: just looked it up in the code. "channel switch delay" value shouldn't make a difference. ;-)
Reply
#3
Yes, I double checked it earlier and now I tested it also with my os x laptop. Actually I believe that previously when I started this "project" I had Kodi 15 or 16 installed and in my opinion the channel changing worked just like I wanted then.

In my linux client I have Lircmap.xml like this (Kodi 17.3):

Code:
<up>PageUp</up>
<down>PageDown</down>
<select>Ok</select>
<channelplus>Ch+</channelplus>
<channelminus>Ch-</channelminus>

and keymap.xml:
Code:
<FullscreenLiveTV>
    <remote>
      <channelplus>ChannelUp</channelplus>
      <channelminus>ChannelDown</channelminus>
    </remote>

And like I said, I tried this now also on my os x (Kodi 17.3) with keymap.xml:
Code:
<keymap>
  <FullscreenLiveTV>
    <keyboard>
      <g>ChannelUp</g>
      <h>ChannelDown</h>
    </keyboard>
  </FullscreenLiveTV>
</keymap>

And the functionality is like I wrote earlier, first press opens the info and second press changes the channel.
Reply
#4
What happens if you use unmodified keymaps?

I'm not an expert when it comes to custom key mappings, but I have the feeling the problem has to do with it.

I use an unmodified keyboard mapping (on both mac and lionux) and for me everything works as it should.

EDIT: Which skin are you using? Not sure whether this has any influence. I'm using Estuary.
Reply
#5
I'm also using default Estruary with Kodi 17.3. I tried now also Confluence with 17.3, but the same problem persists. However, when I run Jarvis 16.1 and it's default skin Confluence, the channel change works directly just like I wanted.

I'm not sure how I could use default keymap with os x as I don't have remote for it so no channelup/channeldown, but up/down works same way as does next/prev media keys, so for me it seems like something has changed between 16.1 and 17.0 (tested it also).

I think I have to read the changelog if there's something obvious about this or then check the source.
Reply
#6
It is irrelevant whether Jarvis "works". Different Kodi versions may behave different and in this case this is intended. The question is what is desired behavior of 17.

Desired behavior of 17 is:

1) up/down first shows info of current channel, unless channel switch delay settings value is greater than zero
2) channel up/down (page up/down) + channel switch delay setting equals zero: info of next channel is shown and channel switch occurs immediately.
3) channel up/down (page up/down) + channel switch delay setting greater than zero: info of next channel is shown and channel switch occurs automatically after channel switch delay is over.

If you have a macos laptop:

fn+up == page up (== channel up)
fn+down == page down (== channel down)

No need for special key maps.

Again, please try how Linux behaves without custom key mappings and report back.
Reply
#7
Thanks, it seems that the problem is with the channel change delay. I have had it on 500ms so that there's time to input dual digits with the remote. Now, when I changed it to 0ms, the channel change happens, immediately. But this seems to affect both keypairs, up/down & pageup/pagedown. So if the desired behaviour is just like you wrote, then I'm facing a bug with the 3): Channel never changes, just shows the info of current channel.

I removed the test keymap and still the behaviour is like that. So maybe I should check the bugtracker next.
Reply
#8
The problem is unrelated to channel switch delay value, like I wrote earlier.

If I'm not completely mistaken, the bug is your Lircmap.xml

<up>PageUp</up>
<down>PageDown</down>

You map your remote's page up/down keys to event up/down which results in same behavior of keys up and channel up, namely both behaving the same like up key and down and channel down both behaving like down key. Remove this from your Lircmap.xml
Reply
#9
I did all the later tests (after my first post) with os x, so no Lircmap.xml or keymap.xml involved. Downloaded Kodi dmg, removed old version of Kodi dir from Application Support and started the Kodi, configured vnsi plugin and tested.

If delay is 0ms fn+up changes channel, if it is greater than 0ms channel change needs another press.
Reply
#10
> If delay is 0ms fn+up changes channel, if it is greater than 0ms channel change needs another press.

Which channel info appears in this case. info of current channel or info of next channel (the channel you want to switch to)?

And you are 100% sure that switch will not occur automatically if delay is greater zero and you wait for the delay time?

What is the value of "confirm channel switch with okay"?
Reply
#11
When delay is set to 0ms channel changes and shows the info for the new channel.

I'm 100% sure that doesn't happen with delay set greater than 0ms. Tried now 250, 500, 1000 and 4000ms.

Confirm channel change with ok is disabled. I tested to change it now, but it doesn't have any effect to channel change with up/down or pageup/pagedown.

But I think I found maybe something. I enabled the debug log and tried with 0ms delay and 250ms delay:

First set the delay to 250ms (from gui), entry in guisettings.xml:

Code:
<pvrplayback>
        <channelentrytimeout>250</channelentrytimeout>
        <confirmchannelswitch default="true">false</confirmchannelswitch>

debug log:
Code:
10:10:11.413 T:140737276814272   DEBUG: Keyboard: scancode: 0x74, sym: 0x0118, unicode: 0xf72c, modifier: 0x0
10:10:11.413 T:140737276814272   DEBUG: OnKey: pageup (0xf084) pressed, action is ChannelUp
10:10:11.479 T:123145519251456   DEBUG: CSettingsManager: requested setting (pvrplayback.channelentrytimeout) was not found.
10:10:11.494 T:140737276814272   DEBUG: ------ Window Init (DialogSeekBar.xml) ------
10:10:11.496 T:140737276814272   DEBUG: ------ Window Init (Custom_1109_TopBarOverlay.xml) ------
10:10:11.544 T:140737276814272   DEBUG: Keyboard: scancode: 0x74, sym: 0x0118, unicode: 0x0000, modifier: 0x0
10:10:15.412 T:140737276814272   DEBUG: ------ Window Deinit (DialogSeekBar.xml) ------
10:10:15.413 T:140737276814272   DEBUG: ------ Window Deinit (Custom_1109_TopBarOverlay.xml) ------
10:10:16.396 T:140737276814272   DEBUG: Keyboard: scancode: 0x00, sym: 0x0136, unicode: 0x0000, modifier: 0x0
10:10:16.396 T:140737276814272   DEBUG: GetActionCode: Trying Hardy keycode for 0xf200
10:10:16.396 T:140737276814272   DEBUG: Previous line repeats 5 times.
10:10:16.396 T:140737276814272   DEBUG: OnKey: 0 (0xf200, obc-61697) pressed, action is
10:10:17.442 T:140737276814272   DEBUG: Keyboard: scancode: 0x00, sym: 0x0136, unicode: 0x0000, modifier: 0x0

Then I set the delay to 0ms (also from gui), entry in guisettings.xml:
Code:
<pvrplayback>
        <channelentrytimeout default="true">0</channelentrytimeout>
        <confirmchannelswitch default="true">false</confirmchannelswitch>

Code:
10:11:27.751 T:140737276814272   DEBUG: Keyboard: scancode: 0x74, sym: 0x0118, unicode: 0xf72c, modifier: 0x0
10:11:27.751 T:140737276814272   DEBUG: OnKey: pageup (0xf084) pressed, action is ChannelUp
10:11:27.751 T:140737276814272   DEBUG: ------ Window Init (DialogSeekBar.xml) ------
10:11:27.751 T:140737276814272   DEBUG: ------ Window Init (Custom_1109_TopBarOverlay.xml) ------
10:11:27.833 T:140737276814272   DEBUG: Keyboard: scancode: 0x74, sym: 0x0118, unicode: 0x0000, modifier: 0x0
10:11:27.851 T:123145519251456   DEBUG: CVideoPlayer::FlushBuffers - flushing buffers
10:11:27.880 T:123145517105152   DEBUG: CDVDAudio::Flush - flush audio stream
10:11:27.880 T:123145517105152   DEBUG: CDVDAudio::Pause - pausing audio stream
10:11:27.900 T:123145516032000   DEBUG: CVideoPlayerVideo - CDVDMsg::GENERAL_SYNCHRONIZE
10:11:27.900 T:123145517105152   DEBUG: CVideoPlayerAudio - CDVDMsg::GENERAL_SYNCHRONIZE
10:11:27.900 T:123145519251456   DEBUG: CVideoPlayer::SetCaching - caching state 2
10:11:27.900 T:123145519251456   DEBUG: CDVDClock::SetSpeedAdjust - adjusted:0.000000
10:11:27.901 T:123145519251456   DEBUG: PVRManager - PerformChannelSwitch - switching to channel 'Yle Teema & Fem'
10:11:27.901 T:123145519251456   DEBUG: AddOnLog: VDR VNSI Client: changing to channel 5


So it seems that the delay setting is not found for some reason when the setting has actually some value assigned to it?

I tried to set it to 5000ms and pressed '4', the delay was not taken into account, it should right?

Code:
<pvrplayback>
        <channelentrytimeout>5000</channelentrytimeout>
        <confirmchannelswitch default="true">false</confirmchannelswitch>


Code:
10:23:07.984 T:140737276814272   DEBUG: Keyboard: scancode: 0x15, sym: 0x0034, unicode: 0x0034, modifier: 0x0
10:23:07.984 T:140737276814272   DEBUG: OnKey: four (0xf034) pressed, action is Number4
10:23:07.985 T:140737276814272   DEBUG: ------ Window Init (DialogNumeric.xml) ------
10:23:07.985 T:123145498808320   DEBUG: CAnnouncementManager - Announcement: OnInputRequested from xbmc
10:23:07.985 T:123145498808320   DEBUG: GOT ANNOUNCEMENT, type: 128, from xbmc, message OnInputRequested
10:23:08.034 T:140737276814272   DEBUG: Keyboard: scancode: 0x15, sym: 0x0034, unicode: 0x0000, modifier: 0x0
10:23:09.267 T:140737276814272   DEBUG: ------ Window Deinit (DialogNumeric.xml) ------
10:23:09.267 T:123145498808320   DEBUG: CAnnouncementManager - Announcement: OnInputFinished from xbmc
10:23:09.267 T:123145498808320   DEBUG: GOT ANNOUNCEMENT, type: 128, from xbmc, message OnInputFinished
10:23:09.283 T:140737276814272   DEBUG: ------ Window Init (DialogSeekBar.xml) ------
10:23:09.284 T:140737276814272   DEBUG: ------ Window Init (Custom_1109_TopBarOverlay.xml) ------
10:23:09.384 T:123145519251456   DEBUG: CVideoPlayer::FlushBuffers - flushing buffers
10:23:09.411 T:123145517105152   DEBUG: CDVDAudio::Flush - flush audio stream
10:23:09.411 T:123145517105152   DEBUG: CDVDAudio::Pause - pausing audio stream
10:23:09.411 T:123145517105152   DEBUG: CVideoPlayerAudio - CDVDMsg::GENERAL_SYNCHRONIZE
10:23:09.411 T:123145516032000   DEBUG: CVideoPlayerVideo - CDVDMsg::GENERAL_SYNCHRONIZE
10:23:09.411 T:123145519251456   DEBUG: CVideoPlayer::SetCaching - caching state 2
10:23:09.411 T:123145519251456   DEBUG: CDVDClock::SetSpeedAdjust - adjusted:0.000000
10:23:09.411 T:123145519251456   DEBUG: PVRManager - PerformChannelSwitch - switching to channel 'Nelonen'
10:23:09.411 T:123145519251456   DEBUG: AddOnLog: VDR VNSI Client: changing to channel 4
Reply

Logout Mark Read Team Forum Stats Members Help
1-click ChannelUp/ChannelDown possible?0