diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/python-2.6.1/Mac/Demo/quicktime/MovieInWindow.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/symbian-qemu-0.9.1-12/python-2.6.1/Mac/Demo/quicktime/MovieInWindow.py Fri Jul 31 15:01:17 2009 +0100 @@ -0,0 +1,70 @@ +"""MovieInWindow converted to python + +Jack Jansen, CWI, December 1995 +""" + +from Carbon import Qt +from Carbon import QuickTime +from Carbon import Qd +from Carbon import QuickDraw +from Carbon import Evt +from Carbon import Events +from Carbon import Win +from Carbon import Windows +from Carbon import File +import EasyDialogs +import sys +import os + + +def main(): + # skip the toolbox initializations, already done + # XXXX Should use gestalt here to check for quicktime version + Qt.EnterMovies() + + # Get the movie file + if len(sys.argv) > 1: + filename = sys.argv[1] + else: + filename = EasyDialogs.AskFileForOpen() # Was: QuickTime.MovieFileType + if not filename: + sys.exit(0) + + # Open the window + bounds = (175, 75, 175+160, 75+120) + theWindow = Win.NewCWindow(bounds, os.path.split(filename)[1], 1, 0, -1, 0, 0) + Qd.SetPort(theWindow) + # XXXX Needed? SetGWorld((CGrafPtr)theWindow, nil) + + playMovieInWindow(theWindow, filename, theWindow.GetWindowPort().GetPortBounds()) + +def playMovieInWindow(theWindow, theFile, movieBox): + """Play a movie in a window""" + # XXXX Needed? SetGWorld((CGrafPtr)theWindow, nil); + + # Get the movie + theMovie = loadMovie(theFile) + + # Set where we want it + theMovie.SetMovieBox(movieBox) + + # Start at the beginning + theMovie.GoToBeginningOfMovie() + + # Give a little time to preroll + theMovie.MoviesTask(0) + + # Start playing + theMovie.StartMovie() + + while not theMovie.IsMovieDone() and not Evt.Button(): + theMovie.MoviesTask(0) + +def loadMovie(theFile): + """Load a movie given an fsspec. Return the movie object""" + movieResRef = Qt.OpenMovieFile(theFile, 1) + movie, d1, d2 = Qt.NewMovieFromFile(movieResRef, 0, QuickTime.newMovieActive) + return movie + +if __name__ == '__main__': + main()