Move setting of ioready 'wait' earlier in call chain, to
[python/dscho.git] / Mac / Modules / qt / qtscan.py
blob86ddd542eecf811c20e968fb64e57d15437e6487
1 # Scan an Apple header file, generating a Python file of generator calls.
3 import sys
4 import os
5 from bgenlocations import TOOLBOXDIR, BGENDIR
6 sys.path.append(BGENDIR)
7 from scantools import Scanner
9 LONG = "QuickTime"
10 SHORT = "qt"
11 OBJECTS = ("Movie", "Track", "Media", "UserData", "TimeBase", "MovieController")
13 def main():
14 input = "Movies.h"
15 output = SHORT + "gen.py"
16 defsoutput = TOOLBOXDIR + LONG + ".py"
17 scanner = MyScanner(input, output, defsoutput)
18 scanner.scan()
19 scanner.close()
20 print "=== Testing definitions output code ==="
21 execfile(defsoutput, {}, {})
22 print "=== Done scanning and generating, now importing the generated code... ==="
23 exec "import " + SHORT + "support"
24 print "=== Done. It's up to you to compile it now! ==="
26 class MyScanner(Scanner):
28 def destination(self, type, name, arglist):
29 classname = "Function"
30 listname = "functions"
31 if arglist:
32 t, n, m = arglist[0]
33 if t in OBJECTS and m == "InMode":
34 classname = "Method"
35 listname = t + "_methods"
36 return classname, listname
38 def writeinitialdefs(self):
39 self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
41 def makeblacklistnames(self):
42 return [
43 "DisposeMovie", # Done on python-object disposal
44 "DisposeMovieTrack", # ditto
45 "DisposeTrackMedia", # ditto
46 "DisposeUserData", # ditto
47 # "DisposeTimeBase", # ditto
48 "DisposeMovieController", # ditto
50 # The following 4 use 'void *' in an uncontrolled way
51 # TBD when I've read the manual...
52 "GetUserDataItem",
53 "SetUserDataItem",
54 "SetTextSampleData",
55 "BeginFullScreen",
56 # bgen gets the argument in/out wrong..
57 "AddTextSample",
58 "AddTESample",
59 "AddHiliteSample",
60 "HiliteTextSample",
62 "MakeTrackTimeTable", # Uses long * return?
63 "MakeMediaTimeTable", # ditto
64 ## "VideoMediaGetStallCount", # Undefined in CW Pro 3 library
65 # OS8 only:
66 'SpriteMediaGetIndImageProperty', # XXXX Why isn't this in carbon?
67 'CheckQuickTimeRegistration',
68 'SetMovieAnchorDataRef',
69 'GetMovieAnchorDataRef',
70 'GetMovieLoadState',
71 'OpenADataHandler',
72 'MovieMediaGetCurrentMovieProperty',
73 'MovieMediaGetCurrentTrackProperty',
74 'MovieMediaGetChildMovieDataReference',
75 'MovieMediaSetChildMovieDataReference',
76 'MovieMediaLoadChildMovieFromDataReference',
77 'Media3DGetViewObject',
81 def makeblacklisttypes(self):
82 return [
83 # I don't think we want to do these
84 "QTSyncTaskPtr",
85 # We dont do callbacks yet, so no need for these
86 "QTCallBack",
87 # Skipped for now, due to laziness
88 "TrackEditState",
89 "MovieEditState",
90 "MatrixRecord",
91 "MatrixRecord_ptr",
92 "SampleReferencePtr",
93 "QTTweener",
95 # Routine pointers, not yet.
96 "MoviesErrorUPP",
97 "MoviePreviewCallOutUPP",
98 "MovieDrawingCompleteUPP",
99 "QTCallBackUPP",
100 "TextMediaUPP",
101 "MovieProgressUPP",
102 "MovieRgnCoverUPP",
103 "MCActionFilterUPP",
104 "MCActionFilterWithRefConUPP",
105 "GetMovieUPP",
106 "ModalFilterUPP",
107 "TrackTransferUPP",
108 "MoviePrePrerollCompleteUPP",
109 "MovieExecuteWiredActionsUPP",
110 "QTBandwidthNotificationUPP",
111 "DoMCActionUPP",
113 "SampleReference64Ptr", # Don't know what this does, yet
114 "QTRuntimeSpriteDescPtr",
115 "QTBandwidthReference",
116 "QTScheduledBandwidthReference",
117 "QTAtomContainer",
118 "SpriteWorld",
119 "Sprite",
122 def makerepairinstructions(self):
123 return [
124 ([('FSSpec', '*', 'OutMode')], [('FSSpec_ptr', '*', 'InMode')]),
126 # Movie controller creation
127 ([('ComponentInstance', 'NewMovieController', 'ReturnMode')],
128 [('MovieController', '*', 'ReturnMode')]),
130 # NewMovieFromFile
131 ([('short', 'resId', 'OutMode'), ('StringPtr', 'resName', 'InMode')],
132 [('short', 'resId', 'InOutMode'), ('dummyStringPtr', 'resName', 'InMode')]),
134 # MCDoAction and more
135 ([('void', '*', 'OutMode')], [('mcactionparams', '*', 'InMode')]),
137 # SetTimeBaseZero. Does not handle NULLs, unfortunately
138 ([('TimeRecord', 'zero', 'OutMode')], [('TimeRecord', 'zero', 'InMode')]),
140 # ConvertTime and ConvertTimeScale
141 ([('TimeRecord', 'inout', 'OutMode')], [('TimeRecord', 'inout', 'InOutMode')]),
142 ([('TimeRecord', 'theTime', 'OutMode')], [('TimeRecord', 'theTime', 'InOutMode')]),
144 # AddTime and SubtractTime
145 ([('TimeRecord', 'dst', 'OutMode')], [('TimeRecord', 'dst', 'InOutMode')]),
147 # Funny definitions
148 ([('char_ptr', '*', 'InMode')], [('stringptr', '*', 'InMode')]),
149 ([('FSSpecPtr', '*', 'InMode')], [('FSSpec_ptr', '*', 'InMode')]),
150 ([('unsigned_char', 'swfVersion', 'OutMode')], [('UInt8', 'swfVersion', 'OutMode')]),
153 if __name__ == "__main__":
154 main()