Skip to content
This repository

cec - libCEC 1.7 and firmware v2 support (for wake over CEC) #887

Merged
merged 4 commits into from almost 2 years ago

8 participants

Lars Op den Kamp Memphiz wsoltys Andres Mejia Joakim Plate sialivi Fneufneu
Lars Op den Kamp
Collaborator

this PR adds the following:

libCEC 1.7 support and fixes. libCEC 1.6+ is needed when using firmware v2 on the CEC adapter, which adds wake over CEC
* added a new setting to control whether to put the TV in standby when the player is put in standby.
* added some button mappings: all menu related buttons -> menu, previous channel -> teletext, added support for the channels list on samsung, mapped next fav -> menu (when available)
* display the firmware version in the peripheral manager (if available)
* handle the new CEC alert callback (libCEC 1.6+)
* replaced 'Put this PC in standby mode when the TV is switched off' with an enum that allows the user to chose between 'Ignore', 'Suspend' and 'Shutdown'
* fixed - crash when changing settings without libCEC started.
* fixed - range of wake and power-off devices
* fixed - update the correct standby device setting ('standby_devices' not 'wake_devices')
* fixed - don't get the settings from the eeprom, but always use the settings provided in xbmc
* peripherals: added support for enum settings
* physical address autodetection for AMD

win32 and darwin deps will need to be pushed to the mirrors before merging this.

Memphiz
Owner

compiles on osx - source is uploaded to the dep mirror for osx.

Lars Op den Kamp
Collaborator

cheers

wsoltys
Collaborator

libcec1.6.0.zip is uploaded to the win mirrors and xbmc compiles fine.
Two small issues remain:

  • the name of the zip is libcec1.6.0.zip but in libcec_d.txt libcec-1.6.0.zip is referenced. Which one should be renamed?
  • in libcec_d.bat pthreadVC2.dll is copied but not included in the zip. Since the dll seems not be required it anymore please update the script accordingly.
Andres Mejia
Collaborator

@opdenkamp Are there any API/ABI incompatibilities in libcec 1.6.1 against previous releases (say 1.3.2)?

EDIT: Oh, and I'm asking to see if latest libcec should be uploaded to Debian.

Joakim Plate
Collaborator
  • return button has not been mapped to anything. It's a nice an convenient button on samsung remotes. map to MENU?
  • PRE-CH button is not mapped to anything.
  • nothing was mapped to context menu (title button on old xbox remote) possibly map DOT
  • osd during video playback is oddly enough mapped to menu button instead of title, so sadly both are required. This really should be fixed to they are the same button.
Lars Op den Kamp
Collaborator

@amejia1 yes, libCEC should be backwards compatible down to v0.7

Lars Op den Kamp
Collaborator

libCEC 1.6.1 has been replaced with 1.6.2, with a couple of fixes in it.
the deps that got uploaded to the mirrors should be replaced before merging this:
win32: http://packages.pulse-eight.net/windows/libcec-1.6.2.zip
darwin: http://packages.pulse-eight.net/pulse/sources/libcec/libcec-1.6.2.tar.gz
ubuntu is on this PPA: https://launchpad.net/~pulse-eight/+archive/libcec

Memphiz
Owner
Memphiz commented May 02, 2012

uploaded 1.6.2 to darwin depends and verified compilation

Lars Op den Kamp
Collaborator

thanks again :)

wsoltys
Collaborator
wsoltys commented May 03, 2012

not tested but libcec 1.6.2 uploaded to win32 deps

sialivi

1.6.3 is available

Memphiz
Owner

I will bump the version when someone really decides to merge it and skip any intermediate bumps without sense ...

Joakim Plate
Collaborator
elupus commented June 07, 2012

Whatever happened to this one?

Memphiz
Owner

it gets a milestone for 2013 ;)

Lars Op den Kamp
Collaborator

meh, forgot to merge it.

Lars Op den Kamp
Collaborator

added some minor changes to pull in libCEC 1.7.0 instead of 1.6.3. adds PA detection for AMD gfx cards (and some other things)

I'll rebase the patches in a moment and re-add it to the merge list, for next month I suppose.

Memphiz
Owner

Ping me some days before the next merge window if you are sure that this is the version you wanna have and i will take care of the darwin deps then ...

xbmcKey.iButton = XINPUT_IR_REMOTE_BLUE;
PushCecKeypress(xbmcKey);

