DIRECTORY Rope USING [ROPE]; Intervoice: CEDAR DEFINITIONS = { Handle: TYPE=REF HandleRec; HandleRec: TYPE; Open: PROC [ tunesDBName: Rope.ROPE _ NIL, tunesDBInstance: Rope.ROPE _ NIL, localName: Rope.ROPE _ NIL, Complain: PROC[complaint: Rope.ROPE] _ NIL ] RETURNS[handle: Handle]; Record: PROC[handle: Handle_NIL] RETURNS [voiceFileID: Rope.ROPE]; Play: PROC[ handle: Handle_NIL, refID: Rope.ROPE_NIL, refIDType: Rope.ROPE_NIL, voiceFileID: Rope.ROPE_NIL, queueIt: BOOL_TRUE, -- play after all other record/playback requests are satisfied. failOK: BOOL_FALSE, -- playing is optional; leave connection open if tune doesn't exist. wait: BOOL_FALSE -- wait until things appear to be started properly, or have failed ]; Stop: PROC[handle: Handle]; Retain: PROC [ handle: Intervoice.Handle, voiceFileID: Rope.ROPE, refID: Rope.ROPE, refIDType: Rope.ROPE ]; Forget: PROC [ handle: Intervoice.Handle, refID: Rope.ROPE, refIDType: Rope.ROPE ]; }. ͺIntervoice.mesa Copyright c 1986 by Xerox Corporation. All rights reserved. Last Edited by: Swinehart, January 31, 1986 7:11:13 pm PST For now, procedures for managing recorded voice; later, intend to launder FinchSmarts routines for telephone management and include them here. If tunesDBName, tunesDBInstance, or localName is omitted, a default based on the user profile choice of Thrush Server is invented. If Complain is omitted, Log.Problem[...$Finch] is used. See VoiceDB for meaning of the names. In all the routines that follow, if handle is omitted, one will be invented using all the defaults. Records a tune, registers it in the VoiceDB, returns its ID. NIL return value indicates that something went wrong. Play a specified utterance. Either refID or voiceFileID must be NIL; if refID#NIL, refIDType must be non-NIL N.B.: System noises, like Beeps and intolerably cute rollback tunes are indexed in the refsToTunesDB database as refID's like "beep", "rollback", and so on, under the refIDType "SysNoises" Stops any recording or playback in progress. Existence of refID retains interest in voiceFileID until corresponding Forget. Creator is assumed to be logged-in user. Remove refID from database, eliminating its interest in any voiceFileID's Creator is assumed to be logged-in user. Swinehart, January 30, 1986 9:34:42 am PST Created from WalnutVoiceImpl routines; voice message facilities, without Walnut specifics Κ@˜™Icodešœ Οmœ1™