view dstep/diskarbitration/DiskArbitration.d @ 11:07194b026fa4

Added bindings to a couple of frameworks, new license + some other things
author Jacob Carlborg <doob@me.com>
date Sat, 01 Aug 2009 15:03:28 +0200
parents
children
line wrap: on
line source

/**
 * Copyright: Copyright (c) 2009 Jacob Carlborg.
 * Authors: Jacob Carlborg
 * Version: Initial created: Jul 21, 2009 
 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
 */
module dstep.diskarbitration.DiskArbitration;

public:

import dstep.corefoundation.CoreFoundation;
import dstep.diskarbitration.DADisk;
import dstep.diskarbitration.DADissenter;
import dstep.diskarbitration.DASession;

alias uint DADiskMountOptions;
alias uint DADiskRenameOptions;
alias uint DADiskUnmountOptions;
alias uint DADiskEjectOptions;
alias uint DADiskClaimOptions;
alias uint DADiskOptions;

extern (C)
{
	alias void function (DADiskRef, DADissenterRef, void*) DADiskRenameCallback;
	alias DADissenterRef function (DADiskRef, void*) DADiskMountApprovalCallback;
	alias void function (DADiskRef, CFArrayRef, void*) DADiskDescriptionChangedCallback;
	alias void function (DADiskRef, void*) DADiskAppearedCallback;
	alias DADissenterRef function (DADiskRef, void*) DADiskEjectApprovalCallback;
	alias void function (DADiskRef, void*) DADiskDisappearedCallback;
	alias void function (DADiskRef, DADissenterRef, void*) DADiskUnmountCallback;
	alias void function (DADiskRef, DADissenterRef, void*) DADiskMountCallback;
	alias void function (DADiskRef, DADissenterRef, void*) DADiskClaimCallback;
	alias DADissenterRef function (DADiskRef, void*) DADiskUnmountApprovalCallback;
	alias void function (DADiskRef, void*) DADiskPeekCallback;
	alias DADissenterRef function (DADiskRef, void*) DADiskClaimReleaseCallback;
	alias void function (DADiskRef, DADissenterRef, void*) DADiskEjectCallback;
}

extern (C)
{
	extern
	{
		CFDictionaryRef kDADiskDescriptionMatchMediaUnformatted;
		CFDictionaryRef kDADiskDescriptionMatchMediaWhole;
		CFDictionaryRef kDADiskDescriptionMatchVolumeMountable;
		CFDictionaryRef kDADiskDescriptionMatchVolumeUnrecognized;
		CFArrayRef kDADiskDescriptionWatchVolumeName;
		CFArrayRef kDADiskDescriptionWatchVolumePath;
	}
}

enum
{
	kDADiskMountOptionDefault = 0x00000000,
	kDADiskMountOptionWhole = 0x00000001
}

enum
{
	kDADiskRenameOptionDefault = 0x00000000
}

enum
{
	kDADiskUnmountOptionDefault = 0x00000000,
	kDADiskUnmountOptionForce = 0x00080000,
	kDADiskUnmountOptionWhole = 0x00000001
}

enum
{
	kDADiskEjectOptionDefault = 0x00000000
}

enum
{
	kDADiskClaimOptionDefault = 0x00000000
}

enum
{
	kDADiskOptionDefault = 0x00000000,
	kDADiskOptionEjectUponLogout = 0x00000001,
	kDADiskOptionMountAutomatic = 0x00000010,
	kDADiskOptionMountAutomaticNoDefer = 0x00000020,
	kDADiskOptionPrivate = 0x00000100
}

extern (C)
{
	void DARegisterDiskAppearedCallback (DASessionRef session, CFDictionaryRef match, DADiskAppearedCallback callback, void* context);
	void DARegisterDiskDescriptionChangedCallback (DASessionRef session, CFDictionaryRef match, CFArrayRef watch, DADiskDescriptionChangedCallback callback, void* context);
	void DARegisterDiskDisappearedCallback (DASessionRef session, CFDictionaryRef match, DADiskDisappearedCallback callback, void* context);
	void DADiskMount (DADiskRef disk, CFURLRef path, uint options, DADiskMountCallback callback, void* context);
	void DADiskMountWithArguments (DADiskRef disk, CFURLRef path, uint options, DADiskMountCallback callback, void* context, CFStringRef* arguments);
	void DARegisterDiskMountApprovalCallback (DAApprovalSessionRef session, CFDictionaryRef match, DADiskMountApprovalCallback callback, void* context);
	void DADiskRename (DADiskRef disk, CFStringRef name, uint options, DADiskRenameCallback callback, void* context);
	void DADiskUnmount (DADiskRef disk, uint options, DADiskUnmountCallback callback, void* context);
	void DARegisterDiskUnmountApprovalCallback (DAApprovalSessionRef session, CFDictionaryRef match, DADiskUnmountApprovalCallback callback, void* context);
	void DADiskEject (DADiskRef disk, uint options, DADiskEjectCallback callback, void* context);
	void DARegisterDiskEjectApprovalCallback (DAApprovalSessionRef session, CFDictionaryRef match, DADiskEjectApprovalCallback callback, void* context);
	void DADiskClaim (DADiskRef disk, uint options, DADiskClaimReleaseCallback release, void* releaseContext, DADiskClaimCallback callback, void* callbackContext);
	ubyte DADiskIsClaimed (DADiskRef disk);
	void DADiskUnclaim (DADiskRef disk);
	void DARegisterDiskPeekCallback (DASessionRef session, CFDictionaryRef match, int order, DADiskPeekCallback callback, void* context);
	uint DADiskGetOptions (DADiskRef disk);
	int DADiskSetOptions (DADiskRef disk, uint options, ubyte value);
	void DAUnregisterCallback (DASessionRef session, void* callback, void* context);
	void DAUnregisterApprovalCallback (DAApprovalSessionRef session, void* callback, void* context);
}