view dstep/qtkit/QTMedia.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.QTMedia;

import dstep.foundation.Foundation;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;
import dstep.qtkit.QTKitDefines;
import dstep.qtkit.QTMovie;
import dstep.qtkit.QTTrack;

import bindings = dstep.qtkit.QTMedia_bindings;

private
{
	NSString QTMediaTypeVideo_;
	NSString QTMediaTypeSound_;
	NSString QTMediaTypeText_;
	NSString QTMediaTypeBase_;
	NSString QTMediaTypeMPEG_;
	NSString QTMediaTypeMusic_;
	NSString QTMediaTypeTimeCode_;
	NSString QTMediaTypeSprite_;
	NSString QTMediaTypeFlash_;
	NSString QTMediaTypeMovie_;
	NSString QTMediaTypeTween_;
	NSString QTMediaType3D_;
	NSString QTMediaTypeSkin_;
	NSString QTMediaTypeQTVR_;
	NSString QTMediaTypeHint_;
	NSString QTMediaTypeStream_;
	NSString QTMediaTypeMuxed_;
	NSString QTMediaTypeQuartzComposer_;
	NSString QTMediaCharacteristicVisual_;
	NSString QTMediaCharacteristicAudio_;
	NSString QTMediaCharacteristicCanSendVideo_;
	NSString QTMediaCharacteristicProvidesActions_;
	NSString QTMediaCharacteristicNonLinear_;
	NSString QTMediaCharacteristicCanStep_;
	NSString QTMediaCharacteristicHasNoDuration_;
	NSString QTMediaCharacteristicHasSkinData_;
	NSString QTMediaCharacteristicProvidesKeyFocus_;
	NSString QTMediaCharacteristicHasVideoFrameRate_;
	NSString QTMediaCreationTimeAttribute_;
	NSString QTMediaDurationAttribute_;
	NSString QTMediaModificationTimeAttribute_;
	NSString QTMediaSampleCountAttribute_;
	NSString QTMediaQualityAttribute_;
	NSString QTMediaTimeScaleAttribute_;
	NSString QTMediaTypeAttribute_;
}

NSString QTMediaTypeVideo ()
{
	if (QTMediaTypeVideo_)
		return QTMediaTypeVideo_;

	return QTMediaTypeVideo_ = new NSString(bindings.QTMediaTypeVideo);
}

NSString QTMediaTypeSound ()
{
	if (QTMediaTypeSound_)
		return QTMediaTypeSound_;

	return QTMediaTypeSound_ = new NSString(bindings.QTMediaTypeSound);
}

NSString QTMediaTypeText ()
{
	if (QTMediaTypeText_)
		return QTMediaTypeText_;

	return QTMediaTypeText_ = new NSString(bindings.QTMediaTypeText);
}

NSString QTMediaTypeBase ()
{
	if (QTMediaTypeBase_)
		return QTMediaTypeBase_;

	return QTMediaTypeBase_ = new NSString(bindings.QTMediaTypeBase);
}

NSString QTMediaTypeMPEG ()
{
	if (QTMediaTypeMPEG_)
		return QTMediaTypeMPEG_;

	return QTMediaTypeMPEG_ = new NSString(bindings.QTMediaTypeMPEG);
}

NSString QTMediaTypeMusic ()
{
	if (QTMediaTypeMusic_)
		return QTMediaTypeMusic_;

	return QTMediaTypeMusic_ = new NSString(bindings.QTMediaTypeMusic);
}

NSString QTMediaTypeTimeCode ()
{
	if (QTMediaTypeTimeCode_)
		return QTMediaTypeTimeCode_;

	return QTMediaTypeTimeCode_ = new NSString(bindings.QTMediaTypeTimeCode);
}

NSString QTMediaTypeSprite ()
{
	if (QTMediaTypeSprite_)
		return QTMediaTypeSprite_;

	return QTMediaTypeSprite_ = new NSString(bindings.QTMediaTypeSprite);
}

