Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#6039 closed defect (fixed)

LIRC - Broken jump-to when using number keys on remote

Reported by: mlists@… 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 11 years ago by mlists@…

From the dev mailing list: mlists@… wrote:

Hi everyone,

I've been using trunk a long time but haven't really contributed to the list. The reason I use trunk is 2 - fold I have an HD PVR and I am trying out the VDPAU config.

I have an RF keyboard and mouse that I've been using but recently purchased a Logitech 550 universal.

The problem I'm having is that on my keyboard I can enter a channel number in the guide and it will jump to that location in the guide. On the remote it does not do this. Its doing other functions like pgup and pgdn day forward day back. I have checked the 'jump to' box in the config. In the same session the keyboard numbers work for jump to. Is this a bug with the LIRC implementation or am I missing something in setup? The lircrc file has the same keystrokes assigned to the functions I use on the keyboard so it definitely is odd.

This happens in both VDPAU and normal modes (I realize the guide implementations are different right now).

My version info: MythTV Version : 19483 MythTV Branch : trunk Library API : 0.22.20081222-1 Network Protocol : 43 QT Version : 4.3.4 Options compiled in:

linux release using_oss using_alsa using_arts using_jack using_backend

using_dvb using_firewire using_frontend using_hdhomerun using_hdpvr using_iptv using_ivtv using_joystick_menu using_lirc using_mheg using_opengl_video using_v4l using_x11 using_xrandr using_xv using_xvmc using_xvmc_vld using_xvmcw using_bindings_perl using_bindings_python using_opengl using_vdpau using_ffmpeg_threads using_libavc_5_3 using_live using_mheg

I didn't post a ticket because I don't know if its a bug or me yet :)

Thx Norm

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.

comment:2 Changed 11 years ago by danielk

Owner: changed from Isaac Richards to danielk
Status: newaccepted

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 11 years ago by danielk

Resolution: fixed
Status: acceptedclosed

(In [19502]) Fixes #6039. Port LircKeycodeEvent? to Qt4.

comment:4 Changed 11 years ago by danielk

(In [19503]) Refs #6039. Reset user entered channel prefix once it fails to match a valid channel prefix.

comment:5 Changed 11 years ago by mlists@…

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 11 years ago by eric.bosch@…

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 11 years ago by eric.bosch@…

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

comment:8 Changed 11 years ago by eric.bosch@…

Referred to #6041, and resolved issue by commenting "begin system ... end system" section out of lircrc file

Note: See TracTickets for help on using tickets.