blob: 5caa7e868c0e301e5b545aec3848edb95b908cf8 [file] [log] [blame]
Jack Jansen9cfea101995-12-09 14:05:56 +00001"""MovieInWindow converted to python
2
3Jack Jansen, CWI, December 1995
4"""
5
Jack Jansen9cfea101995-12-09 14:05:56 +00006import Qt
7import QuickTime
8import Qd
9import QuickDraw
10import Evt
11import Events
12import Win
13import Windows
14import macfs
15import sys
16
17
18def main():
19 # skip the toolbox initializations, already done
20 # XXXX Should use gestalt here to check for quicktime version
21 Qt.EnterMovies()
22
23 # Get the movie file
24 fss, ok = macfs.StandardGetFile(QuickTime.MovieFileType)
25 if not ok:
26 sys.exit(0)
27
28 # Open the window
29 bounds = (175, 75, 175+160, 75+120)
30 theWindow = Win.NewCWindow(bounds, fss.as_tuple()[2], 1, 0, -1, 0, 0)
31 Qd.SetPort(theWindow)
32 # XXXX Needed? SetGWorld((CGrafPtr)theWindow, nil)
33
34 playMovieInWindow(theWindow, fss, theWindow.GetWindowPort().portRect)
35
36def playMovieInWindow(theWindow, theFile, movieBox):
37 """Play a movie in a window"""
38 # XXXX Needed? SetGWorld((CGrafPtr)theWindow, nil);
39
40 # Get the movie
41 theMovie = loadMovie(theFile)
42
43 # Set where we want it
44 theMovie.SetMovieBox(movieBox)
45
46 # Start at the beginning
47 theMovie.GoToBeginningOfMovie()
48
49 # Give a little time to preroll
50 theMovie.MoviesTask(0)
51
52 # Start playing
53 theMovie.StartMovie()
54
55 while not theMovie.IsMovieDone() and not Evt.Button():
56 theMovie.MoviesTask(0)
57
58def loadMovie(theFile):
59 """Load a movie given an fsspec. Return the movie object"""
60 movieResRef = Qt.OpenMovieFile(theFile, 1)
61 movie, dummy = Qt.NewMovieFromFile(movieResRef, QuickTime.newMovieActive)
62 return movie
63
64if __name__ == '__main__':
65 main()
66