view dstep/coreservices/carboncore/Resources.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.coreservices.carboncore.Resources;

//import dstep.AvailabilityMacros;
import dstep.coreservices.carboncore.Files;
import dstep.coreservices.carboncore.MacTypes;
import dstep.coreservices.carboncore.MixedMode;

alias short ResID;
alias short ResAttributes;
alias short ResFileAttributes;
alias short ResourceCount;
alias short ResourceIndex;
alias short ResFileRefNum;
alias ResErrProcPtr ResErrUPP;
alias short RsrcChainLocation;

extern (C)
{
	alias void function (short) ResErrProcPtr;
	alias short function (Handle, ubyte) ResourceEndianFilterPtr;
}

enum
{
	resSysRefBit = 7,
	resSysHeapBit = 6,
	resPurgeableBit = 5,
	resLockedBit = 4,
	resProtectedBit = 3,
	resPreloadBit = 2,
	resChangedBit = 1
}

enum
{
	resSysHeap = 64,
	resPurgeable = 32,
	resLocked = 16,
	resProtected = 8,
	resPreload = 4,
	resChanged = 2
}

enum
{
	mapReadOnlyBit = 7,
	mapCompactBit = 6,
	mapChangedBit = 5
}

enum
{
	mapReadOnly = 128,
	mapCompact = 64,
	mapChanged = 32
}

enum
{
	kResFileNotOpened = -1,
	kSystemResFile = 0
}

enum
{
	kRsrcChainBelowSystemMap = 0,
	kRsrcChainBelowApplicationMap = 1,
	kRsrcChainAboveApplicationMap = 2,
	kRsrcChainAboveAllMaps = 4
}

extern (C)
{
	ResErrUPP NewResErrUPP (ResErrProcPtr userRoutine);
	void DisposeResErrUPP (ResErrUPP userUPP);
	void InvokeResErrUPP (short thErr, ResErrUPP userUPP);
	void CloseResFile (short refNum);
	short ResError ();
	short CurResFile ();
	short HomeResFile (Handle theResource);
	void UseResFile (short refNum);
	short CountTypes ();
	short Count1Types ();
	void GetIndType (ResType* theType, short itemIndex);
	void Get1IndType (ResType* theType, short itemIndex);
	void SetResLoad (ubyte load);
	short CountResources (uint theType);
	short Count1Resources (uint theType);
	Handle GetIndResource (uint theType, short itemIndex);
	Handle Get1IndResource (uint theType, short itemIndex);
	Handle GetResource (uint theType, short theID);
	Handle Get1Resource (uint theType, short theID);
	Handle GetNamedResource (uint theType, char* name);
	Handle Get1NamedResource (uint theType, char* name);
	void LoadResource (Handle theResource);
	void ReleaseResource (Handle theResource);
	void DetachResource (Handle theResource);
	short UniqueID (uint theType);
	short Unique1ID (uint theType);
	short GetResAttrs (Handle theResource);
	void GetResInfo (Handle theResource, ResID* theID, ResType* theType, ubyte[256] name);
	void SetResInfo (Handle theResource, short theID, char* name);
	void AddResource (Handle theData, uint theType, short theID, char* name);
	int GetResourceSizeOnDisk (Handle theResource);
	int GetMaxResourceSize (Handle theResource);
	void SetResAttrs (Handle theResource, short attrs);
	void ChangedResource (Handle theResource);
	void RemoveResource (Handle theResource);
	void UpdateResFile (short refNum);
	void WriteResource (Handle theResource);
	void SetResPurge (ubyte install);
	short GetResFileAttrs (short refNum);
	void SetResFileAttrs (short refNum, short attrs);
	void ReadPartialResource (Handle theResource, int offset, void* buffer, int count);
	void WritePartialResource (Handle theResource, int offset, void* buffer, int count);
	void SetResourceSize (Handle theResource, int newSize);
	Handle GetNextFOND (Handle fondHandle);
	short InsertResourceFile (short refNum, short where);
	short DetachResourceFile (short refNum);
	short GetTopResourceFile (ResFileRefNum* refNum);
	short GetNextResourceFile (short curRefNum, ResFileRefNum* nextRefNum);
	short FSOpenResFile (FSRef* ref_, byte permission);
	void FSCreateResFile (FSRef* parentRef, uint nameLength, wchar* name, uint whichInfo, FSCatalogInfo* catalogInfo, FSRef* newRef, FSSpecPtr newSpec);
	ubyte FSResourceFileAlreadyOpen (FSRef* resourceFileRef, char* inChain, ResFileRefNum* refNum);
	short FSOpenOrphanResFile (FSRef* ref_, byte permission, ResFileRefNum* refNum);
	short FSCreateResourceFile (FSRef* parentRef, uint nameLength, wchar* name, uint whichInfo, FSCatalogInfo* catalogInfo, uint forkNameLength, wchar* forkName, FSRef* newRef, FSSpecPtr newSpec);
	short FSCreateResourceFork (FSRef* ref_, uint forkNameLength, wchar* forkName, uint flags);
	short FSOpenResourceFile (FSRef* ref_, uint forkNameLength, wchar* forkName, byte permissions, ResFileRefNum* refNum);
}