Semicolon is missing there on PushCecKeypress.

Lars Op den Kamp
Collaborator

hmm indeed. I blame git rerere ;-)

Lars Op den Kamp
Collaborator

@ipitcher fixed, thanks for the poke

sialivi

Any chance this could be updated to 1.7.1 before it's merged? Looks like it's adding some panasonic vendor commands that will hopefully fix some unsupported buttons for me.

Lars Op den Kamp
Collaborator

updated to libCEC 1.7.1 (with some vendor fixes for panasonic indeed @sialivi)

new deps can be found here:
windows: http://packages.pulse-eight.net/windows/libcec-1.7.1.zip
os-x: http://packages.pulse-eight.net/pulse/sources/libcec/libcec-1.7.1.tar.gz
ubuntu: https://launchpad.net/~pulse-eight/+archive/libcec (will be uploaded in a few moments)

@Memphiz could you have a look at darwin deps. thanks

Memphiz
Owner

Sure - no version bumps anymore for this merge window after i have uploaded to darwin :D

Lars Op den Kamp
Collaborator

yup, this will be the last one :)

Lars Op den Kamp
Collaborator

rebased & squashed

Memphiz
Owner

Undefined symbols:
"_CVGetCurrentHostTime", referenced from:
PLATFORM::GetTimeMs() in cec_client-main.o
"_CVGetHostClockFrequency", referenced from:
PLATFORM::GetTimeMs() in cec_client-main.o

Lars Op den Kamp
Collaborator

our mac buildserver was down, so I couldn't check that one. I've updated the zip and it should be fixed now. mac server is up now too, so I can verify it for you later today or tomorrow morning.

Memphiz
Owner

Worked now - 1.7.1 uploaded to darwin deps

Lars Op den Kamp
Collaborator

thanks

Fneufneu
Collaborator

gogo ! :)

added some commits April 17, 2012
Lars Op den Kamp cec: libCEC 1.7.1 support and fixes. libCEC 1.6.1+ is needed when usi…
…ng firmware v2 on the CEC adapter, which adds wake over CEC

  * added a new setting to control whether to put the TV in standby when the player is put in standby.
  * added some button mappings: all menu related buttons -> menu, previous channel -> teletext, added support for the channels list on samsung, mapped next fav -> menu (when available)
  * display the firmware version and firmware revision date in the peripheral manager (if available)
  * handle the new CEC alert callback (libCEC 1.6+)
  * replaced 'Put this PC in standby mode when the TV is switched off' with an enum that allows the user to chose between 'Ignore', 'Suspend' and 'Shutdown'
  * display a warning if the port cannot be opened because of permission problems or when the port is busy
  * map NEXT_FAVORITE, DOT and AN_RETURN to XINPUT_IR_REMOTE_TITLE (context menu)
  * added libCEC 1.7.0 support, which adds physical address autodetection for AMD graphics cards, and some nVidia cards on Linux. when the address is autodetected, then the 'HDMI port number' and 'connected to HDMI device' settings will be hidden
  * fixed - crash when changing settings without libCEC started.
  * fixed - range of wake and power-off devices
  * fixed - update the correct standby device setting ('standby_devices' not 'wake_devices')
  * fixed - don't get the settings from the eeprom, but always use the settings provided in xbmc
  * fixed - ignore OnScreensaverDeactivated message if it was triggered by a shutdown/suspend command. If the screensaver is activated and hence the tv is in standby, a shutdown command will first deactivate the screensaver and then start the shutdown. The tv will be turned on but immediately send a standby command which may be ignored if it is still powering on.
  * fixed - don't crash when XBMC was compiled with libCEC support, but libcec.dll/.so/.dylib can't be loaded. display a kaitoast warning instead.
  * fixed - re-check the menu language and audiosystem status after the user changes settings
  * fixed - keypress handling. handle diagonal buttons properly
  * fixed - include system.h in Peripheral.h, or HAVE_LIBCEC may not be defined
  * fixed - don't reinit the connection when libCEC detected that the connection was lost, but just display a warning message. the OS will detect that the device has been removed and will already close the connection
  * fixed - ensure that the callbacks are reset to NULL before setting them
  * win32 - pthreadVC2.dll is no longer needed and not included in the zip anymore, so don't try to copy it
