mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	It now actually works. Also, MovieInWindow and VerySimplePlayer
example programs translated to python and added.
This commit is contained in:
		
							parent
							
								
									232f3cd190
								
							
						
					
					
						commit
						9cfea10bf2
					
				
					 6 changed files with 1147 additions and 870 deletions
				
			
		
							
								
								
									
										97
									
								
								Mac/Demo/quicktime/VerySimplePlayer.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								Mac/Demo/quicktime/VerySimplePlayer.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,97 @@ | |||
| """VerySimplePlayer converted to python | ||||
| 
 | ||||
| Jack Jansen, CWI, December 1995 | ||||
| """ | ||||
| 
 | ||||
| import addpack | ||||
| addpack.addpack(':Tools:bgen:qt') | ||||
| addpack.addpack(':Tools:bgen:qd') | ||||
| addpack.addpack(':Tools:bgen:evt') | ||||
| addpack.addpack(':Tools:bgen:win') | ||||
| import Qt | ||||
| import QuickTime | ||||
| import Qd | ||||
| import QuickDraw | ||||
| import Evt | ||||
| import Events | ||||
| import Win | ||||
| import Windows | ||||
| import macfs | ||||
| import sys | ||||
| 
 | ||||
| # XXXX maxbounds = (40, 40, 1000, 1000) | ||||
| 
 | ||||
| def main(): | ||||
| 	print 'hello world' # XXXX | ||||
| 	# 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], 0, 0, -1, 1, 0) | ||||
| 	# XXXX Needed? SetGWorld((CGrafPtr)theWindow, nil) | ||||
| 	Qd.SetPort(theWindow) | ||||
| 	 | ||||
| 	# Get the movie | ||||
| 	theMovie = loadMovie(fss) | ||||
| 	 | ||||
| 	# Relocate to (0, 0) | ||||
| 	bounds = theMovie.GetMovieBox() | ||||
| 	bounds = 0, 0, bounds[2]-bounds[0], bounds[3]-bounds[1] | ||||
| 	theMovie.SetMovieBox(bounds) | ||||
| 	 | ||||
| 	# Create a controller | ||||
| 	theController = theMovie.NewMovieController(bounds, QuickTime.mcTopLeftMovie) | ||||
| 	 | ||||
| 	# Get movie size and update window parameters | ||||
| 	rv, bounds = theController.MCGetControllerBoundsRect() | ||||
| 	theWindow.SizeWindow(bounds[2], bounds[3], 0)   # XXXX or [3] [2]? | ||||
| 	Qt.AlignWindow(theWindow, 0) | ||||
| 	theWindow.ShowWindow() | ||||
| 	 | ||||
| 	# XXXX MCDoAction(theController, mcActionSetGrowBoxBounds, &maxBounds) | ||||
| 	theController.MCDoAction(QuickTime.mcActionSetKeysEnabled, '1') | ||||
| 	 | ||||
| 	# XXXX MCSetActionFilterWithRefCon(theController, movieControllerEventFilter, (long)theWindow) | ||||
| 	 | ||||
| 	done = 0 | ||||
| 	while not done: | ||||
| 		gotone, evt = Evt.WaitNextEvent(-1, 0) | ||||
| 		(what, message, when, where, modifiers) = evt | ||||
| ##		print what, message, when, where, modifiers # XXXX | ||||
| 		 | ||||
| 		if theController.MCIsPlayerEvent(evt): | ||||
| 			continue | ||||
| 			 | ||||
| 		if what == Events.mouseDown: | ||||
| 			part, whichWindow = Win.FindWindow(where) | ||||
| 			if part == Windows.inGoAway: | ||||
| 				done = whichWindow.TrackGoAway(where) | ||||
| 			elif part == Windows.inDrag: | ||||
| 				Qt.DragAlignedWindow(whichWindow, where, (0, 0, 4000, 4000)) | ||||
| 		elif what == Events.updateEvt: | ||||
| 			whichWindow = Win.WhichWindow(message) | ||||
| 			if not whichWindow: | ||||
| 				# Probably the console window. Print something, hope it helps. | ||||
| 				print 'update' | ||||
| 			else: | ||||
| 				Qd.SetPort(whichWindow) | ||||
| 				whichWindow.BeginUpdate() | ||||
| 				Qd.EraseRect(whichWindow.GetWindowPort().portRect) | ||||
| 				whichWindow.EndUpdate() | ||||
| 			 | ||||
| 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() | ||||
| 	 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jack Jansen
						Jack Jansen