mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			70 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """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()
 | 
