bruno1505 / pyetv

Automatically exported from code.google.com/p/pyetv
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

PyTV : since new EyeTV 3.1.2, Quit function of EyeTV come back to Finder instead of Front Raw as usual #36

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. start Front Row, select Eye TV
2. after using any function of EyeTV (Channel, Program guide or play a record) 
when using Esc on 
Apple Remote, system is back to Finder, instead of being back to Front Row 
menus, as expected
3. When I am back in the Finder, EyeTV is launched, and when I quit EyeTV (menu 
Quit), system 
goes back to Front Row
I can repeat this bug any time (even if EyeTV was launch before running 
initially Front Row or 
not)

What is the expected output? What do you see instead?
When I select EyeeTV function in Front Row and quit, I expect to be back to 
Front Row
the firt time I select EyeTV function from Front Row (after reboot), EyeTV 
display the selected 
function but still with the Dock visible.
When I repeat steps 1 to 3 again, Dock is not visible anymore

What version of the product are you using? On what operating system?
it was working well with previous version of EyeTV (version 3.0.2) but not 
anymore since 3.1.2
(nothing else has been changed)
MacMini intel coreduo, OSX = 10.5.8, French
PyeTV = 1.2
EyeTV 3.1.2 (5242)

Please provide any additional information below.
I raise this issue since Elgato asked me to do it.
I upgrade  EyeTV from 3.0.2 to 3.1.2 on request of Elgato to be able to share 
librairies between 2 
Macs (sharing did not worked with different versions on each Mac)
fyi, Elgato ticket = TBK-294451

Many thanks for your support !

Original issue reported on code.google.com by pclo...@orange.fr on 15 Aug 2009 at 5:39

GoogleCodeExporter commented 8 years ago
I have the same issue but a clarification: I believe after hitting escape from 
within EyeTV, it is just causing EyeTV 
to leave full screen mode instead of returning to the Finder.

Original comment by robertah...@gmail.com on 17 Aug 2009 at 11:27

GoogleCodeExporter commented 8 years ago
This is actually the expected behavior.  When you leave Front Row via the "Menu"
button on the apple remote (is it labeled "Esc" in France?) PyeTV deliberately 
closes
any open EyeTV windows, assuming that PyeTV has been run while Front Row was 
active.

PyeTV actually installs a timer (the reaper) which activates about a half second
after Front Row is no longer visible to close any open Front Row windows.  If 
PyeTV
did *not* do this, then exiting Front Row (which may be sitting quietly waiting 
for
input) could cause EyeTV to suddenly start playing a recording or showing 
LiveTV,
which is *not* desirable behavior, and further it's confusing to the user as to 
why
leaving Front Row would dump you into some other full screen app where the menu
button now behaves differently, etc.

That being said the reaper timer *does* leave EyeTV as the active Mac OS X
application.  If you choose, you can press *and hold* menu at this point, and a 
new
EyeTV window will be opened and the EyeTV menu displayed.

Original comment by jon.chri...@gmail.com on 18 Aug 2009 at 5:14

GoogleCodeExporter commented 8 years ago
Hi Jon,
I think the problem we're both having is getting back *in* to FrontRow after 
entering EyeTV.  Everything is 
working fine except for returning to FrontRow.  I'm using a keyboard.  If I hit 
escape on the keyboard from 
within eyetv or one of the eyetv menus, it exits full screen mode.  If I try to 
do cmd-escape to start frontrow 
again, it does nothing.  Then things are very strange.  I believe FrontRow is 
still running but there is no GUI 
(probably due to the hiding of the Front Row windows as you described) - it is 
like the FrontRow windows are 
not redisplayed when exiting EyeTV full screen mode.  The correct behavior 
seems to happen (FrontRow is 
redisplayed) only after quitting EyeTV.

Thanks,
Rob

Original comment by robertah...@gmail.com on 18 Aug 2009 at 6:51

GoogleCodeExporter commented 8 years ago
If I press escape on the keyboard while a recording I've launched from Front 
Row is
playing, then, yes the window goes from full screen to just a window.  PyeTV is 
still
running, though, as is Front Row, as evidenced by the fact that Command-Tab 
doesn't
work.  Escape, for me, at this point brings up the EyeTV menu.  Command W would 
close
the EyeTV window, but again, we're still really under the control of Front Row.

At this point, the only ways I know of to return to Front Row are
1) menu on the remote
2) choose "Show Front Row" from the Front Row icon on the dock

I seem to recall that this used to work differently, but it's something Elgato 
did to
EyeTV, not anything PyeTV has changed.

In any case, you *do* want to return control to Front Row, even if just 
briefly, in
order to be able to use command tab normally, and perhaps there are other
side-effects of FR waiting for the user to return.

Original comment by jon.chri...@gmail.com on 18 Aug 2009 at 9:41

GoogleCodeExporter commented 8 years ago
That makes sense.  What you describe is the same behavior on my system.  Could 
PyeTV test to see if EyeTV has 
left full screen mode as an indication to show FrontRow/PyeTV again?  Do you 
think that's a good way to trigger 
a return and display FrontRow?  I've been thumbing through the code a bit, but 
I don't have a grasp on it yet...

Original comment by robertah...@gmail.com on 18 Aug 2009 at 10:23

