mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""MovieInWindow converted to python
 | 
						|
 | 
						|
Jack Jansen, CWI, December 1995
 | 
						|
"""
 | 
						|
 | 
						|
import Qt
 | 
						|
import QuickTime
 | 
						|
import Qd
 | 
						|
import QuickDraw
 | 
						|
import Evt
 | 
						|
import Events
 | 
						|
import Win
 | 
						|
import Windows
 | 
						|
import macfs
 | 
						|
import sys
 | 
						|
 | 
						|
 | 
						|
def main():
 | 
						|
	# skip the toolbox initializations, already done
 | 
						|
	# XXXX Should use gestalt here to check for quicktime version
 | 
						|
	Qt.EnterMovies()
 | 
						|
	
 | 
						|
	# Get the movie file
 | 
						|
	fss, ok = macfs.StandardGetFile(QuickTime.MovieFileType)
 | 
						|
	if not ok:
 | 
						|
		sys.exit(0)
 | 
						|
		
 | 
						|
	# Open the window
 | 
						|
	bounds = (175, 75, 175+160, 75+120)
 | 
						|
	theWindow = Win.NewCWindow(bounds, fss.as_tuple()[2], 1, 0, -1, 0, 0)
 | 
						|
	Qd.SetPort(theWindow)
 | 
						|
	# XXXX Needed? SetGWorld((CGrafPtr)theWindow, nil)
 | 
						|
	
 | 
						|
	playMovieInWindow(theWindow, fss, theWindow.GetWindowPort().portRect)
 | 
						|
	
 | 
						|
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, dummy = Qt.NewMovieFromFile(movieResRef, QuickTime.newMovieActive)
 | 
						|
	return movie
 | 
						|
	
 | 
						|
if __name__ == '__main__':
 | 
						|
	main()
 | 
						|
	
 |