annotate Mac/Demo/quicktime/VerySimplePlayer.py @ 5817:48b94de85bf3 legacy-trunk

Extensive changes by AMK.
author Guido van Rossum <guido@python.org>
date Thu, 17 Jul 1997 16:29:42 +0000
parents b7cb6976893d
children fd83212eb8f2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3293
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
1 """VerySimplePlayer converted to python
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
2
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
3 Jack Jansen, CWI, December 1995
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
4 """
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
5
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
6 import Qt
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
7 import QuickTime
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
8 import Qd
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
9 import QuickDraw
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
10 import Evt
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
11 import Events
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
12 import Win
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
13 import Windows
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
14 import macfs
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
15 import sys
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
16
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
17 # XXXX maxbounds = (40, 40, 1000, 1000)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
18
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
19 def main():
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
20 print 'hello world' # XXXX
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
21 # skip the toolbox initializations, already done
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
22 # XXXX Should use gestalt here to check for quicktime version
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
23 Qt.EnterMovies()
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
24
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
25 # Get the movie file
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
26 fss, ok = macfs.StandardGetFile(QuickTime.MovieFileType)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
27 if not ok:
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
28 sys.exit(0)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
29
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
30 # Open the window
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
31 bounds = (175, 75, 175+160, 75+120)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
32 theWindow = Win.NewCWindow(bounds, fss.as_tuple()[2], 0, 0, -1, 1, 0)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
33 # XXXX Needed? SetGWorld((CGrafPtr)theWindow, nil)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
34 Qd.SetPort(theWindow)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
35
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
36 # Get the movie
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
37 theMovie = loadMovie(fss)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
38
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
39 # Relocate to (0, 0)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
40 bounds = theMovie.GetMovieBox()
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
41 bounds = 0, 0, bounds[2]-bounds[0], bounds[3]-bounds[1]
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
42 theMovie.SetMovieBox(bounds)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
43
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
44 # Create a controller
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
45 theController = theMovie.NewMovieController(bounds, QuickTime.mcTopLeftMovie)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
46
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
47 # Get movie size and update window parameters
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
48 rv, bounds = theController.MCGetControllerBoundsRect()
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
49 theWindow.SizeWindow(bounds[2], bounds[3], 0) # XXXX or [3] [2]?
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
50 Qt.AlignWindow(theWindow, 0)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
51 theWindow.ShowWindow()
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
52
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
53 # XXXX MCDoAction(theController, mcActionSetGrowBoxBounds, &maxBounds)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
54 theController.MCDoAction(QuickTime.mcActionSetKeysEnabled, '1')
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
55
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
56 # XXXX MCSetActionFilterWithRefCon(theController, movieControllerEventFilter, (long)theWindow)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
57
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
58 done = 0
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
59 while not done:
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
60 gotone, evt = Evt.WaitNextEvent(-1, 0)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
61 (what, message, when, where, modifiers) = evt
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
62 ## print what, message, when, where, modifiers # XXXX
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
63
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
64 if theController.MCIsPlayerEvent(evt):
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
65 continue
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
66
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
67 if what == Events.mouseDown:
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
68 part, whichWindow = Win.FindWindow(where)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
69 if part == Windows.inGoAway:
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
70 done = whichWindow.TrackGoAway(where)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
71 elif part == Windows.inDrag:
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
72 Qt.DragAlignedWindow(whichWindow, where, (0, 0, 4000, 4000))
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
73 elif what == Events.updateEvt:
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
74 whichWindow = Win.WhichWindow(message)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
75 if not whichWindow:
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
76 # Probably the console window. Print something, hope it helps.
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
77 print 'update'
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
78 else:
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
79 Qd.SetPort(whichWindow)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
80 whichWindow.BeginUpdate()
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
81 Qd.EraseRect(whichWindow.GetWindowPort().portRect)
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
82 whichWindow.EndUpdate()
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
83
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
84 def loadMovie(theFile):
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
85 """Load a movie given an fsspec. Return the movie object"""
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
86 movieResRef = Qt.OpenMovieFile(theFile, 1)
5276
b7cb6976893d NewMovieFromFile has extra parameter and return value
Jack Jansen <jack.jansen@cwi.nl>
parents: 3467
diff changeset
87 movie, d1, d2 = Qt.NewMovieFromFile(movieResRef, 0, QuickTime.newMovieActive)
3293
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
88 return movie
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
89
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
90 if __name__ == '__main__':
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
91 main()
bafc105bc7cd It now actually works. Also, MovieInWindow and VerySimplePlayer
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
92