/* SFX Arexxtester */

OPTIONS RESULTS

ADDRESS REXX_SFX

SAY '[4m[32mSFX-ArexxTester[31m[24m';SAY

SelLoader 'RAW'											/* 2 RAW Samples laden */

LoadSample 'misc:test1.raw'
IF RC~=0 THEN CALL AppError('LoadSample',RC)
ELSE buf1=RESULT

LoadSample 'misc:test2.raw'
IF RC~=0 THEN CALL AppError('LoadSample',RC)
ELSE buf2=RESULT

SetActiveBuffer buf1									/* das 1. umbenennen */

RenameActiveBuffer 'pling'
SAY 'press key to continue'
PULL

FX_Middle buf1											/* Middle */
IF RC~=0 THEN CALL AppError('FX_Middle',RC)
ELSE buf3=RESULT
SAY 'press key to continue'
PULL

/*
FX_ADSR_Envelope buf3									/* ADSR-Envelope */
IF RC~=0 THEN CALL AppError('FX_ADSR_Envelope',RC)
ELSE buf3=RESULT
SAY 'press key to continue'
PULL
*/

SetFXParam 'ADSR-Envelope' 'Mode' '1'
SetFXParam 'ADSR-Envelope' 'Pos' '1' '100'
SetFXParam 'ADSR-Envelope' 'Lev' '1' '35'
SetFXParam 'ADSR-Envelope' 'Pos' '2' '150'
SetFXParam 'ADSR-Envelope' 'Lev' '2' '75'
SetFXParam 'ADSR-Envelope' 'Pos' '3' '200'
SetFXParam 'ADSR-Envelope' 'Lev' '3' '100'

ADSR-Envelope									/* ADSR-Envelope */
IF RC~=0 THEN CALL AppError('ADSR-Envelope',RC)
ELSE buf4=RESULT
SAY 'press key to continue'
PULL

ActivateSFX												/* fertig */
IF RC~=0 THEN CALL AppError('ActivateSFX',RC)
SAY 'press key to exit'
PULL

ExitSFX
IF RC~=0 THEN CALL AppError('ExitSFX',RC)

EXIT

AppError:PROCEDURE
	cmd=arg(1)
	ret=arg(2)
	SAY '[4m[33mApplication Error[31m[24m';say
	SAY 'Command 'cmd' failed with Returncode 'ret
	SELECT
		WHEN ret='1' THEN SAY '	=> unknown command'
		WHEN ret='2' THEN SAY '	=> unknown parameter'
		OTHERWISE SAY '	=> unknown returncode'
	END
	SAY
RETURN
