RW
Key Master
1. About
RW Key Master is an application
that
receives events from X10net.dll control (the driver for the Remote
Wonder (and various different RCs) USB receiver). It is capable to load
AMMO plugins (the plugins
for the ATI Remote Wonder application). It can serve as a replacement
for the ATI software.
The main purpose for creating
this
application was to enable the usage of the forbidden buttons (TV, DVD,
Book, Power Off). This applications offer an extended version of the
AMMO interfaces and it is capable to deliver these events to the
plugins that support these extensions.
Features:
- Mouse emulation
(configurable)
- AMMO interface - loads ATI
RW Plugins
- Can receive all X10 button events, not only those defined in AMMO
- e.g. allows to use the TV,
DVD, Book and Power Off
buttons on ATI RW
- Configurable button event code mappings - users can create
definitions for any remote that produces X10 events (if pressing of RC
button creates new entry in the X10 log, the button can be mapped)
- RC ID support - can listen to all remotes or to a remote with
specific ID (e.g. ATI RW can be configured to use 16 different IDs)
Features
of the AMMO that were left off:
- Configuration of the
programmable keys
('Program' tab in the ATI application) together with the custom mapped
key functions in AMMO interface. The plugins always receive unmapped
keys.
RW Key Master also does not
support the
ATI Multimedia center and associated functions. It also does not
generate any events when no plugin is loaded. You can however use the
RW Key Factory plugin to assign ANY key events to ANY button onyour RC.
Contact address: catsoft@seznam.cz
Downloads and info: http://sourceforge.net/projects/rwkeymaster
2. The AMMO Extensions
There are 30 new extended keys. All belong to the Web Launch group
(they are sent to a plugin if it subscribes the Web Launch group):
3. Unsupported AMMO Functions
char
*EnumerateProgrammableFunction(WORD wIndex)
This function is never called. The
plugins won't receive the mapped custom keys. The bCustom parameter of
the handleKey function is always false. The subscription to the
CUSTOM_MAPPED group is converted to CUSTOM_RAW and the plugins will
only receive the unmapped custom keys.
4. Usage
This application can be used
together
with the ATI RW application, but in that case both applications will
receive the key events. It is recommended to exit the ATI application
first before using RW Key Master.
The ATI RW drivers must be
installed for
this application to work (they contain the x10net.dll control). RW Key
Master was tested with the 1.4 version of ATI drivers.
4.1
Instalation
- Create a folder and put RW
Key Master
executable to it. You should have rights to create and modify files in
this folder because RW Key Master stores its configuration to an INI
file in the folder where the executable is.
- Disable automatic loading of
the ATI
drivers:
- Right click the ATI RW
Icon in Tray and
select Properties
- In the options tab
deselect the 'Load on
Startup' box
- Enable automatic loading of
RW Key Master
- Right click the
RWKeyMaster executable
and select 'Create shortcut' (may have different names in different
Windows languages)
- Rename the new *.lnk
file to a nice name
- Drag the *.lnk file to
the Start menu to
the folder taht contains programs executed on the system boot (I don't
know the exact name in English windows because i have access only to
the the Czech version; it may be something like 'After start' or 'After
boot'
- The RW Key Master icon
should now be in
your tray. You can now configure it and use it instead of the ATI RW
Application.
You can also execute RW Key
Master
manually.
4.2 Configuration
The Configuration dialog has
two buttons:
- OK - Close the dialog and
keep RWKM
running
- Exit - Exit RWKM
It also has four tabs:
- Mouse - Mouse emulation
properties
- Plugins - Plugin
configuration
- Advanced - Advanced configuration
- About
4.2.1 Mouse emulation
It has these parameters:
- Slow mode delta - how many
pixels move
the cursor per 1 event in slow mode (1..10, default 1)
- Fast mode delta - the same
in Fast mode
(1..20, default 5)
- Events before Fast mode -
how many X10
mouse events are received before the Fast mode starts (1..100, default
20)
- Fast mode expiration [ms] -
Interval
after an Off event from the directional keys is received before the
mode reverts to Slow mode (to prevent changing to slow mode when
changing the direction of cursor movement) (1..10000, default 100)
- Mouse event repeat time [ms]
- interval
between repeated cursor movements after the X10 event is received
X10 control delivers repeated
key events
aboutevery 50 ms. this is too slow for a mouse movement so they are
repeated in RWKM using the Repeat time. This results in 4 or 5
movements with the default configuration after single press of ATI key.
The default parameters behave in a similar way to the ATI app on my
system, but they can be changed according different needs of different
users.
4.2.2 Plugin configuration
The Plugins tab contains a lict
of
loaded plugins. By unchecking the checkbox near the plugin names the
plugin is disabled, but it remains loaded. The buttons are:
- Move Up - Move the plugin
upwards in the
list, so it receives the events sooner
- Move Down - Move the plugin
down in the
list
- Add - Append a new plugin to
the end of
the list
- Remove - Remove selected
plugin
When a plugin is selected in
the list,
the plugin Information group box displays the information from the
version resource of the plugin. It also contains the Configure button,
which enables to configure the plugin (if the Configure entrypoint is
present).
4.2.3 Advanced configuration
This tab contains configuration options for advanced functions of
RWKm:
4.2.3.1 RC ID
ATI Remote Wonder and maybe other RCs support multiple IDs to allow
operation of multiple RCs in close proximity. This ID is encoded in the
lAddress field of X10 events. RWKM allows any integer value to be used
as lAddress, not only the 16 values used by ATI RW. There are 3 options:
- Listen to all IDs - RWKM will listen to all X10 events with no
regards to the lAddress.
- Listen to all IDs and allow per-plugin ID selection - Not
implemented for now - let me know if you need it.
- Listen to specific ID - Discard all received X10 events with
lAddress different than the specified value
To specify RC ID, you have these options
- Specify the lAddress value manually - any 32-bit integer value is
acceptable
- Select ID from the combo box - this allows to select one of the
predefined values for ATI RW
- Detect ID of your RC - click on the button and a dialog appears.
Then press a button on your remote (if there are multiple entries in
the list, remember the button you pressed and select the item that
corresponds to that button. The values in the list are: lAddress (RW
channel, bszCommand))
4.2.3.2 X10 Log
This window logs all X10 events (only when it is visible!). It helps
to determine whether RWKM is responding to your remote.
4.2.3.3 RC Definitions configuration
RWKM supports multiple remotes through RC definitions. A RC
Definition file contains X10 event codes assigned to actions that are
sent to plugins. It also contains button names that are used by RW Key
Factory.
The controls are:
- RC Configuration edit
box - contains the path to the configuration file. It has 2 buttons
assigned:
- X - reset the configuration to default values (ATI RW 1)
- ... - Open and load a different file
- Popup X10 log upon reception of
unknown button - when enabled, the X10 log window is shown when
RWKM receives an event with code that is not assigned to any action.
- Popup message box after every
event - when checked, a message box that contains description of
the event and mapped action, is shown. The events are not
processed further - they are not sent to plugins. This serves for
debugging of the definition files.
4.2.3.4 RC Definitions Editor
This window allows to edit the RC configuration.
- Actions - contains list
of all available actions
- Selected action group -
allows to edit parameters for selected action
- RC Key Code -
specifies the X10 event code that is mapped to this action. Any
positive 32-bit integer value is acceptable. There are 2 buttons
assigned to this edit:
- X - Reset the code (and the button name) to default value
(999 and Unused)
- Detect key - displays a similar dialog as the Detect ID
option - you can then press a button on the remote and the code value
will be automatically detected
- Key Display Name - the
name that will be used by RW Key Factory for this action.
- RC Information group
- Name - fill in a name
of the remote. This value is displayed in the Advanced tab.
- Info - fill in a
description of the remote, like the version of the X10 drivers or any
other useful information.
- Buttons
- Save to disk - save
the definition (*.rcd extension is used, although the file is in
standard Windows INI format)
- Apply changes - apply
any changes made in the edit fields
- OK - close the dialog
5. Legal
This program is free software;
you can
redistribute it and/or modify
it under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Copyright (C) 2004-2006 Jan Klir <catsoft@seznam.cz>
6. Source code
The package comes with Delphi 7 PE source code. To compile the
source code, you will need CatsoftComponents
available from the web page (http://catsoft.wz.cz).
It also uses third party components and libraries: JCL, JVCL, Virtual Treeview