NSString QTMediaTypeFlash ()
{
	if (QTMediaTypeFlash_)
		return QTMediaTypeFlash_;

	return QTMediaTypeFlash_ = new NSString(bindings.QTMediaTypeFlash);
}

NSString QTMediaTypeMovie ()
{
	if (QTMediaTypeMovie_)
		return QTMediaTypeMovie_;

	return QTMediaTypeMovie_ = new NSString(bindings.QTMediaTypeMovie);
}

NSString QTMediaTypeTween ()
{
	if (QTMediaTypeTween_)
		return QTMediaTypeTween_;

	return QTMediaTypeTween_ = new NSString(bindings.QTMediaTypeTween);
}

NSString QTMediaType3D ()
{
	if (QTMediaType3D_)
		return QTMediaType3D_;

	return QTMediaType3D_ = new NSString(bindings.QTMediaType3D);
}

NSString QTMediaTypeSkin ()
{
	if (QTMediaTypeSkin_)
		return QTMediaTypeSkin_;

	return QTMediaTypeSkin_ = new NSString(bindings.QTMediaTypeSkin);
}

NSString QTMediaTypeQTVR ()
{
	if (QTMediaTypeQTVR_)
		return QTMediaTypeQTVR_;

	return QTMediaTypeQTVR_ = new NSString(bindings.QTMediaTypeQTVR);
}

NSString QTMediaTypeHint ()
{
	if (QTMediaTypeHint_)
		return QTMediaTypeHint_;

	return QTMediaTypeHint_ = new NSString(bindings.QTMediaTypeHint);
}

NSString QTMediaTypeStream ()
{
	if (QTMediaTypeStream_)
		return QTMediaTypeStream_;

	return QTMediaTypeStream_ = new NSString(bindings.QTMediaTypeStream);
}

NSString QTMediaTypeMuxed ()
{
	if (QTMediaTypeMuxed_)
		return QTMediaTypeMuxed_;

	return QTMediaTypeMuxed_ = new NSString(bindings.QTMediaTypeMuxed);
}

NSString QTMediaTypeQuartzComposer ()
{
	if (QTMediaTypeQuartzComposer_)
		return QTMediaTypeQuartzComposer_;

	return QTMediaTypeQuartzComposer_ = new NSString(bindings.QTMediaTypeQuartzComposer);
}

NSString QTMediaCharacteristicVisual ()
{
	if (QTMediaCharacteristicVisual_)
		return QTMediaCharacteristicVisual_;

	return QTMediaCharacteristicVisual_ = new NSString(bindings.QTMediaCharacteristicVisual);
}

NSString QTMediaCharacteristicAudio ()
{
	if (QTMediaCharacteristicAudio_)
		return QTMediaCharacteristicAudio_;

	return QTMediaCharacteristicAudio_ = new NSString(bindings.QTMediaCharacteristicAudio);
}

NSString QTMediaCharacteristicCanSendVideo ()
{
	if (QTMediaCharacteristicCanSendVideo_)
		return QTMediaCharacteristicCanSendVideo_;

	return QTMediaCharacteristicCanSendVideo_ = new NSString(bindings.QTMediaCharacteristicCanSendVideo);
}

NSString QTMediaCharacteristicProvidesActions ()
{
	if (QTMediaCharacteristicProvidesActions_)
		return QTMediaCharacteristicProvidesActions_;

	return QTMediaCharacteristicProvidesActions_ = new NSString(bindings.QTMediaCharacteristicProvidesActions);
}

NSString QTMediaCharacteristicNonLinear ()
{
	if (QTMediaCharacteristicNonLinear_)
		return QTMediaCharacteristicNonLinear_;

	return QTMediaCharacteristicNonLinear_ = new NSString(bindings.QTMediaCharacteristicNonLinear);
}

NSString QTMediaCharacteristicCanStep ()
{
	if (QTMediaCharacteristicCanStep_)
		return QTMediaCharacteristicCanStep_;

	return QTMediaCharacteristicCanStep_ = new NSString(bindings.QTMediaCharacteristicCanStep);
}

