Mac-Carbon

 view release on metacpan or  search on metacpan

Sound/Sound.xs  view on Meta::CPAN

SndChannelStatus(chan)
	SndChannel	chan
	CODE:
	if (gMacPerl_OSErr = SndChannelStatus(chan, sizeof(RETVAL), &RETVAL)) {
		XSRETURN_UNDEF;
	}
	OUTPUT:
	RETVAL

SMStatus
SndManagerStatus()
	CODE:
	if (gMacPerl_OSErr = SndManagerStatus(sizeof(RETVAL), &RETVAL)) {
		XSRETURN_UNDEF;
	}
	OUTPUT:
	RETVAL

short
SndGetSysBeepState()
	CODE:
	SndGetSysBeepState(&RETVAL);
	OUTPUT:
	RETVAL

MacOSRet
SndSetSysBeepState(sysBeepState)
	short	sysBeepState

=begin ignore

MacOSRet
SndPlayDoubleBuffer(chan, theParams)
	SndChannel	chan
	SndDoubleBufferHeaderPtr	theParams

=end ignore

=cut

#ifndef MACOS_TRADITIONAL

NumVersion
MACEVersion()
	CODE:
	croak("Usage: Mac::Sound::MACEVersion unsupported in Carbon");

#else

NumVersion
MACEVersion()

#endif

void
Comp3to1(inBuffer, inState=NO_INIT, numChannels=1, whichChannel=1)
	SV *			inBuffer
	StateBlock		inState
	unsigned long	numChannels
	unsigned long	whichChannel
	PPCODE:
	{
#ifndef MACOS_TRADITIONAL
	croak("Usage: Mac::Sound::Comp3to1 unsupported in Carbon");
#else
		unsigned long 	cnt = SvCUR(inBuffer);
		SV *			outBuffer = newSVpv("", cnt / 3);
		StateBlock		outState;
		Comp3to1(
			SvPV_nolen(inBuffer), SvPV_nolen(outBuffer), cnt, 
			(items > 1) ? &inState : nil, &outState, numChannels, whichChannel);
		PUSHs(sv_2mortal(outBuffer));
		if (GIMME == G_ARRAY) {
			XS_PUSH(StateBlock, outState);
		}
#endif
	}

void
Exp1to3(inBuffer, inState=NO_INIT, numChannels=1, whichChannel=1)
	SV *			inBuffer
	StateBlock		inState
	unsigned long	numChannels
	unsigned long	whichChannel
	PPCODE:
	{
#ifndef MACOS_TRADITIONAL
	croak("Usage: Mac::Sound::Exp1to3 unsupported in Carbon");
#else
		unsigned long 	cnt = SvCUR(inBuffer) / 2;
		SV *			outBuffer = newSVpv("", cnt*6);
		StateBlock		outState;
		Exp1to3(
			SvPV_nolen(inBuffer), SvPV_nolen(outBuffer), cnt, 
			(items > 1) ? &inState : nil, &outState, numChannels, whichChannel);
		PUSHs(sv_2mortal(outBuffer));
		if (GIMME == G_ARRAY) {
			XS_PUSH(StateBlock, outState);
		}
#endif
	}

void
Comp6to1(inBuffer, inState=NO_INIT, numChannels=1, whichChannel=1)
	SV *			inBuffer
	StateBlock		inState
	unsigned long	numChannels
	unsigned long	whichChannel
	PPCODE:
	{
#ifndef MACOS_TRADITIONAL
	croak("Usage: Mac::Sound::Comp6to1 unsupported in Carbon");
#else
		unsigned long 	cnt = SvCUR(inBuffer);
		SV *			outBuffer = newSVpv("", cnt / 6);
		StateBlock		outState;
		Comp6to1(
			SvPV_nolen(inBuffer), SvPV_nolen(outBuffer), cnt, 
			(items > 1) ? &inState : nil, &outState, numChannels, whichChannel);
		PUSHs(sv_2mortal(outBuffer));
		if (GIMME == G_ARRAY) {
			XS_PUSH(StateBlock, outState);
		}
#endif
	}

void
Exp1to6(inBuffer, inState=NO_INIT, numChannels=1, whichChannel=1)
	SV *			inBuffer
	StateBlock		inState
	unsigned long	numChannels
	unsigned long	whichChannel
	PPCODE:
	{
#ifndef MACOS_TRADITIONAL
	croak("Usage: Mac::Sound::Exp1to6 unsupported in Carbon");
#else
		unsigned long 	cnt = SvCUR(inBuffer);
		SV *			outBuffer = newSVpv("", cnt * 6);
		StateBlock		outState;
		Exp1to6(
			SvPV_nolen(inBuffer), SvPV_nolen(outBuffer), cnt, 
			(items > 1) ? &inState : nil, &outState, numChannels, whichChannel);
		PUSHs(sv_2mortal(outBuffer));
		if (GIMME == G_ARRAY) {
			XS_PUSH(StateBlock, outState);
		}
#endif
	}

long
GetSysBeepVolume()
	CODE:
	if (gMacPerl_OSErr = GetSysBeepVolume(&RETVAL)) {
		XSRETURN_UNDEF;
	}
	OUTPUT:
	RETVAL

MacOSRet
SetSysBeepVolume(level)
	long	level

long
GetDefaultOutputVolume()
	CODE:
	if (gMacPerl_OSErr = GetDefaultOutputVolume(&RETVAL)) {
		XSRETURN_UNDEF;
	}
	OUTPUT:
	RETVAL

MacOSRet
SetDefaultOutputVolume(level)
	long	level