ea9f2f0
Lars Op den Kamp peripherals: call OnDeviceRemoved() before destructing a device when …
…the device was unplugged
bc059e7
Lars Op den Kamp nyxboard: map the 'power' button on the nyxboard 26597a7
Lars Op den Kamp
Collaborator

windows dep needs to be uploaded first.

Lars Op den Kamp
Collaborator

@Memphiz @wsoltys: since I can't seem to find the credentials to put files on there anywhere, could one of you guys put http://packages.pulse-eight.net/windows/libcec-1.7.1.zip in build-deps/win32, or mail me the credentials so I can upload it myself. thanks

Memphiz
Owner

I don't have access to windows deps - only darwin deps ;). wsoltys will rescue us here i guess.

wsoltys
Collaborator

uploaded. I waited for the final go because I didn't want to uploaded every intermediate release.
@Memphiz: the win32 deps are parallel to your darwin folder. Since I can create files in "your" dir I assume you can do the same in the win32 deps dir ;)
@opdenkamp: drop chadoe, montellese or me a line on irc and you'll get the credentials there. For the next package version please do me the favor and provide two packages. One with the files needed for XBMC in the form described here: https://github.com/xbmc/xbmc/blob/master/project/BuildDependencies/scripts/0_package.list and one with the rest of the files which aren't needed for xbmc to build or run.

Lars Op den Kamp
Collaborator

@wsoltys thanks, will do.

Lars Op den Kamp opdenkamp merged commit ec4375b into from July 03, 2012
Lars Op den Kamp opdenkamp closed this July 03, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Showing 4 unique commits by 1 author.

Jun 26, 2012
Lars Op den Kamp peripherals: added support for enum settings 4413104
Jul 02, 2012
Lars Op den Kamp cec: libCEC 1.7.1 support and fixes. libCEC 1.6.1+ is needed when usi…
…ng firmware v2 on the CEC adapter, which adds wake over CEC

  * added a new setting to control whether to put the TV in standby when the player is put in standby.
  * added some button mappings: all menu related buttons -> menu, previous channel -> teletext, added support for the channels list on samsung, mapped next fav -> menu (when available)
  * display the firmware version and firmware revision date in the peripheral manager (if available)
  * handle the new CEC alert callback (libCEC 1.6+)
  * replaced 'Put this PC in standby mode when the TV is switched off' with an enum that allows the user to chose between 'Ignore', 'Suspend' and 'Shutdown'
  * display a warning if the port cannot be opened because of permission problems or when the port is busy
  * map NEXT_FAVORITE, DOT and AN_RETURN to XINPUT_IR_REMOTE_TITLE (context menu)
  * added libCEC 1.7.0 support, which adds physical address autodetection for AMD graphics cards, and some nVidia cards on Linux. when the address is autodetected, then the 'HDMI port number' and 'connected to HDMI device' settings will be hidden
  * fixed - crash when changing settings without libCEC started.
  * fixed - range of wake and power-off devices
  * fixed - update the correct standby device setting ('standby_devices' not 'wake_devices')
  * fixed - don't get the settings from the eeprom, but always use the settings provided in xbmc
  * fixed - ignore OnScreensaverDeactivated message if it was triggered by a shutdown/suspend command. If the screensaver is activated and hence the tv is in standby, a shutdown command will first deactivate the screensaver and then start the shutdown. The tv will be turned on but immediately send a standby command which may be ignored if it is still powering on.
  * fixed - don't crash when XBMC was compiled with libCEC support, but libcec.dll/.so/.dylib can't be loaded. display a kaitoast warning instead.
  * fixed - re-check the menu language and audiosystem status after the user changes settings
  * fixed - keypress handling. handle diagonal buttons properly
  * fixed - include system.h in Peripheral.h, or HAVE_LIBCEC may not be defined
  * fixed - don't reinit the connection when libCEC detected that the connection was lost, but just display a warning message. the OS will detect that the device has been removed and will already close the connection
  * fixed - ensure that the callbacks are reset to NULL before setting them
  * win32 - pthreadVC2.dll is no longer needed and not included in the zip anymore, so don't try to copy it
ea9f2f0
Lars Op den Kamp peripherals: call OnDeviceRemoved() before destructing a device when …
…the device was unplugged
bc059e7
Lars Op den Kamp nyxboard: map the 'power' button on the nyxboard 26597a7
Something went wrong with that request. Please try again.