Opened 15 years ago
Closed 15 years ago
Last modified 15 years ago
#6039 closed defect (fixed)
LIRC - Broken jump-to when using number keys on remote
Reported by: | Owned by: | danielk | |
---|---|---|---|
Priority: | minor | Milestone: | unknown |
Component: | mythtv | Version: | unknown |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
Jump-to specific channel using channel numbers do not work when using a remote control but do when using a keyboard. Confirmed multiple people having the same result.
Change History (8)
comment:1 Changed 15 years ago by
comment:2 Changed 15 years ago by
Owner: | changed from Isaac Richards to danielk |
---|---|
Status: | new → accepted |
This appears to be a simple Qt4 port problem, Qt no longer uses the Qt::UNICODE_ACCEL modifier and some of the other modifiers are shifted left from Qt3.. The solution is to simply port LircKeycodeEvent? to Qt4 rather than using Qt3 constants and converting them to Qt4 later. That solves this problem and also simplifies the mythmainwindow.cpp LIRC handling code which currently does the conversion.
comment:3 Changed 15 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
(In [19502]) Fixes #6039. Port LircKeycodeEvent? to Qt4.
comment:4 Changed 15 years ago by
comment:5 Changed 15 years ago by
This has broken two other things. When directly entering channel number from lirc while NOT in guide, now puts a _ between the numbers so it can't go to the channel.
Secondly, while in guide and entering a jump-to channel number, mythfrontend seg faults.
comment:6 Changed 15 years ago by
This has broken my system in that I do not use LircKeyPressedApp?, the setting is empty, and mythfrontend segfaults every time it is started.
2008-12-30 23:59:23.724 MSqlQuery::exec() "SELECT data FROM settings WHERE value = 'LircSocket?' AND hostname = 'gandalf' ;" 2008-12-30 23:59:23.724 MSqlQuery::exec() "SELECT data FROM settings WHERE value = 'LircKeyPressedApp?' AND hostname = 'gandalf' ;"
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7f35ede99790 (LWP 13042)] *GI_strcasecmp (s1=0x0, s2=0x9eca00 "system") at strcasecmp.c:65 65 strcasecmp.c: No such file or directory.
in strcasecmp.c
Current language: auto; currently c
comment:7 Changed 15 years ago by
Here is a backgrace.
2008-12-31 00:10:24.477 MSqlQuery::exec() "SELECT data FROM settings WHERE value
'ThemePainter?' AND hostname = 'saruman' ;"
2008-12-31 00:10:24.477 Using the OpenGL painter 2008-12-31 00:10:24.477 MSqlQuery::exec() "SELECT data FROM settings WHERE value
'LircSocket?' AND hostname = 'saruman' ;"
2008-12-31 00:10:24.478 MSqlQuery::exec() "SELECT data FROM settings WHERE value
'LircKeyPressedApp?' AND hostname = 'saruman' ;"
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7f7b07fc5790 (LWP 14271)] *GI_strcasecmp (s1=0x0, s2=0xaa9330 "system") at strcasecmp.c:65 65 strcasecmp.c: No such file or directory.
in strcasecmp.c
(gdb) bt #0 *GI_strcasecmp (s1=0x0, s2=0xaa9330 "system") at strcasecmp.c:65 #1 0x00007f7afe76854f in lirc_readconfig_only_internal (
file=<value optimized out>, config=0xa14240, check=0, full_name=0x7fff1010df60, sha_bang=0x7fff1010df68) at lirc_client.c:1345
#2 0x00007f7afe768ec6 in lirc_readconfig (file=0x0, config=0xaa9330,
check=0x7f7aff98e580 <_nl_global_locale>) at lirc_client.c:808
#3 0x00007f7b05852c9a in LIRC::Init (this=0xa7ae40) at lirc.cpp:299 #4 0x00007f7b05766b0f in MythMainWindow::StartLIRC (this=0xa2c930)
at mythmainwindow.cpp:1749
#5 0x00007f7b05772aed in MythMainWindow? (this=0xa2c930, useDB=true)
at mythmainwindow.cpp:335
#6 0x00007f7b057785d4 in MythMainWindow::getMainWindow (useDB=true)
at mythmainwindow.cpp:209
#7 0x00007f7b05778679 in GetMythMainWindow? () at mythmainwindow.cpp:223 #8 0x0000000000432ee9 in main (argc=3, argv=0x7fff10110ec8) at main.cpp:1251
From the dev mailing list: mlists@… wrote:
This is a bug - I can reproduce the exact same behavior.
The problem is when the custom event is processed for a lirc key press (mythmainwindow.cpp line 1517) the text variable only ever gets set if the keycode has a Qt::UNICODE_ACCEL modifier which never seems to be the case. The result of this is the QKeyEvent that gets sent doesn't have the text parameter set to anything so when the guide grid tries to convert it to an integer it always fails. QKeyEvents from the keyboard always have the text set so that works OK.
A quick fix is to comment out line 1534 in mythmainwindow.cpp so that text always get set but don't know enough about this code to know what the consequences of this are. Anybody familiar with this code care to comment?
I wonder if this has ever worked or has something changed? Could be related to the switch to Qt4.
Paul H.