long
GetSoundHeaderOffset(sndHandle)
	Handle	sndHandle
	CODE:
	if (gMacPerl_OSErr = GetSoundHeaderOffset((SndListHandle)sndHandle, &RETVAL)) {
		XSRETURN_UNDEF;
	}
	OUTPUT:
	RETVAL

UnsignedFixed
UnsignedFixedMulDiv(value, multiplier, divisor)
	UnsignedFixed	value
	UnsignedFixed	multiplier
	UnsignedFixed	divisor

CompressionInfo

Sound/Sound.xs  view on Meta::CPAN


MacOSRet
SoundConverterEndConversion(sc, outputPtr, outputFrames, outputBytes)
	SoundConverter	sc
	void *	outputPtr
	unsigned long *	outputFrames
	unsigned long *	outputBytes

=end ignore

=cut

NumVersion
SPBVersion()
		

Handle
SndRecord(filterProc, corner, quality)
	SV *	filterProc
	Point	corner
	OSType	quality
	CODE:
	{
		RETVAL = nil;
		if (gMacPerl_OSErr = 
			SndRecord(nil, corner, quality, (SndListHandle *)&RETVAL)
		) {
			XSRETURN_UNDEF;
		}
	}
	OUTPUT:
	RETVAL

MacOSRet
SndRecordToFile(filterProc, corner, quality, fRefNum)
	SV *	filterProc
	Point	corner
	OSType	quality
	short	fRefNum
	CODE:
#ifndef MACOS_TRADITIONAL
	croak("Usage: Mac::Sound::SndRecordToFile unsupported in Carbon");
#else
	RETVAL = SndRecordToFile(nil, corner, quality, fRefNum);
#endif
	OUTPUT:
	RETVAL

MacOSRet
SPBSignInDevice(deviceRefNum, deviceName)
	short	deviceRefNum
	Str255	deviceName

MacOSRet
SPBSignOutDevice(deviceRefNum)
	short	deviceRefNum

void
SPBGetIndexedDevice(count)
	short	count
	PPCODE:
	{
		Str255	name;
		Handle 	icon;
		
		if (gMacPerl_OSErr = SPBGetIndexedDevice(count, name, &icon)) {
			XSRETURN_UNDEF;
		}
		XS_PUSH(Str255, name);
		if (GIMME == G_ARRAY) {
			XS_XPUSH(Handle, icon);
		} else {
			DisposeHandle(icon);
		}
	}

long
SPBOpenDevice(deviceName, permission)
	Str255	deviceName
	short	permission
	CODE:
	if (gMacPerl_OSErr = SPBOpenDevice(deviceName, permission, &RETVAL)) {
		XSRETURN_UNDEF;
	}
	OUTPUT:
	RETVAL

MacOSRet
SPBCloseDevice(inRefNum)
	long	inRefNum

MacOSRet
SPBRecord(inParamPtr, asynchFlag=false)
	SPB	   &inParamPtr
	Boolean	asynchFlag

#ifndef MACOS_TRADITIONAL

MacOSRet
SPBRecordToFile(fRefNum, inParamPtr, asynchFlag=false)
	short	fRefNum
	SPB	   &inParamPtr
	Boolean	asynchFlag
	CODE:
	croak("Usage: Mac::Sound::SPBRecordToFile unsupported in Carbon");

#else

MacOSRet
SPBRecordToFile(fRefNum, inParamPtr, asynchFlag=false)
	short	fRefNum
	SPB	   &inParamPtr
	Boolean	asynchFlag

#endif

MacOSRet
SPBPauseRecording(inRefNum)
	long	inRefNum

MacOSRet
SPBResumeRecording(inRefNum)
	long	inRefNum

MacOSRet
SPBStopRecording(inRefNum)
	long	inRefNum

void
SPBGetRecordingStatus(inRefNum)
	long	inRefNum
	PPCODE:
	{
		short recordingStatus;
		short meterLevel;
		unsigned long totalSamplesToRecord;
		unsigned long numberOfSamplesRecorded;
		unsigned long totalMsecsToRecord;
		unsigned long numberOfMsecsRecorded;
		
		if (gMacPerl_OSErr = 
			SPBGetRecordingStatus(
				inRefNum, &recordingStatus, &meterLevel,
				&totalSamplesToRecord, &numberOfSamplesRecorded,
				&totalMsecsToRecord, &numberOfMsecsRecorded)
		) {
			XSRETURN_EMPTY;
		}
		XS_XPUSH(short, recordingStatus);
		XS_XPUSH(short, meterLevel);
		XS_XPUSH(U32, totalSamplesToRecord);
		XS_XPUSH(U32, numberOfSamplesRecorded);
		XS_XPUSH(U32, totalMsecsToRecord);
		XS_XPUSH(U32, numberOfMsecsRecorded);
	}

=begin ignore

MacOSRet
SPBGetDeviceInfo(inRefNum, infoType, infoData)
	long	inRefNum
	OSType	infoType
	void *	infoData

MacOSRet
SPBSetDeviceInfo(inRefNum, infoType, infoData)
	long	inRefNum
	OSType	infoType
	void *	infoData

=end ignore

=cut
long
SPBMillisecondsToBytes(inRefNum)
	long	inRefNum
	CODE:
	if (gMacPerl_OSErr = SPBMillisecondsToBytes(inRefNum, &RETVAL)) {
		XSRETURN_UNDEF;
	}
	OUTPUT:
	RETVAL
	
long
SPBBytesToMilliseconds(inRefNum)
	long	inRefNum
	CODE:
	if (gMacPerl_OSErr = SPBBytesToMilliseconds(inRefNum, &RETVAL)) {
		XSRETURN_UNDEF;
	}
	OUTPUT:
	RETVAL



( run in 0.845 second using v1.01-cache-2.11-cpan-5511b514fd6 )