FreeRemote is an application designed to provide remote management of Linux on the means of IR-remote controls, mobile devices (mobile phones) and other sources (e.g. network). In terms of the object interacting with a source of commands is called a controller. The controller is waiting for commands (pressing the button on the remote device) and sends a signal to its customers on the bus DBus.
The system consists of two parts: server and client.
Server (daemon), which tracks click on the buttons and controllers notify their customers of the event. Server provides its service to DBus.
The work with each type of controller is a special module that loads the server. So, to work with IR-remote control (LIRC), using the module controller-lirc.so, and for mobile devices - controller-serial.so.
Server expandable, ie you can write modules for other teams.
Mobile devices can connect via:
* USB or Serial cable (using a device /dev/ttySx or /dev/ttyACMx);
* Bluetooth on the protocol RFCOMM (using device /dev/rfcommx);
The main thing is that the mobile device provides the ability to track events click on the button.
Client is an application which has been (was) writen by using Qt4, which during launching connects to server and performs actions which were provided by user according to held buttons.
To run external programs in the script put the function runCommand, and access to services DBus class DBusInterface.
Examples of writing script extensions made two modules to manage through the DBus system kmix mixer and player amarok.