Add device_info module for the emulators

Also, correct build dependencies listed in README.md .

Open-webOS-DCO-1.0-Signed-off-by: Sapna Todwal <sapna.todwal@palm.com>

Change-Id: Iff1d738fa4d839e24cdb4ac4ffe0801cb6295e22
Reviewed-on: http://g2g.palm.com/767
Reviewed-by: Build Verification
Tested-by: Sapna Todwal <sapna.todwal@palm.com>
Tested-by: Herb Kuta <herb.kuta@palm.com>
Reviewed-by: Sapna Todwal <sapna.todwal@palm.com>
Fix popup alert not showing for events in calendar

Open-webOS-DCO-1.0-Signed-off-by: Pekka Ropo <pekka.ropo@palm.com>

Change-Id: Ic72366750fa92ccc17500ac79de976d8213987ae
Reviewed-on: http://g2g.palm.com/913
Reviewed-by: Build Verification
Reviewed-by: Pekka Ropo <pekka.ropo@palm.com>
Tested-by: Pekka Ropo <pekka.ropo@palm.com>
Reviewed-by: Keith Derrick <keith.derrick@palm.com>
keys: split out common key handling code from emulator module

It makes no sense to have the same code in more than one module so we're splitting out the
common input device handling code and just put the specific key handling into module
specific code section.

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
keys: add device specific implementation

For real target devices there is only a small subset of keys we're able to use. This is
known handled and mapped within a device specific implementation which is separated from
the emulator one.

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
led_controller: initial code for a common led controller module

The current implementation only provides support for setting the backlight brightness and
disabling/enabling the backlight when needed. Further effect implementation is missing.

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
touchpanel: rename emulator implementation to evdev

The current emulator implementation is using the evdev input protocol which is appropiate
for other devices as well so we make it unrelated to the emulator here. Differences
between different target machines (and emulator) should be implemented as config options.

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
touchpanel: evdev: read screen size from framebuffer when possible

* read screen size when not defined by machine config from framebuffer
* define static screen size for qemuarm and qemux86 machines

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
touchpanel: build evdev implementation for WEBOS_TARGET_MACHINE_IMPL device

The evdev implementation should be suitable for most devices until we have a real multi
touch implementation for the MT protocol.

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
system: use a flat directory structure to have same code for all machines

If there need to be specific implementations for different machines then this should be
separated from the main module code which should mostly be the same for all needed
implementations.

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
battery: split out common file handling methods into separate source file

Having common functionality separated from the specific ones makes it easier to implement
for a target device which is not the emulator. Both can still share the same common
functionality.

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
battery: add a device specific implementation

The implementation is based on the common linux power supply interface and is detected
changes to the current status with processing uevents due to the use of libudev.

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
charger: split out common module functionality

With splitting out common module functionality we're now able to add different
implementations for the charger module. For target emulator machines this is still the
same dummy implementation as before.

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
charger: add a device implementation for charger status detection

The device implementation is based on the common linux power supply interface and is per
default enabled to detect changes for AC and USB chargers. It's using libudev to detect
a changed charger status.

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
machine: add support for the tuna machine

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
led_controller: correct calculation of display brightness and activate/deactivate display

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
tuna: adjust configuration for recent changes to led_controller plugin

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
led_controller: only set backlight brightness when display is enabled

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
system: rtc: correctly deal with glib io watches and channels

This fixes a rather serios problem with rtc poll handling. When a watch is added to the
glib mainloop it references internally a file descriptor to pass it later to the poll
function (see poll(2)). Every watch gets an id which should be used by the user to refer
to the watch whenever needed. When the io channel is destroyed the watch should be remove
from the mainloop as well. If this isn't done probably by the user it will cause the
internal list of fds which are passed to the poll function to exceed the maximum of 256.
This finally results in poll returning EINVAL as error code.

2012-11-09T19:24:24.809509Z [5146] tuna user.warning sleepd: poll(2) failed due to:
Invalid argument.

GLib doesn't handle this very well and will take 100% CPU usage when this occurs.

This patch adds the correct removal of the watch from the glib mainloop when it's not
needed anymore. Furthermore the watch isn't added again when it or the channel is still
valid.

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
charger: cleanup everything when module is closed

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>
battery: cleanup everything when module is closed

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <morphis@gravedo.de>