Currently RR, MM, FD and keystrokes are supported but you can add your own ones. Here's how:
To add new application you need to edit the settings.xml file. SpeakEasy is fairly generic about how it talks to apps. You configure new plugins by adding a set of new entries in the <plugin section of the settings.xml file.
Example:
Code:
<plugin>
<name>
<anyType xsi:type="xsd:string">SE</anyType>
<anyType xsi:type="xsd:string">RR</anyType>
<anyType xsi:type="xsd:string">MM</anyType>
<anyType xsi:type="xsd:string">MMKey</anyType>
<anyType xsi:type="xsd:string">OPEN</anyType>
<anyType xsi:type="xsd:string">FD</anyType>
</name>
<method>
<anyType xsi:type="xsd:string">SELF</anyType>
<anyType xsi:type="xsd:string">COM</anyType>
<anyType xsi:type="xsd:string">MM</anyType>
<anyType xsi:type="xsd:string">KEY</anyType>
<anyType xsi:type="xsd:string">OPEN</anyType>
<anyType xsi:type="xsd:string">COM</anyType>
</method>
<windowName>
<anyType xsi:type="xsd:string">SE</anyType>
<anyType xsi:type="xsd:string">RoadRunner</anyType>
<anyType xsi:type="xsd:string">Map Monkey - [GPS]</anyType>
<anyType xsi:type="xsd:string">Map Monkey - [GPS]</anyType>
<anyType xsi:type="xsd:string" />
<anyType xsi:type="xsd:string">FDSDK</anyType>
</windowName>
<className>
<anyType xsi:type="xsd:string">SE</anyType>
<anyType xsi:type="xsd:string">ThunderRT6FormDC</anyType>
<anyType xsi:type="xsd:string">ThunderRT6MDIForm</anyType>
<anyType xsi:type="xsd:string">ThunderRT6MDIForm</anyType>
<anyType xsi:type="xsd:string" />
<anyType xsi:type="xsd:string" />
</className>
<port>
<anyType xsi:type="xsd:string" />
<anyType xsi:type="xsd:string" />
<anyType xsi:type="xsd:string" />
<anyType xsi:type="xsd:string" />
<anyType xsi:type="xsd:string" />
<anyType xsi:type="xsd:string" />
</port>
</plugin>
Here six plugins are configured: SE, RR, MM, MMKey, OPEN and FD.
Each plugin needs an entry for: name, method, windowName, classname and port.
1.
<name> gives the application a prefix so we can refer to this alias when writing commands. like RR::STOP which says use the RR settigns from the above entries and send it the STOP command.
2.
<method> section says how that applcation will be sent any commands. In the above example the second entry for <method> , which refers to the RR prefix, says to use COM.
The possible values for method are:
COM This says use windows COM sendMessage to send any commands
KEY This says send in keystrokes or type into a window/dialog box
TCP Uses TCP/IP to send messages (make sure you also specif the <port> entry if you use TCP/IP to know the server port number the plugin listens on
OPEN Open allows you to OPEN any application, it does not talk directly to any application, so the windowName/className/port are empty for TCP
SELF Is used for sending commands to SpeakEasy internal commands only
3.
<windowName> specifies the text that you see at the top of the applcation status bar. This allows us to identify the correct application to send the command.
4.
<className> specifies the programming class name of the plugin that recieves the command, again this is to help identify the correct application to send the message. You can put in both windowName and className or leave one blank if you are using COM, the code will try to figure out the rest once it is running.
5.
<port> is just used for TCP commands to tell SpeakEasy to send the command to a server port number 4419 is MapMonkey plugins port for example.
If you have never heard of windowName or className then I suggest you download this
winspector spy application it will allow you to drag a "red bulleye" onto the window which you want to configure with SpeakEasy plugins and it will tell you the windowName and className. PM ruairi if you want help with this tool.
Note that if you make changes to the plugin section make sure that each subsection is in the correct order and that they look something like the examples that are already there. If you get stuck or want me to check your settings PM me with what you want.
Once you've save the settings.xml restart SpeakEasy and the changes will allow you to add new commands. If you want to make life easy for yourself there is a "CommandSet/object.ini" file that is used in the Edit window to help users see what commands are available in a select plugin. For example: my sample object.ini files has 3 can commands for Mapmonkey, these will appear in the Edit window on the righthand side if I select MM as the plugin to send the message:
[MM]
Hotkey_CMD|FE_MENU_OPEN Show Main Menu
Hotkey_CMD|FE_VIEW_MENU_OPEN Show View Menu
Hotkey_CMD|FE_ADD_SPEED_CAMERA Show Speed Camera
The syntax for objects.ini is
[name]
command1 (tab) Help text1
command2 (tab) Help text2
...
The "[name]" is the same as the <name> section of the settigns.ini file, "command1" is the command to send to the plugin and "Help text" is what is displayed if you click in the main SpeakEasy window on a potential command in a list of commands.
The object.ini file is not manditory it is just useful so you have pre-created commands in the Vocabulary Edit window of SpeakEasy.