<?sphp $this->text('pagetitle') ?>
Home of the Squeezebox™ & Transporter® network music players.

Fab4 IR Handling Notes

From SqueezeboxWiki

Jump to: navigation, search


Development notes about the new IR support created for Fab 4


  • Resolve location of map files
  • map file versioning? what happens if user changes, will next software update with a new mapping file overwrite
  • long hold (for left arrow)
  • ir blaster
  • Integration with action event model

Events generated

IR input will cause the following events to be sent:

  • EVENT_IR_DOWN - sent as soon as a new code has been sent
  • EVENT_IR_REPEAT - sent out as fast as ir codes are received after IR_DOWN occurs
  • EVENT_IR_PRESS - sent when no new codes are received (or a new key is pressed) prior to the IR_HOLD_TIMEOUT time
  • EVENT_IR_HOLD - sent once when ir input occurs and the IR_HOLD_TIMEOUT time has been exceeded
  • EVENT_IR_UP - sent when input stops (IR_KEYUP_TIME exceeded) or the ir code changes
  • (under consideraton) EVENT_IR_HOLD_LONG - - sent once when ir input occurs and the IR_HOLD_LONG_TIMEOUT time has been exceeded



IR Remote Control Mapping files


Here's an example of the error output if code is looking for a "button name->IR Code" match for a button name that has not been defined (I deleted "up" from the map as a test)

104543:16153 ERROR (Framework.lua:740) - No IR code exists for requested button name (up). Available IR Button Names:  (from Squeeze IR Rem
otes) add addl_button_1 addl_button_2 addl_button_3 brightness browse browse_album browse_artist browse_music browse_playlists down eight f
actory_test_mode favorites five four fwd home left nine now_playing one pause play power power_off power_on repeat reserved rew right searc
h search_album search_artist search_song seven shuffle six sleep text_size three two vol_down vol_up zero
104543:16154 ERROR (Framework.lua:741) - Source of the incorrect button name request: (stack traceback:
        /usr/share/jive/jive/ui/Framework.lua:741: in function 'getIRCodes'
        /usr/share/jive/jive/ui/Framework.lua:709: in function 'isIRCode'
        /usr/share/jive/jive/ui/Event.lua:218: in function 'isIRCode'
        /usr/share/jive/jive/ui/Menu.lua:147: in function '_eventHandler'
        /usr/share/jive/jive/ui/Menu.lua:356: in function 'callback'
        /usr/share/jive/jive/ui/Widget.lua:607: in function </usr/share/jive/jive/ui/Widget.lua:583>
        [C 0x1fbac]: in function '_eventHandler'
        /usr/share/jive/jive/ui/Window.lua:1295: in function </usr/share/jive/jive/ui/Window.lua:1294>
        [C 0x13a84]: ?
        [C 0x13ed8]: in function 'processEvents'
        /usr/share/jive/jive/ui/Framework.lua:243: in function </usr/share/jive/jive/ui/Framework.lua:241>

See also