Tip: Elgato EyeTV, Plex, and Mountain Lion
I'm contributing this as a tip to the community. Hopefully others will find it useful.
Let me set the scene first... I use EyeTV on a couple of my Macs, including my Mac Mini acting as a media centre (HTPC). Historically EyeTV integrated with Apple's Front Row, but as we all know, Apple killed off Front Row on the Mac a while back. Now I liked Front Row's simplicity, and I liked EyeTV's integration. After the demise of Front Row, it took me a while but I converted over to using Plex (Plexapp and Media Server). It took a bit of effort on my part, but I now really like Plex too.
I primarily watch TV on the Mac Mini in full screen, so I like to use the (white) Apple Remote to interact. My use case is Apple Remote - to drive EyeTV - press-hold the menu button to switch to Plex - watch/listen media using Plex - Quit Plex to return to EyeTV.
EyeTV still retains the integration with Front Row. When using EyeTV, press-hold the menu key and EyeTV will try to launch /Applications/Front Row. Front Row is no longer available, but I now launch Plex instead.
I achieve this by using an Apple Script application, saved to /Applications, called Front Row. That's right, I fake Front Row using an Apple Script, it simply launches or brings Plex to the front.
Now each major release of MacOSX recently has caused me to alter my Applescript a bit. I recently upgraded from Lion 10.7.x to Mountain Lion 10.8.x, and true to form I had to revisit the Applescript. Purely empirically, I believe ML changed the behaviour of EyeTV on switching.
With previous versions of MacOSX you could see EyeTV switch by taking itself out of fullscreen mode, stop playing, then launching Front Row/Plex. With ML, EyeTV appears to remain in fullscreen mode and continues playing.
This appears to be causing an issue with "ownership" of the Apple Remote events. Plex was not receiving the Apple Remote events, instead the standard MacOSX overlays (volume up/down), iTunes (play/stop/ffwd/rev) interaction was occuring. It took a bit of a leap, but I figured this was due to EyeTV remaining in fullscreen mode and retaining first responser ownership. Since EyeTV was not the foreground application, I assume it simply bubbled the events up to the OS, bypassing Plex. Also, depending on your EyeTV audio preferences (play audio in background), you will still hear EyeTV.
My solution then was to alter my Applescript. My Applescript takes EyeTV out of fullscreen mode (seems to fix the Apple Remote issue), stops the play window, then launches Plex, waits until Plex stops running, and then reverses the EyeTV commands, start playing, jump to Live, enter fullscreen
Here's my Applescript, you may copy it and use it freely, but I offer no support nor warranty whatsoever. If it works for you great, if it doesn't sorry about that but you'll have to figure it out yourself.
-------- copy the lines below -----------
try
tellapplication "EyeTV"
ifitisrunningthen
stop
exit full screen
endif
endtell
tellapplication "Plex"
run
activate
endtell
repeatuntilapplication "Plex" is notrunning
delay 1
endrepeat
tell application "EyeTV"
ifitisrunningthen
enter full screen
play
jump 0 fromending
endif
endtell
on error
say "Could not start Plex. Sorry"
end try
---------- finish copying the line above ----------
We are going to be saving the file to the Applications folder, so you will need an admin account to do this...
Start Applescript Editor (find it in /Applications/Utilities)
Copy and paste the lines above
Hit the Compile (hammer icon) button. This will tell you if everything is okay.
Now, from the File menu, choose Save As...
Call it Front Row, navigate to the Applications folder, and set the file format to Application, click the Save button.
Test it from EyeTV.
I hope this helps...
My versions
EyeTV 3.6 (build 7031)
Plexapp 0.9.5.2
Plexapp Settings of note:
Preferences > System > Input Devices
Standard
Always Running is off (this stops Plexhelper from continually running, seems to help with Apple Remote events)
Preferences > System > Video Hardware
Display Mode is full screen