1 # Scan an Apple header file, generating a Python file of generator calls.
4 addpack
.addpack(':tools:bgen:bgen')
5 from scantools
import Scanner
6 from bgenlocations
import TOOLBOXDIR
10 OBJECTS
= ("Movie", "Track", "Media", "UserData", "TimeBase", "MovieController")
14 output
= SHORT
+ "gen.py"
15 defsoutput
= TOOLBOXDIR
+ LONG
+ ".py"
16 scanner
= MyScanner(input, output
, defsoutput
)
19 print "=== Done scanning and generating, now importing the generated code... ==="
20 exec "import " + SHORT
+ "support"
21 print "=== Done. It's up to you to compile it now! ==="
23 class MyScanner(Scanner
):
25 def destination(self
, type, name
, arglist
):
26 classname
= "Function"
27 listname
= "functions"
30 if t
in OBJECTS
and m
== "InMode":
32 listname
= t
+ "_methods"
33 return classname
, listname
35 def makeblacklistnames(self
):
37 "DisposeMovie", # Done on python-object disposal
38 "DisposeMovieTrack", # ditto
39 "DisposeTrackMedia", # ditto
40 "DisposeUserData", # ditto
41 "DisposeTimeBase", # ditto
42 "DisposeMovieController", # ditto
44 # The following 4 use 'void *' in an uncontrolled way
45 # TBD when I've read the manual...
50 # bgen gets the argument in/out wrong..
55 # Missing in CW11 quicktime library
56 "SpriteMediaGetDisplayedSampleNumber",
57 "SpriteMediaGetIndImageDescription",
58 "SpriteMediaCountImages",
59 "SpriteMediaCountSprites",
60 "SpriteMediaHitTestSprites",
61 "SpriteMediaGetProperty",
62 "SpriteMediaSetProperty",
63 "TextMediaSetTextSampleData",
64 "TextMediaHiliteTextSample",
65 "TextMediaFindNextText",
66 "TextMediaAddHiliteSample",
67 "TextMediaAddTESample",
68 "TextMediaAddTextSample",
69 "VideoMediaGetStatistics",
70 "VideoMediaResetStatistics",
72 "NewMovieFromDataRef",
77 "InvalidateMovieRegion",
78 "GetMovieCompositeBufferFlags",
79 "SetMovieCompositeBufferFlags",
80 "SetTrackSoundLocalizationSettings",
81 "GetTrackSoundLocalizationSettings",
82 "GetMovieNaturalBoundsRect",
85 def makeblacklisttypes(self
):
87 # I don't think we want to do these
89 # We dont do callbacks yet, so no need for these
91 # Skipped for now, due to laziness
100 # Routine pointers, not yet.
102 "MoviePreviewCallOutUPP",
103 "MovieDrawingCompleteUPP",
109 "MCActionFilterWithRefConUPP",
118 def makerepairinstructions(self
):
120 ([('FSSpec', '*', 'OutMode')], [('FSSpec_ptr', '*', 'InMode')]),
122 # Movie controller creation
123 ([('ComponentInstance', 'NewMovieController', 'ReturnMode')],
124 [('MovieController', '*', 'ReturnMode')]),
127 ([('short', 'resId', 'OutMode'), ('StringPtr', 'resName', 'InMode')],
128 [('short', 'resId', 'InOutMode'), ('dummyStringPtr', 'resName', 'InMode')]),
130 # MCDoAction and more
131 ([('void', '*', 'OutMode')], [('mcactionparams', '*', 'InMode')]),
135 if __name__
== "__main__":