/* HiP-ARexx-Play
(c) by Marcel Döring in 1995-1996
*/
IF ~SHOW('LIBRARIES','rexxreqtools.library') THEN DO
IF ~ADDLIB('rexxreqtools.library',0,-30,0) THEN DO
SAY 'No tritonrexx.library found !'
SAY 'Available on Aminet !'
EXIT(10)
END
END
Say 'RexxReqTools.library found'
IF ~SHOW('LIBRARIES','tritonrexx.library') THEN DO
IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN DO
SAY 'No tritonrexx.library found !'
SAY 'Available on Aminet !'
EXIT(10)
END
END
rtv=TritonRexxVersion()
Say 'TritonRexx.library v. 'rtv' found'
IF ~SHOW('LIBRARIES','rexxtricks.library') THEN DO
IF ~ADDLIB('rexxtricks.library',2,-30,0) THEN DO
SAY 'No Rexxtricks.library found !'
Say 'Available on Aminet !'
EXIT(10)
END
END
Say 'RexxTricks.library found'
IF ~SHOW('LIBRARIES','rexxsupport.library') THEN DO
IF ~ADDLIB('rexxsupport.library',0,-30,0) THEN DO
SAY 'No Rexxsupport.library available '
EXIT(10)
END
END
Say 'RexxSupport.library found'
kick = GETENV('Kickstart')
vewb = GETENV('Workbench')
lang = GETENV('Language')
Hippo='Work:Hippoplayer/HiP'
nohip=0
disbld=0
IF ~SHOWLIST('P','HIPPOPLAYER') THEN
NoHip=1
tv=TritonVersion()
SIGNAL ON break_c
SIGNAL ON failure
SIGNAL ON halt
SIGNAL ON ioerr
SIGNAL ON syntax
minimum = 0
maximum = 64
wert = 64
bold='1b'x'[1m'
app = TR_CREATEAPP('TRCA_Name Emergency-Break',
'TRCA_LongName "Emergency-Break in scripts with errors"',
'TRCA_Info "Tries to shut everything down.."',
'TRCA_Version 1.2',
'TRCA_Release 1',
'TRCA_Date 8.11.95',
'TAG_END')
IF app ~= '00000000'x THEN DO
appname = 'HiP-ARexx-Play'
applongname = 'HiP-ARexx-Play - (c)1995 by Marcel Doering'
appinfo = 'ARexx-Player using Hippoplayer'
appversion = '2.0'
apprelease = '2'
appdate = '11.3.1996'
clipname = ' HiP-ARexx-Play '
clipinfo = ' ARexx-Player using Hippoplayer '
app = TR_CREATEAPP('TRCA_Name' '"'appname'"',
'TRCA_LongName' '"'applongname'"',
'TRCA_Info' '"'appinfo'"',
'TRCA_Version' '"'appversion'"',
'TRCA_Release' '"'apprelease'"',
'TRCA_Date' '"'appdate'"',
'TAG_END')
IF NoHip=1 THEN
notrunning = rtezrequest('Attention !'||'0a'x||'You have to start HiP if you want to use H.A.P. !','Okay','Attention !','rtez_flags=ezreqf_centertext','rtez_defaultresponse = 0',)
ELSE
NOP
SayVol = FALSE
HelpBool = 0
windowtags = WindowID(1),
QuickHelpOn(HelpBool),
WindowFlags(TRWI_Backfill TRBF_SHINE),
WindowBackFillFB,
WindowTitle(appname appversion),
BeginMenu("Project"),
MenuItem("A_About",10),
MenuItem("History",15) ItemBarlabel,
MenuItem("I_HiP-Status",11) ItemBarlabel,
MenuItem("Y_Iconify",14) ItemBarlabel,
MenuItemC("U_QuickHelp",103),
MenuItemC("V_Print Volume",110) ItemBarlabel,
MenuItem("Q_Quit HiP & H.A.P.",12),
BeginMenu('H.A.P. Control'),
MenuItem('L_Load & Play',1),
MenuItem('D_Add module',7),
MenuItem('P_Pause',2),
MenuItem('>_Pattern >>',3),
MenuItem('<_Pattern <<',4),
MenuItem('Z_Zip',5),
MenuItem('H_Hide',9),
MenuItem('W_Samples Window',8),
MenuItem('T_Status...',11),
MenuItem('E_Eject',6),
NamedFrameBox('Volume'),
'VertGroupA',
SliderGadget(0,maximum-minimum,wert+minimum,1),
'HorizGroupA',
'Space',
'VertGroupA',
'SpaceS',
Button("Start HiP !",13) QuickHelp('Start HiP, using defined path'),
Button("Load & Play",1) QuickHelp('Load & Play a module'),
Button("Add module",7) QuickHelp('Add an module to the Mod-List of HiP'),
Button("Pause",2) QuickHelp('Pause the module HiP is playing'),
Button("Pattern >>",3) QuickHelp('Jump pattern forward of module'),
Button("Pattern <<",4) QuickHelp('Jump pattern reverse of module'),
Button("Zip",5) QuickHelp('Zip HiP-window'),
'EndGroup',
'VertGroupA',
'SpaceS',
Button("Hide",9) QuickHelp('Hide HiP-window'),
Button("Samples Window",8) QuickHelp('Open samples window of HiP'),
Button("Status...",11) QuickHelp('Get some informations'),
Button("Eject",6) QuickHelp('Eject playing module'),
Button("Quit HiP & H.A.P.",12) QuickHelp('Quit Hippoplayer & HiP-ARexx-Play'),
Button("Iconify H.A.P.",14) QuickHelp('Iconify HiP-ARexx-Play'),
Button("About...",10) QuickHelp('Guess what...'),
'EndGroup',
'Space',
'EndGroup',
'Space',
'EndGroup',
'Space',
'EndProject'
app = TR_CREATEAPP('TRCA_Name Button')
IF app ~= '00000000'x THEN DO
window = TR_OPENPROJECT(app,windowtags)
IF window ~= '00000000'x THEN DO
ende = 0
if nohip=1 then
if disbld=0 then
call dagads
DO WHILE ende ~= 1
CALL TR_WAIT(app,'')
DO WHILE TR_HANDLEMSG(app,'event')
IF event.trm_class = 'TRMS_NEWVALUE' THEN DO
SELECT
WHEN event.trm_id = 1 THEN DO
IF SayVol = TRUE THEN
SAY 'Volume:' event.trm_data
ADDRESS 'HIPPOPLAYER'
VOLUME event.trm_data
CALL TR_SETATTRIBUTE(window,2,'TRAT_Text',event.trm_data)
END
WHEN event.trm_id = 103 THEN DO
nummer = TR_GETATTRIBUTE(window,103,'TRAT_VALUE')
CALL TR_SETATTRIBUTE(window,0,'TRWI_QuickHelp',nummer)
END
WHEN event.trm_id = 110 THEN DO
number = TR_GETATTRIBUTE(window,110,'TRAT_VALUE')
IF number = 1 THEN
call enablepvol
IF number = 0 THEN
call disablepvol
END
OTHERWISE
NOP
END
END
IF event.trm_class = 'TRMS_ACTION' THEN DO
SELECT
WHEN event.trm_id = 1 THEN
call playfile
WHEN event.trm_id = 2 THEN
call pause
WHEN event.trm_id = 3 THEN
call fwd
WHEN event.trm_id = 4 THEN
call rwd
WHEN event.trm_id = 5 THEN
call zip
WHEN event.trm_id = 6 THEN
call eject
WHEN event.trm_id = 7 THEN
call add
WHEN event.trm_id = 8 THEN
call sampwind
WHEN event.trm_id = 9 THEN
call hide
WHEN event.trm_id = 10 THEN
call about
WHEN event.trm_id = 11 THEN
call getinfos
WHEN event.trm_id = 12 THEN
call quit
WHEN event.trm_id = 13 THEN
call starthip
WHEN event.trm_id = 14 THEN
call iconify
WHEN event.trm_id = 15 THEN
call historee
OTHERWISE
NOP
END
END
IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN
IF Iconified~=YO THEN
ende = 1
ELSE
CALL UnIconify
END
END
CALL TR_CLOSEPROJECT(window)
END
CALL TR_DELETEAPP(app)
call cleanup
EXIT
END
playfile:
mainwindow = '00000000'x
ModFile = rtfilerequest('SYS:',,'Please choose a Module...',,'')
Say ModFile
IF ModFile='' THEN
RETURN
ADDRESS 'HIPPOPLAYER'
PLAY ModFile
RETURN
FWD:
ADDRESS 'HIPPOPLAYER'
FFWD
RETURN
RWD:
ADDRESS 'HIPPOPLAYER'
REW
RETURN
PAUSE:
Dummy=No
IF Dummy=No THEN DO
If STAT=YO THEN DO
ADDRESS 'HIPPOPLAYER'
'CONT'
STAT=NO
RETURN
END
ADDRESS 'HIPPOPLAYER'
'STOP'
STAT=YO
RETURN
END
Zip:
Dummy2=No
IF Dummy2=No THEN DO
IF STAT2=YO THEN DO
ADDRESS 'HIPPOPLAYER'
'ZIP 1'
STAT2=NO
RETURN
END
ADDRESS 'HIPPOPLAYER'
'ZIP 0'
STAT2=YO
RETURN
END
Eject:
ADDRESS 'HIPPOPLAYER'
'EJECT'
RETURN
END
Add:
if ende ~= 1 THEN DO
mainwindow = '00000000'x
AddFile = rtfilerequest('SYS:',,'Please choose a Module...',,'')
If AddFile='' THEN
RETURN
ADDRESS 'HIPPOPLAYER'
ADD AddFile
RETURN
Quit:
ADDRESS 'HIPPOPLAYER'
'QUIT'
CALL TR_DELETEAPP(app)
call cleanup
EXIT
sampwind:
ADDRESS 'HIPPOPLAYER'
Samples
RETURN
END
hide:
Dummy3=No
IF Dummy3=No THEN DO
IF STAT3=YO THEN DO
ADDRESS 'HIPPOPLAYER'
'HIDE 1'
STAT3=NO
RETURN
END
ADDRESS 'HIPPOPLAYER'
'HIDE 0'
STAT3=YO
RETURN
END
EXIT
about:
CALL TR_AUTOREQUEST(app,window,PubScreenName('workbench'),
BeginRequester('About HiP-ARexx-Play (c) by Marcel Doering','TRWP_CENTERDISPLAY'),
'VertGroupA',
'Space',
'HorizSeparator',
'Space',
NamedSeparator('HiP-ARexx-Play'),
'Space',
CenteredText('Public Domain'),
'Space',
CenteredText('Version:'appversion),
'Space',
CenteredText('Date of Release:'appdate),
'Space',
CenteredText('(c) by Marcel Doering `95'),
'Space',
CenteredText('Contact me:'),
'Space',
CenteredText('DonDoringo@GURU.rhein-main.de'),
'Space',
'HorizSeparator',
'Space',
NamedSeparator('Libraries:'),
'Space',
CenteredText('Using Tritonrexx.library v.' rtv '(c) by Juergen Kohrmeyer.'),
'Space',
CenteredText('Using Triton.library v.' tv '(c) by Stefan Zeiger.'),
'Space',
CenteredText('Using RexxTricks.library (c) by Juergen Kohrmeyer.'),
'Space',
CenteredText('Using RexxSysLib, RexxReqTools & Rexxsupport.library'),
'Space',
'HorizSeparator',
'Space',
'EndGroup',
'BeginRequesterGads',
CenteredButtonRE('Okay',10000),
'EndRequester')
CALL TR_AUTOREQUEST(app,window,PubScreenName('workbench'),
BeginRequester('About TriTon','TRWP_CENTERDISPLAY'),
'VertGroupA',
'Space',
'HorizSeparator',
'Space',
NamedSeparator('About TriTon:'),
'Space',
CenteredText('This application uses the Triton GUI creation system (c) by Stefan Zeiger'),
'Space',
'HorizSeparator',
'Space',
CenteredText('**********************************************'),
'Space',
'Space',
CenteredText('Triton'),
'Space',
'Space',
CenteredText('An object oriented GUI creation system.'),
'Space',
'Space',
CenteredText('Release 1.3'),
'Space',
'Space',
CenteredText('(c) 1993-1995 Stefan Zeiger'),
'Space',
'Space',
CenteredText('**********************************************'),
'Space',
'HorizSeparator',
'Space',
'EndGroup',
'BeginRequesterGads',
CenteredButtonRE('Important',10000),
'EndRequester')
RETURN
NotInit:
CALL TR_EASYREQUEST(app,'ATTENTION !'||'0a'x||'HippoPlayer is not running,'||'0a'x||'You can start it from HiP-ARexx-Play or directly, but'||'0a'x||'Don`t use HiP-ARexx-Play`s other functions without HiP running !','I`ll do that','TREZ_LockProject' C2D(window) 'TAG_END')
RETURN
END
GetInfos:
options results
address 'HIPPOPLAYER'
get play
if result == 1 then do
play = " HiP is playing "
end
else do
play = " HiP is not playing "
end
get name
NAME = " Loaded module: " result " "
get fnam
FNAM = " Full name of the loaded module: " result " "
get type
TYPE = " Type of the loaded module: " result " "
get size
SIZE = " Size of the loaded module: " result " "
get comm
COMM = " Filecomment for the loaded module: " result " "
get curr
CURR = " Number of the loaded module: " result " "
get csng
CSNG = " Current song: "result " "
get nsng
NSNG = " Number of songs: " result " "
get cspo
CSPO = " Current songposition: " result " "
get mspo
MSPO = " Maximum songposition: " result " "
get cfil
CFIL = " Chosen file number: " result " "
get cnam
CNAM = " Chosen file name: " result " "
get nfil
NFIL = " Files in list: " result " "
get dura
IF result == 0 then do
DURT = " Duration not available " " "
END
ELSE DO
DURT = " Duration: " result " "
END
KIKK = " Kickstart-version: " KICK " "
WBVE = " Workbench-version: " VEWB " "
CITY = " System-language: " LANG " "
Parse Version arexx version cpu mpu video freq
REXV = " ARexx version: " arexx version " "
CPUV = " CPU: " cpu " "
FPUV = " FPU: " mpu " "
VIDV = " Videomode:>> " video " "
FRQV = " VBL frequency: " freq " "
CALL TR_AUTOREQUEST(app,window,PubScreenName('workbench'),
BeginRequester('HiP-Status','TRWP_CENTERDISPLAY'),
'VertGroupA',
'Space',
NamedSeparator('HiP-Status'),
'Space',
CenteredText(PLAY),
'SpaceS',
TextN(NAME),
'SpaceS',
TextN(FNAM),
'SpaceS',
TextN(TYPE),
'SpaceS',
TextN(DURT),
'SpaceS',
TextN(SIZE),
'SpaceS',
TextN(COMM),
'SpaceS',
TextN(CURR),
'SpaceS',
TextN(CSNG),
'SpaceS',
TextN(NSNG),
'SpaceS',
TextN(CSPO),
'SpaceS',
TextN(MSPO),
'SpaceS',
TextN(CFIL),
'SpaceS',
TextN(NFIL),
'SpaceS',
TextN(CNAM),
'Space',
'EndGroup',
'BeginRequesterGads',
CenteredButtonRE('Great!',10000),
'EndRequester')
CALL TR_AUTOREQUEST(app,window,PubScreenName('workbench'),
BeginRequester('Status','TRWP_CENTERDISPLAY'),
'VertGroupA',
'Space',
NamedSeparator('Status'),
'Space',
'HorizSeparator',
'Space',
TextN(KIKK),
'SpaceS',
TextN(WBVE),
'SpaceS',
TextN(CITY),
'SpaceS',
TextN(REXV),
'SpaceS',
TextN(CPUV),
'SpaceS',
TextN(FPUV),
'SpaceS',
TextN(VIDV),
'SpaceS',
TextN(FRQV),
'Space',
'HorizSeparator',
'Space',
NamedSeparator('Status'),
'Space',
'EndGroup',
'BeginRequesterGads',
CenteredButtonRE('Okay',10000),
'EndRequester')
DROP PLAY NAME FNAM TYPE SIZE COMM PR0T CURR CSNG NSNG CSPO MSPO CFIL NFIL CNAM KIKK WBVE CITY DURA DURT
RETURN
starthip:
Say 'Hippopath is:' Hippo
if ~exists(hippo) then do
notthere=rtezrequest('Couldn`t find HippoPlayer as 'hippo','||'0a'x||' edit the script at line 53 to enter your path !','Ups..','Couldn`t start HiP !','rtez_flags=ezreqf_centertext','rtez_defaultresponse = 0',)
return
end
Say 'Trying to start HiP...'
ADDRESS COMMAND Hippo
delay(50)
note = rtezrequest('Due to some unfixable problems, '||'0a'x||'HiP should be started before H.A.P. !'||'0a'x||'Otherwise some functions, especially the status-req'||'0a'x||'might not work properly !'||'0a'x||'Though you can try it..:)','Hmm..','Please Note !','rtez_flags=ezreqf_centertext','rtez_defaultresponse = 0',)
IF SHOWLIST('P','HIPPOPLAYER') THEN
call engads
else
notthere=rtezrequest('Couldn`t find HippoPlayer`s ARexx-Port.,'||'0a'x||'I`ve no idea, why this happens.','?!?','Couldn`t find HiP-Port !','rtez_flags=ezreqf_centertext','rtez_defaultresponse = 0',)
RETURN
END
e-break:
CALL TR_DELETEAPP(app)
END
EXIT(0)
iconify:
dummywindow = TR_OPENPROJECT(app,WindowID(1000) WindowTitle('H.A.P. (c) by Marcel Doering `95-`96 iconified') PubScreenName('workbench') 'EndProject')
IF dummywindow ~= '00000000'x THEN DO
CALL TR_CLOSEPROJECT(window)
Iconified=YO
END
ELSE
CALL TR_EASYREQUEST(app,'ATTENTION !'||'0a'x||'Couldn`t iconify H.A.P. !'||'0a'x||'Version:'appversion,'_Oops','TREZ_Title "Error !"' 'TREZ_LockProject' C2D(window) 'TAG_END')
RETURN
uniconify:
CALL TR_CLOSEPROJECT(dummywindow)
dummywindow = '00000000'x
window = TR_OPENPROJECT(app,windowtags)
IF window = '00000000'x THEN
quit('Error! Couldn`t open window !!',10)
Iconified=NO
RETURN
historee:
CALL TR_AUTOREQUEST(app,window,PubScreenName('workbench'),
BeginRequester('HiP-ARexx-Play - History','TRWP_CENTERDISPLAY'),
'VertGroupA',
'Space',
'HorizSeparator',
'Space',
NamedSeparator('Version 2.0'),
'Space',
TextN(' · Splitted the buttons into two banks,'),
TextN(' looks better now and also works on '),
TextN(' very small screenheights.'),
TextN(''),
TextN(' · If HiP is not started, all buttons and '),
TextN(' the menu will stay disabled till you start '),
TextN(' HiP. (from H.A.P. !)'),
TextN(''),
TextN(' · Added a funtion to check if HiP started '),
TextN(' correctly, if not, the buttons will stay '),
TextN(' disabled. '),
'Space',
'HorizSeparator',
'Space',
'EndGroup',
'BeginRequesterGads',
CenteredButtonRE('Gee..',10000),
'EndRequester')
RETURN
/***************IS GOING TO BE IMPLEMENTED !*******************************
openlocale:
uselocale = TRUE
IF ~SHOW('LIBRARIES','locale.library') THEN
IF ~ADDLIB('locale.library',-10,-30,0) THEN
uselocale = FALSE
IF ~loadrexx(progdir,'HiP-ARexx-Play.strings','') THEN
quit('Error reading file "HiP-ARexx-Play.strings"!'),10)
IF uselocale THEN DO
catalogfile = 'catalogs/deutsch/HAP.catalog'
IF RIGHT(progdir,1) = ':' THEN
catalog = OPENCATALOG(progdir||'catalogs/deutsch/HAP.catalog','deutsch',0)
ELSE
catalog = OPENCATALOG(progdir||'/catalogs/deutsch/HAP.catalog','deutsch',0)
IF catalog = 0 THEN
catalog = OPENCATALOG('HAP.catalog','deutsch',0)
END
RETURN
***************************************************************************/
dagads:
disbld=1
CALL TR_SETATTRIBUTE(window,1,'TRAT_Disabled',1)
CALL TR_SETATTRIBUTE(window,2,'TRAT_Disabled',1)
CALL TR_SETATTRIBUTE(window,3,'TRAT_Disabled',1)
CALL TR_SETATTRIBUTE(window,4,'TRAT_Disabled',1)
CALL TR_SETATTRIBUTE(window,5,'TRAT_Disabled',1)
CALL TR_SETATTRIBUTE(window,6,'TRAT_Disabled',1)
CALL TR_SETATTRIBUTE(window,7,'TRAT_Disabled',1)
CALL TR_SETATTRIBUTE(window,8,'TRAT_Disabled',1)
CALL TR_SETATTRIBUTE(window,9,'TRAT_Disabled',1)
CALL TR_SETATTRIBUTE(window,11,'TRAT_Disabled',1)
CALL TR_SETATTRIBUTE(window,12,'TRAT_Disabled',1)
CALL TR_SETATTRIBUTE(window,10,'TRAT_Disabled',1)
CALL TR_SETATTRIBUTE(window,14,'TRAT_Disabled',1)
RETURN
engads:
disbld=0
CALL TR_SETATTRIBUTE(window,1,'TRAT_Disabled',0)
CALL TR_SETATTRIBUTE(window,2,'TRAT_Disabled',0)
CALL TR_SETATTRIBUTE(window,3,'TRAT_Disabled',0)
CALL TR_SETATTRIBUTE(window,4,'TRAT_Disabled',0)
CALL TR_SETATTRIBUTE(window,5,'TRAT_Disabled',0)
CALL TR_SETATTRIBUTE(window,6,'TRAT_Disabled',0)
CALL TR_SETATTRIBUTE(window,7,'TRAT_Disabled',0)
CALL TR_SETATTRIBUTE(window,8,'TRAT_Disabled',0)
CALL TR_SETATTRIBUTE(window,9,'TRAT_Disabled',0)
CALL TR_SETATTRIBUTE(window,11,'TRAT_Disabled',0)
CALL TR_SETATTRIBUTE(window,12,'TRAT_Disabled',0)
CALL TR_SETATTRIBUTE(window,10,'TRAT_Disabled',0)
CALL TR_SETATTRIBUTE(window,14,'TRAT_Disabled',0)
RETURN
CheckHipPorts:
IF ~ShowList('P','HIPPOPLAYER') THEN
CALL DAGADS
RETURN
END
enablepvol:
SayVol = TRUE
RETURN
disablepvol:
SayVol = FALSE
RETURN
break_c:
failure:
halt:
ioerr:
syntax:
SAY '+++ Error!' rc 'in Line' sigl '-' ERRORTEXT(rc)
Say 'Trying to close complete script...'
SAY SOURCELINE(sigl)
IF app ~= '00000000'x THEN
CALL TR_DELETEAPP(app)
EXIT(10)
cleanup:
/*remlib('rexxreqtools.library')
remlib('tritonrexx.library')
remlib('rexxtricks.library')
remlib('rexxsupport.library')
*/
return
/* Following lines are just storage for me */
Store:
/* 'SpaceS',
NamedFrameBox('ShortInfo'),
'TROB_FrameBox TRFB_Text',
'VertGroupA',
'SpaceS',
ClippedTextID(clipname appversion,2),
ClippedTextID(clipinfo,22),
'Space EndGroup',
*/