mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +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
				
			
		
							
								
								
									
										71
									
								
								Mac/Demo/quicktime/MovieInWindow.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								Mac/Demo/quicktime/MovieInWindow.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,71 @@ | |||
| """MovieInWindow 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 | ||||
| 
 | ||||
| 
 | ||||
| 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() | ||||
| 	 | ||||
							
								
								
									
										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() | ||||
| 	 | ||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -1160,8 +1160,8 @@ | |||
| f = Function(OSErr, 'NewMovieFromFile', | ||||
|     (Movie, 'theMovie', OutMode), | ||||
|     (short, 'resRefNum', InMode), | ||||
|     (short, 'resId', OutMode), | ||||
|     (StringPtr, 'resName', InMode), | ||||
|     (dummyshortptr, 'resId', InMode), | ||||
|     (dummyStringPtr, 'resName', InMode), | ||||
|     (short, 'newMovieFlags', InMode), | ||||
|     (Boolean, 'dataRefWasChanged', OutMode), | ||||
| ) | ||||
|  | @ -1350,18 +1350,13 @@ | |||
| ) | ||||
| Movie_methods.append(f) | ||||
| 
 | ||||
| f = Method(ComponentInstance, 'NewMovieController', | ||||
| f = Method(MovieController, 'NewMovieController', | ||||
|     (Movie, 'theMovie', InMode), | ||||
|     (Rect_ptr, 'movieRect', InMode), | ||||
|     (long, 'someFlags', InMode), | ||||
| ) | ||||
| Movie_methods.append(f) | ||||
| 
 | ||||
| f = Function(void, 'DisposeMovieController', | ||||
|     (ComponentInstance, 'mc', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| 
 | ||||
| f = Method(OSErr, 'PutMovieOnScrap', | ||||
|     (Movie, 'theMovie', InMode), | ||||
|     (long, 'movieScrapFlags', InMode), | ||||
|  | @ -1443,222 +1438,229 @@ | |||
| ) | ||||
| Track_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCSetMovie', | ||||
| f = Method(ComponentResult, 'MCSetMovie', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (Movie, 'theMovie', InMode), | ||||
|     (WindowPtr, 'movieWindow', InMode), | ||||
|     (Point, 'where', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(Movie, 'MCGetIndMovie', | ||||
| f = Method(Movie, 'MCGetIndMovie', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (short, 'index', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCRemoveMovie', | ||||
| f = Method(ComponentResult, 'MCRemoveMovie', | ||||
|     (MovieController, 'mc', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCIsPlayerEvent', | ||||
| f = Method(ComponentResult, 'MCIsPlayerEvent', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (EventRecord_ptr, 'e', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCSetControllerAttached', | ||||
| f = Method(ComponentResult, 'MCDoAction', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (short, 'action', InMode), | ||||
|     (mcactionparams, 'params', InMode), | ||||
| ) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Method(ComponentResult, 'MCSetControllerAttached', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (Boolean, 'attach', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCIsControllerAttached', | ||||
| f = Method(ComponentResult, 'MCIsControllerAttached', | ||||
|     (MovieController, 'mc', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCSetVisible', | ||||
| f = Method(ComponentResult, 'MCSetVisible', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (Boolean, 'visible', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCGetVisible', | ||||
| f = Method(ComponentResult, 'MCGetVisible', | ||||
|     (MovieController, 'mc', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCGetControllerBoundsRect', | ||||
| f = Method(ComponentResult, 'MCGetControllerBoundsRect', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (Rect, 'bounds', OutMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCSetControllerBoundsRect', | ||||
| f = Method(ComponentResult, 'MCSetControllerBoundsRect', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (Rect_ptr, 'bounds', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(RgnHandle, 'MCGetControllerBoundsRgn', | ||||
| f = Method(RgnHandle, 'MCGetControllerBoundsRgn', | ||||
|     (MovieController, 'mc', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(RgnHandle, 'MCGetWindowRgn', | ||||
| f = Method(RgnHandle, 'MCGetWindowRgn', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (WindowPtr, 'w', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCMovieChanged', | ||||
| f = Method(ComponentResult, 'MCMovieChanged', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (Movie, 'm', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCSetDuration', | ||||
| f = Method(ComponentResult, 'MCSetDuration', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (TimeValue, 'duration', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(TimeValue, 'MCGetCurrentTime', | ||||
| f = Method(TimeValue, 'MCGetCurrentTime', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (TimeScale, 'scale', OutMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCNewAttachedController', | ||||
| f = Method(ComponentResult, 'MCNewAttachedController', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (Movie, 'theMovie', InMode), | ||||
|     (WindowPtr, 'w', InMode), | ||||
|     (Point, 'where', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCDraw', | ||||
| f = Method(ComponentResult, 'MCDraw', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (WindowPtr, 'w', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCActivate', | ||||
| f = Method(ComponentResult, 'MCActivate', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (WindowPtr, 'w', InMode), | ||||
|     (Boolean, 'activate', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCIdle', | ||||
| f = Method(ComponentResult, 'MCIdle', | ||||
|     (MovieController, 'mc', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCKey', | ||||
| f = Method(ComponentResult, 'MCKey', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (SInt8, 'key', InMode), | ||||
|     (long, 'modifiers', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCClick', | ||||
| f = Method(ComponentResult, 'MCClick', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (WindowPtr, 'w', InMode), | ||||
|     (Point, 'where', InMode), | ||||
|     (long, 'when', InMode), | ||||
|     (long, 'modifiers', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCEnableEditing', | ||||
| f = Method(ComponentResult, 'MCEnableEditing', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (Boolean, 'enabled', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(long, 'MCIsEditingEnabled', | ||||
| f = Method(long, 'MCIsEditingEnabled', | ||||
|     (MovieController, 'mc', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(Movie, 'MCCopy', | ||||
| f = Method(Movie, 'MCCopy', | ||||
|     (MovieController, 'mc', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(Movie, 'MCCut', | ||||
| f = Method(Movie, 'MCCut', | ||||
|     (MovieController, 'mc', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCPaste', | ||||
| f = Method(ComponentResult, 'MCPaste', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (Movie, 'srcMovie', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCClear', | ||||
| f = Method(ComponentResult, 'MCClear', | ||||
|     (MovieController, 'mc', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCUndo', | ||||
| f = Method(ComponentResult, 'MCUndo', | ||||
|     (MovieController, 'mc', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCPositionController', | ||||
| f = Method(ComponentResult, 'MCPositionController', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (Rect_ptr, 'movieRect', InMode), | ||||
|     (Rect_ptr, 'controllerRect', InMode), | ||||
|     (long, 'someFlags', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCGetControllerInfo', | ||||
| f = Method(ComponentResult, 'MCGetControllerInfo', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (long, 'someFlags', OutMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCSetClip', | ||||
| f = Method(ComponentResult, 'MCSetClip', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (RgnHandle, 'theClip', InMode), | ||||
|     (RgnHandle, 'movieClip', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCGetClip', | ||||
| f = Method(ComponentResult, 'MCGetClip', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (RgnHandle, 'theClip', OutMode), | ||||
|     (RgnHandle, 'movieClip', OutMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCDrawBadge', | ||||
| f = Method(ComponentResult, 'MCDrawBadge', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (RgnHandle, 'movieRgn', InMode), | ||||
|     (RgnHandle, 'badgeRgn', OutMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCSetUpEditMenu', | ||||
| f = Method(ComponentResult, 'MCSetUpEditMenu', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (long, 'modifiers', InMode), | ||||
|     (MenuHandle, 'mh', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(ComponentResult, 'MCGetMenuString', | ||||
| f = Method(ComponentResult, 'MCGetMenuString', | ||||
|     (MovieController, 'mc', InMode), | ||||
|     (long, 'modifiers', InMode), | ||||
|     (short, 'item', InMode), | ||||
|     (Str255, 'aString', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| MovieController_methods.append(f) | ||||
| 
 | ||||
| f = Function(TimeBase, 'NewTimeBase', | ||||
| ) | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ | |||
| 
 | ||||
| LONG = "QuickTime" | ||||
| SHORT = "qt" | ||||
| OBJECTS = ("Movie", "Track", "Media", "UserData", "TimeBase") | ||||
| OBJECTS = ("Movie", "Track", "Media", "UserData", "TimeBase", "MovieController") | ||||
| 
 | ||||
| def main(): | ||||
| 	input = "Movies.h" | ||||
|  | @ -38,6 +38,7 @@ def makeblacklistnames(self): | |||
| 			"DisposeTrackMedia",	# ditto | ||||
| 			"DisposeUserData",		# ditto | ||||
| 			"DisposeTimeBase",		# ditto | ||||
| 			"DisposeMovieController", # ditto | ||||
| 			"GetMovieCreationTime",	# type "unsigned long" in C, inparseable | ||||
| 			"GetMovieModificationTime",	# Ditto | ||||
| 			"GetTrackCreationTime",		# ditto | ||||
|  | @ -49,7 +50,6 @@ def makeblacklistnames(self): | |||
| 			"GetUserDataItem", | ||||
| 			"SetUserDataItem", | ||||
| 			"SetTextSampleData", | ||||
| 			"MCDoAction", | ||||
| 			# bgen gets the argument in/out wrong.. | ||||
| 			"AddTextSample", | ||||
| 			"AddTESample", | ||||
|  | @ -95,6 +95,17 @@ def makeblacklisttypes(self): | |||
| 	def makerepairinstructions(self): | ||||
| 		return [ | ||||
| 			([('FSSpec', '*', 'OutMode')], [('FSSpec_ptr', '*', 'InMode')]), | ||||
| 			 | ||||
| 			# Movie controller creation | ||||
| 			([('ComponentInstance', 'NewMovieController', 'ReturnMode')], | ||||
| 			 [('MovieController', '*', 'ReturnMode')]), | ||||
| 			  | ||||
| 			# NewMovieFromFile | ||||
| 			([('short', 'resId', 'OutMode'), ('StringPtr', 'resName', 'InMode')], | ||||
| 			 [('dummyshortptr', 'resId', 'InMode'), ('dummyStringPtr', 'resName', 'InMode')]), | ||||
| 			  | ||||
| 			# MCDoAction | ||||
| 			([('void', 'params', 'OutMode')], [('mcactionparams', 'params', 'InMode')]), | ||||
| 			] | ||||
| 			 | ||||
| if __name__ == "__main__": | ||||
|  |  | |||
|  | @ -3,6 +3,8 @@ | |||
| # The function specifications are generated by scanning the mamager's header file, | ||||
| # using the "scantools" package (customized for this particular manager). | ||||
| 
 | ||||
| #error missing SetActionFilter | ||||
| 
 | ||||
| import string | ||||
| 
 | ||||
| # Declarations that change for each manager | ||||
|  | @ -39,6 +41,8 @@ | |||
| staticforward int TrackObj_Convert(PyObject *, Track *); | ||||
| staticforward PyObject *MovieObj_New(Movie); | ||||
| staticforward int MovieObj_Convert(PyObject *, Movie *); | ||||
| staticforward PyObject *MovieCtlObj_New(MovieController); | ||||
| staticforward int MovieCtlObj_Convert(PyObject *, MovieController *); | ||||
| 
 | ||||
| 
 | ||||
| """ | ||||
|  | @ -49,6 +53,7 @@ | |||
| Media = OpaqueByValueType('Media', 'MediaObj') | ||||
| UserData = OpaqueByValueType('UserData', 'UserDataObj') | ||||
| TimeBase = OpaqueByValueType('TimeBase', 'TimeBaseObj') | ||||
| MovieController = OpaqueByValueType('MovieController', 'MovieCtlObj') | ||||
| 
 | ||||
