Sorry I haven't looked into this yet. I hadn't installed RetroBrowser
yet, and my development box has been essentially dead for over a week
(thought it was the hdd; looks like the motherboard, and, yeah, it's a
laptop). I still don't have RB installed (the instructions on
http://wiki.slimdevices.com/index.php/SqueezePlay_Applets don't seem to
work -- I unpacked the first zip in the manual plugins dir but my SBC
doesn't see the applet), but I have a theory. RB is sending plain old
'arrow_right' when you tap the center button briefly, and
arrow_right.hold when you hold the button. CM reconfigures the IR
mapping for arrow_right so that most modes end up with
arrow_right.single and arrow_right.hold mappings, but no plain
arrow_right mappings. This works fine with real, honest-to-goodness IR
commands which map to either .single or .hold once CM has changed the
IR maps.

I expect this could be fixed one of two ways:
1) modify RB to send '.single' modifiers for brief taps
2) modify CM to leave unqualified entries like 'arrow_right' alone and
merely add '.hold' mappings

I don't understand the IR processing well enough to know what should be
better -- in Default.map there are some pairs of functions that have one
unqualified entry and one .hold entry, but there are others where the
unqualified entry is effectively disabled (set to 'dead') and the real
entries are one .single and one .hold entry.

But I tested the possible change to CM, and didn't like the result.
With the current CM coding, if you hold the right arrow, you *normally*
only get the context menu (though sometimes SC7 executes a normal
right-arrow command just before invoking the context menu). With the
second approach I described above, every time I held the right arrow on
my SB Classic, I got the normal arrow_right just before the context
menu. 

I think users should be able to go straight to the context menu. So in
practice, I'd suggest modifying RB. Here's a possible patch for
RetroBrowser:


Code:
--------------------
    --- ./RetroBrowserApplet.lua    2007/12/02 21:40:07     1.1
  +++ ./RetroBrowserApplet.lua    2009/01/08 07:27:29
  @@ -299,10 +299,7 @@
  if hold then
  self.player:send({ 'button', button .. '.hold' })
  else
  -                               self.player:send({ 'button', button })
  -                               if button == 'play' or button == 'add' then
  -                                       self.player:send({ 'button', button 
.. '.single' })
  -                               end
  +                               self.player:send({ 'button', button .. 
'.single' })
  end
  self.buttonsent = ticks
  end
  
--------------------


Sending arrow_right.single seems to work just fine when CM has deleted
the plain arrow_right mappings. You'll note that RB is doing something
that looks a little odd to me -- for Play and Add, it's sending both an
unqualified and a .single button command. I don't know why RB would do
that, and my patch above would alter RB to always send only one button
command per Controller button tap, always a .single command.


-Peter


-- 
peterw

http://www.tux.org/~peterw/
free plugins: http://www.tux.org/~peterw/#slim
AllQuiet BlankSaver ContextMenu FuzzyTime KidsPlay
KitchenTimer PlayLog PowerCenter/BottleRocket SaverSwitcher
SettingsManager SleepFade StatusFirst SyncOptions VolumeLock
------------------------------------------------------------------------
peterw's Profile: http://forums.slimdevices.com/member.php?userid=2107
View this thread: http://forums.slimdevices.com/showthread.php?t=57681

_______________________________________________
plugins mailing list
plugins@lists.slimdevices.com
http://lists.slimdevices.com/lists/listinfo/plugins

Reply via email to