I bought the Pulse-Eight CEC Adapter a few months in order to integrate better with my MythTV setup.
I realized very quickly that MythTV had a relatively poor support for LibCEC.

I then discovered libcec-daemon, but found out quickly that it was missing some features such as
support for suspend/resume and was not supporting my Samsung Series 8 TV particularily well.

so, after a few months of effort, here's my contribution to this great project.

I've written a few scripts for mythbuntu which integrate the CEC daemon with udev and upstart
in order to start the daemon as soon as the adapter is detected, pause mythtv whenever the source
is changed and suspend and resume my mythtv client whenever the TV is turned of or on.
Those scripts are not particularily well polished for general consumption, therefore I haven't added
them to this submission, but I might do it later.

Changes summary:

- main.cpp, libcec.cpp: added support for HDMI port overrides in case autodetection fails (libcec detection doesn't work with proprietary NVIDIA driver)
- main.cpp, libcec.cpp: added support for custom events such CEC-standby, CEC-activate, CEC-deactivate via custom scripts
- main.cpp, libcec.cpp: support for adapter recovery after plug/unplug (after a resume or thaw) by reinitalizing adapter after ping failure.
- main.cpp, libcec.cpp: finish support for multiple usb adapter, only shim code was available previously
- main.cpp, uinput.cpp: support for CEC combo keycode such as UP-LEFT, DOWN-RIGHT by issuing multiple keypresses together
- main.cpp: simulate relevant keypress/keyrelease if they are not properly sent by TV remote, such as old Samsung TV or some vendor code.
- main.cpp, hdmi.cpp: improve command line arguments help and parsing for HDMI port address
- bootstrap, configure.ac, m4, Makefile.am: support for autoconf/automake build in order to help integrating with distros package managers