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

import dstep.appkit.NSImage;
import dstep.foundation.Foundation;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;
import dstep.qtkit.QTKitDefines;
import dstep.qtkit.QTMedia;
import dstep.qtkit.QTMovie;
import dstep.qtkit.QTTime;
import dstep.qtkit.QTTimeRange;

import bindings = dstep.qtkit.QTTrack_bindings;

private
{
	NSString QTTrackBoundsAttribute_;
	NSString QTTrackCreationTimeAttribute_;
	NSString QTTrackDimensionsAttribute_;
	NSString QTTrackDisplayNameAttribute_;
	NSString QTTrackEnabledAttribute_;
	NSString QTTrackFormatSummaryAttribute_;
	NSString QTTrackIsChapterTrackAttribute_;
	NSString QTTrackHasApertureModeDimensionsAttribute_;
	NSString QTTrackIDAttribute_;
	NSString QTTrackLayerAttribute_;
	NSString QTTrackMediaTypeAttribute_;
	NSString QTTrackModificationTimeAttribute_;
	NSString QTTrackRangeAttribute_;
	NSString QTTrackTimeScaleAttribute_;
	NSString QTTrackUsageInMovieAttribute_;
	NSString QTTrackUsageInPosterAttribute_;
	NSString QTTrackUsageInPreviewAttribute_;
	NSString QTTrackVolumeAttribute_;
}

NSString QTTrackBoundsAttribute ()
{
	if (QTTrackBoundsAttribute_)
		return QTTrackBoundsAttribute_;

	return QTTrackBoundsAttribute_ = new NSString(bindings.QTTrackBoundsAttribute);
}

NSString QTTrackCreationTimeAttribute ()
{
	if (QTTrackCreationTimeAttribute_)
		return QTTrackCreationTimeAttribute_;

	return QTTrackCreationTimeAttribute_ = new NSString(bindings.QTTrackCreationTimeAttribute);
}

NSString QTTrackDimensionsAttribute ()
{
	if (QTTrackDimensionsAttribute_)
		return QTTrackDimensionsAttribute_;

	return QTTrackDimensionsAttribute_ = new NSString(bindings.QTTrackDimensionsAttribute);
}

NSString QTTrackDisplayNameAttribute ()
{
	if (QTTrackDisplayNameAttribute_)
		return QTTrackDisplayNameAttribute_;

	return QTTrackDisplayNameAttribute_ = new NSString(bindings.QTTrackDisplayNameAttribute);
}

NSString QTTrackEnabledAttribute ()
{
	if (QTTrackEnabledAttribute_)
		return QTTrackEnabledAttribute_;

	return QTTrackEnabledAttribute_ = new NSString(bindings.QTTrackEnabledAttribute);
}

NSString QTTrackFormatSummaryAttribute ()
{
	if (QTTrackFormatSummaryAttribute_)
		return QTTrackFormatSummaryAttribute_;

	return QTTrackFormatSummaryAttribute_ = new NSString(bindings.QTTrackFormatSummaryAttribute);
}

NSString QTTrackIsChapterTrackAttribute ()
{
	if (QTTrackIsChapterTrackAttribute_)
		return QTTrackIsChapterTrackAttribute_;

	return QTTrackIsChapterTrackAttribute_ = new NSString(bindings.QTTrackIsChapterTrackAttribute);
}

NSString QTTrackHasApertureModeDimensionsAttribute ()
{
	if (QTTrackHasApertureModeDimensionsAttribute_)
		return QTTrackHasApertureModeDimensionsAttribute_;

	return QTTrackHasApertureModeDimensionsAttribute_ = new NSString(bindings.QTTrackHasApertureModeDimensionsAttribute);
}

NSString QTTrackIDAttribute ()
{
	if (QTTrackIDAttribute_)
		return QTTrackIDAttribute_;

	return QTTrackIDAttribute_ = new NSString(bindings.QTTrackIDAttribute);
}

NSString QTTrackLayerAttribute ()
{
	if (QTTrackLayerAttribute_)
		return QTTrackLayerAttribute_;

	return QTTrackLayerAttribute_ = new NSString(bindings.QTTrackLayerAttribute);
}

NSString QTTrackMediaTypeAttribute ()
{
	if (QTTrackMediaTypeAttribute_)
		return QTTrackMediaTypeAttribute_;

	return QTTrackMediaTypeAttribute_ = new NSString(bindings.QTTrackMediaTypeAttribute);
}

NSString QTTrackModificationTimeAttribute ()
{
	if (QTTrackModificationTimeAttribute_)
		return QTTrackModificationTimeAttribute_;

	return QTTrackModificationTimeAttribute_ = new NSString(bindings.QTTrackModificationTimeAttribute);
}

NSString QTTrackRangeAttribute ()
{
	if (QTTrackRangeAttribute_)
		return QTTrackRangeAttribute_;

	return QTTrackRangeAttribute_ = new NSString(bindings.QTTrackRangeAttribute);
}

NSString QTTrackTimeScaleAttribute ()
{
	if (QTTrackTimeScaleAttribute_)
		return QTTrackTimeScaleAttribute_;

	return QTTrackTimeScaleAttribute_ = new NSString(bindings.QTTrackTimeScaleAttribute);
}

