TiogaVoiceMonitors.tioga
Polle Zellweger (PTZ) May 22, 1987 4:11:10 pm PDT
Monitors in the original TiogaVoice
VoiceRecordImpl => VoiceRecordPlayImpl
AddVoiceProc: PUBLIC ENTRY Menus.MenuProc
RecordNewRope: PROC = {
BroadcastRecordingDone: ENTRY PROC = { BROADCAST recordingDone };
....};
IncrementRecordTimer: ENTRY PROC RETURNS [stillRunning: BOOLEANTRUE]
StopRecording: PUBLIC ENTRY PROC = {
DictationMachine: PUBLIC ENTRY Menus.MenuProc = {
RecordInPlaceOfSelection: PUBLIC ENTRY PROC [selection: VoiceViewers.Selection] = {
this gets called by DictationOps when a selection [possibly zero length, in which case don't delete it] is to be replaced by new voice input: the selection is assumed to be locked with GetVoiceLock and there is assumed to be no playback or recording in progress at the time of the call
-------------------
PrepareSelection: INTERNAL PROC RETURNS [succeeded: BOOLEANFALSE]
called by AddVoiceProc
this procedure locks the selection and fills in the TiogaOps target info above. If the selection is a voice selection then targetSoundSelection is set up. If the selection is text then a text key is placed in the text. If the selection is pending delete then the delete is done. If the selection is a voice selection then the viewer is locked [against other voice edits]
NewDictationWindow: INTERNAL PROC
called by PrepareSelection, DictationMachine, ChangeVoiceInputFocus, RecordInPlaceOfSelection
creates a new dictation window and sets targetSoundSelection up correctly to refer to it, also sets addingIntoTextViewer false
ChangeVoiceInputFocus: INTERNAL PROC = {
called by DictationMachine
calls RedrawViewer ENTRY
DictationMachine was bugged when a recording was in progress: create a new voice viewer and alter the recording focus to it. In the case where recording going into a voice viewer, leave a marker where the focus was.
VoicePlayBackImpl => VoiceRecordPlayImpl
PlayBackNext: ENTRY PROC RETURNS [moreToDo: BOOLEANTRUE, nextWakeUp: BasicTime.Pulses] = {
QueuePlayBackCue: ENTRY PROC [request: PlayBackRequest] = {
AbortCues: ENTRY PROC = { IF playBackState.running THEN playBackState.abort ← TRUE };
=> CancelPlayBack (AbortCues now internal), to avoid a locking problem
RemoveViewerReferences: PUBLIC ENTRY PROC [viewer: ViewerClasses.Viewer] RETURNS [okay: BOOLEANTRUE] = {
RedrawViewer: PUBLIC ENTRY PROC [viewer: ViewerClasses.Viewer, newContents: Rope.ROPE, unchangedHead, deleteChars, insertChars: INT, timeRemnant: INT, age: BOOLEAN, selectionsAfterRedraw: VoicePlayBack.SelectionsAfterRedraw] RETURNS [newNode: TiogaOpsDefs.Ref] = {
--------------------
AppendRequest: INTERNAL PROC [request: PlayBackRequest]
called by QueuePlayBackCue
Q: why isn't PlayBackMenuProc: PUBLIC Menus.MenuProc an ENTRY proc? Where is the entry proc under playback?
PlayWholeSlab: PUBLIC PROC [viewer: ViewerClasses.Viewer]
VoiceRope.Play
QueuePlayBackCue
PlaySlabSection: PUBLIC PROC [viewer: ViewerClasses.Viewer, node: TiogaOpsDefs.Ref, from, to: INT]
VoiceRope.Play
QueuePlayBackCue
VoiceInTextImpl.PlaySelection: PUBLIC PROC
PlayRopeWithoutCue
VoiceRope.Play
QueuePlayBackCue
VoiceViewersImpl => VoiceViewersImpl
GetVoiceLock: PUBLIC ENTRY PROC [info: VoiceViewers.VoiceViewerInfo] RETURNS [gotIt: BOOLEAN]
calls nothing
ML problem resulting from Dan's combining VoicePlayImpl and VoiceRecordImpl into VoiceRecordPlayImpl: entry proc VoiceRecordPlayImpl.StopRecording calls VoiceViewersImpl.ReplaceSelectionWithSavedInterval which calls entry proc VoiceRecordPlayImpl.RedrawViewer (there rather than in VoiceViewersImpl to synchronize with possible playbacks in progress (?)).
VoiceRecordPlayImpl.StopRecording also calls VoiceRecordPlayImpl.RedrawViewer directly
Callers of VoiceViewersImpl.ReplaceSelectionWithSavedInterval:
VoiceViewersImpl
Delete: PUBLIC PROC
Copy: PUBLIC PROC (twice)
VoiceMarkersImpl
AdjustSilences: Menus.MenuProc
VoiceRecordPlayImpl
*PrepareSelection: INTERNAL PROC RETURNS (when recording onto a pending-delete selection)
*StopRecording: PUBLIC ENTRY PROC (when recording into a voice editing window -- not a dictation machine)
*RecordInPlaceOfSelection: PUBLIC ENTRY PROC
Callers of VoiceRecordPlayImpl.RecordInPlaceOfSelection
VoiceMarkersImpl
ResumeFromSelection: Menus.MenuProc
ResumeFromEnd: Menus.MenuProc
Callers of VoiceRecordPlayImpl.RedrawViewer ENTRY
VoiceRecordPlayImpl
*StopRecording ENTRY
*ChangeVoiceInputFocus INTERNAL
VoiceMarkersImpl
AddCharMark: PUBLIC Menus.MenuProc
LockedAddCharMark: PUBLIC PROC [viewer
DeleteCharMarks: PUBLIC Menus.MenuProc (twice)
VoiceViewersImpl
RedrawViewerMenuProc: Menus.MenuProc
ChangeColumnEvent: ViewerEvents.EventProc
ReplaceSelectionWithSavedInterval: PUBLIC PROC [
selection: TiogaVoicePrivate.Selection, soundInterval: TiogaVoicePrivate.SoundInterval, leaveSelected: BOOLEAN]