It now actually works. Also, MovieInWindow and VerySimplePlayer
example programs translated to python and added.
This commit is contained in:
parent
232f3cd190
commit
9cfea10bf2
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 @@ functions.append(f)
|
|||||||
f = Function(OSErr, 'NewMovieFromFile',
|
f = Function(OSErr, 'NewMovieFromFile',
|
||||||
(Movie, 'theMovie', OutMode),
|
(Movie, 'theMovie', OutMode),
|
||||||
(short, 'resRefNum', InMode),
|
(short, 'resRefNum', InMode),
|
||||||
(short, 'resId', OutMode),
|
(dummyshortptr, 'resId', InMode),
|
||||||
(StringPtr, 'resName', InMode),
|
(dummyStringPtr, 'resName', InMode),
|
||||||
(short, 'newMovieFlags', InMode),
|
(short, 'newMovieFlags', InMode),
|
||||||
(Boolean, 'dataRefWasChanged', OutMode),
|
(Boolean, 'dataRefWasChanged', OutMode),
|
||||||
)
|
)
|
||||||
@ -1350,18 +1350,13 @@ f = Method(ComponentResult, 'GetMovieStatus',
|
|||||||
)
|
)
|
||||||
Movie_methods.append(f)
|
Movie_methods.append(f)
|
||||||
|
|
||||||
f = Method(ComponentInstance, 'NewMovieController',
|
f = Method(MovieController, 'NewMovieController',
|
||||||
(Movie, 'theMovie', InMode),
|
(Movie, 'theMovie', InMode),
|
||||||
(Rect_ptr, 'movieRect', InMode),
|
(Rect_ptr, 'movieRect', InMode),
|
||||||
(long, 'someFlags', InMode),
|
(long, 'someFlags', InMode),
|
||||||
)
|
)
|
||||||
Movie_methods.append(f)
|
Movie_methods.append(f)
|
||||||
|
|
||||||
f = Function(void, 'DisposeMovieController',
|
|
||||||
(ComponentInstance, 'mc', InMode),
|
|
||||||
)
|
|
||||||
functions.append(f)
|
|
||||||
|
|
||||||
f = Method(OSErr, 'PutMovieOnScrap',
|
f = Method(OSErr, 'PutMovieOnScrap',
|
||||||
(Movie, 'theMovie', InMode),
|
(Movie, 'theMovie', InMode),
|
||||||
(long, 'movieScrapFlags', InMode),
|
(long, 'movieScrapFlags', InMode),
|
||||||
@ -1443,222 +1438,229 @@ f = Method(void, 'GetTrackLoadSettings',
|
|||||||
)
|
)
|
||||||
Track_methods.append(f)
|
Track_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCSetMovie',
|
f = Method(ComponentResult, 'MCSetMovie',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(Movie, 'theMovie', InMode),
|
(Movie, 'theMovie', InMode),
|
||||||
(WindowPtr, 'movieWindow', InMode),
|
(WindowPtr, 'movieWindow', InMode),
|
||||||
(Point, 'where', InMode),
|
(Point, 'where', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(Movie, 'MCGetIndMovie',
|
f = Method(Movie, 'MCGetIndMovie',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(short, 'index', InMode),
|
(short, 'index', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCRemoveMovie',
|
f = Method(ComponentResult, 'MCRemoveMovie',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCIsPlayerEvent',
|
f = Method(ComponentResult, 'MCIsPlayerEvent',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(EventRecord_ptr, 'e', 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),
|
(MovieController, 'mc', InMode),
|
||||||
(Boolean, 'attach', InMode),
|
(Boolean, 'attach', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCIsControllerAttached',
|
f = Method(ComponentResult, 'MCIsControllerAttached',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCSetVisible',
|
f = Method(ComponentResult, 'MCSetVisible',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(Boolean, 'visible', InMode),
|
(Boolean, 'visible', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCGetVisible',
|
f = Method(ComponentResult, 'MCGetVisible',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCGetControllerBoundsRect',
|
f = Method(ComponentResult, 'MCGetControllerBoundsRect',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(Rect, 'bounds', OutMode),
|
(Rect, 'bounds', OutMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCSetControllerBoundsRect',
|
f = Method(ComponentResult, 'MCSetControllerBoundsRect',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(Rect_ptr, 'bounds', InMode),
|
(Rect_ptr, 'bounds', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(RgnHandle, 'MCGetControllerBoundsRgn',
|
f = Method(RgnHandle, 'MCGetControllerBoundsRgn',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(RgnHandle, 'MCGetWindowRgn',
|
f = Method(RgnHandle, 'MCGetWindowRgn',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(WindowPtr, 'w', InMode),
|
(WindowPtr, 'w', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCMovieChanged',
|
f = Method(ComponentResult, 'MCMovieChanged',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(Movie, 'm', InMode),
|
(Movie, 'm', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCSetDuration',
|
f = Method(ComponentResult, 'MCSetDuration',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(TimeValue, 'duration', InMode),
|
(TimeValue, 'duration', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(TimeValue, 'MCGetCurrentTime',
|
f = Method(TimeValue, 'MCGetCurrentTime',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(TimeScale, 'scale', OutMode),
|
(TimeScale, 'scale', OutMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCNewAttachedController',
|
f = Method(ComponentResult, 'MCNewAttachedController',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(Movie, 'theMovie', InMode),
|
(Movie, 'theMovie', InMode),
|
||||||
(WindowPtr, 'w', InMode),
|
(WindowPtr, 'w', InMode),
|
||||||
(Point, 'where', InMode),
|
(Point, 'where', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCDraw',
|
f = Method(ComponentResult, 'MCDraw',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(WindowPtr, 'w', InMode),
|
(WindowPtr, 'w', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCActivate',
|
f = Method(ComponentResult, 'MCActivate',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(WindowPtr, 'w', InMode),
|
(WindowPtr, 'w', InMode),
|
||||||
(Boolean, 'activate', InMode),
|
(Boolean, 'activate', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCIdle',
|
f = Method(ComponentResult, 'MCIdle',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCKey',
|
f = Method(ComponentResult, 'MCKey',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(SInt8, 'key', InMode),
|
(SInt8, 'key', InMode),
|
||||||
(long, 'modifiers', InMode),
|
(long, 'modifiers', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCClick',
|
f = Method(ComponentResult, 'MCClick',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(WindowPtr, 'w', InMode),
|
(WindowPtr, 'w', InMode),
|
||||||
(Point, 'where', InMode),
|
(Point, 'where', InMode),
|
||||||
(long, 'when', InMode),
|
(long, 'when', InMode),
|
||||||
(long, 'modifiers', InMode),
|
(long, 'modifiers', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCEnableEditing',
|
f = Method(ComponentResult, 'MCEnableEditing',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(Boolean, 'enabled', InMode),
|
(Boolean, 'enabled', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(long, 'MCIsEditingEnabled',
|
f = Method(long, 'MCIsEditingEnabled',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(Movie, 'MCCopy',
|
f = Method(Movie, 'MCCopy',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(Movie, 'MCCut',
|
f = Method(Movie, 'MCCut',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCPaste',
|
f = Method(ComponentResult, 'MCPaste',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(Movie, 'srcMovie', InMode),
|
(Movie, 'srcMovie', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCClear',
|
f = Method(ComponentResult, 'MCClear',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCUndo',
|
f = Method(ComponentResult, 'MCUndo',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCPositionController',
|
f = Method(ComponentResult, 'MCPositionController',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(Rect_ptr, 'movieRect', InMode),
|
(Rect_ptr, 'movieRect', InMode),
|
||||||
(Rect_ptr, 'controllerRect', InMode),
|
(Rect_ptr, 'controllerRect', InMode),
|
||||||
(long, 'someFlags', InMode),
|
(long, 'someFlags', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCGetControllerInfo',
|
f = Method(ComponentResult, 'MCGetControllerInfo',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(long, 'someFlags', OutMode),
|
(long, 'someFlags', OutMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCSetClip',
|
f = Method(ComponentResult, 'MCSetClip',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(RgnHandle, 'theClip', InMode),
|
(RgnHandle, 'theClip', InMode),
|
||||||
(RgnHandle, 'movieClip', InMode),
|
(RgnHandle, 'movieClip', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCGetClip',
|
f = Method(ComponentResult, 'MCGetClip',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(RgnHandle, 'theClip', OutMode),
|
(RgnHandle, 'theClip', OutMode),
|
||||||
(RgnHandle, 'movieClip', OutMode),
|
(RgnHandle, 'movieClip', OutMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCDrawBadge',
|
f = Method(ComponentResult, 'MCDrawBadge',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(RgnHandle, 'movieRgn', InMode),
|
(RgnHandle, 'movieRgn', InMode),
|
||||||
(RgnHandle, 'badgeRgn', OutMode),
|
(RgnHandle, 'badgeRgn', OutMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCSetUpEditMenu',
|
f = Method(ComponentResult, 'MCSetUpEditMenu',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(long, 'modifiers', InMode),
|
(long, 'modifiers', InMode),
|
||||||
(MenuHandle, 'mh', InMode),
|
(MenuHandle, 'mh', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(ComponentResult, 'MCGetMenuString',
|
f = Method(ComponentResult, 'MCGetMenuString',
|
||||||
(MovieController, 'mc', InMode),
|
(MovieController, 'mc', InMode),
|
||||||
(long, 'modifiers', InMode),
|
(long, 'modifiers', InMode),
|
||||||
(short, 'item', InMode),
|
(short, 'item', InMode),
|
||||||
(Str255, 'aString', InMode),
|
(Str255, 'aString', InMode),
|
||||||
)
|
)
|
||||||
functions.append(f)
|
MovieController_methods.append(f)
|
||||||
|
|
||||||
f = Function(TimeBase, 'NewTimeBase',
|
f = Function(TimeBase, 'NewTimeBase',
|
||||||
)
|
)
|
||||||
|
@ -6,7 +6,7 @@ from scantools import Scanner
|
|||||||
|
|
||||||
LONG = "QuickTime"
|
LONG = "QuickTime"
|
||||||
SHORT = "qt"
|
SHORT = "qt"
|
||||||
OBJECTS = ("Movie", "Track", "Media", "UserData", "TimeBase")
|
OBJECTS = ("Movie", "Track", "Media", "UserData", "TimeBase", "MovieController")
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
input = "Movies.h"
|
input = "Movies.h"
|
||||||
@ -38,6 +38,7 @@ class MyScanner(Scanner):
|
|||||||
"DisposeTrackMedia", # ditto
|
"DisposeTrackMedia", # ditto
|
||||||
"DisposeUserData", # ditto
|
"DisposeUserData", # ditto
|
||||||
"DisposeTimeBase", # ditto
|
"DisposeTimeBase", # ditto
|
||||||
|
"DisposeMovieController", # ditto
|
||||||
"GetMovieCreationTime", # type "unsigned long" in C, inparseable
|
"GetMovieCreationTime", # type "unsigned long" in C, inparseable
|
||||||
"GetMovieModificationTime", # Ditto
|
"GetMovieModificationTime", # Ditto
|
||||||
"GetTrackCreationTime", # ditto
|
"GetTrackCreationTime", # ditto
|
||||||
@ -49,7 +50,6 @@ class MyScanner(Scanner):
|
|||||||
"GetUserDataItem",
|
"GetUserDataItem",
|
||||||
"SetUserDataItem",
|
"SetUserDataItem",
|
||||||
"SetTextSampleData",
|
"SetTextSampleData",
|
||||||
"MCDoAction",
|
|
||||||
# bgen gets the argument in/out wrong..
|
# bgen gets the argument in/out wrong..
|
||||||
"AddTextSample",
|
"AddTextSample",
|
||||||
"AddTESample",
|
"AddTESample",
|
||||||
@ -95,6 +95,17 @@ class MyScanner(Scanner):
|
|||||||
def makerepairinstructions(self):
|
def makerepairinstructions(self):
|
||||||
return [
|
return [
|
||||||
([('FSSpec', '*', 'OutMode')], [('FSSpec_ptr', '*', 'InMode')]),
|
([('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__":
|
if __name__ == "__main__":
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
# The function specifications are generated by scanning the mamager's header file,
|
# The function specifications are generated by scanning the mamager's header file,
|
||||||
# using the "scantools" package (customized for this particular manager).
|
# using the "scantools" package (customized for this particular manager).
|
||||||
|
|
||||||
|
#error missing SetActionFilter
|
||||||
|
|
||||||
import string
|
import string
|
||||||
|
|
||||||
# Declarations that change for each manager
|
# Declarations that change for each manager
|
||||||
@ -39,6 +41,8 @@ staticforward PyObject *TrackObj_New(Track);
|
|||||||
staticforward int TrackObj_Convert(PyObject *, Track *);
|
staticforward int TrackObj_Convert(PyObject *, Track *);
|
||||||
staticforward PyObject *MovieObj_New(Movie);
|
staticforward PyObject *MovieObj_New(Movie);
|
||||||
staticforward int MovieObj_Convert(PyObject *, Movie *);
|
staticforward int MovieObj_Convert(PyObject *, Movie *);
|
||||||
|
staticforward PyObject *MovieCtlObj_New(MovieController);
|
||||||
|
staticforward int MovieCtlObj_Convert(PyObject *, MovieController *);
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@ -49,6 +53,7 @@ Track = OpaqueByValueType('Track', 'TrackObj')
|
|||||||
Media = OpaqueByValueType('Media', 'MediaObj')
|
Media = OpaqueByValueType('Media', 'MediaObj')
|
||||||
UserData = OpaqueByValueType('UserData', 'UserDataObj')
|
UserData = OpaqueByValueType('UserData', 'UserDataObj')
|
||||||
TimeBase = OpaqueByValueType('TimeBase', 'TimeBaseObj')
|
TimeBase = OpaqueByValueType('TimeBase', 'TimeBaseObj')
|
||||||
|
MovieController = OpaqueByValueType('MovieController', 'MovieCtlObj')
|
||||||
|
|
||||||
# Other opaque objects
|
# Other opaque objects
|
||||||
Component = OpaqueByValueType('Component', 'CmpObj')
|
Component = OpaqueByValueType('Component', 'CmpObj')
|
||||||
@ -58,10 +63,6 @@ DataHandlerComponent = OpaqueByValueType('DataHandlerComponent', 'CmpObj')
|
|||||||
ComponentInstance = OpaqueByValueType('ComponentInstance', 'CmpInstObj')
|
ComponentInstance = OpaqueByValueType('ComponentInstance', 'CmpInstObj')
|
||||||
MediaHandler = OpaqueByValueType('MediaHandler', 'CmpInstObj')
|
MediaHandler = OpaqueByValueType('MediaHandler', 'CmpInstObj')
|
||||||
DataHandler = OpaqueByValueType('DataHandler', '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")
|
RgnHandle = OpaqueByValueType("RgnHandle", "ResObj")
|
||||||
PicHandle = OpaqueByValueType("PicHandle", "ResObj")
|
PicHandle = OpaqueByValueType("PicHandle", "ResObj")
|
||||||
@ -91,8 +92,12 @@ mediaHandlerFlagsEnum = Type("mediaHandlerFlagsEnum", "l")
|
|||||||
ComponentResult = Type("ComponentResult", "l")
|
ComponentResult = Type("ComponentResult", "l")
|
||||||
HandlerError = Type("HandlerError", "l")
|
HandlerError = Type("HandlerError", "l")
|
||||||
Ptr = InputOnlyType("Ptr", "s")
|
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):
|
class MovieObjectDefinition(GlobalObjectDefinition):
|
||||||
def outputCheckNewArg(self):
|
def outputCheckNewArg(self):
|
||||||
@ -139,6 +144,15 @@ class TimeBaseObjectDefinition(GlobalObjectDefinition):
|
|||||||
def outputFreeIt(self, itselfname):
|
def outputFreeIt(self, itselfname):
|
||||||
Output("DisposeTimeBase(%s);", 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...
|
# From here on it's basically all boiler plate...
|
||||||
|
|
||||||
# Create the generator groups and link them
|
# Create the generator groups and link them
|
||||||
@ -148,7 +162,9 @@ Track_object = TrackObjectDefinition('Track', 'TrackObj', 'Track')
|
|||||||
Media_object = MediaObjectDefinition('Media', 'MediaObj', 'Media')
|
Media_object = MediaObjectDefinition('Media', 'MediaObj', 'Media')
|
||||||
UserData_object = UserDataObjectDefinition('UserData', 'UserDataObj', 'UserData')
|
UserData_object = UserDataObjectDefinition('UserData', 'UserDataObj', 'UserData')
|
||||||
TimeBase_object = TimeBaseObjectDefinition('TimeBase', 'TimeBaseObj', 'TimeBase')
|
TimeBase_object = TimeBaseObjectDefinition('TimeBase', 'TimeBaseObj', 'TimeBase')
|
||||||
|
MovieController_object = MovieCtlObjectDefinition('MovieController', 'MovieCtlObj', 'MovieController')
|
||||||
|
|
||||||
|
module.addobject(MovieController_object)
|
||||||
module.addobject(TimeBase_object)
|
module.addobject(TimeBase_object)
|
||||||
module.addobject(UserData_object)
|
module.addobject(UserData_object)
|
||||||
module.addobject(Media_object)
|
module.addobject(Media_object)
|
||||||
@ -161,6 +177,7 @@ Method = OSErrMethodGenerator
|
|||||||
|
|
||||||
# Create and populate the lists
|
# Create and populate the lists
|
||||||
functions = []
|
functions = []
|
||||||
|
MovieController_methods = []
|
||||||
TimeBase_methods = []
|
TimeBase_methods = []
|
||||||
UserData_methods = []
|
UserData_methods = []
|
||||||
Media_methods = []
|
Media_methods = []
|
||||||
@ -168,9 +185,33 @@ Track_methods = []
|
|||||||
Movie_methods = []
|
Movie_methods = []
|
||||||
execfile(INPUTFILE)
|
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
|
# add the populated lists to the generator groups
|
||||||
# (in a different wordl the scan program would generate this)
|
# (in a different wordl the scan program would generate this)
|
||||||
for f in functions: module.add(f)
|
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 TimeBase_methods: TimeBase_object.add(f)
|
||||||
for f in UserData_methods: UserData_object.add(f)
|
for f in UserData_methods: UserData_object.add(f)
|
||||||
for f in Media_methods: Media_object.add(f)
|
for f in Media_methods: Media_object.add(f)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user