This posting is older than 6 months and can contain outdated information.
However, it does not solve your question to alter the buttons when inside the EyeTV menu, as Felix indicates. I also have not found a way to open specific EyeTV menu items (calling the EPG for instance while inside the live window) with a single buttonpush if they are not available in the normal EyeTV buttonbar at the top of my desktop or as an action in Remote Buddy.
Actions you can call with a keystroke however are easily programmed in Remote Buddy (e.g. close/open live window etc)
Hi Jurgen & Nicx,
This is quite simple—everything you need is in EyeTV's AppleScript dictionary. To use your example of opening the Guide you'd just have to set Remote Buddy to perform this:
tell application "EyeTV" to set full screen guide to true
That's it!
To see what other commands can be sent through AppleScript just drag the EyeTV icon onto the AppleScript Editor icon or choose File: Open Dictionary... from within AppleScript Editor.
Also, if I understand the original question, the default behaviour of Remote Buddy in EyeTV (or any other app) *can* be overridden if you change Remote Buddy to an AppleScript-based setup. I have many, many instances where a single button will perform any number of functions based on the changing context of the application that I'm using, or by using Remote Buddy's built-in support for storing data in a temporary/permanent file. Here's one of my simpler scripts as an example:
----Begin Code----
-- Modified: February 12, 2011
-- In its default condition (probably on RB's side) EyeTV will scan forward/back
-- only if the button is held. This script fixes that behaviour, allowing the scan to
-- continue until the PLAY button is pressed. By default, that press will trigger a
-- pause, whereas I want it to trigger a return to play
-- EyeTV can't poll for player state so read it from a dynamic file
tell application "Remote Buddy"
set player_state to read value for key "com.htpc.eyetv.playerstate" in domain "temporary" with default value "play"
end tell
-- If player state is anything but play/pause make it play, else toggle play/pause
tell application "EyeTV"
if player_state is "scan" then
play
else if full screen menu is true or alert menu open is true then
tell application "System Events"
keystroke return
end tell
else
playpause
end if
end tell
-- Reset the value since scanning is now done
tell application "Remote Buddy"
store value "play" for key "com.htpc.eyetv.playerstate" in domain "temporary"
end tell
----End Code----