Following is a sample REXX program to create a new sound scheme (see also Add new sound schemes in WARP 4):
/* ------------------------------------------------------------------ */
/* SetSound.CMD */
/* Sets up a sound scheme by writing the appropriate */
/* entries into the specified system INI file. */
/* */
/* Syntax: */
/* SetSound {filespec} */
/* */
/* Source: */
/* Personal Systems Issue 11/96 (online edition) */
/* */
/* ------------------------------------------------------------------ */
/* Set the sound scheme variables */
/* ------------------------------------------------------------------ */
Title = "MySoundScheme"
KeyName = "PM_SOUNDS_MYSOUNDS"
Event.0 = 13
Event.1 = "?:\mmos2\sounds\mysounds\my_warn.wav"
Event.2 = "?:\mmos2\sounds\mysounds\my_info.wav"
Event.3 = "?:\mmos2\sounds\mysounds\my_err.wav"
Event.4 = "?:\mmos2\sounds\mysounds\my_opnw.wav"
Event.5 = "?:\mmos2\sounds\mysounds\my_clsw.wav"
Event.6 = "?:\mmos2\sounds\mysounds\my_drag.wav"
Event.7 = "?:\mmos2\sounds\mysounds\my_drop.wav"
Event.8 = "?:\mmos2\sounds\mysounds\my_sstr.wav"
Event.9 = "?:\mmos2\sounds\mysounds\my_ssht.wav"
Event.10 = "?:\mmos2\sounds\mysounds\my_shrd.wav"
Event.11 = "?:\mmos2\sounds\mysounds\my_lock.wav"
Event.12 = "?:\mmos2\sounds\mysounds\my_alck.wav"
Event.13 = "?:\mmos2\sounds\mysounds\my_prer.wav"
/* ------------------------------------------------------------------ */
/* Get the input arguments */
/* ------------------------------------------------------------------ */
Parse Upper Arg fSpec
/* ------------------------------------------------------------------ */
/* Check if the REXX external functions are registered. */
/* If not, then register them so we can use them */
/* ------------------------------------------------------------------ */
if RxFuncQuery("SysLoadFuncs") then
do
Call RxFuncAdd "SysLoadFuncs", "RexxUtil", "SysLoadFuncs"
Call SysLoadFuncs
end /* if */
/* ------------------------------------------------------------------ */
/* Set up the filespec for the INI file */
/* ------------------------------------------------------------------ */
if fSpec = "" then
do
IniFile = "SYSTEM"
end /* if fSpec = "" then */
else
do
/* ------------------------------------------------------------------ */
/* Parse the input filespec into its component parts */
/* ------------------------------------------------------------------ */
tDrive = filespec("drive",fSpec)
tPath = filespec("path",fSpec)
tName = filespec("name",fSpec)
/* ------------------------------------------------------------------ */
/* Get the local drive and current directory */
/* ------------------------------------------------------------------ */
LocalCurDir = directory()
LocalDrive = substr( LocalCurDir, 1, 1 )
lDrive = LocalDrive||":"
LocalDir = substr(LocalCurDir, 3)
lDir = LocalDir||"\"
/* ------------------------------------------------------------------ */
/* Set the INI file spec */
/* ------------------------------------------------------------------ */
if tDrive = "" then
tDrive = lDrive
if tPath = "" then
tPath = lDir
IniFile = tDrive||tPath||tName
end /* else */
/* ------------------------------------------------------------------ */
/* Set the keys for the new sound scheme we're adding */
/* ------------------------------------------------------------------ */
results = SysIni( IniFile, "PM_SOUND_SCHEMES_LIST", Title, KeyName )
if results = "ERROR:" then
do
say "SetSound ERROR:" ,
"Unable to set PM_SOUND_SCHEMES_LIST in the INI file"
exit
end /* if */
else
do
say "SetSound: The following keywords have been set in the INI file:" ,
IniFile
say "SetSound: PM_SOUND_SCHEMES_LIST ," Title "," KeyName
end /* else */
/* ------------------------------------------------------------------ */
/* For the KeyName, set the sounds for the events */
/* ------------------------------------------------------------------ */
do i=1 to Event.0
Type = i-1
results = SysIni( IniFile, KeyName, Type, Event.i )
if results = "ERROR:" then
do
say "SetSound ERROR: Unable to set Type" Type "for the file" ,
Event.i "in the INI file"
end /* if */
else
do
say "SetSound: System Event Type" Type " = " Event.i
end /* else */
end /* do i=1 to Event.0 */
exit 0
/* ------------------------------------------------------------------ */
/* End of REXX script */
/* ------------------------------------------------------------------ */