| # Other opaque objects | ||||
| Component = OpaqueByValueType('Component', 'CmpObj') | ||||
|  | @ -58,10 +63,6 @@ | |||
| ComponentInstance = OpaqueByValueType('ComponentInstance', 'CmpInstObj') | ||||
| MediaHandler = OpaqueByValueType('MediaHandler', 'CmpInstObj') | ||||
| DataHandler = OpaqueByValueType('DataHandler', 'CmpInstObj') | ||||
| # XXXX The next one should really be a full-fledged object here, but the | ||||
| #      type is sometimes specified as MovieController and some times as | ||||
| #      ComponentInstance. | ||||
| MovieController = OpaqueByValueType('MovieController', 'CmpInstObj') | ||||
| 
 | ||||
| RgnHandle = OpaqueByValueType("RgnHandle", "ResObj") | ||||
| PicHandle = OpaqueByValueType("PicHandle", "ResObj") | ||||
|  | @ -91,8 +92,12 @@ | |||
| ComponentResult = Type("ComponentResult", "l") | ||||
| HandlerError = Type("HandlerError", "l") | ||||
| Ptr = InputOnlyType("Ptr", "s") | ||||
| StringPtr = InputOnlyType("StringPtr", "s") | ||||
| StringPtr = Type("StringPtr", "s") | ||||
| mcactionparams = InputOnlyType("void *", "s") | ||||
| 
 | ||||
