John, it has several changes relative to the last version I sent you.
In particular, the AppPlugin class now has facilities for setting a user
timeout callback function so that code that needs to run *after* the app
has launched can be run. (In my case this is some applescript which
only works when the program is the frontmost application).
Also, instead of AppPlugin only returning when the launched application quits,
the user can install their own, additional, exit condition test. (In my case
more appscript which determines that the full-screen menu of EyeTV is
no longer visible).
My biggest question at this point is why we return to the top level of
Front Row when
an app launched from AppPlugin exits. The app was launched from a submenu and
I'd expect (and prefer) that that's where we return. Any idea why
that's not happening?
When I create the AppPlugin instance, I'm pushing it onto the stack
(in MainApp.py's
ShowGuide_MenuHandler function, for instance). Is seems that there
might be some
more work that AppPlugin needs to do to properly maintain the controller stack.
Cheers,
Jon
(consolidating emails here)...
Hrm.. I didn;t notice the BRTextEntryControl... There's even an IP
address one.. Neato.. I'll have to play with it. If it does what I
think its does, it'll certainly make life easier..
--John
> <PyeTV.tar.gz>
--John
Nah, probably not, since I'll bet remote commands would still be
handled by FR, not the underlying app.
I understand that Jon's eyeTV frappliance is more targeting EyeTV2
rather the new version 3. With EyeTV3 I think a simple launch menu
item in FrontRow would do the job quite nice as all EyeTV related
functions can then be accessed from EyeTV3's new menu system.
I played around with both FrontPython, PyFR 2.7 and PyeTV 0.2 on my
Leopard iMac (latest FrontRow and latest EyeTV3).
Launching EyeTV using either PyeTV or PyFR 2.7's launcher works
somehow but not yet smoothly and satisfactory. I am Python developer
myself, so I am happy to contribute and help finding a better
solution. However the Backrow API is still a big mystery to me, so I
have to learn.
My goal would be only to have one simple Menu entry to launch and quit
EyeTV from FrontRow without to many delays and screen flickering. I
know that Jon is aiming at a more thorough integration, but with
EyeTV3 I don't see the point why to repeat the EyeTV3 menu
functionality. Maybe one can have it both ways: Simple and Advanced?
Launching EyeTV3 works with lots of screen flickering while the EyeTV
windows are opened and resized to full screen. Return to FrontRow
works but EyeTV is not properly terminated or hidden.
Q: Is there any chance to have FrontRow still keep the screen dimmed
black while EyeTV is starting up and going through the window resize
procedure so that there is a smooth transition between FrontRow's full
screen and EyeTV's full screen display?
The place to begin experimenting with this is in PyFR/Utilities.py, trying to replace _HideFrontRow with something which
works more like what you want. One problem I've had is that (I could be wrong) some of the Apple Events I need to send EyeTV
seem to only be interpreted properly when EyeTV is the frontmost application, and that means that I can't send the commands
until after FR is hidden. You might want to experiment with trying to send the applescript commands to play a recording in full-screen mode
(or just go to full-screen mode) before hiding FR.