summaryrefslogtreecommitdiffstats
path: root/Mac/Modules/qt
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2004-07-18 06:16:08 (GMT)
committerTim Peters <tim.peters@gmail.com>2004-07-18 06:16:08 (GMT)
commit182b5aca27d376b08a2904bed42b751496f932f3 (patch)
treedf13115820dbc879c0fe2eae488c9f8c0215a7da /Mac/Modules/qt
parente6ddc8b20b493fef2e7cffb2e1351fe1d238857e (diff)
downloadcpython-182b5aca27d376b08a2904bed42b751496f932f3.zip
cpython-182b5aca27d376b08a2904bed42b751496f932f3.tar.gz
cpython-182b5aca27d376b08a2904bed42b751496f932f3.tar.bz2
Whitespace normalization, via reindent.py.
Diffstat (limited to 'Mac/Modules/qt')
-rw-r--r--Mac/Modules/qt/qtscan.py604
-rw-r--r--Mac/Modules/qt/qtsupport.py177
-rwxr-xr-xMac/Modules/qt/setup.py14
3 files changed, 397 insertions, 398 deletions
diff --git a/Mac/Modules/qt/qtscan.py b/Mac/Modules/qt/qtscan.py
index b756bfe..a2dba15 100644
--- a/Mac/Modules/qt/qtscan.py
+++ b/Mac/Modules/qt/qtscan.py
@@ -9,311 +9,311 @@ from scantools import Scanner
LONG = "QuickTime"
SHORT = "qt"
HEADERFILES= (
-# "Components.h" -- In Carbon.Cm
- "Movies.h",
- "ImageCompression.h",
- "QuickTimeComponents.h",
-# "ImageCodec.h" -- seems not too useful, and difficult.
-# "IsochronousDataHandlers.h" -- Is this useful?
- "MediaHandlers.h",
-# "QTML.h", -- Windows only, needs separate module
-# "QuickTimeStreaming.h", -- Difficult
-# "QTStreamingComponents.h", -- Needs QTStreaming
- "QuickTimeMusic.h",
-# "QuickTimeVR.h", -- Not done yet
-# "Sound.h", -- In Carbon.Snd
- )
-OBJECTS = ("Movie", "Track", "Media", "UserData", "TimeBase", "MovieController",
- "IdleManager", "SGOutput")
+# "Components.h" -- In Carbon.Cm
+ "Movies.h",
+ "ImageCompression.h",
+ "QuickTimeComponents.h",
+# "ImageCodec.h" -- seems not too useful, and difficult.
+# "IsochronousDataHandlers.h" -- Is this useful?
+ "MediaHandlers.h",
+# "QTML.h", -- Windows only, needs separate module
+# "QuickTimeStreaming.h", -- Difficult
+# "QTStreamingComponents.h", -- Needs QTStreaming
+ "QuickTimeMusic.h",
+# "QuickTimeVR.h", -- Not done yet
+# "Sound.h", -- In Carbon.Snd
+ )
+OBJECTS = ("Movie", "Track", "Media", "UserData", "TimeBase", "MovieController",
+ "IdleManager", "SGOutput")
def main():
- input = HEADERFILES
- output = SHORT + "gen.py"
- defsoutput = TOOLBOXDIR + LONG + ".py"
- scanner = MyScanner(input, output, defsoutput)
- scanner.scan()
- scanner.close()
- scanner.gentypetest(SHORT+"typetest.py")
- print "=== Testing definitions output code ==="
- execfile(defsoutput, {}, {})
- 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! ==="
+ input = HEADERFILES
+ output = SHORT + "gen.py"
+ defsoutput = TOOLBOXDIR + LONG + ".py"
+ scanner = MyScanner(input, output, defsoutput)
+ scanner.scan()
+ scanner.close()
+ scanner.gentypetest(SHORT+"typetest.py")
+ print "=== Testing definitions output code ==="
+ execfile(defsoutput, {}, {})
+ 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 in OBJECTS and m == "InMode":
- classname = "Method"
- listname = t + "_methods"
- return classname, listname
-
- def writeinitialdefs(self):
- self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
- self.defsfile.write("xmlIdentifierUnrecognized = -1\n")
- self.defsfile.write("kControllerMinimum = -0xf777\n")
- self.defsfile.write("notImplementedMusicOSErr = -2071\n")
- self.defsfile.write("cantSendToSynthesizerOSErr = -2072\n")
- self.defsfile.write("cantReceiveFromSynthesizerOSErr = -2073\n")
- self.defsfile.write("illegalVoiceAllocationOSErr = -2074\n")
- self.defsfile.write("illegalPartOSErr = -2075\n")
- self.defsfile.write("illegalChannelOSErr = -2076\n")
- self.defsfile.write("illegalKnobOSErr = -2077\n")
- self.defsfile.write("illegalKnobValueOSErr = -2078\n")
- self.defsfile.write("illegalInstrumentOSErr = -2079\n")
- self.defsfile.write("illegalControllerOSErr = -2080\n")
- self.defsfile.write("midiManagerAbsentOSErr = -2081\n")
- self.defsfile.write("synthesizerNotRespondingOSErr = -2082\n")
- self.defsfile.write("synthesizerOSErr = -2083\n")
- self.defsfile.write("illegalNoteChannelOSErr = -2084\n")
- self.defsfile.write("noteChannelNotAllocatedOSErr = -2085\n")
- self.defsfile.write("tunePlayerFullOSErr = -2086\n")
- self.defsfile.write("tuneParseOSErr = -2087\n")
-
- def makeblacklistnames(self):
- return [
- "xmlIdentifierUnrecognized", # const with incompatible definition
- "DisposeMovie", # Done on python-object disposal
- "DisposeMovieTrack", # ditto
- "DisposeTrackMedia", # ditto
- "DisposeUserData", # ditto
-# "DisposeTimeBase", # ditto
- "DisposeMovieController", # ditto
-
- # The following 4 use 'void *' in an uncontrolled way
- # TBD when I've read the manual...
- "GetUserDataItem",
- "SetUserDataItem",
- "SetTextSampleData",
- "BeginFullScreen",
- # bgen gets the argument in/out wrong..
- "AddTextSample",
- "AddTESample",
- "AddHiliteSample",
- "HiliteTextSample",
-
- "MakeTrackTimeTable", # Uses long * return?
- "MakeMediaTimeTable", # ditto
-## "VideoMediaGetStallCount", # Undefined in CW Pro 3 library
- # OS8 only:
- 'SpriteMediaGetIndImageProperty', # XXXX Why isn't this in carbon?
- 'CheckQuickTimeRegistration',
- 'SetMovieAnchorDataRef',
- 'GetMovieAnchorDataRef',
- 'GetMovieLoadState',
- 'OpenADataHandler',
- 'MovieMediaGetCurrentMovieProperty',
- 'MovieMediaGetCurrentTrackProperty',
- 'MovieMediaGetChildMovieDataReference',
- 'MovieMediaSetChildMovieDataReference',
- 'MovieMediaLoadChildMovieFromDataReference',
- 'Media3DGetViewObject',
-
- # these are ImageCompression blacklists
- "GraphicsExportGetInputPtr",
-
- # QuickTimeComponents
- # These two need some help: the first returns a point to a databuffer that
- # the second disposes. Generate manually?
- "VDCompressDone",
- "VDReleaseCompressBuffer",
- "QTVideoOutputGetGWorldParameters", # How useful is this?
-
- # MediaHandlers
- "MediaMakeMediaTimeTable", # just lazy
- "MediaGetSampleDataPointer", # funny output pointer
-
- # QuickTimeMusic
- "kControllerMinimum",
- # These are artefacts of a macro definition
- "ulen",
- "_ext",
- "x",
- "w1",
- "w2",
- ]
-
- def makeblacklisttypes(self):
- return [
- # I don't think we want to do these
- "QTSyncTaskPtr",
- # We dont do callbacks yet, so no need for these
- "QTCallBack",
- # Skipped for now, due to laziness
- "TrackEditState",
- "MovieEditState",
- "MatrixRecord",
- "MatrixRecord_ptr",
- "SampleReferencePtr",
- "QTTweener",
- "QTErrorReplacementPtr",
- "QTRestrictionSet",
- "QTUUID",
- "QTUUID_ptr",
-
- # Routine pointers, not yet.
- "MoviesErrorUPP",
- "MoviePreviewCallOutUPP",
- "MovieDrawingCompleteUPP",
- "QTCallBackUPP",
- "TextMediaUPP",
- "MovieProgressUPP",
- "MovieRgnCoverUPP",
- "MCActionFilterUPP",
- "MCActionFilterWithRefConUPP",
- "GetMovieUPP",
- "ModalFilterUPP",
- "TrackTransferUPP",
- "MoviePrePrerollCompleteUPP",
- "MovieExecuteWiredActionsUPP",
- "QTBandwidthNotificationUPP",
- "DoMCActionUPP",
- "QTNextTaskNeededSoonerCallbackUPP",
-
- "SampleReference64Ptr", # Don't know what this does, yet
- "QTRuntimeSpriteDescPtr",
- "QTBandwidthReference",
- "QTScheduledBandwidthReference",
- "QTAtomContainer",
- "SpriteWorld",
- "Sprite",
-
- # these are ImageCompression blacklists
- "ICMDataUPP",
- "ICMFlushUPP",
- "ICMCompletionUPP",
- "ICMProgressUPP",
- "StdPixUPP",
- "QDPixUPP",
- "ICMAlignmentUPP",
- "ICMCursorShieldedUPP",
- "ICMMemoryDisposedUPP",
- "ICMConvertDataFormatUPP",
- "ModalFilterYDUPP",
- "FileFilterUPP",
-
- "CodecNameSpecListPtr",
- "CodecInfo",
- "ImageSequence",
- "MatrixRecordPtr",
- "ICMDataProcRecordPtr",
- "OpenCPicParams",
- "ICMProgressProcRecordPtr",
- "ICMAlignmentProcRecordPtr",
- "ICMPixelFormatInfoPtr",
- "ImageSequenceDataSource",
- "ConstStrFileNameParam",
- "ImageTranscodeSequence",
- "ImageFieldSequence",
- "Fract",
- "PixMapPtr",
- "GWorldFlags",
- "void_ptr", # XXX Being lazy, this one is doable.
-
- # These are from QuickTimeComponents
- "CDataHandlerUPP",
- "CharDataHandlerUPP",
- "CommentHandlerUPP",
- "DataHCompletionUPP",
- "'MovieExportGetDataUPP",
- "MovieExportGetPropertyUPP",
- "PreprocessInstructionHandlerUPP",
- "SGModalFilterUPP",
- "StartDocumentHandlerUPP",
- "StartElementHandlerUPP",
- "VdigIntUPP",
- "SGDataUPP",
- "EndDocumentHandlerUPP",
- "EndElementHandlerUPP",
- "VideoBottles", # Record full of UPPs
-
- "SCParams",
- "ICMCompletionProcRecordPtr",
- "DataHVolumeList",
- "DigitizerInfo",
- "SGCompressInfo",
- "SeqGrabExtendedFrameInfoPtr",
- "SeqGrabFrameInfoPtr",
- "TCTextOptionsPtr",
- "SGCompressInfo_ptr",
- "SGDeviceList",
- "TextDisplayData",
- "TimeCodeDef",
- "TimeCodeRecord",
- "TweenRecord",
- "VDGamRecPtr",
- "ToneDescription", # XXXX Just lazy: this one is easy.
- "XMLDoc",
- "UInt64", # XXXX lazy
- "UInt64_ptr", # XXXX lazy
-
- # From MediaHandlers
- "ActionsUPP",
- "PrePrerollCompleteUPP",
- "CodecComponentHandle", # Difficult: handle containing list of components.
- "GetMovieCompleteParams", # Immense struct
- "LevelMeterInfoPtr", # Lazy. Also: can be an output parameter!!
- "MediaEQSpectrumBandsRecordPtr", # ditto
-
- # From QuickTimeMusic
- "MusicMIDISendUPP",
- "MusicOfflineDataUPP",
- "TuneCallBackUPP",
- "TunePlayCallBackUPP",
- "GCPart", # Struct with lots of fields
- "GCPart_ptr",
- "GenericKnobDescription", # Struct with lots of fields
- "KnobDescription", # Struct with lots of fields
- "InstrumentAboutInfo", # Struct, not too difficult
- "NoteChannel", # XXXX Lazy. Could be opaque, I think
- "NoteRequest", # XXXX Lazy. Not-too-difficult struct
- "SynthesizerConnections", # Struct with lots of fields
- "SynthesizerDescription", # Struct with lots of fields
- "TuneStatus", # Struct with lots of fields
-
- ]
-
- def makerepairinstructions(self):
- return [
- ([('FSSpec', '*', 'OutMode')], [('FSSpec_ptr', '*', 'InMode')]),
-
- # Movie controller creation
- ([('ComponentInstance', 'NewMovieController', 'ReturnMode')],
- [('MovieController', '*', 'ReturnMode')]),
-
- # NewMovieFromFile
- ([('short', 'resId', 'OutMode'), ('StringPtr', 'resName', 'InMode')],
- [('short', 'resId', 'InOutMode'), ('dummyStringPtr', 'resName', 'InMode')]),
-
- # MCDoAction and more
- ([('void', '*', 'OutMode')], [('mcactionparams', '*', 'InMode')]),
-
- # SetTimeBaseZero. Does not handle NULLs, unfortunately
- ([('TimeRecord', 'zero', 'OutMode')], [('TimeRecord', 'zero', 'InMode')]),
-
- # ConvertTime and ConvertTimeScale
- ([('TimeRecord', 'inout', 'OutMode')], [('TimeRecord', 'inout', 'InOutMode')]),
- ([('TimeRecord', 'theTime', 'OutMode')], [('TimeRecord', 'theTime', 'InOutMode')]),
-
- # AddTime and SubtractTime
- ([('TimeRecord', 'dst', 'OutMode')], [('TimeRecord', 'dst', 'InOutMode')]),
-
- # Funny definitions
- ([('char_ptr', '*', 'InMode')], [('stringptr', '*', 'InMode')]),
- ([('FSSpecPtr', '*', 'InMode')], [('FSSpec_ptr', '*', 'InMode')]),
- ([('unsigned_char', 'swfVersion', 'OutMode')], [('UInt8', 'swfVersion', 'OutMode')]),
-
- # It seems MusicMIDIPacket if never flagged with const but always used
- # for sending only. If that ever changes this needs to be fixed.
- ([('MusicMIDIPacket', '*', 'OutMode')], [('MusicMIDIPacket_ptr', '*', 'InMode')]),
-
- # QTMusic const-less input parameters
- ([('unsigned_long', 'header', 'OutMode')], [('UnsignedLongPtr', 'header', 'InMode')]),
- ]
-
+ def destination(self, type, name, arglist):
+ classname = "Function"
+ listname = "functions"
+ if arglist:
+ t, n, m = arglist[0]
+ if t in OBJECTS and m == "InMode":
+ classname = "Method"
+ listname = t + "_methods"
+ return classname, listname
+
+ def writeinitialdefs(self):
+ self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
+ self.defsfile.write("xmlIdentifierUnrecognized = -1\n")
+ self.defsfile.write("kControllerMinimum = -0xf777\n")
+ self.defsfile.write("notImplementedMusicOSErr = -2071\n")
+ self.defsfile.write("cantSendToSynthesizerOSErr = -2072\n")
+ self.defsfile.write("cantReceiveFromSynthesizerOSErr = -2073\n")
+ self.defsfile.write("illegalVoiceAllocationOSErr = -2074\n")
+ self.defsfile.write("illegalPartOSErr = -2075\n")
+ self.defsfile.write("illegalChannelOSErr = -2076\n")
+ self.defsfile.write("illegalKnobOSErr = -2077\n")
+ self.defsfile.write("illegalKnobValueOSErr = -2078\n")
+ self.defsfile.write("illegalInstrumentOSErr = -2079\n")
+ self.defsfile.write("illegalControllerOSErr = -2080\n")
+ self.defsfile.write("midiManagerAbsentOSErr = -2081\n")
+ self.defsfile.write("synthesizerNotRespondingOSErr = -2082\n")
+ self.defsfile.write("synthesizerOSErr = -2083\n")
+ self.defsfile.write("illegalNoteChannelOSErr = -2084\n")
+ self.defsfile.write("noteChannelNotAllocatedOSErr = -2085\n")
+ self.defsfile.write("tunePlayerFullOSErr = -2086\n")
+ self.defsfile.write("tuneParseOSErr = -2087\n")
+
+ def makeblacklistnames(self):
+ return [
+ "xmlIdentifierUnrecognized", # const with incompatible definition
+ "DisposeMovie", # Done on python-object disposal
+ "DisposeMovieTrack", # ditto
+ "DisposeTrackMedia", # ditto
+ "DisposeUserData", # ditto
+# "DisposeTimeBase", # ditto
+ "DisposeMovieController", # ditto
+
+ # The following 4 use 'void *' in an uncontrolled way
+ # TBD when I've read the manual...
+ "GetUserDataItem",
+ "SetUserDataItem",
+ "SetTextSampleData",
+ "BeginFullScreen",
+ # bgen gets the argument in/out wrong..
+ "AddTextSample",
+ "AddTESample",
+ "AddHiliteSample",
+ "HiliteTextSample",
+
+ "MakeTrackTimeTable", # Uses long * return?
+ "MakeMediaTimeTable", # ditto
+## "VideoMediaGetStallCount", # Undefined in CW Pro 3 library
+ # OS8 only:
+ 'SpriteMediaGetIndImageProperty', # XXXX Why isn't this in carbon?
+ 'CheckQuickTimeRegistration',
+ 'SetMovieAnchorDataRef',
+ 'GetMovieAnchorDataRef',
+ 'GetMovieLoadState',
+ 'OpenADataHandler',
+ 'MovieMediaGetCurrentMovieProperty',
+ 'MovieMediaGetCurrentTrackProperty',
+ 'MovieMediaGetChildMovieDataReference',
+ 'MovieMediaSetChildMovieDataReference',
+ 'MovieMediaLoadChildMovieFromDataReference',
+ 'Media3DGetViewObject',
+
+ # these are ImageCompression blacklists
+ "GraphicsExportGetInputPtr",
+
+ # QuickTimeComponents
+ # These two need some help: the first returns a point to a databuffer that
+ # the second disposes. Generate manually?
+ "VDCompressDone",
+ "VDReleaseCompressBuffer",
+ "QTVideoOutputGetGWorldParameters", # How useful is this?
+
+ # MediaHandlers
+ "MediaMakeMediaTimeTable", # just lazy
+ "MediaGetSampleDataPointer", # funny output pointer
+
+ # QuickTimeMusic
+ "kControllerMinimum",
+ # These are artefacts of a macro definition
+ "ulen",
+ "_ext",
+ "x",
+ "w1",
+ "w2",
+ ]
+
+ def makeblacklisttypes(self):
+ return [
+ # I don't think we want to do these
+ "QTSyncTaskPtr",
+ # We dont do callbacks yet, so no need for these
+ "QTCallBack",
+ # Skipped for now, due to laziness
+ "TrackEditState",
+ "MovieEditState",
+ "MatrixRecord",
+ "MatrixRecord_ptr",
+ "SampleReferencePtr",
+ "QTTweener",
+ "QTErrorReplacementPtr",
+ "QTRestrictionSet",
+ "QTUUID",
+ "QTUUID_ptr",
+
+ # Routine pointers, not yet.
+ "MoviesErrorUPP",
+ "MoviePreviewCallOutUPP",
+ "MovieDrawingCompleteUPP",
+ "QTCallBackUPP",
+ "TextMediaUPP",
+ "MovieProgressUPP",
+ "MovieRgnCoverUPP",
+ "MCActionFilterUPP",
+ "MCActionFilterWithRefConUPP",
+ "GetMovieUPP",
+ "ModalFilterUPP",
+ "TrackTransferUPP",
+ "MoviePrePrerollCompleteUPP",
+ "MovieExecuteWiredActionsUPP",
+ "QTBandwidthNotificationUPP",
+ "DoMCActionUPP",
+ "QTNextTaskNeededSoonerCallbackUPP",
+
+ "SampleReference64Ptr", # Don't know what this does, yet
+ "QTRuntimeSpriteDescPtr",
+ "QTBandwidthReference",
+ "QTScheduledBandwidthReference",
+ "QTAtomContainer",
+ "SpriteWorld",
+ "Sprite",
+
+ # these are ImageCompression blacklists
+ "ICMDataUPP",
+ "ICMFlushUPP",
+ "ICMCompletionUPP",
+ "ICMProgressUPP",
+ "StdPixUPP",
+ "QDPixUPP",
+ "ICMAlignmentUPP",
+ "ICMCursorShieldedUPP",
+ "ICMMemoryDisposedUPP",
+ "ICMConvertDataFormatUPP",
+ "ModalFilterYDUPP",
+ "FileFilterUPP",
+
+ "CodecNameSpecListPtr",
+ "CodecInfo",
+ "ImageSequence",
+ "MatrixRecordPtr",
+ "ICMDataProcRecordPtr",
+ "OpenCPicParams",
+ "ICMProgressProcRecordPtr",
+ "ICMAlignmentProcRecordPtr",
+ "ICMPixelFormatInfoPtr",
+ "ImageSequenceDataSource",
+ "ConstStrFileNameParam",
+ "ImageTranscodeSequence",
+ "ImageFieldSequence",
+ "Fract",
+ "PixMapPtr",
+ "GWorldFlags",
+ "void_ptr", # XXX Being lazy, this one is doable.
+
+ # These are from QuickTimeComponents
+ "CDataHandlerUPP",
+ "CharDataHandlerUPP",
+ "CommentHandlerUPP",
+ "DataHCompletionUPP",
+ "'MovieExportGetDataUPP",
+ "MovieExportGetPropertyUPP",
+ "PreprocessInstructionHandlerUPP",
+ "SGModalFilterUPP",
+ "StartDocumentHandlerUPP",
+ "StartElementHandlerUPP",
+ "VdigIntUPP",
+ "SGDataUPP",
+ "EndDocumentHandlerUPP",
+ "EndElementHandlerUPP",
+ "VideoBottles", # Record full of UPPs
+
+ "SCParams",
+ "ICMCompletionProcRecordPtr",
+ "DataHVolumeList",
+ "DigitizerInfo",
+ "SGCompressInfo",
+ "SeqGrabExtendedFrameInfoPtr",
+ "SeqGrabFrameInfoPtr",
+ "TCTextOptionsPtr",
+ "SGCompressInfo_ptr",
+ "SGDeviceList",
+ "TextDisplayData",
+ "TimeCodeDef",
+ "TimeCodeRecord",
+ "TweenRecord",
+ "VDGamRecPtr",
+ "ToneDescription", # XXXX Just lazy: this one is easy.
+ "XMLDoc",
+ "UInt64", # XXXX lazy
+ "UInt64_ptr", # XXXX lazy
+
+ # From MediaHandlers
+ "ActionsUPP",
+ "PrePrerollCompleteUPP",
+ "CodecComponentHandle", # Difficult: handle containing list of components.
+ "GetMovieCompleteParams", # Immense struct
+ "LevelMeterInfoPtr", # Lazy. Also: can be an output parameter!!
+ "MediaEQSpectrumBandsRecordPtr", # ditto
+
+ # From QuickTimeMusic
+ "MusicMIDISendUPP",
+ "MusicOfflineDataUPP",
+ "TuneCallBackUPP",
+ "TunePlayCallBackUPP",
+ "GCPart", # Struct with lots of fields
+ "GCPart_ptr",
+ "GenericKnobDescription", # Struct with lots of fields
+ "KnobDescription", # Struct with lots of fields
+ "InstrumentAboutInfo", # Struct, not too difficult
+ "NoteChannel", # XXXX Lazy. Could be opaque, I think
+ "NoteRequest", # XXXX Lazy. Not-too-difficult struct
+ "SynthesizerConnections", # Struct with lots of fields
+ "SynthesizerDescription", # Struct with lots of fields
+ "TuneStatus", # Struct with lots of fields
+
+ ]
+
+ def makerepairinstructions(self):
+ return [
+ ([('FSSpec', '*', 'OutMode')], [('FSSpec_ptr', '*', 'InMode')]),
+
+ # Movie controller creation
+ ([('ComponentInstance', 'NewMovieController', 'ReturnMode')],
+ [('MovieController', '*', 'ReturnMode')]),
+
+ # NewMovieFromFile
+ ([('short', 'resId', 'OutMode'), ('StringPtr', 'resName', 'InMode')],
+ [('short', 'resId', 'InOutMode'), ('dummyStringPtr', 'resName', 'InMode')]),
+
+ # MCDoAction and more
+ ([('void', '*', 'OutMode')], [('mcactionparams', '*', 'InMode')]),
+
+ # SetTimeBaseZero. Does not handle NULLs, unfortunately
+ ([('TimeRecord', 'zero', 'OutMode')], [('TimeRecord', 'zero', 'InMode')]),
+
+ # ConvertTime and ConvertTimeScale
+ ([('TimeRecord', 'inout', 'OutMode')], [('TimeRecord', 'inout', 'InOutMode')]),
+ ([('TimeRecord', 'theTime', 'OutMode')], [('TimeRecord', 'theTime', 'InOutMode')]),
+
+ # AddTime and SubtractTime
+ ([('TimeRecord', 'dst', 'OutMode')], [('TimeRecord', 'dst', 'InOutMode')]),
+
+ # Funny definitions
+ ([('char_ptr', '*', 'InMode')], [('stringptr', '*', 'InMode')]),
+ ([('FSSpecPtr', '*', 'InMode')], [('FSSpec_ptr', '*', 'InMode')]),
+ ([('unsigned_char', 'swfVersion', 'OutMode')], [('UInt8', 'swfVersion', 'OutMode')]),
+
+ # It seems MusicMIDIPacket if never flagged with const but always used
+ # for sending only. If that ever changes this needs to be fixed.
+ ([('MusicMIDIPacket', '*', 'OutMode')], [('MusicMIDIPacket_ptr', '*', 'InMode')]),
+
+ # QTMusic const-less input parameters
+ ([('unsigned_long', 'header', 'OutMode')], [('UnsignedLongPtr', 'header', 'InMode')]),
+ ]
+
if __name__ == "__main__":
- main()
+ main()
diff --git a/Mac/Modules/qt/qtsupport.py b/Mac/Modules/qt/qtsupport.py
index 20304c9..132c2b4 100644
--- a/Mac/Modules/qt/qtsupport.py
+++ b/Mac/Modules/qt/qtsupport.py
@@ -8,16 +8,16 @@
import string
# Declarations that change for each manager
-MACHEADERFILE = 'Movies.h' # The Apple header file
-MODNAME = '_Qt' # The name of the module
-OBJECTNAME = 'Movie' # The basic name of the objects used here
+MACHEADERFILE = 'Movies.h' # The Apple header file
+MODNAME = '_Qt' # The name of the module
+OBJECTNAME = 'Movie' # The basic name of the objects used here
# The following is *usually* unchanged but may still require tuning
-MODPREFIX = 'Qt' # The prefix for module-wide routines
-OBJECTTYPE = "Movie" # The C type used to represent them
-OBJECTPREFIX = MODPREFIX + 'Obj' # The prefix for object methods
+MODPREFIX = 'Qt' # The prefix for module-wide routines
+OBJECTTYPE = "Movie" # The C type used to represent them
+OBJECTPREFIX = MODPREFIX + 'Obj' # The prefix for object methods
INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-OUTPUTFILE = MODNAME + "module.c" # The file generated by this program
+OUTPUTFILE = MODNAME + "module.c" # The file generated by this program
from macsupport import *
@@ -57,45 +57,45 @@ extern int _MediaObj_Convert(PyObject *, Media *);
/* Macro to allow us to GetNextInterestingTime without duration */
#define GetMediaNextInterestingTimeOnly(media, flags, time, rate, rv) \
- GetMediaNextInterestingTime(media, flags, time, rate, rv, NULL)
-
+ GetMediaNextInterestingTime(media, flags, time, rate, rv, NULL)
+
/*
** Parse/generate time records
*/
static PyObject *
QtTimeRecord_New(TimeRecord *itself)
{
- if (itself->base)
- return Py_BuildValue("O&lO&", PyMac_Buildwide, &itself->value, itself->scale,
- TimeBaseObj_New, itself->base);
- else
- return Py_BuildValue("O&lO", PyMac_Buildwide, &itself->value, itself->scale,
- Py_None);
+ if (itself->base)
+ return Py_BuildValue("O&lO&", PyMac_Buildwide, &itself->value, itself->scale,
+ TimeBaseObj_New, itself->base);
+ else
+ return Py_BuildValue("O&lO", PyMac_Buildwide, &itself->value, itself->scale,
+ Py_None);
}
static int
QtTimeRecord_Convert(PyObject *v, TimeRecord *p_itself)
{
- PyObject *base = NULL;
- if( !PyArg_ParseTuple(v, "O&l|O", PyMac_Getwide, &p_itself->value, &p_itself->scale,
- &base) )
- return 0;
- if ( base == NULL || base == Py_None )
- p_itself->base = NULL;
- else
- if ( !TimeBaseObj_Convert(base, &p_itself->base) )
- return 0;
- return 1;
+ PyObject *base = NULL;
+ if( !PyArg_ParseTuple(v, "O&l|O", PyMac_Getwide, &p_itself->value, &p_itself->scale,
+ &base) )
+ return 0;
+ if ( base == NULL || base == Py_None )
+ p_itself->base = NULL;
+ else
+ if ( !TimeBaseObj_Convert(base, &p_itself->base) )
+ return 0;
+ return 1;
}
static int
QtMusicMIDIPacket_Convert(PyObject *v, MusicMIDIPacket *p_itself)
{
- int dummy;
-
- if( !PyArg_ParseTuple(v, "hls#", &p_itself->length, &p_itself->reserved, p_itself->data, dummy) )
- return 0;
- return 1;
+ int dummy;
+
+ if( !PyArg_ParseTuple(v, "hls#", &p_itself->length, &p_itself->reserved, p_itself->data, dummy) )
+ return 0;
+ return 1;
}
@@ -103,18 +103,18 @@ QtMusicMIDIPacket_Convert(PyObject *v, MusicMIDIPacket *p_itself)
"""
initstuff = initstuff + """
- PyMac_INIT_TOOLBOX_OBJECT_NEW(Track, TrackObj_New);
- PyMac_INIT_TOOLBOX_OBJECT_CONVERT(Track, TrackObj_Convert);
- PyMac_INIT_TOOLBOX_OBJECT_NEW(Movie, MovieObj_New);
- PyMac_INIT_TOOLBOX_OBJECT_CONVERT(Movie, MovieObj_Convert);
- PyMac_INIT_TOOLBOX_OBJECT_NEW(MovieController, MovieCtlObj_New);
- PyMac_INIT_TOOLBOX_OBJECT_CONVERT(MovieController, MovieCtlObj_Convert);
- PyMac_INIT_TOOLBOX_OBJECT_NEW(TimeBase, TimeBaseObj_New);
- PyMac_INIT_TOOLBOX_OBJECT_CONVERT(TimeBase, TimeBaseObj_Convert);
- PyMac_INIT_TOOLBOX_OBJECT_NEW(UserData, UserDataObj_New);
- PyMac_INIT_TOOLBOX_OBJECT_CONVERT(UserData, UserDataObj_Convert);
- PyMac_INIT_TOOLBOX_OBJECT_NEW(Media, MediaObj_New);
- PyMac_INIT_TOOLBOX_OBJECT_CONVERT(Media, MediaObj_Convert);
+ PyMac_INIT_TOOLBOX_OBJECT_NEW(Track, TrackObj_New);
+ PyMac_INIT_TOOLBOX_OBJECT_CONVERT(Track, TrackObj_Convert);
+ PyMac_INIT_TOOLBOX_OBJECT_NEW(Movie, MovieObj_New);
+ PyMac_INIT_TOOLBOX_OBJECT_CONVERT(Movie, MovieObj_Convert);
+ PyMac_INIT_TOOLBOX_OBJECT_NEW(MovieController, MovieCtlObj_New);
+ PyMac_INIT_TOOLBOX_OBJECT_CONVERT(MovieController, MovieCtlObj_Convert);
+ PyMac_INIT_TOOLBOX_OBJECT_NEW(TimeBase, TimeBaseObj_New);
+ PyMac_INIT_TOOLBOX_OBJECT_CONVERT(TimeBase, TimeBaseObj_Convert);
+ PyMac_INIT_TOOLBOX_OBJECT_NEW(UserData, UserDataObj_New);
+ PyMac_INIT_TOOLBOX_OBJECT_CONVERT(UserData, UserDataObj_Convert);
+ PyMac_INIT_TOOLBOX_OBJECT_NEW(Media, MediaObj_New);
+ PyMac_INIT_TOOLBOX_OBJECT_CONVERT(Media, MediaObj_Convert);
"""
# Our (opaque) objects
@@ -232,56 +232,56 @@ AtomicInstrumentPtr = InputOnlyType("AtomicInstrumentPtr", "s")
# XXXX Need to override output_tp_newBody() to allow for None initializer.
class QtGlobalObjectDefinition(PEP253Mixin, GlobalObjectDefinition):
- def outputCheckNewArg(self):
- # We don't allow NULL pointers to be returned by QuickTime API calls,
- # in stead we raise an exception
- Output("""if (itself == NULL) {
- PyErr_SetString(Qt_Error,"Cannot create %s from NULL pointer");
- return NULL;
- }""", self.name)
-
- def outputCheckConvertArg(self):
- # But what we do allow is passing None whereever a quicktime object is
- # expected, and pass this as NULL to the API routines. Note you can
- # call methods too by creating an object with None as the initializer.
- Output("if (v == Py_None)")
- OutLbrace()
- Output("*p_itself = NULL;")
- Output("return 1;")
- OutRbrace()
-
+ def outputCheckNewArg(self):
+ # We don't allow NULL pointers to be returned by QuickTime API calls,
+ # in stead we raise an exception
+ Output("""if (itself == NULL) {
+ PyErr_SetString(Qt_Error,"Cannot create %s from NULL pointer");
+ return NULL;
+ }""", self.name)
+
+ def outputCheckConvertArg(self):
+ # But what we do allow is passing None whereever a quicktime object is
+ # expected, and pass this as NULL to the API routines. Note you can
+ # call methods too by creating an object with None as the initializer.
+ Output("if (v == Py_None)")
+ OutLbrace()
+ Output("*p_itself = NULL;")
+ Output("return 1;")
+ OutRbrace()
+
class MovieObjectDefinition(QtGlobalObjectDefinition):
- def outputFreeIt(self, itselfname):
- Output("if (%s) DisposeMovie(%s);", itselfname, itselfname)
+ def outputFreeIt(self, itselfname):
+ Output("if (%s) DisposeMovie(%s);", itselfname, itselfname)
class TrackObjectDefinition(QtGlobalObjectDefinition):
- def outputFreeIt(self, itselfname):
- Output("if (%s) DisposeMovieTrack(%s);", itselfname, itselfname)
+ def outputFreeIt(self, itselfname):
+ Output("if (%s) DisposeMovieTrack(%s);", itselfname, itselfname)
class MediaObjectDefinition(QtGlobalObjectDefinition):
- def outputFreeIt(self, itselfname):
- Output("if (%s) DisposeTrackMedia(%s);", itselfname, itselfname)
+ def outputFreeIt(self, itselfname):
+ Output("if (%s) DisposeTrackMedia(%s);", itselfname, itselfname)
class UserDataObjectDefinition(QtGlobalObjectDefinition):
- def outputFreeIt(self, itselfname):
- Output("if (%s) DisposeUserData(%s);", itselfname, itselfname)
+ def outputFreeIt(self, itselfname):
+ Output("if (%s) DisposeUserData(%s);", itselfname, itselfname)
class TimeBaseObjectDefinition(QtGlobalObjectDefinition):
- pass
-
+ pass
+
class MovieCtlObjectDefinition(QtGlobalObjectDefinition):
- def outputFreeIt(self, itselfname):
- Output("if (%s) DisposeMovieController(%s);", itselfname, itselfname)
+ def outputFreeIt(self, itselfname):
+ Output("if (%s) DisposeMovieController(%s);", itselfname, itselfname)
class IdleManagerObjectDefinition(QtGlobalObjectDefinition):
- pass
-
+ pass
+
class SGOutputObjectDefinition(QtGlobalObjectDefinition):
- # XXXX I'm not sure I fully understand how SGOutput works. It seems it's always tied
- # to a specific SeqGrabComponent, but I'm not 100% sure. Also, I'm not sure all the
- # routines that return an SGOutput actually return a *new* SGOutput. Need to read up on
- # this.
- pass
+ # XXXX I'm not sure I fully understand how SGOutput works. It seems it's always tied
+ # to a specific SeqGrabComponent, but I'm not 100% sure. Also, I'm not sure all the
+ # routines that return an SGOutput actually return a *new* SGOutput. Need to read up on
+ # this.
+ pass
# From here on it's basically all boiler plate...
@@ -331,19 +331,19 @@ ICMAlignmentProcRecordPtr = FakeType('(ICMAlignmentProcRecordPtr)0')
dummyRect = FakeType('(Rect *)0')
f = Function(void, 'AlignWindow',
- (WindowPtr, 'wp', InMode),
- (Boolean, 'front', InMode),
- (dummyRect, 'alignmentRect', InMode),
- (ICMAlignmentProcRecordPtr, 'alignmentProc', InMode),
+ (WindowPtr, 'wp', InMode),
+ (Boolean, 'front', InMode),
+ (dummyRect, 'alignmentRect', InMode),
+ (ICMAlignmentProcRecordPtr, 'alignmentProc', InMode),
)
functions.append(f)
f = Function(void, 'DragAlignedWindow',
- (WindowPtr, 'wp', InMode),
- (Point, 'startPt', InMode),
- (Rect_ptr, 'boundsRect', InMode),
- (dummyRect, 'alignmentRect', InMode),
- (ICMAlignmentProcRecordPtr, 'alignmentProc', InMode),
+ (WindowPtr, 'wp', InMode),
+ (Point, 'startPt', InMode),
+ (Rect_ptr, 'boundsRect', InMode),
+ (dummyRect, 'alignmentRect', InMode),
+ (ICMAlignmentProcRecordPtr, 'alignmentProc', InMode),
)
functions.append(f)
@@ -377,4 +377,3 @@ for f in Movie_methods: Movie_object.add(f)
# generate output (open the output file as late as possible)
SetOutputFileName(OUTPUTFILE)
module.generate()
-
diff --git a/Mac/Modules/qt/setup.py b/Mac/Modules/qt/setup.py
index 98d836d..8442011 100755
--- a/Mac/Modules/qt/setup.py
+++ b/Mac/Modules/qt/setup.py
@@ -4,10 +4,10 @@
from distutils.core import Extension, setup
setup(name="QuickTime", version="0.2",
- ext_modules=[
- Extension('QuickTime._Qt', ['_Qtmodule.c'],
- extra_link_args=['-framework', 'Carbon', '-framework', 'QuickTime'])
- ],
- py_modules=['QuickTime.Qt', 'QuickTime.QuickTime'],
- package_dir={'QuickTime':'../../../Lib/plat-mac/Carbon'}
- )
+ ext_modules=[
+ Extension('QuickTime._Qt', ['_Qtmodule.c'],
+ extra_link_args=['-framework', 'Carbon', '-framework', 'QuickTime'])
+ ],
+ py_modules=['QuickTime.Qt', 'QuickTime.QuickTime'],
+ package_dir={'QuickTime':'../../../Lib/plat-mac/Carbon'}
+ )