<> <> <> <> <<>> <> <<>> DIRECTORY Rope USING [ROPE], VoiceRope; ViewVoiceRope: CEDAR DEFINITIONS = { ID: TYPE = Rope.ROPE; <<>> Open: PROC [ <> voiceRopeDBName: Rope.ROPE _ NIL, localName: Rope.ROPE _ NIL ] RETURNS[--handle: Handle--]; <> <> Record: PROC[--handle: Handle_NIL--] RETURNS [voiceRope: ID]; <> <<NIL return value indicates that something went wrong.>> Play: PROC[--handle: Handle_NIL,-- voiceRope: ID, queueIt: BOOL_TRUE, failOK: BOOL_FALSE, wait: BOOL_FALSE]; <> < play after all other record/playback requests are satisfied.>> < playing is optional; leave connection open if tune doesn't exist.>> < wait until things appear to be started properly, or have failed.>> Stop: PROC[--handle: Handle--]; <> <<>> <> Retain: PROC [--handle: Handle _ NIL,-- vr: ID, class: Rope.ROPE, refID: Rope.ROPE, other: Rope.ROPE _ NIL]; <> Forget: PROC [--handle: Handle _ NIL,-- vr: ID, class: Rope.ROPE, refID: Rope.ROPE]; <> <<>> GetByInterest: PROC [--handle: Handle _ NIL,-- class: Rope.ROPE, refID: Rope.ROPE] RETURNS [voiceRope: ID]; <> <> <> Cat: PROC [--handle: Handle,-- vr1, vr2, vr3, vr4, vr5: ID _ NIL] RETURNS [new: ID]; Substr: PROC [--handle: Handle,-- vr: ID, start: INT _ 0, len: INT _ LAST[INT]] RETURNS [new: ID]; Replace: PROC [--handle: Handle,-- vr: ID, start: INT _ 0, len: INT _ LAST[INT], with: ID _ NIL] RETURNS [new: ID]; Length: PROC [--handle: Handle,-- vr: ID] RETURNS [len: INT]; <> DescribeRope: PROC [--handle: Handle,-- vr: ID, minSilence: INT _ -1] RETURNS [noise: VoiceRope.IntervalSpecs]; <<>> <> }. <> <> <> <> <> <> <<>> <> <> <> <> <<>> <> <> <> <> <<>>