Mercurial > projects > dstep
diff dstep/qtkit/QTCaptureFileOutput.d @ 16:19885b43130e
Huge update, the bridge actually works now
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sun, 03 Jan 2010 22:06:11 +0100 |
parents | |
children | b9de51448c6b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/qtkit/QTCaptureFileOutput.d Sun Jan 03 22:06:11 2010 +0100 @@ -0,0 +1,143 @@ +/** + * Copyright: Copyright (c) 2009 Jacob Carlborg. + * Authors: Jacob Carlborg + * Version: Initial created: Sep 28, 2009 + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) + */ +module dstep.qtkit.QTCaptureFileOutput; + +import dstep.foundation.Foundation; +import dstep.objc.bridge.Bridge; +import dstep.objc.objc; +import dstep.qtkit.QTCaptureConnection; +import dstep.qtkit.QTCaptureOutput; +import dstep.qtkit.QTCompressionOptions; +import dstep.qtkit.QTKitDefines; +import dstep.qtkit.QTSampleBuffer; +import dstep.qtkit.QTTime; + +alias NSUInteger QTCaptureFileOutputBufferDestination; + +enum +{ + QTCaptureFileOutputBufferDestinationNewFile = 1, + QTCaptureFileOutputBufferDestinationOldFile = 2 +} + +const TQTCaptureFileOutputDelegate = ` + + void captureOutput (QTCaptureFileOutput captureOutput, QTSampleBuffer sampleBuffer, QTCaptureConnection connection) + { + return invokeObjcSelf!(void, "captureOutput:didOutputSampleBuffer:fromConnection:", QTCaptureFileOutput, QTSampleBuffer, QTCaptureConnection)(captureOutput, sampleBuffer, connection); + } + + void captureOutput (QTCaptureFileOutput captureOutput, NSURL fileURL, NSArray connections) + { + return invokeObjcSelf!(void, "captureOutput:willStartRecordingToOutputFileAtURL:forConnections:", QTCaptureFileOutput, NSURL, NSArray)(captureOutput, fileURL, connections); + } + + void captureOutput (QTCaptureFileOutput captureOutput, NSURL fileURL, NSArray connections) + { + return invokeObjcSelf!(void, "captureOutput:didStartRecordingToOutputFileAtURL:forConnections:", QTCaptureFileOutput, NSURL, NSArray)(captureOutput, fileURL, connections); + } + + bool captureOutput (QTCaptureFileOutput captureOutput, NSURL outputFileURL, NSArray connections, NSError error) + { + return invokeObjcSelf!(bool, "captureOutput:shouldChangeOutputFileAtURL:forConnections:dueToError:", QTCaptureFileOutput, NSURL, NSArray, NSError)(captureOutput, outputFileURL, connections, error); + } + + void captureOutput (QTCaptureFileOutput captureOutput, NSURL outputFileURL, NSArray connections, NSError error) + { + return invokeObjcSelf!(void, "captureOutput:mustChangeOutputFileAtURL:forConnections:dueToError:", QTCaptureFileOutput, NSURL, NSArray, NSError)(captureOutput, outputFileURL, connections, error); + } + + void captureOutput (QTCaptureFileOutput captureOutput, NSURL outputFileURL, NSArray connections, NSError error) + { + return invokeObjcSelf!(void, "captureOutput:willFinishRecordingToOutputFileAtURL:forConnections:dueToError:", QTCaptureFileOutput, NSURL, NSArray, NSError)(captureOutput, outputFileURL, connections, error); + } + + void captureOutput (QTCaptureFileOutput captureOutput, NSURL outputFileURL, NSArray connections, NSError error) + { + return invokeObjcSelf!(void, "captureOutput:didFinishRecordingToOutputFileAtURL:forConnections:dueToError:", QTCaptureFileOutput, NSURL, NSArray, NSError)(captureOutput, outputFileURL, connections, error); + } + + //mixin ObjcBindMethod!(captureOutput, "captureOutput:didOutputSampleBuffer:fromConnection:"); + //mixin ObjcBindMethod!(captureOutput, "captureOutput:willStartRecordingToOutputFileAtURL:forConnections:"); + //mixin ObjcBindMethod!(captureOutput, "captureOutput:didStartRecordingToOutputFileAtURL:forConnections:"); + //mixin ObjcBindMethod!(captureOutput, "captureOutput:shouldChangeOutputFileAtURL:forConnections:dueToError:"); + //mixin ObjcBindMethod!(captureOutput, "captureOutput:mustChangeOutputFileAtURL:forConnections:dueToError:"); + //mixin ObjcBindMethod!(captureOutput, "captureOutput:willFinishRecordingToOutputFileAtURL:forConnections:dueToError:"); + //mixin ObjcBindMethod!(captureOutput, "captureOutput:didFinishRecordingToOutputFileAtURL:forConnections:dueToError:"); + +`; + +class QTCaptureFileOutput : QTCaptureOutput +{ + mixin (ObjcWrap); + + NSURL outputFileURL () + { + return invokeObjcSelf!(NSURL, "outputFileURL"); + } + + void recordToOutputFileURL (NSURL url) + { + return invokeObjcSelf!(void, "recordToOutputFileURL:", NSURL)(url); + } + + void recordToOutputFileURL (NSURL url, uint bufferDestination) + { + return invokeObjcSelf!(void, "recordToOutputFileURL:bufferDestination:", NSURL, uint)(url, bufferDestination); + } + + QTCompressionOptions compressionOptionsForConnection (QTCaptureConnection connection) + { + return invokeObjcSelf!(QTCompressionOptions, "compressionOptionsForConnection:", QTCaptureConnection)(connection); + } + + void setCompressionOptions (QTCompressionOptions compressionOptions, QTCaptureConnection connection) + { + return invokeObjcSelf!(void, "setCompressionOptions:forConnection:", QTCompressionOptions, QTCaptureConnection)(compressionOptions, connection); + } + + QTTime recordedDuration () + { + return invokeObjcSelf!(QTTime, "recordedDuration"); + } + + ulong recordedFileSize () + { + return invokeObjcSelf!(ulong, "recordedFileSize"); + } + + QTTime maximumRecordedDuration () + { + return invokeObjcSelf!(QTTime, "maximumRecordedDuration"); + } + + void setMaximumRecordedDuration (QTTime maximumRecordedDuration) + { + return invokeObjcSelf!(void, "setMaximumRecordedDuration:", QTTime)(maximumRecordedDuration); + } + + ulong maximumRecordedFileSize () + { + return invokeObjcSelf!(ulong, "maximumRecordedFileSize"); + } + + void setMaximumRecordedFileSize (ulong maximumRecordedFileSize) + { + return invokeObjcSelf!(void, "setMaximumRecordedFileSize:", ulong)(maximumRecordedFileSize); + } + + Object delegate_ () + { + return invokeObjcSelf!(Object, "delegate"); + } + + void setDelegate (Object delegate_) + { + return invokeObjcSelf!(void, "setDelegate:", Object)(delegate_); + } +} +