NSString QTTrackUsageInMovieAttribute ()
{
	if (QTTrackUsageInMovieAttribute_)
		return QTTrackUsageInMovieAttribute_;

	return QTTrackUsageInMovieAttribute_ = new NSString(bindings.QTTrackUsageInMovieAttribute);
}

NSString QTTrackUsageInPosterAttribute ()
{
	if (QTTrackUsageInPosterAttribute_)
		return QTTrackUsageInPosterAttribute_;

	return QTTrackUsageInPosterAttribute_ = new NSString(bindings.QTTrackUsageInPosterAttribute);
}

NSString QTTrackUsageInPreviewAttribute ()
{
	if (QTTrackUsageInPreviewAttribute_)
		return QTTrackUsageInPreviewAttribute_;

	return QTTrackUsageInPreviewAttribute_ = new NSString(bindings.QTTrackUsageInPreviewAttribute);
}

NSString QTTrackVolumeAttribute ()
{
	if (QTTrackVolumeAttribute_)
		return QTTrackVolumeAttribute_;

	return QTTrackVolumeAttribute_ = new NSString(bindings.QTTrackVolumeAttribute);
}

const TQTTrackVisualSupport = `

	NSSize apertureModeDimensionsForMode (NSString mode)
	{
		return invokeObjcSelf!(NSSize, "apertureModeDimensionsForMode:", NSString)(mode);
	}

	void setApertureModeDimensions (NSSize dimensions, NSString mode)
	{
		return invokeObjcSelf!(void, "setApertureModeDimensions:forMode:", NSSize, NSString)(dimensions, mode);
	}

	void generateApertureModeDimensions ()
	{
		return invokeObjcSelf!(void, "generateApertureModeDimensions");
	}

	void removeApertureModeDimensions ()
	{
		return invokeObjcSelf!(void, "removeApertureModeDimensions");
	}

	//mixin ObjcBindMethod!(apertureModeDimensionsForMode, "apertureModeDimensionsForMode:");
	//mixin ObjcBindMethod!(setApertureModeDimensions, "setApertureModeDimensions:forMode:");
	//mixin ObjcBindMethod!(generateApertureModeDimensions, "generateApertureModeDimensions");
	//mixin ObjcBindMethod!(removeApertureModeDimensions, "removeApertureModeDimensions");

`;

class QTTrack : NSObject
{
	mixin (ObjcWrap);

	QTMovie movie ()
	{
		return invokeObjcSelf!(QTMovie, "movie");
	}

	QTMedia media ()
	{
		return invokeObjcSelf!(QTMedia, "media");
	}

	bool isEnabled ()
	{
		return invokeObjcSelf!(bool, "isEnabled");
	}

	void setEnabled (bool enabled)
	{
		return invokeObjcSelf!(void, "setEnabled:", bool)(enabled);
	}

	float volume ()
	{
		return invokeObjcSelf!(float, "volume");
	}

	void setVolume (float volume)
	{
		return invokeObjcSelf!(void, "setVolume:", float)(volume);
	}

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

	void setTrackAttributes (NSDictionary attributes)
	{
		return invokeObjcSelf!(void, "setTrackAttributes:", 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);
	}

	void insertSegmentOfTrack (QTTrack track, QTTimeRange range, QTTime time)
	{
		return invokeObjcSelf!(void, "insertSegmentOfTrack:timeRange:atTime:", QTTrack, QTTimeRange, QTTime)(track, range, time);
	}

	void insertSegmentOfTrack (QTTrack track, QTTimeRange srcRange, QTTimeRange dstRange)
	{
		return invokeObjcSelf!(void, "insertSegmentOfTrack:fromRange:scaledToRange:", QTTrack, QTTimeRange, QTTimeRange)(track, srcRange, dstRange);
	}

	void insertEmptySegmentAt (QTTimeRange range)
	{
		return invokeObjcSelf!(void, "insertEmptySegmentAt:", QTTimeRange)(range);
	}

	void deleteSegment (QTTimeRange segment)
	{
		return invokeObjcSelf!(void, "deleteSegment:", QTTimeRange)(segment);
	}

	void scaleSegment (QTTimeRange segment, QTTime newDuration)
	{
		return invokeObjcSelf!(void, "scaleSegment:newDuration:", QTTimeRange, QTTime)(segment, newDuration);
	}

	void addImage (NSImage image, QTTime duration, NSDictionary attributes)
	{
		return invokeObjcSelf!(void, "addImage:forDuration:withAttributes:", NSImage, QTTime, NSDictionary)(image, duration, attributes);
	}
	
	// QTTrackVisualSupport
	NSSize apertureModeDimensionsForMode (NSString mode)
	{
		return invokeObjcSelf!(NSSize, "apertureModeDimensionsForMode:", NSString)(mode);
	}

	void setApertureModeDimensions (NSSize dimensions, NSString mode)
	{
		return invokeObjcSelf!(void, "setApertureModeDimensions:forMode:", NSSize, NSString)(dimensions, mode);
	}

	void generateApertureModeDimensions ()
	{
		return invokeObjcSelf!(void, "generateApertureModeDimensions");
	}

	void removeApertureModeDimensions ()
	{
		return invokeObjcSelf!(void, "removeApertureModeDimensions");
	}
}