plexinc / plex-media-player

Next generation Plex Desktop/Embedded Client
GNU General Public License v2.0
1.16k stars 170 forks source link

Keyboard multiple input after playing anything #874

Open iodides opened 5 years ago

iodides commented 5 years ago

Test environment

PMS Version: 1.16.1.1291 PMP Version: 2.37.1.992-b11bf0cf

Platform (Windows/macOS/Embedded RPi/Embedded Intel): RPi 3b+

Steps to reproduce

  1. when boot up, 1 keyboard pressed, 1 input received.

Current behavior

  1. after playing anything, 1 keyboard pressed, 2 input received.
  2. after playing other, 1 keyboard pressed, 3 input received.
  3. after playing other, 1 keyboard pressed, 4 input received. .......

1 Return pressed, 1 Down pressed log file.

2019-07-11 03:31:12 [ DEBUG ] InputComponent.cpp @ 160 - Input received: source: "Keyboard" keycode: "Return" : InputBase::InputkeyState(KeyDown)
2019-07-11 03:31:12 [ DEBUG ] InputComponent.cpp @ 229 - Emit input action: ("enter")
2019-07-11 03:31:12 [ DEBUG ] InputComponent.cpp @ 160 - Input received: source: "Keyboard" keycode: "Return" : InputBase::InputkeyState(KeyDown)
2019-07-11 03:31:12 [ DEBUG ] InputComponent.cpp @ 229 - Emit input action: ("enter")
2019-07-11 03:31:12 [ DEBUG ] InputComponent.cpp @ 160 - Input received: source: "Keyboard" keycode: "Return" : InputBase::InputkeyState(KeyDown)
2019-07-11 03:31:12 [ DEBUG ] InputComponent.cpp @ 229 - Emit input action: ("enter")
2019-07-11 03:31:12 [ INFO  ] JS: [Metrics] Updating session last interaction time
2019-07-11 03:31:12 [ INFO  ] JS: [Metrics] Updating session last interaction time
2019-07-11 03:31:12 [ DEBUG ] InputComponent.cpp @ 160 - Input received: source: "Keyboard" keycode: "Return" : InputBase::InputkeyState(KeyUp)
2019-07-11 03:31:12 [ DEBUG ] InputComponent.cpp @ 160 - Input received: source: "Keyboard" keycode: "Return" : InputBase::InputkeyState(KeyUp)
2019-07-11 03:31:12 [ DEBUG ] InputComponent.cpp @ 160 - Input received: source: "Keyboard" keycode: "Return" : InputBase::InputkeyState(KeyUp)
2019-07-11 03:31:13 [ DEBUG ] InputComponent.cpp @ 160 - Input received: source: "Keyboard" keycode: "Down" : InputBase::InputkeyState(KeyDown)
2019-07-11 03:31:13 [ DEBUG ] InputComponent.cpp @ 229 - Emit input action: ("down")
2019-07-11 03:31:13 [ DEBUG ] InputComponent.cpp @ 160 - Input received: source: "Keyboard" keycode: "Down" : InputBase::InputkeyState(KeyDown)
2019-07-11 03:31:13 [ DEBUG ] InputComponent.cpp @ 229 - Emit input action: ("down")
2019-07-11 03:31:13 [ DEBUG ] InputComponent.cpp @ 160 - Input received: source: "Keyboard" keycode: "Down" : InputBase::InputkeyState(KeyDown)
2019-07-11 03:31:13 [ DEBUG ] InputComponent.cpp @ 229 - Emit input action: ("down")
2019-07-11 03:31:13 [ DEBUG ] InputComponent.cpp @ 160 - Input received: source: "Keyboard" keycode: "Down" : InputBase::InputkeyState(KeyUp)
2019-07-11 03:31:13 [ DEBUG ] InputComponent.cpp @ 160 - Input received: source: "Keyboard" keycode: "Down" : InputBase::InputkeyState(KeyUp)
2019-07-11 03:31:13 [ DEBUG ] InputComponent.cpp @ 160 - Input received: source: "Keyboard" keycode: "Down" : InputBase::InputkeyState(KeyUp)

after reboot RPi, 1 keyboard pressed, 1 input received.

Expected behavior

  1. 1 keoboard pressed, just 1 input received.
iodides commented 5 years ago

It seems to have occurred after I created keyboard.json located in /storage/.local/share/plexmediaplayer/inputmaps

I had copyed from inputmaps/examples/keyboard.json to inputmaps/keyboard.json then added lines inputmaps/keyboard.json "Volume Up": "increase_volume", "Volume Down": "decrease volume",

OttoKerner commented 5 years ago

Then the first test would be to remove your version of the file and assess the behaviour again.

szigand commented 4 years ago

I have the same problem on Raspberry Pi 3 (v2.50.0.1033 - 2020-02-10), but it is caused by the "Allow Display Mode Switching" feature. If the player switches the display mode when starting the movie all keyboard input will be multiplied. After rebooting it works until the first display mode switch. Disabling this feature "solves" the problem.