GoogleCodeExporter commented 8 years ago
Hi,
I realize that my first report was probably not clear enough. Sorry for the 
confusion.
so step by step :
1 I run Front Raw
2) I select EyeTV menu with remote access (I also test with keyboard = same 
behaviour)
3) I select any EyeTV function to display a video (it could be Channel to see 
live TV or play a record,..)
4) When I want to stop and be back to Front Raw, I use to press "Esc" on Remote 
control (or "Menu") to be 
back to first to EyeTV menu in Front Raw, and press again to be back on main 
menu of Front Raw. It uses to 
be like that until I update EyeTV from 3.0.2 to new 3.1.2

Since this update of EyeTV, after reading any video (channel or record), when I 
press "Esc" on remote control, 
the Mac display the Finder with EyeTV menu bar (which means application 
active).... 
so to be back to Front Raw again, I need to use the Front Raw icon in the Dock 
to  launch it again (so I can't 
use remote control, but I need the mouse !).

Sorry for my "french" english !

Original comment by pclo...@orange.fr on 18 Aug 2009 at 3:23

GoogleCodeExporter commented 8 years ago
@robertahtibarton: The current test PyeTV uses (at least in the subversion
repository, I can't remember about PyeTV 1.2) is "ui.isVisible", meaning that 
the
Front Row interface is shown again.  Older revisions used applescript to query 
to see
if EyeTV was playing, or perhaps even in full screen, but there were several 
problems
with that (e.g. depending on how long it took EyeTV to initially *get* into full
screen mode, it could exit before even playing the recording/channel, etc.  
Overall,
testing for Front Row visibility has seemed to be the better approach.

For me, it generally "just works", and in those cases where it doesn't, a second
(short) press of menu on the remote will return to front row.

@pcloche: What happens if you press "menu" again on the remote?  Does that 
return to
Front Row?

Original comment by jon.chri...@gmail.com on 18 Aug 2009 at 5:26

GoogleCodeExporter commented 8 years ago
Usually, I need to push 2 times on "menu" to be back to Front Raw, but I just 
made lot of tests to see if it is 
always like that, and some time a single "menu" is enough to be back to Front 
Raw.
I have not been able to understand why sometime I need 2 and sometime only 1 
push on "Menu"...

Original comment by pclo...@orange.fr on 18 Aug 2009 at 7:19

GoogleCodeExporter commented 8 years ago

Jon, I have some changes that have fixed this for me.  What is the process to 
get the changes reviewed?  Should I 
just attach here?

Original comment by robertah...@gmail.com on 19 Aug 2009 at 8:53

GoogleCodeExporter commented 8 years ago
@robertahtibarton: Are your changes against the current head of SVN, or against 
1.2?
In either case, if you could post a diff here, that would be great.  Thanks!

Original comment by jon.chri...@gmail.com on 19 Aug 2009 at 4:51

GoogleCodeExporter commented 8 years ago
@jon:  I think the head of svn.  I just used the svn checkout command as 
described in the readme.  The 
exception is PyFR which I took from 1.2 since I couldn't get it from svn (I saw 
that issue posted).  Attached are 
the diffs.

I did the following:
- Changed the etv.IsFullScreen so it calls eyetv.fullscreen.get() instead of 
eyetv.fullscreen_menu.get().
- Added a function to indicate if eyetv was in full screen mode and has left it 
to use as a signal for returning 
from the wait controller.  There are two variables added to track and trigger 
this event.

No problem if you still think this is a bad way to handle the eyetv exit.  Just 
thought I would give it a try.

Original comment by robertah...@gmail.com on 19 Aug 2009 at 11:50

Attachments:

GoogleCodeExporter commented 8 years ago
@robertahtibarton:

Overall I like it.  The diff to etv.py is just fine.  I seem to recall that at 
one
time there wasn't a way to query full_screen instead of full_screen_menu, so 
perhaps
that's why I didn't have it your way to begin with.

However, I don't quite get the PyeTV.py diff.  Are you doing something clever 
here I
don't understand:

>             fn2=lambda : self.ReturnToFrontRow()        
>             
newCon=PyeTVWaitController.alloc().initWithStartup_exitCond_(fn,fn2)

or wouldn't this be cleaner as just:

newCon=PyeTVWaitController.alloc().initWithStartup_exitCond(fn,self.ReturnToFron
tRow()).

-Jon

Original comment by jon.chri...@gmail.com on 21 Aug 2009 at 4:52

GoogleCodeExporter commented 8 years ago
@jon: OK, great.  I just fixed a problem where if you hit escape too quickly, 
the full screen exit event doesn't get 
triggered.  The way I fixed it was by modifying etv.EnterFullScreen to wait 
until EyeTV reports that it has really 
entered full screen mode, so the ReturnFromFrontRow can't get executed before 
that happens.

Yeah, your suggestion makes it cleaner.  I made that change too.  Attached are 
the new diffs from svn head.  
Please modify any way you want.

Original comment by robertah...@gmail.com on 21 Aug 2009 at 5:48

Attachments:

GoogleCodeExporter commented 8 years ago
@robert: I've applied your patches in SVN.  Thanks.  Version 1.3 (out now)
incorporates these changes.

Original comment by jon.chri...@gmail.com on 23 Aug 2009 at 8:08

GoogleCodeExporter commented 8 years ago
Dear Christopher, Robert, 
I just install the new version 1.3 and it is sloved ! You are great !!!

Many thanks !

Philippe

Original comment by pclo...@orange.fr on 27 Aug 2009 at 4:48