Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

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

Merged
merged 4 commits into from

8 participants

@opdenkamp
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.

@opdenkamp opdenkamp was assigned
@Memphiz
Owner

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

@opdenkamp
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.
@amejia1
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.

@elupus
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.
@opdenkamp
Collaborator

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

@opdenkamp
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

uploaded 1.6.2 to darwin depends and verified compilation

@opdenkamp
Collaborator

thanks again :)

@wsoltys
Collaborator

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 ...

@elupus
Collaborator

Whatever happened to this one?

@Memphiz
Owner

it gets a milestone for 2013 ;)

@opdenkamp
Collaborator

meh, forgot to merge it.

@opdenkamp
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 ...

@ipitcher

xbmcKey.iButton = XINPUT_IR_REMOTE_BLUE;
PushCecKeypress(xbmcKey);

Semicolon is missing there on PushCecKeypress.

@opdenkamp
Collaborator

hmm indeed. I blame git rerere ;-)

@opdenkamp
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.

@opdenkamp
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

@opdenkamp
Collaborator

yup, this will be the last one :)

@opdenkamp
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

@opdenkamp
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

@opdenkamp
Collaborator

thanks

@Fneufneu
Collaborator

gogo ! :)

opdenkamp added some commits
@opdenkamp opdenkamp 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
@opdenkamp opdenkamp peripherals: call OnDeviceRemoved() before destructing a device when …
…the device was unplugged
bc059e7
@opdenkamp opdenkamp nyxboard: map the 'power' button on the nyxboard 26597a7
@opdenkamp
Collaborator

windows dep needs to be uploaded first.

@opdenkamp
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.

@opdenkamp
Collaborator

@wsoltys thanks, will do.

@opdenkamp opdenkamp merged commit ec4375b into from
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Jun 26, 2012
  1. @opdenkamp
Commits on Jul 2, 2012
  1. @opdenkamp

    cec: libCEC 1.7.1 support and fixes. libCEC 1.6.1+ is needed when usi…

    opdenkamp authored
    …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
  2. @opdenkamp
  3. @opdenkamp
Something went wrong with that request. Please try again.