79 lines
1.7 KiB
Python
79 lines
1.7 KiB
Python
|
# Scan an Apple header file, generating a Python file of generator calls.
|
||
|
|
||
|
import addpack
|
||
|
addpack.addpack(':tools:bgen:bgen')
|
||
|
from scantools import Scanner
|
||
|
|
||
|
LONG = "QuickTime"
|
||
|
SHORT = "qt"
|
||
|
OBJECT = "Movie"
|
||
|
|
||
|
def main():
|
||
|
input = "Movies.h"
|
||
|
output = SHORT + "gen.py"
|
||
|
defsoutput = LONG + ".py"
|
||
|
scanner = MyScanner(input, output, defsoutput)
|
||
|
scanner.scan()
|
||
|
scanner.close()
|
||
|
print "=== Done scanning and generating, now importing the generated code... ==="
|
||
|
exec "import " + SHORT + "support"
|
||
|
print "=== Done. It's up to you to compile it now! ==="
|
||
|
|
||
|
class MyScanner(Scanner):
|
||
|
|
||
|
def destination(self, type, name, arglist):
|
||
|
classname = "Function"
|
||
|
listname = "functions"
|
||
|
if arglist:
|
||
|
t, n, m = arglist[0]
|
||
|
if t == OBJECT and m == "InMode":
|
||
|
classname = "Method"
|
||
|
listname = "methods"
|
||
|
return classname, listname
|
||
|
|
||
|
def makeblacklistnames(self):
|
||
|
return [
|
||
|
"DisposeMovie", # Done on python-object disposal
|
||
|
"GetMovieCreationTime", # type "unsigned long" in C, inparseable
|
||
|
"GetMovieModificationTime", # Ditto
|
||
|
]
|
||
|
|
||
|
def makeblacklisttypes(self):
|
||
|
return [
|
||
|
"MoviesErrorUPP",
|
||
|
"Track", # XXXX To be done in the future
|
||
|
"Media",
|
||
|
"UserData",
|
||
|
"TimeBase",
|
||
|
"QTCallBack",
|
||
|
"Component",
|
||
|
"TimeRecord",
|
||
|
"TimeRecord_ptr",
|
||
|
"TrackEditState",
|
||
|
"MovieEditState",
|
||
|
"MoviePreviewCallOutUPP",
|
||
|
"CGrafPtr",
|
||
|
"GDHandle",
|
||
|
"MovieDrawingCompleteUPP",
|
||
|
"PixMapHandle",
|
||
|
"MatrixRecord",
|
||
|
"MatrixRecord_ptr",
|
||
|
"QTCallBackUPP",
|
||
|
"TextMediaUPP",
|
||
|
"MovieProgressUPP",
|
||
|
"MovieRgnCoverUPP",
|
||
|
"MCActionFilterUPP",
|
||
|
"MCActionFilterWithRefConUPP",
|
||
|
"SampleDescription",
|
||
|
"SoundDescription",
|
||
|
"TextDescription",
|
||
|
"MusicDescription",
|
||
|
]
|
||
|
|
||
|
def makerepairinstructions(self):
|
||
|
return [
|
||
|
]
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|