Mercurial > projects > dstep
view dstep/qtkit/QTSampleBuffer.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 source
/** * 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.QTSampleBuffer; import dstep.coreaudio.CoreAudioTypes; import dstep.foundation.Foundation; import dstep.objc.bridge.Bridge; import dstep.objc.objc; import dstep.qtkit.QTFormatDescription; import dstep.qtkit.QTKitDefines; import dstep.qtkit.QTTime; import bindings = dstep.qtkit.QTSampleBuffer_bindings; alias NSUInteger QTSampleBufferAudioBufferListOptions; private { NSString QTSampleBufferSMPTETimeAttribute_; NSString QTSampleBufferDateRecordedAttribute_; NSString QTSampleBufferHostTimeAttribute_; NSString QTSampleBufferSceneChangeTypeAttribute_; NSString QTSampleBufferExplicitSceneChange_; NSString QTSampleBufferTimeStampDiscontinuitySceneChange_; } NSString QTSampleBufferSMPTETimeAttribute () { if (QTSampleBufferSMPTETimeAttribute_) return QTSampleBufferSMPTETimeAttribute_; return QTSampleBufferSMPTETimeAttribute_ = new NSString(bindings.QTSampleBufferSMPTETimeAttribute); } NSString QTSampleBufferDateRecordedAttribute () { if (QTSampleBufferDateRecordedAttribute_) return QTSampleBufferDateRecordedAttribute_; return QTSampleBufferDateRecordedAttribute_ = new NSString(bindings.QTSampleBufferDateRecordedAttribute); } NSString QTSampleBufferHostTimeAttribute () { if (QTSampleBufferHostTimeAttribute_) return QTSampleBufferHostTimeAttribute_; return QTSampleBufferHostTimeAttribute_ = new NSString(bindings.QTSampleBufferHostTimeAttribute); } NSString QTSampleBufferSceneChangeTypeAttribute () { if (QTSampleBufferSceneChangeTypeAttribute_) return QTSampleBufferSceneChangeTypeAttribute_; return QTSampleBufferSceneChangeTypeAttribute_ = new NSString(bindings.QTSampleBufferSceneChangeTypeAttribute); } NSString QTSampleBufferExplicitSceneChange () { if (QTSampleBufferExplicitSceneChange_) return QTSampleBufferExplicitSceneChange_; return QTSampleBufferExplicitSceneChange_ = new NSString(bindings.QTSampleBufferExplicitSceneChange); } NSString QTSampleBufferTimeStampDiscontinuitySceneChange () { if (QTSampleBufferTimeStampDiscontinuitySceneChange_) return QTSampleBufferTimeStampDiscontinuitySceneChange_; return QTSampleBufferTimeStampDiscontinuitySceneChange_ = new NSString(bindings.QTSampleBufferTimeStampDiscontinuitySceneChange); } enum { QTSampleBufferAudioBufferListOptionAssure16ByteAlignment = (1L << 0) } const TQTSampleBufferUseCount = ` NSUInteger sampleUseCount () { return invokeObjcSelf!(NSUInteger, "sampleUseCount"); } void incrementSampleUseCount () { return invokeObjcSelf!(void, "incrementSampleUseCount"); } void decrementSampleUseCount () { return invokeObjcSelf!(void, "decrementSampleUseCount"); } //mixin ObjcBindMethod!(sampleUseCount, "sampleUseCount"); //mixin ObjcBindMethod!(incrementSampleUseCount, "incrementSampleUseCount"); //mixin ObjcBindMethod!(decrementSampleUseCount, "decrementSampleUseCount"); `; const TQTAudioSampleBuffer = ` bool getAudioStreamPacketDescriptions (AudioStreamPacketDescription* audioStreamPacketDescriptions, NSRange range) { return invokeObjcSelf!(bool, "getAudioStreamPacketDescriptions:inRange:", AudioStreamPacketDescription*, NSRange)(audioStreamPacketDescriptions, range); } //mixin ObjcBindMethod!(getAudioStreamPacketDescriptions, "getAudioStreamPacketDescriptions:inRange:"); `; class QTSampleBuffer : NSObject { mixin (ObjcWrap); QTFormatDescription formatDescription () { return invokeObjcSelf!(QTFormatDescription, "formatDescription"); } QTTime duration () { return invokeObjcSelf!(QTTime, "duration"); } QTTime decodeTime () { return invokeObjcSelf!(QTTime, "decodeTime"); } QTTime presentationTime () { return invokeObjcSelf!(QTTime, "presentationTime"); } NSUInteger numberOfSamples () { return invokeObjcSelf!(NSUInteger, "numberOfSamples"); } NSDictionary sampleBufferAttributes () { return invokeObjcSelf!(NSDictionary, "sampleBufferAttributes"); } Object attributeForKey (NSString key) { return invokeObjcSelf!(Object, "attributeForKey:", NSString)(key); } // QTSampleBufferUseCount NSUInteger sampleUseCount () { return invokeObjcSelf!(NSUInteger, "sampleUseCount"); } void incrementSampleUseCount () { return invokeObjcSelf!(void, "incrementSampleUseCount"); } void decrementSampleUseCount () { return invokeObjcSelf!(void, "decrementSampleUseCount"); } // QTAudioSampleBuffer bool getAudioStreamPacketDescriptions (AudioStreamPacketDescription* audioStreamPacketDescriptions, NSRange range) { return invokeObjcSelf!(bool, "getAudioStreamPacketDescriptions:inRange:", AudioStreamPacketDescription*, NSRange)(audioStreamPacketDescriptions, range); } }