view dstep/quartzcore/CVBase.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
line wrap: on
line source

/**
 * Copyright: Copyright (c) 2009 Jacob Carlborg.
 * Authors: Jacob Carlborg
 * Version: Initial created: Sep 24, 2009 
 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
 */
module dstep.quartzcore.CVBase;

import dstep.corevideo.CVBase;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;

alias ulong CVOptionFlags;

extern (C)
{
	extern
	{
		const CVTime kCVZeroTime;
		const CVTime kCVIndefiniteTime;
	}
}

enum
{
	kCVSMPTETimeType24 = 0,
	kCVSMPTETimeType25 = 1,
	kCVSMPTETimeType30Drop = 2,
	kCVSMPTETimeType30 = 3,
	kCVSMPTETimeType2997 = 4,
	kCVSMPTETimeType2997Drop = 5,
	kCVSMPTETimeType60 = 6,
	kCVSMPTETimeType5994 = 7
}

enum
{
	kCVSMPTETimeValid = (1L << 0),
	kCVSMPTETimeRunning = (1L << 1)
}

enum
{
	kCVTimeIsIndefinite = 1 << 0
}

enum
{
	kCVTimeStampVideoTimeValid = (1L << 0),
	kCVTimeStampHostTimeValid = (1L << 1),
	kCVTimeStampSMPTETimeValid = (1L << 2),
	kCVTimeStampVideoRefreshPeriodValid = (1L << 3),
	kCVTimeStampRateScalarValid = (1L << 4),
	kCVTimeStampTopField = (1L << 16),
	kCVTimeStampBottomField = (1L << 17)
}

enum
{
	kCVTimeStampVideoHostTimeValid = (kCVTimeStampVideoTimeValid | kCVTimeStampHostTimeValid),
	kCVTimeStampIsInterlaced = (kCVTimeStampTopField | kCVTimeStampBottomField)
}

struct CVTime
{
	long timeValue;
	int timeScale;
	int flags;
}


struct CVTimeStamp
{
	uint version_;
	int videoTimeScale;
	long videoTime;
	ulong hostTime;
	double rateScalar;
	long videoRefreshPeriod;
	CVSMPTETime smpteTime;
	ulong flags;
	ulong reserved;
}


struct CVSMPTETime
{
	short subframes;
	short subframeDivisor;
	uint counter;
	uint type;
	uint flags;
	short hours;
	short minutes;
	short seconds;
	short frames;
}