Import Upstream version 2.7.18
This commit is contained in:
70
Mac/Demo/quicktime/MovieInWindow.py
Normal file
70
Mac/Demo/quicktime/MovieInWindow.py
Normal file
@@ -0,0 +1,70 @@
|
||||
"""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()
|
||||
92
Mac/Demo/quicktime/VerySimplePlayer.py
Normal file
92
Mac/Demo/quicktime/VerySimplePlayer.py
Normal file
@@ -0,0 +1,92 @@
|
||||
"""VerySimplePlayer 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
|
||||
|
||||
# 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 = EasyDialogs.AskFileForOpen(wanted=File.FSSpec) # Was: QuickTime.MovieFileType
|
||||
if not fss:
|
||||
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(0xffff, 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().GetPortBounds())
|
||||
whichWindow.EndUpdate()
|
||||
|
||||
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()
|
||||
Reference in New Issue
Block a user