
/* 'STrI' Glue.c - Glue for 'STrI' resource calls */

/* Copyright (c) 1992 by Frank Seide, Koolbarg 39d, D-2000 Hamburg 74, Germany */

OSErr GetSoundTrack() /* (int vRefNum, StringPtr fName, int ldOverSampling,
						struct SoundTrack ** *soundTrackHandle, Boolean check) */
{
	asm {
		move.l		#0,-(a7)
		move.l		#'STrI',-(a7)
		move.w		#128,-(a7)
		_GetResource
		move.l		(a7)+,a0
		move.l		a0,d0
		bne			@OK
		move.w		#25,d0
		_SysError
@OK	_HLock
		_HNoPurge
		move.l		(a0),a0
		jmp		0(a0)
	}
}

void DisposeSoundTrack() /* (struct SoundTrack ** sth) */
{
	asm {
		move.l		#0,-(a7)
		move.l		#'STrI',-(a7)
		move.w		#128,-(a7)
		_GetResource
		move.l		(a7)+,a0
		move.l		(a0),a0
		jmp		4(a0)
	}
}
struct SoundTrack * LockSoundTrack() /* (struct SoundTrack ** soundTrack) */

{
	asm {
		move.l		#0,-(a7)
		move.l		#'STrI',-(a7)
		move.w		#128,-(a7)
		_GetResource
		move.l		(a7)+,a0
		move.l		(a0),a0
		jmp		8(a0)
	}
}

void UnlockSoundTrack() /* (struct SoundTrack ** soundTrack) */
{
	asm {
		move.l		#0,-(a7)
		move.l		#'STrI',-(a7)
		move.w		#128,-(a7)
		_GetResource
		move.l		(a7)+,a0
		move.l		(a0),a0
		jmp		12(a0)
	}
}

void UnlinkSoundTrack() /* (struct SoundTrack ** soundTrack) */
{
	asm {
		move.l		#0,-(a7)
		move.l		#'STrI',-(a7)
		move.w		#128,-(a7)
		_GetResource
		move.l		(a7)+,a0
		move.l		(a0),a0
		jmp		16(a0)
	}
}

void LinkSoundTrack() /* (struct SoundTrack ** soundTrack, struct PChannel * pc) */
{
	asm {
		move.l		#0,-(a7)
		move.l		#'STrI',-(a7)
		move.w		#128,-(a7)
		_GetResource
		move.l		(a7)+,a0
		move.l		(a0),a0
		jmp		20(a0)
	}
}

void UpdateSoundTrack() /* (struct SoundTrack ** soundTrack) */
{
	asm {
		move.l		#0,-(a7)
		move.l		#'STrI',-(a7)
		move.w		#128,-(a7)
		_GetResource
		move.l		(a7)+,a0
		move.l		(a0),a0
		jmp		24(a0)
	}
}