| # Could-not-be-bothered-types (NewMovieFromFile) | ||||
| dummyshortptr = FakeType('(short *)0') | ||||
| dummyStringPtr = FakeType('(StringPtr)0') | ||||
| 
 | ||||
| class MovieObjectDefinition(GlobalObjectDefinition): | ||||
| 	def outputCheckNewArg(self): | ||||
|  | @ -139,6 +144,15 @@ def outputCheckNewArg(self): | |||
| 	def outputFreeIt(self, itselfname): | ||||
| 		Output("DisposeTimeBase(%s);", itselfname) | ||||
| 
 | ||||
| class MovieCtlObjectDefinition(GlobalObjectDefinition): | ||||
| 	def outputCheckNewArg(self): | ||||
| 		Output("""if (itself == NULL) { | ||||
| 					PyErr_SetString(Qt_Error,"Cannot create null MovieController"); | ||||
| 					return NULL; | ||||
| 				}""") | ||||
| 	def outputFreeIt(self, itselfname): | ||||
| 		Output("DisposeMovieController(%s);", itselfname) | ||||
| 
 | ||||
| # From here on it's basically all boiler plate... | ||||
| 
 | ||||
| # Create the generator groups and link them | ||||
|  | @ -148,7 +162,9 @@ def outputFreeIt(self, itselfname): | |||
| Media_object = MediaObjectDefinition('Media', 'MediaObj', 'Media') | ||||
| UserData_object = UserDataObjectDefinition('UserData', 'UserDataObj', 'UserData') | ||||
| TimeBase_object = TimeBaseObjectDefinition('TimeBase', 'TimeBaseObj', 'TimeBase') | ||||
| MovieController_object = MovieCtlObjectDefinition('MovieController', 'MovieCtlObj', 'MovieController') | ||||
| 
 | ||||
