blob: 620c16c6f0b0071f749ccc20c5058e4d0f3b2efc [file] [log] [blame]
Jack Jansen9cfea101995-12-09 14:05:56 +00001"""MovieInWindow converted to python
2
3Jack Jansen, CWI, December 1995
4"""
5
Jack Jansen5a6fdcd2001-08-25 12:15:04 +00006from Carbon import Qt
7from Carbon import QuickTime
8from Carbon import Qd
9from Carbon import QuickDraw
10from Carbon import Evt
11from Carbon import Events
12from Carbon import Win
13from Carbon import Windows
Jack Jansen9cfea101995-12-09 14:05:56 +000014import 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
Jack Jansen362c7cd02002-11-30 00:01:29 +000034 playMovieInWindow(theWindow, fss, theWindow.GetWindowPort().GetPortBounds())
Jack Jansen9cfea101995-12-09 14:05:56 +000035
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