blob: af9c7d7d88a9f7b8b4797c23ecf85a6918163d52 [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
Jack Jansen2116bca1998-07-22 13:35:31 +000024 fss, ok = macfs.StandardGetFile() # Was: QuickTime.MovieFileType
Jack Jansen9cfea101995-12-09 14:05:56 +000025 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)
Jack Jansen1836a621997-04-09 15:54:54 +000061 movie, d1, d2 = Qt.NewMovieFromFile(movieResRef, 0, QuickTime.newMovieActive)
Jack Jansen9cfea101995-12-09 14:05:56 +000062 return movie
63
64if __name__ == '__main__':
65 main()
66