| module.addobject(MovieController_object) | ||||
| module.addobject(TimeBase_object) | ||||
| module.addobject(UserData_object) | ||||
| module.addobject(Media_object) | ||||
|  | @ -161,6 +177,7 @@ def outputFreeIt(self, itselfname): | |||
| 
 | ||||
| # Create and populate the lists | ||||
| functions = [] | ||||
| MovieController_methods = [] | ||||
| TimeBase_methods = [] | ||||
| UserData_methods = [] | ||||
| Media_methods = [] | ||||
|  | @ -168,9 +185,33 @@ def outputFreeIt(self, itselfname): | |||
| Movie_methods = [] | ||||
| execfile(INPUTFILE) | ||||
| 
 | ||||
| # | ||||
| # Some functions from ImageCompression.h that we need: | ||||
| ICMAlignmentProcRecordPtr = FakeType('(ICMAlignmentProcRecordPtr)0') | ||||
| dummyRect = FakeType('(Rect *)0') | ||||
| 
 | ||||
| f = Function(void, 'AlignWindow', | ||||
| 	(WindowPtr, 'wp', InMode), | ||||
| 	(Boolean, 'front', InMode), | ||||
| 	(dummyRect, 'alignmentRect', InMode), | ||||
| 	(ICMAlignmentProcRecordPtr, 'alignmentProc', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| 
 | ||||
| f = Function(void, 'DragAlignedWindow', | ||||
| 	(WindowPtr, 'wp', InMode), | ||||
| 	(Point, 'startPt', InMode), | ||||
| 	(Rect_ptr, 'boundsRect', InMode), | ||||
| 	(dummyRect, 'alignmentRect', InMode), | ||||
| 	(ICMAlignmentProcRecordPtr, 'alignmentProc', InMode), | ||||
| ) | ||||
| functions.append(f) | ||||
| 
 | ||||
| 
 | ||||
| # add the populated lists to the generator groups | ||||
| # (in a different wordl the scan program would generate this) | ||||
| for f in functions: module.add(f) | ||||
| for f in MovieController_methods: MovieController_object.add(f) | ||||
| for f in TimeBase_methods: TimeBase_object.add(f) | ||||
| for f in UserData_methods: UserData_object.add(f) | ||||
| for f in Media_methods: Media_object.add(f) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jack Jansen
						Jack Jansen