NSString QTMediaCharacteristicHasNoDuration ()
{
	if (QTMediaCharacteristicHasNoDuration_)
		return QTMediaCharacteristicHasNoDuration_;

	return QTMediaCharacteristicHasNoDuration_ = new NSString(bindings.QTMediaCharacteristicHasNoDuration);
}

NSString QTMediaCharacteristicHasSkinData ()
{
	if (QTMediaCharacteristicHasSkinData_)
		return QTMediaCharacteristicHasSkinData_;

	return QTMediaCharacteristicHasSkinData_ = new NSString(bindings.QTMediaCharacteristicHasSkinData);
}

NSString QTMediaCharacteristicProvidesKeyFocus ()
{
	if (QTMediaCharacteristicProvidesKeyFocus_)
		return QTMediaCharacteristicProvidesKeyFocus_;

	return QTMediaCharacteristicProvidesKeyFocus_ = new NSString(bindings.QTMediaCharacteristicProvidesKeyFocus);
}

NSString QTMediaCharacteristicHasVideoFrameRate ()
{
	if (QTMediaCharacteristicHasVideoFrameRate_)
		return QTMediaCharacteristicHasVideoFrameRate_;

	return QTMediaCharacteristicHasVideoFrameRate_ = new NSString(bindings.QTMediaCharacteristicHasVideoFrameRate);
}

NSString QTMediaCreationTimeAttribute ()
{
	if (QTMediaCreationTimeAttribute_)
		return QTMediaCreationTimeAttribute_;

	return QTMediaCreationTimeAttribute_ = new NSString(bindings.QTMediaCreationTimeAttribute);
}

NSString QTMediaDurationAttribute ()
{
	if (QTMediaDurationAttribute_)
		return QTMediaDurationAttribute_;

	return QTMediaDurationAttribute_ = new NSString(bindings.QTMediaDurationAttribute);
}

NSString QTMediaModificationTimeAttribute ()
{
	if (QTMediaModificationTimeAttribute_)
		return QTMediaModificationTimeAttribute_;

	return QTMediaModificationTimeAttribute_ = new NSString(bindings.QTMediaModificationTimeAttribute);
}

NSString QTMediaSampleCountAttribute ()
{
	if (QTMediaSampleCountAttribute_)
		return QTMediaSampleCountAttribute_;

	return QTMediaSampleCountAttribute_ = new NSString(bindings.QTMediaSampleCountAttribute);
}

NSString QTMediaQualityAttribute ()
{
	if (QTMediaQualityAttribute_)
		return QTMediaQualityAttribute_;

	return QTMediaQualityAttribute_ = new NSString(bindings.QTMediaQualityAttribute);
}

NSString QTMediaTimeScaleAttribute ()
{
	if (QTMediaTimeScaleAttribute_)
		return QTMediaTimeScaleAttribute_;

	return QTMediaTimeScaleAttribute_ = new NSString(bindings.QTMediaTimeScaleAttribute);
}

NSString QTMediaTypeAttribute ()
{
	if (QTMediaTypeAttribute_)
		return QTMediaTypeAttribute_;

	return QTMediaTypeAttribute_ = new NSString(bindings.QTMediaTypeAttribute);
}

class QTMedia : NSObject
{
	mixin (ObjcWrap);

	QTTrack track ()
	{
		return invokeObjcSelf!(QTTrack, "track");
	}

	NSDictionary mediaAttributes ()
	{
		return invokeObjcSelf!(NSDictionary, "mediaAttributes");
	}

	void setMediaAttributes (NSDictionary attributes)
	{
		return invokeObjcSelf!(void, "setMediaAttributes:", NSDictionary)(attributes);
	}

	Object attributeForKey (NSString attributeKey)
	{
		return invokeObjcSelf!(Object, "attributeForKey:", NSString)(attributeKey);
	}

	void setAttribute (Object value, NSString attributeKey)
	{
		return invokeObjcSelf!(void, "setAttribute:forKey:", Object, NSString)(value, attributeKey);
	}

	bool hasCharacteristic (NSString characteristic)
	{
		return invokeObjcSelf!(bool, "hasCharacteristic:", NSString)(characteristic);
	}
}