RM-X General Purpose Control
From Wikipedia, the free encyclopedia
RM-X Configuration Screenshot |
|
Maintainer: | Darkain |
Stable release: | 1.2 (February 17, 2006) [+/-] |
Preview release: | 1.3 (November 29, 2006) [+/-] |
OS: | Windows |
Use: | Automation |
License: | BSD |
Website: | wiki.darkain.com |
RM-X General Purpose Control is a tool for seamless integration of hardware, software and user all in one tiny package. RM-X is developed and maintained by Darkain.
Contents |
[edit] Overview
RM-X starts by breaking down the entire process of user interaction with hardware into two key areas: input and output (Events and Functions for our purposes). Each time we press a key on a keyboard, click a button on a mouse, flip a light switch, or press the power button on our TV we are generating events for these devices to process. These events then call specific functions to action, such as making text appear on the screen, opening a new web page, making the room brighter, and having the television turn on.
RM-X becomes a middle man in this process, taking on a role in between the event that was generated and the function that happened as a result. Each event as well as each function is thrown into their respective categories and then generalized. All events are then processed in the same general manner, and all outputs are actived in the same general manner.
To explain this further, lets use a keyboard as an example. When a key is pressed, it generates a message and sends it to the system. RM-X would then receive this message and can then redirect it to any of the generic functions that RM-X is aware of (generally via plugins). If RM-X is aware of a lightbulb, then that keyboard press might be redirected to turn the lightbulb on and off. In the same idea, a mouse button may be clicked which generates an event. This event could be processed by RM-X to call the function to turn on a television. As new additions to RM-X are made, this idea can be spread infinitly to new hardware and software applications.
[edit] History
[edit] 2001
In late March of 2001, Darkain (with the help of a few others) decided to add support to Creative Technology's Remote Center application to allow the RM-900 remote control to interface with Winamp. During the first week of April 2001, the first version of RM-900 for Winamp was publicly released. This plugin had very minimal features and no customization at all. It was written using Microsoft Visual Basic and used a 3rd party keyboard hook DLL.
About a month after the release of the RM-900 for Winamp plugin, one of the contibuting members to the project suggested to Darkain that there should be a similar plugin made to support PC Gamepads. This project was given the title of DX-Joy for Winamp. This plugin was also made using Microsoft Visual Basic as well as DirectX, and contained a very basic configuration GUI.
Nearing the end of the year, RM-900 for Winamp was completely rewriten from scratch using Microsoft Visual C++, and without the use of the 3rd party DLL. This plugin still used its own method of capturing keyboard input, and during its development it was suggested that there should be a 3rd plugin for Winamp to support global keyboard shortcuts. This new plugin would be given the name API-KB for Winamp, but never officially went into development.
[edit] 2002
In early 2002, the RM-900 for Winamp plugin was updated to support the RM-1000 remote control. DX-Joy was rewritten using Microsoft Visual C++, and merged into the RM-900 for Winamp code base. These two plugins being merged together, along with previously undeveloped API-KB for Winamp, became what is now known as RM-X General Purpose Control. This new name was chosen from a combination of things, including RM-900 and RM-1000 being merged into RM-X, as well as General Purpose being the type of plugin this was for Winamp.
In mid 2002, Alpha and Beta releases of RM-X General Purpose Control where made publicly available for both Winamp v2 and wasabi.player (titled Winamp3 at the time). At around this time, the RM-X name was given a new meaning: Remote Management eXtensions or Remote Multimedia eXtensions, but these names are not commonly used as compared to simpler RM-X abbreviation.
[edit] 2003
More and more requests came in for Darkain to support more devices and more media players with his plugin over the months and years. In 2003, RM-X General Purpose Control was split up into multiple projects once again. RM-X itself became a tool that could load plugins. RM-900, DX-Joy, and API-KB where removed from RM-X and became plugins for it. Additional plugins for RM-X where made, such as IntelliRemote and App Commands. This also spwaned a library that is publicly available to write plugins for RM-X, known as the vBase SDK.
[edit] 2004
Limitations with the plugin architecture as well as configuration GUI made it quite complicated to make specific devices interact well with RM-X. Because of these issues, RM-X has been rewriten from scratch several times, usually about every six months. The last major rewrite of the RM-X underlaying framework was done in mid 2004. In this major modification to the code base, the underlaying framework switched from a generally linear style of programming and data management to a hierarchal form. RM-X is now described to be in a structure similar to XML, but in a live and dynamic state while also supporting RPC across plugins, applications and computer systems.
[edit] 2005
January 1, 2005 RM-X General Purpose Control version 1.0 released for four separate media players (Winamp, foobar2000, BSplayer and RadLight).
March 16, 2005, the four individual RM-X plugins where once again merged into one single project known as RM-X Media Edition. At this time, support for Windows Media Player was also added. Major additions to support the Lua programming language where also made. After March, development was temporarily halted.
September 17, 2005, work resumed on RM-X with the inclusion of several new features all centered around Lua, and continues to be developed on to this day.
[edit] 2006
January 5, 2006, RM-X Media Edition version 1.2 RC1 released. This build contained many large improvements over previous builds, including a full LuaPlus integration.
February 17, 2006, RM-X Media Edition version 1.2 final is released to the public. [1]
[edit] Supported Applications
- RM-X Stand-Alone
- RM-X Media Edition
- BSplayer
- foobar 2000 v0.8 (experimental support for foobar2000 v0.9 available)
- RadLight
- Winamp
- Windows Media Player
- RM-X Gaming Edition
- Dualis (obsolete)
- HyperDS (obsolete)
[edit] Plugins
- App Commands - Support for Application Command Messages
- ATI Remote Wonder - Support for the ATI Remote Wonder RF Remote Control (Remote Wonder 2 untested)
- Com Commander - Support for a 4 button device plugged into a Serial port
- Debris - Support for controlling Debris Visual Art
- Gaming Devices - Support for reading input from DirectInput compatible gaming devices
- IntelliRemote - Support for reading input from the Creative RM-900 and RM-1800 Remotes, using the method developed by Andrew Schwartz for IntelliRemote
- Keyboard Shortcuts, OBSOLETE, replaced by User Input Plugin - Global system-wide keyboard shortcuts
- Message Digest - Provides various hash functions, such as MD2, MD4 and MD5
- Network - Provides various network functions, such as DNS and Reverse DNS lookup
- Playlist - A plugin that creates a tabbed window with various playlists active in the current media player
- Power Management - Allows for access to ACPI system calls, such as Standby, Hibernate, and Shutdown
- Remote Center - Reads events generated by the RM-900 and RM-1000 Remotes that are passed through the Creative Remote Center application
- RM-X10 - Sends and receives X10 power line signals through the CM11A hooked up to a Serial port
- Shell Extensions - Allows for various interactions with the OS, such as FindWindow and SendMessage
- System Mixer - Allows access to the various volume controls available on the system
- Telnet Daemon - Allows RM-X Script Functions to be executed from a Telnet based command interface
- Tray Icons - Allows for user selectable icons to be placed in the system tray with configurable events when clicked
[edit] External links
- RM-X Wiki homepage
- Media Players
- Tools
Remote administration software |
---|
Apple Remote Desktop | Back Orifice | Back Orifice 2000 | Microsoft Systems Management Server | NetBus | Remote Desktop Protocol | RM-X General Purpose Control | Sub7 | Timbuktu | Virtual Network Computing |