/remote-control

WebKitGTK+ based Middleware for Medcom devices

Primary LanguageCGNU General Public License v3.0GPL-3.0

About remote-control

Travis build

This repository contains remote-control, a middleware for Avionic Design's Medcom Terminals, Linux-based entertainment and communication devices targeted for the healthcare sector.

The remote-control software uses WebKitGTK to load and display web-based user interfaces. By expanding the included JavaScriptCore with its own AvionicDesign object, various hardware and many low-level software functions can be controlled via JavaScript. This currently includes (but is not limited to) Voice-over-IP using Linphone, video streamer via VLC or GStreamer, controlling and mixing various audio sources and sinks, display brightness control and various input events from internal and external devices, e.g. a handset.

Name

The name remote-control nowadays is a bit misleading as it really is more like local-control, exposing a JavaScript extension for the device it runs on and all. However, before v1.0.0, remote-control exposed an RPC API a service on the server it connected to could control various hardware functions. This design dates way back to a time when Medcom devices were not Linux-based but used Windows CE instead. After switching from daylight openings to penguins, the RPC interface was gradually converted to a JavaScript extension for performance reasons. Especially in large networks saving the round-trip to the server for simple operations like changing the backlight brightness led to a noticeable speed increase.

Since remote-control v1.0.0 the conversion to JS is complete for every function required on current and future devices, dropping the dated RPC API in the progress. The name of the middleware may be changed in the future - developers often like to stick to the labels they assign to things, so it might as well never happen ;)

Building

This project is based on Autotools, so building is mostly executing autogen.sh with the desired configuration options. remote-control works with both WebKitGTK 1 and 2 versions. For the latter, compiling against GTK 3 is mandatory. Apart from the usual dependencies like Autotools and things building things, internally developed libraries are available from our public FTP:

Installation

Building and installation into an embedded Linux image can be done smoothly using PBS with the AD platform, but should also work independently. Considering its near exclusive use on Medcom devices, usefulness in other environments is unconfirmed but might exist.

Documentation

Documentation is admittedly a bit scarce and outdated, but can be found in the docs/ subdirectory. We are hoping to improve the situation in the future.

Development

Issues may be reported via GitHub. Pull requests are welcome, bear in mind though we might have different plans or use cases.