v1.5.7.75
- Improvements
- Added new token, '{TXTTITLE:variableName}'.
Token is replaced with text variable title
cased (VoiceAttack supported locales only).
Example: 'war and peace' becomes 'War And
Peace'. Yes... I know that's not *proper* title
case (at least in English), but it's as close
as the framework will allow without linguistic
rules. Sorry!
- Commands executed by multiple joystick buttons
will no longer execute single-button commands.
That is, as long as the first button down does
not have a command associated with it.
Example :
A down + B down executes a command
A down only executes a command
B down only executes a command
User presses A down and then B down.
A down only will execute, since it doesn't know
that B down only is coming. This is unavoidable.
A down + B down executes.
B down only does not execute.
- Bug Fixes
- Fixed pause timing issue introduced in
1.5.7.74.
- Fixed command validation issues with dynamic
commands introduced in 1.5.7.74.
- Fixed {CMD_AFTER} parsing issue.
v1.5.7.74
- Improvements
- Updated image buttons with accessible
names for screen readers (so they won't
be indicated as just, 'button').
- Removed 'Stop repeating if window focus lost'
checkbox and replaced it with, 'Stop command
if target window focus is lost' checkbox which
is available whether you are looping or not.
What this does is stop the command if you
lose focus of the window that had the focus
when the command was executed. The underlying
value that is used is carried over to the new
checkbox making it backward-compatible with
what was in place before.
This feature now also has an option, 'Resume
command if focus regained'. This attempts to
resume the command if you click back into the
originally focused window ;)
- Added some dynamic ability to commands.
What this does is allow for quick, dynamic
commands that can contain potentially optional
parts. To indicate a dynamic portion of your
spoken command, simply enclose the section in
square brackets : [ ]. Each dynamic element
within the brackets must be separated with a
semicolon.
Here is an example :
[Greetings;Hello]computer
To execute the command, you can now say :
Greetings computer
Hello computer
Note that multipart commands are also still
separated with a semicolon (as demonstrated by
adding, 'Hi' to the end) :
[Greetings;Hello]computer;Hi
With this example, to execute the command,
you can say :
Greetings computer
Hello computer
Hi
The dynamic sections don't have to just be at
the beginning. They can be anywhere in the
command. Also, as a side-effect, if you put
a semicolon on at the end of the selections,
it makes the section optional :
[Greetings;Hello]computer[how are you;]
You can say the following to execute the
command :
Greetings computer how are you
Hello computer how are you
Greetings computer
Hello computer
Note that there is a semicolon after 'how are you'
to indicate that the entire section is optional.
Something to consider when using this feature is
that you can create a lot of permutations from
very few words. Use with care :)
Dynamic sections also have the ability to indicate
a numeric range. This is indicated by putting in
two numbers separated by an ellipsis (..).
eject car [1..100] will allow you to say,
'eject car 1',
'eject car 2',
'eject car 3', etc.
Using this in conjunction with the new
{TXTNUM:variableName} token (see below),
you can come up with some intersting solutions.
- Spoken command box now expands horizontally
with the command window.
- I put back the ability to quickly add text to
be typed out serially. The new action is called,
'Free Text Type'. This was taken out a long time
back (it was called, 'Quick Input') in favor of
the recorder feature, since more and more folks
with non-English keyboards were using VoiceAttack.
'Free Text Type' should allow for the currently-
supported list of locales to use the feature.
The reason I put it back is because a lot of
folks find the recorder cumbersome for simple
stuff. Also, there are some games that do not
allow the use of the clipboard paste (which is
what I would recommend for fast text diplay).
The feature simply allows you to type in text
in the box and have it typed back. For the
supported locales, it also should be able to
do the right-alt/deadkey stuff. You will be
able to specify the timing of the key presses
(as always, DirectX games have a polling mechanism
and are not event-driven when it comes to keyboard
activity). You will be able to specify either
DirectX or Standard input. Note that the
text box also accepts tokens that will be
replaced out at runtime.
NOTE : This is a first pass. There will be
tokens available later for {ENTER},
{SHIFTDOWN}. {SHIFTUP}, etc.
- Added option, 'Single TTS Instance' to help
with certain TTS packages (Cereproc) that have
an instance cap. Select this option if
you are using TTS and it keeps cutting out.
- Moved command screen right-click context menu
'New Action' contents up one level (there
is no longer a, 'New Action' menu item).
- Reordered, 'Other' context menus into more
logical groups.
- Added, 'Set Boolean Value' command action.
Boolean values can be set to true, false, toggle
or not set. When toggling, a false value becomes
true, a true value becomes false and a not set
value remains not set. I added this to simplify
the use and readability of macros (using 0 and 1
for true/false turns a lot of folks off).
*******Plugin update will come later.
- Added, 'Set Integer Value' command action. This
uses larger integers so you can have more space to
work. This differs slightly from the small integer
(previoulsy called, 'conditions'), as you have the
ability to compute a value. You can add/subtract/
multiply/divide (integer division) / modulus
(remainder) against an explicit value or against
a variable or text token. If the text token is not
able to be converted to an int, the computed result
will be, 'Not Set'. When computing a value, there
is also an option to initialize the variables to zero
if they are, 'Not Set'. This will save an initialization
step (might be handy if you are incrementing, for
example).
*******Plugin update will come later.
- Added new tokens {INT:variable name} and
{INTFORMAT:variable name} to provide a way to
access the new integer varibles through text
features.
- Updated text comparison in 'Begin conditional
block' to allow either a variable name or a text
token as the source of comparison. The previous
function of the token being used to get the
variable name has been replaced by this.
- Updated 'Begin Condition' screen to include
boolean comparisons. This required the layout
of the screen to change from radio button selection
to tab selection.
- IMPORTANT: To avoid confusion going forward,
Conditions are now going to be called,
'Small Integer'. The, '{COND}' token is still
available for backward-compatibility. New tokens
'{SMALL:variable name}' and
'{SMALLFORMAT:variable name}' have been added
(and refer to the same variables).
- Added Disable/Enable action to right-click menu
of command action list. This will allow you
to selectively disable items. There are no
restrictions on this yet, and I have not tested
how this will affect everything (like jumps,
condition statements, etc). I found it handy
for testing and thought you might, too ;)
- Added, 'Set Decimal Value' command action. This is
basically all the functionality of Integers above,
with some additional calculation methods thrown in
(just kept adding whatever methods I could find...
they were a no-brainer to add, so, I might as well
add them). You can also round the set decimal
value to up to 10 places.
*******Plugin update will come later.
- Added new token {DEC:variable name} to provide
access the new decimal varibles through text
features.
- Added, 'clear favorites' menu item to command
screen right-click menus.
- Added, 'Clear Saved Values from Profile' action.
This will allow you to selectively remove all
values of selected data types that are saved to
the profile. This does not clear resident values
(just the saved ones).
- Some time a while back (v1.5.7.70), I added three
tokens and did not document them : {CAPSLOCKON},
{NUMLOCKON}, {SCROLLLOCKON}. These will have a
value of "1" if the lock is on and a value of "0"
if the lock is off.
- Added new token {TXTNUM:variableName}. This will
attempt to remove all characters except numeric
(0-9, ., -). So, text that looks like, 'turn -180.2'
will be replaced with, '-180.2'. Note that the value
is still text (from a token), but can be converted
if needed.
- Added new token {TXTALPHA:variableName}. This will
attempt to remove all numeric characters from the text
variable.
- Added four new mouse position tokens : {MOUSESCREENX},
{MOUSESCREENY}, {MOUSEWINDOWX}, and {MOUSEWINDOWY}.
This is a text value representation of the position
of the mouse, either in relation to the screen or the
active window.
- Added new action, 'Stop Sounds' which will stop all
currently playing sound files.
- Added new action, 'Stop Text-To-Speech' which will
stop all text to speech that is, 'speaking'.
- Added 'm4a' and 'aac' as acceptable sound file types.
- Added, 'Trim', 'Upper Case', 'Lower Case' and 'Replace'
as options to Set a Text Variable action.
- Added, 'Execute' on right-click menu of profile list...
Might help out a little when testing. Note that it
will show the entire command string for multipart
- Updated documentation to explain tokens a little
better.
- Bug Fixes
- Updated DirectX mapping for some keys to be the proper
mapping o_O.
- Fixed some DirectX extended key issues.
- Fixed joystick disable not working in some cases.
Well... any case other than the global listening...lol.
- Fixed previous beta issue of dictation events not firing
when default speech engine is not selected. Doh!