/* EASys! System © TNE) 1998 EASys! Voice usage ... ENV:Flags/TalkToUser Profile:ENV/Flags/TalkToUser */ OPTIONS RESULTS OPTIONS FAILAT 21 CALL Init /*----------------------------------------------------------------*/ IF EXISTS('EASys!:Voice/'LANGUAGE'/Ok.8SVX') THEN DO Action=ShowMessage('VoiceUsage.1',,,,AppName) IF Action=0 THEN ADDRESS COMMAND 'setenv Flags/TalkToUser 0' ELSE DO ADDRESS COMMAND 'setenv Flags/TalkToUser 1' TalkToUser='1' CALL PlaySample(SampleOk) END IF ASSIGNED('Profile:') THEN ADDRESS COMMAND 'copy ENV:Flags/TalkToUser Profile:ENV/Flags CLONE' ELSE ADDRESS COMMAND 'copy ENV:Flags/TalkToUser ENVARC:Flags CLONE' END CALL ExitMe /*--------------------------------------------*/ ShowMessage: PARSE ARG Mesg,ReqPath,ReqFile,PresetString,Parameter1,Parameter2,Parameter3,Parameter4,Parameter5,Parameter6 drop Action ReqType='' MsgFile='EASys!:Prefs/'Language'/'Mesg IF (Open(TEMPFILE, MsgFile, 'read')) THEN DO ReqType=ReadLn(TEMPFILE) /* read Requester-Type */ Line=ReadLn(TEMPFILE) /* read Title-Line */ CALL Substitutions ReqTitle=Line Line=ReadLn(TEMPFILE) /* free line after Title */ Message='' DO UNTIL EOF(TEMPFILE) Line=ReadLn(TEMPFILE) CALL Substitutions IF POS(">>>", Line) > 0 THEN DO rtBtns=STRIP(Line, 'L', '>') LEAVE END ELSE Message=Message || CR || Line END r=Close(TEMPFILE) END ELSE CALL Err_ShowMessage uReqType=UPPER(ReqType) SELECT WHEN (uReqType='MULTI REQUEST') THEN DO r=rtezrequest(Message,rtBtns,ReqTitle,PosTags) RETURN r END WHEN (uReqType='GET ONE FILE') THEN DO r=rtfilerequest(ReqPath,ReqFile,ReqTitle,rtBtns,ONEFILE_TAG, Files) RETURN r END WHEN (uReqType='GETFILES') THEN DO r=rtfilerequest(ReqPath,ReqFile,ReqTitle,rtBtns, FILE_TAGS, Files) RETURN r END WHEN (uReqType='GETPATH') THEN DO r=rtfilerequest(ReqPath,,ReqTitle,rtBtns, DIR_TAGS) RETURN r END WHEN (uReqType='GETSTRING') THEN DO r=rtgetstring(PresetString,Message,ReqTitle,rtBtns,GStags,Action) RETURN r END WHEN (uReqType='GETSTRING SIMPLE') THEN DO r=rtgetstring(PresetString,Message,ReqTitle,,GStags,Action) RETURN r END WHEN (uReqType='CONSOLE') THEN DO ShowConsole=ConsoleType''ReqLE'/'ReqTE'/'ConW'/'ConH'/'ReqTitle'/NOCLOSE' IF ~Open(Con,ShowConsole,'write') THEN CALL Err_ShowMessage(msg_no_wr''ShowConsole) ELSE ConStat=1 r=WriteLn(Con,Message) RETURN 1 END OTHERWISE CALL Err_ShowMessage('ReqType unknown: 'MsgFile) /* Error if arrived here */ END /* SELECT */ RETURN /*--------------------------------------------*/ Substitutions: IF POS("%1", Line) > 0 THEN /* substitution parameters for each message */ DO UNTIL POS("%1", Line)=0 /* and per line */ parse var Line part1 '%1' part2 Line=part1''parameter1''part2 END IF POS("%2", Line) > 0 THEN DO UNTIL POS("%2", Line)=0 parse var Line part1 '%2' part2 Line=part1''parameter2''part2 END IF POS("%3", Line) > 0 THEN DO UNTIL POS("%3", Line)=0 parse var Line part1 '%3' part2 Line=part1''parameter3''part2 END RETURN /* ------------------------- */ Err_ShowMessage: PARSE ARG Msg Message=AppName':' CR CR "Sorry, an error has occured:" CR CR " "Msg CR CR "... exiting." rtBtns='Oh no!' r=rtezrequest(Message,rtBtns,ReqTitle,PosTags) CALL ExitMe RETURN /*----------------------------------------------------------------*/ ReadLine: PROCEDURE PARSE ARG TheFile, TheLine IF (open(TEMPFILE, TheFile, 'read')) THEN DO DO count=1 to TheLine by 1 WHILE Value~=0 Value=READLN(TEMPFILE) END CALL Close(TEMPFILE) END ELSE Value="NOVALUE" RETURN Value /*----------------------------------------------------------------*/ PlaySample: PARSE ARG Sample IF (TalkToUser="0") THEN RETURN IF EXISTS('ENV:ProcessTalk') THEN DO ProcessTalk=Strip(SubWord(MyGetENV("ProcessTalk"),2), T, ']') ADDRESS COMMAND 'status >ENV:VoiceSTATUS PROCESS 'ProcessTalk VStatus=MyGetENV('VoiceSTATUS') IF POS(Play_Voice_Cmd,VStatus)>0 THEN ADDRESS COMMAND 'break' ProcessTalk 'c' END ADDRESS COMMAND Play_Voice Sample RETURN /*----------------------------------------------------------------*/ MyGetENV: PROCEDURE PARSE ARG name TheFile='ENV:'name IF (open(TEMPFILE, TheFile,'read')) THEN DO ENVvalue=READLN(TEMPFILE) Result=Close(TEMPFILE) END ELSE ENVvalue="NOVALUE" RETURN ENVvalue /*----------------------------------------------------------------*/ GetLanguage: LanguageNumber=1 /* Presets */ Language='' IF (open(TEMPFILE, 'ENV:sys/locale.prefs', 'read')) THEN DO DO i=1 to 50 r=READCH(TEMPFILE) END Land='' i=0 DO UNTIL EOF(TEMPFILE) i=i+1 Char=ReadCh(TEMPFILE) IF (C2D(Char)=0) THEN LEAVE ELSE Land=Land''Char END /* 32 characters from begin of Lang_x to begin of Lang_y */ DO j=i to 31 UNTIL EOF(TEMPFILE) r=READCH(TEMPFILE) END Language=ReadLanguage() r=Close(TEMPFILE) END IF (Language='') THEN Language='english' drop Char drop r ADDRESS COMMAND 'setenv LANGUAGE 'Language IF ~EXISTS('EASys!:Prefs/'Language'/GUI-SnapReqSizes.1') THEN Language='english' RETURN /*----------------------------------*/ ReadLanguage: Langua='' Langua=ReadCh(TEMPFILE) IF (C2D(Langua)=0) THEN RETURN '' i=1 DO UNTIL EOF(TEMPFILE) i=i+1 Char=ReadCh(TEMPFILE) IF (C2D(Char)=0) THEN LEAVE ELSE Langua=Langua''Char END /* 30 characters from begin of Lang_x to begin of Lang_y */ DO j=i to 29 UNTIL EOF(TEMPFILE) r=READCH(TEMPFILE) END RETURN Langua /*----------------------------------------------------------------*/ Assigned: PARSE ARG File ADDRESS COMMAND 'assign >NIL: "'File'" EXISTS' IF RC=0 THEN RETURN 1 ELSE RETURN 0 /*----------------------------------------------------------------*/ Init: AppName="© TNE) EASys! Voice output" ReqTitle=AppName CR='0a'x CALL GetLanguage if ~show('L','rexxreqtools.library') THEN Result=ADDLIB('rexxreqtools.library',0,-30,0) if ~show('L','rexxsupport.library') THEN Result=ADDLIB('rexxsupport.library',0,-30,0) ProcessNumber=PRAGMA('ID') CALL FORBID Intui =showlist(l,'intuition.library',, a) Screen=next(intui, 56) Font =next(screen, 136) FontSize=c2d(import(offset(font, 20), 2)) CALL PERMIT ReqLE=MyGetENV("RefTable/GUI-ReqLE") /* Main Window */ ReqTE=MyGetENV("RefTable/GUI-ReqTE") ReqHeight=MyGetENV("RefTable/GUI-ReqHeight") PosTags="rt_reqpos=reqpos_topleftscr rt_leftoffset="ReqLE" rt_topoffset="ReqTE EZtags=PosTags GLtags=PosTags || "rtgl_min=0 rtgl_max=1500 rtgl_backfill=true " GStags=PosTags || " rtgs_backfill=false rtgs_width=417" POINTER_TAGS="rt_reqpos=reqpos_pointer" DIR_TAGS=PosTags || " rtfi_flags=freqf_nofiles|freqf_save rtfi_height=" ReqHeight FILE_TAGS=PosTags || " rtfi_flags=freqf_multiselect|freqf_selectdirs" || " rtfi_height=" ReqHeight ConW=420 ConH=MyGetENV('RefTable/GUI-ReqHeight') Console='>"'ConsoleType || ConsoleSize'/'AppName' Messages.../AUTO/NOCLOSE/WAIT"' SizeFile='T:EASys!Sizes_'ProcessNumber TalkToUser=MyGetENV("Flags/TalkToUser") Play_Voice='run >ENV:ProcessTalk ${RefTable/Sound-voice}' Play_Voice_Cmd=SubWord(MyGetENV('RefTable/Sound-voice'),1,1) SampleDir='EASys!:Voice/'Language'/' SampleOk=SampleDir'Ok.8SVX' RETURN /*----------------------------------------------------------------*/ ExitMe: IF EXISTS('ENV:ProcessTalk') THEN ADDRESS COMMAND 'delete ENV:ProcessTalk quiet' IF EXISTS('ENV:VoiceSTATUS') THEN ADDRESS COMMAND 'delete ENV:VoiceSTATUS quiet' Exit 0