# LinuxMCE

LinuxMCE (Linux Media Center Edition) is a free and open source software platform with a 10-foot user interface designed to allow a computer to act as a home theater PC (HTPC) for the living-room TV, personal video recorder, and home automation system. It allows control of everything in the home, from lighting and climate to surveillance cameras and home security. It also includes a full-featured VoIP-compatible phone system with support for video conferencing.

## Levels of implementation

LinuxMCE may be used as a standalone home theater PC (without any other home network connectivity), but it may also serve as a complete home LAN system in a server/thin client configuration. In such a configuration, a central core server (a standard PC running Kubuntu) does most of the storage and processing functions, while peripheral PCs (and other devices) provide input and output services. Thin client PCs can netboot over the LAN to serve as "Media Directors", which stream media content from the core to audiovisual devices which are connected to these thin clients.
This home automation/multimedia LAN can be expanded to include home automation systems, surveillance cameras, high-tech remote controllers (called "Orbiters"), and telephone PBX systems. The core server co-ordinates the functions of all the devices on the home LAN. The advanced networking capabilities of the Linux OS allow this high level of network co-ordination.

## History

LinuxMCE was begun by Paul Webber as a fork of the PlutoHome home automation software project. It was adapted to run on top of a standard Linux distribution, Kubuntu, as its base OS, rather than to exist as a custom Linux distribution.
Most of the core components, including the Orbiter (remote control) user interface, have undergone significant improvements, and are licensed under the GPL.

## Architecture

A LinuxMCE setup consists of two parts – one Core and one or more Media Directors. The Core is the central server and provides services throughout the home. It acts as the central media storage and catalog, it routes home automation messages and commands, and it provides net boot images for the Media Directors. Each Media Director is connected to a screen (TV, computer screen or projector) and optionally to other A/V equipment. All media are presented through a Media Director. If the Core is also a Media Director (connected to a TV), it is called a hybrid system. Media Directors can be booted over the network from the Core. That way, only the Core needs to be updated and backed up to keep the whole system up-to-date.
Most of the CPU-intensive processing is done on the Core. Thus, the system requirements for a Media Director are relatively small. This makes it easier to build a Media Director that is small and silent, and that fits in a living room. The Core, on the other hand, can be placed anywhere in a house. Accordingly, it may be built with a focus on price and performance instead of silence and appearance.
This modular architecture allows LinuxMCE to use and control any hardware connected to the Core and Media Directors and to control it in a coordinated way. For example, if a movie is started in the living room, LinuxMCE can dim the light in that room but also switch off radio playback on the Media Director in the office. If an IP phone rings, LinuxMCE can show the number on the screen and pause media playback while the call is answered.

## Software components

The LinuxMCE package is installed on the Kubuntu OS, and utilizes open source applications such as Asterisk, Xine, MythTV, VDR, Firefox, VideoLAN and SlimServer. 64-bit versions of the LinuxMCE package are no longer under active development after 7.10.
These programs have been given wrappers which allow them to communicate with each other, and with the Ruby scripts that control the home automation components. This communication is co-ordinated using a DCE (Data, Commands, Events) protocol through a program called the DCE Router. This added communications layer allows trigger-command features such as pausing media playback when an important phone call arrives, dimming the lights while playing a movie, and allowing media playback to follow from computer to computer whenever a Bluetooth enabled remote is carried between rooms.
The DCE communications protocol allows a single program to present a standardized user interface, the Orbiter UI, to the various devices and applications used within the LinuxMCE system.
| Functionality | Platform/software used |
| Operating system | Kubuntu |
| Television/Personal video recorder | MythTV/VDR |
| Media playback | Xine/MPlayer |
| Telephony | Asterisk |

## User interface

LinuxMCE allows the user interface to be displayed in several different resolutions, to accommodate the graphics capabilities of the different devices (PCs, mobile phones, webpads, PDAs) that can be used to display it.
Context-sensitive menus allow a single remote control to control not only LinuxMCE menus, but also audiovisual device functions.