[jawsscripts] QueueFunction in Jaws 2019/2020

  • From: "Steve Spamer" <stevespamer68@xxxxxxxxx>
  • To: <jawsscripts@xxxxxxxxxxxxx>
  • Date: Thu, 2 Apr 2020 17:06:52 +0100

Hi folks.  I have a script that reads meter levels for a set number of times 
using the QueueFunction.  In jaws 2019, all works as expected, but in jaws 
2020 it's not.  For example, pressing any key in 2019 will stop the function 
and jaws stops speaking, but in 2020 only the control key works.  Also, in 
2019, while the function is running, any meter levels are constantly updated 
as they change, but again, in 2020 jaws just repeats the initial level 
encountered when initiating the script.

So, I'm not expecting anyone to know exactly what's going on, but is it 
possible this function has changed or become somehow broken in jaws 2020? 
I'll paste the script and function it calls below to give a bit more 
clarity.  BTW, it's only the QueueFunction that seems to be the issue in the 
script, but pasting the full script.  Thanks Steve.

Script MaxMetersRead ()
; assigned to F7
Var
    Int iCount

; tell braille that we are now in the meter display and which meter is 
active
let giBrailleDisplayMode = cmMeterDisplay
let giMeterType = ctMAXMeter
Let iCount = 0
If IsGetArrangerDirect() Then
    {Control+Alt+Shift+V}
    Delay(2)
If (!giMetersAutoReadToggle) Then
; if the auto speaking of meters is turned off, then only speak the meters 
once
    MAXMeters ()
    Return
Else
; if the auto speaking of meters is turned on, then speak until a key is 
pressed or 200 has been reached
While iCount <200
    QueueFunction ("MAXMeters ()")
Let iCount = iCount + 1
EndWhile
EndIf
ElIf IsVisualizationWindowForNav() Then
If (!giMetersAutoReadToggle) Then
; if the auto speaking of meters is turned off, then only speak the meters 
once
    MAXMeters ()
    Return
Else
; if the auto speaking of meters is turned on, then speak until a key is 
pressed or 200 has been reached
While iCount <200
    QueueFunction ("MAXMeters ()")
Let iCount = iCount + 1
EndWhile
EndIf
Return
ElIf IsObjectEditorFXTabForNav() Then
If (GetControlID(GetFocus()) == idObjectEditorFXEQHigh) Then
    SayUsingVoice (VCTX_MESSAGE, strObjectEditorFXHi + 
msgObjectEditorTabAlreadySelected, OT_STRING)
Else
    SayUsingVoice (VCTX_MESSAGE, strObjectEditorFXHi, OT_STRING)
SetFocus (FindDescendantWindow (GetRealWindow(GetFocus()), 
idObjectEditorFXEQHigh))
EndIf
    Return
ElIf IsObjectEditorFadesTabForNav() Then
If (GetControlID(GetFocus()) == idObjectEditorFadesObjectLength) Then
    SayUsingVoice (VCTX_MESSAGE, strObjectEditorFadesObjectLengthEdit + 
msgObjectEditorTabAlreadySelected, OT_STRING)
Else
    SayUsingVoice (VCTX_MESSAGE, strObjectEditorFadesObjectLengthEdit, 
OT_STRING)
SetFocus (FindDescendantWindow (GetRealWindow(GetFocus()), 
idObjectEditorFadesObjectLength))
EndIf
    Return
ElIf IsObjectEditorTimepitchTabForNav() Then
If (GetControlID(GetFocus()) == idObjectEditorTimepitchStretchFactor) Then
    SayUsingVoice (VCTX_MESSAGE, strObjectEditorTimePitchStretchFactorEdit + 
msgObjectEditorTabAlreadySelected, OT_STRING)
Else
    SayUsingVoice (VCTX_MESSAGE, strObjectEditorTimePitchStretchFactorEdit, 
OT_STRING)
SetFocus (FindDescendantWindow (GetRealWindow(GetFocus()), 
idObjectEditorTimepitchStretchFactor))
EndIf
    Return
ElIf IsMidiObjectEditorMainForNav() Then
If (GetControlID(GetFocus()) == idMIDIObjectEditorTranspose) Then
    SayUsingVoice (VCTX_MESSAGE, strMidiObjectEditorTranspose + 
msgObjectEditorTabAlreadySelected, OT_STRING)
Else
    SayUsingVoice (VCTX_MESSAGE, strMidiObjectEditorTranspose, OT_STRING)
SetFocus (FindDescendantWindow (GetRealWindow(GetFocus()), 
idMIDIObjectEditorTranspose))
EndIf
    Return
Else
    SayCurrentScriptKeyLabel()
EndIf
EndScript

String Function MAXMeters ()
Var
    String strMaxMeters

Let strMaxMeters = GetWindowName (GetDockerVisualization ())
    Let strMaxMeters = StringSegment (strMaxMeters, strVerticalBar, 3)
If (giBrailleMode == 0) Then
; if a braille display isn't connected
SayUsingVoice (VCTX_MESSAGE, strMaxMeters, OT_STRING)
    Else
; if a braille display is connected
    Return strMaxMeters
EndIf
EndFunction

Visit the samplitude Access website. Jaws scripts for pro recording with 
Samplitude in Windows: www.samplitudeaccess.org.uk 

__________�

View the list's information and change your settings at 
http://www.freelists.org/list/jawsscripts

Other related posts: