News:

Rule #1 - Be Patient - Rule #2 - Don't ask when, if you don't contribute - Rule #3 - You have coding skills - LinuxMCE's small brother is available: http://www.agocontrol.com

Main Menu

How to map IR remote buttons consistently ?

Started by tinia, March 29, 2006, 01:36:10 PM

Previous topic - Next topic

archived

Hi,

few weeks ago I added Digimatrix IR remote to my system - at that time I changed RemoteMapping table to remap keys on that remote. Now my problem is that some keys aren't remapped properly to fully support Orbiter and Mythtv.... I'd like to add proper remappings to it to work properly.

- what is currently content of RemoteMapping in Pluto distro ? I'd like to synhronize with that and add changes that are needed to fully support Digimatrix remote...

- any example of mapping that works for remote (including Mythtv's more exotic functions like Menu, Info, etc...) ?

- what ScreenType value is meant for Mythtv control ?

- are shortcuts supported on onscreen Orbiters (like pressing "TV" on remote would immediately bring Orbiter into TV menu - mythtv in my case ) ? If yes, how to ?



Thanks in advance,

regards,

Rob.



I have following config :
#
# this config file was automatically generated
# using lirc-0.7.0pre7(it87) on Sun Aug 29 17:33:17 2004
#
# contributed by
#
# brand:                       ASUS
# model no. of remote control: DigiMatrix
# devices being controlled by this remote:
#

begin remote

 name  ASUS_DigiMatrix
 bits           16
 flags SPACE_ENC
 eps            30
 aeps          100

 header       8057  4071
 one           479  1534
 zero          479   531
 ptrail        491
 pre_data_bits   8
 pre_data       0x35
 gap          25647
 toggle_bit      0


     begin codes
         up                       0x000000000000E817
         down                     0x00000000000018E7
         enter                    0x000000000000D02F
         left                     0x0000000000009867
         right                    0x00000000000058A7
         1                        0x00000000000000FF
         2                        0x000000000000807F
         3                        0x00000000000040BF
         4                        0x000000000000C03F
         5                        0x00000000000020DF
         6                        0x000000000000A05F
         7                        0x000000000000609F
         8                        0x000000000000E01F
         9                        0x00000000000010EF
         0                        0x000000000000906F
         on_off                   0x000000000000B04F
         dvd_vcd                  0x000000000000F00F
         tv                       0x00000000000008F7
         os_start                 0x00000000000030CF
         photo                    0x00000000000048B7
         home                     0x00000000000044BB
         back                     0x000000000000A857
         ch+                      0x000000000000B847
         stop                     0x000000000000946B
         play                     0x000000000000C43B
         vol+                     0x000000000000F807
         ch-                      0x0000000000007887
         step-                    0x000000000000E41B
         step+                    0x000000000000649B
         vol-                     0x00000000000004FB
         pause                    0x00000000000024DB
         pre                      0x00000000000014EB
         next                     0x000000000000A45B
         mute                     0x000000000000847B
         rec                      0x000000000000D42B
         subtitle                 0x000000000000C837
         menu                     0x00000000000038C7
         dvd_audio                0x00000000000050AF
         ui_size                  0x0000000000008877
         ui_on_off                0x00000000000028D7
     end codes

end remote



archived

the screen type is in the DesignObj table.  for example, if you monitor the log for the orbiter, and change to the main menu, you'll see in the log 'render screen 1255.0.0'.  the first number is always the screen number, or we call the DesignObj.  In mysql, select * from DesignObj where PK_DesignObj=1255, will let you see the screen type for that object.

the way the remote function works is to always try to find the most specific, reverting to least specific match.  There are two criteria, one is the type of remote, and one is the screen type.  Some remotes do not have the same button layouts as others.  For example, some remotes share the four directional arrows with media skipping.  Similarly on some screens, you wanna have different buttons do different things.  For example when a the orbiter is at the screen 'DVD menu', you want the up down left right to go to the media player, but when the orbiter is that the main menu, the arrows go to the orbiter itself.

all this functionality is shared in one common base class IRReceiverBase, which is used by all of the infrared receivers.  This has a logic to say: i'm on screen 1255, the remote being used is type X, is there a button for that screen and that type of remote.  If not, is there a button for that type of remote.  If not, for that type of screen.  If not, just send the general command.

by the general commands, i mean the record in RemoteMapping where both screentype and remotelayout are not specified.  

you have a few options.  If what you're doing is general and you feel benefit everyone with every type of remote, or if the buttons on this particular remote are unique to this remote, or if the special buttons on this remote should have the same behavior on any other remote that has a special buttons, then we should put the new commands in a record without remotelayout; in other words everyone with any remote that has that button should get that same behavior.  If your remote is something unusual and special, and this particular remote should do something different than another remote that has the same button with the same name, then you'll want to change the remote layouts in the device template for the remote, and add a special recordto the remote mapping to specify the behavior for that type of remote
.
Use sqlcvs to commit sure changes, and send an e-mail to kirill.b to have them authorized, and he can confirm that they make it into the next release.

archived

Hi,

thanks for info.

I'd need to work in two steps :
1. to synhronize my Mapping table to current Pluto's - but don't know how to ?

2. when we control mythtv from Pluto - what entries in Mapping table are relevant or meant for mythtv ?

3. Under mythtv key 'm' gets me into onscreen menu. What would I need to put and where so key 'm' would be sent to mythtv when I press some button on IR ?

Thanks in advance,

regards,

Rob.