Fix an amazing number of typos & malformed sentences reported by Detlef
[python/dscho.git] / Mac / Modules / qt / qtscan.py
blobee45c3088e2d749f8f96b79cd8aa40b2cb25d00f
1 # Scan an Apple header file, generating a Python file of generator calls.
3 import sys
4 import os
5 BGENDIR=os.path.join(sys.prefix, ':Tools:bgen:bgen')
6 sys.path.append(BGENDIR)
7 from scantools import Scanner
8 from bgenlocations import TOOLBOXDIR
10 LONG = "QuickTime"
11 SHORT = "qt"
12 OBJECTS = ("Movie", "Track", "Media", "UserData", "TimeBase", "MovieController")
14 def main():
15 input = "Movies.h"
16 output = SHORT + "gen.py"
17 defsoutput = TOOLBOXDIR + LONG + ".py"
18 scanner = MyScanner(input, output, defsoutput)
19 scanner.scan()
20 scanner.close()
21 print "=== Done scanning and generating, now importing the generated code... ==="
22 exec "import " + SHORT + "support"
23 print "=== Done. It's up to you to compile it now! ==="
25 class MyScanner(Scanner):
27 def destination(self, type, name, arglist):
28 classname = "Function"
29 listname = "functions"
30 if arglist:
31 t, n, m = arglist[0]
32 if t in OBJECTS and m == "InMode":
33 classname = "Method"
34 listname = t + "_methods"
35 return classname, listname
37 def writeinitialdefs(self):
38 self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
40 def makeblacklistnames(self):
41 return [
42 "DisposeMovie", # Done on python-object disposal
43 "DisposeMovieTrack", # ditto
44 "DisposeTrackMedia", # ditto
45 "DisposeUserData", # ditto
46 # "DisposeTimeBase", # ditto
47 "DisposeMovieController", # ditto
49 # The following 4 use 'void *' in an uncontrolled way
50 # TBD when I've read the manual...
51 "GetUserDataItem",
52 "SetUserDataItem",
53 "SetTextSampleData",
54 "BeginFullScreen",
55 # bgen gets the argument in/out wrong..
56 "AddTextSample",
57 "AddTESample",
58 "AddHiliteSample",
59 "HiliteTextSample",
60 # Missing in CW11 quicktime library
61 # "SpriteMediaGetDisplayedSampleNumber",
62 # "SpriteMediaGetIndImageDescription",
63 # "SpriteMediaCountImages",
64 # "SpriteMediaCountSprites",
65 # "SpriteMediaHitTestSprites",
66 # "SpriteMediaGetProperty",
67 # "SpriteMediaSetProperty",
68 # "TextMediaSetTextSampleData",
69 # "TextMediaHiliteTextSample",
70 # "TextMediaFindNextText",
71 # "TextMediaAddHiliteSample",
72 # "TextMediaAddTESample",
73 # "TextMediaAddTextSample",
74 # "VideoMediaGetStatistics",
75 # "VideoMediaResetStatistics",
76 # "EndFullScreen",
77 # "NewMovieFromDataRef",
78 # "MCPtInController",
79 # "MCRemoveAMovie",
80 # "MCRemoveAllMovies",
81 # "MCInvalidate",
82 # "InvalidateMovieRegion",
83 # "GetMovieCompositeBufferFlags",
84 # "SetMovieCompositeBufferFlags",
85 # "SetTrackSoundLocalizationSettings",
86 # "GetTrackSoundLocalizationSettings",
87 # "GetMovieNaturalBoundsRect",
89 "MakeTrackTimeTable", # Uses long * return?
90 "MakeMediaTimeTable", # ditto
91 "VideoMediaGetStallCount", # Undefined in CW Pro 3 library
94 def makeblacklisttypes(self):
95 return [
96 # I don't think we want to do these
97 "QTSyncTaskPtr",
98 # We dont do callbacks yet, so no need for these
99 "QTCallBack",
100 # Skipped for now, due to laziness
101 "TrackEditState",
102 "MovieEditState",
103 "MatrixRecord",
104 "MatrixRecord_ptr",
105 "SampleReferencePtr",
106 "QTTweener",
108 # Routine pointers, not yet.
109 "MoviesErrorUPP",
110 "MoviePreviewCallOutUPP",
111 "MovieDrawingCompleteUPP",
112 "QTCallBackUPP",
113 "TextMediaUPP",
114 "MovieProgressUPP",
115 "MovieRgnCoverUPP",
116 "MCActionFilterUPP",
117 "MCActionFilterWithRefConUPP",
118 "GetMovieUPP",
119 "ModalFilterUPP",
120 "TrackTransferUPP",
121 "QTAtomContainer",
122 "SpriteWorld",
123 "Sprite",
126 def makerepairinstructions(self):
127 return [
128 ([('FSSpec', '*', 'OutMode')], [('FSSpec_ptr', '*', 'InMode')]),
130 # Movie controller creation
131 ([('ComponentInstance', 'NewMovieController', 'ReturnMode')],
132 [('MovieController', '*', 'ReturnMode')]),
134 # NewMovieFromFile
135 ([('short', 'resId', 'OutMode'), ('StringPtr', 'resName', 'InMode')],
136 [('short', 'resId', 'InOutMode'), ('dummyStringPtr', 'resName', 'InMode')]),
138 # MCDoAction and more
139 ([('void', '*', 'OutMode')], [('mcactionparams', '*', 'InMode')]),
143 if __name__ == "__main__":
144 main()