diff -Nru libcec-2.0.5/ChangeLog libcec-2.1.1/ChangeLog --- libcec-2.0.5/ChangeLog 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/ChangeLog 2013-03-09 20:14:55.000000000 +0000 @@ -1,3 +1,55 @@ +libcec (2.1.1-1) unstable; urgency=low + + * changed / added: + * send an alert when the TV does not respond to polls + * fixed: + * LG didn't switch sources after the TV powered up + * always poll a device when the status is unknown, and don't try to + determine whether it needs to be polled by checking the status of other + devices + * don't mark a device as inactive when receiving a routing change message, + only when another device was made acive. fixes the issue that rc + passthrough doesn't work when a tv sends a quick routing change to + another port before requesting the active source when coming out of + standby + * LibCecSharp: fixed 14 char long OSD name (wasn't \0 terminated) + * LibCecSharp: fixed return value of GetActiveDevices(). issue #131 + * cec-tray: fixed index out of range exception in CECSettingNumeric.cs. + bugzid: 2082 + * cec-tray: ensure that the tray app only initialises once. bugzid: 2082 + * rpi: don't set the physical address to 1.0.0.0 when receiving + VC_HDMI_UNPLUGGED. it may wake up device when they were just sent to + standby. issue #142 + * osx: use the correct dylib name in cecloader.h, used by cec-client + + -- Pulse-Eight Packaging Fri, 8 Mar 2013 17:21:00 +0100 + + libcec (2.1.0-1) unstable; urgency=low + + * changed / added: + * added vendor id for Denon + * added DetectAdapters() method, that returns all device information for + detected adapters, not just the com port + * added new method PowerOnScreensaver. credits: @jmarcet + * LibCECTray: Added ability to send modifiers by nesting commands in + KeyInput.cs. credits: Nate Burr + * rpi: Added /opt/vc/include/interface/vmcs_host/linux to rpi_cflags to fix + building on 'next' firmware branch. credits: Nedim Lisica + * fixed: + * don't send two active source message sequences to philips. issue #118 + * don't send deck status updates to philips when activating the source + * update the active source status correctly after a manual switch to + another source. closes #124 + * rename cec_audio_status() to cec_audio_get_status() to avoid conflict + with the cec_audio_status enum. This makes the C API compile again. + credits: Dave Chapman + * LibCECTray: Fixed bug with libcec adding the keyup for button commands + and making sure they are still executed. credits: Nate Burr + * rpi: register callback for HPD. re-read the physical address when we + received VC_HDMI_ATTACHED. issue #109 + + -- Pulse-Eight Packaging Tue, 26 Feb 2013 23:06:00 +0100 + libcec (2.0.5-1) unstable; urgency=low * changed: diff -Nru libcec-2.0.5/configure libcec-2.1.1/configure --- libcec-2.0.5/configure 2012-12-07 00:18:58.000000000 +0000 +++ libcec-2.1.1/configure 2013-03-09 20:23:00.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for libcec 2:0:0. +# Generated by GNU Autoconf 2.68 for libcec 2:1:0. # # Report bugs to . # @@ -570,8 +570,8 @@ # Identity of this package. PACKAGE_NAME='libcec' PACKAGE_TARNAME='libcec' -PACKAGE_VERSION='2:0:0' -PACKAGE_STRING='libcec 2:0:0' +PACKAGE_VERSION='2:1:0' +PACKAGE_STRING='libcec 2:1:0' PACKAGE_BUGREPORT='http://libcec.pulse-eight.com/' PACKAGE_URL='' @@ -1339,7 +1339,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libcec 2:0:0 to adapt to many kinds of systems. +\`configure' configures libcec 2:1:0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1409,7 +1409,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libcec 2:0:0:";; + short | recursive ) echo "Configuration of libcec 2:1:0:";; esac cat <<\_ACEOF @@ -1534,7 +1534,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libcec configure 2:0:0 +libcec configure 2:1:0 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2091,7 +2091,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libcec $as_me 2:0:0, which was +It was created by libcec $as_me 2:1:0, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2910,7 +2910,7 @@ # Define the identity of the package. PACKAGE='libcec' - VERSION='2:0:0' + VERSION='2:1:0' cat >>confdefs.h <<_ACEOF @@ -3012,7 +3012,7 @@ # Define the identity of the package. PACKAGE=libcec - VERSION=2:0:0 + VERSION=2:1:0 cat >>confdefs.h <<_ACEOF @@ -15559,7 +15559,7 @@ # Check whether --with-rpi-include-path was given. if test "${with_rpi_include_path+set}" = set; then : - withval=$with_rpi_include_path; RPI_CFLAGS="-I$withval -I$withval/interface/vcos/pthreads" + withval=$with_rpi_include_path; RPI_CFLAGS="-I$withval -I$withval/interface/vcos/pthreads -I$withval/interface/vmcs_host/linux" fi @@ -18125,7 +18125,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libcec $as_me 2:0:0, which was +This file was extended by libcec $as_me 2:1:0, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -18191,7 +18191,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libcec config.status 2:0:0 +libcec config.status 2:1:0 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" diff -Nru libcec-2.0.5/configure.ac libcec-2.1.1/configure.ac --- libcec-2.0.5/configure.ac 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/configure.ac 2013-03-09 20:14:55.000000000 +0000 @@ -1,5 +1,5 @@ AC_PREREQ(2.59) -AC_INIT([libcec], [2:0:0], [http://libcec.pulse-eight.com/]) +AC_INIT([libcec], [2:1:0], [http://libcec.pulse-eight.com/]) AC_CONFIG_HEADERS([config.h]) AH_TOP([#pragma once]) @@ -68,7 +68,7 @@ AC_ARG_WITH([rpi-include-path], [AS_HELP_STRING([--with-rpi-include-path], [location of the Raspberry Pi headers (location of /opt/vc/include, default is auto)])], - [RPI_CFLAGS="-I$withval -I$withval/interface/vcos/pthreads"]) + [RPI_CFLAGS="-I$withval -I$withval/interface/vcos/pthreads -I$withval/interface/vmcs_host/linux"]) ## Optional path to libbcm_host.so AC_ARG_WITH([rpi-lib-path], diff -Nru libcec-2.0.5/debian/changelog libcec-2.1.1/debian/changelog --- libcec-2.0.5/debian/changelog 2012-12-07 00:18:53.000000000 +0000 +++ libcec-2.1.1/debian/changelog 2013-03-09 20:22:55.000000000 +0000 @@ -1,8 +1,60 @@ -libcec (2.0.5-4~precise) precise; urgency=low +libcec (2.1.1-5~precise) precise; urgency=low * Build for Ubuntu 'precise' - -- Pulse-Eight Packaging Fri, 07 Dec 2012 01:18:53 +0100 + -- Pulse-Eight Packaging Sat, 09 Mar 2013 21:22:55 +0100 + +libcec (2.1.1-1) unstable; urgency=low + + * changed / added: + * send an alert when the TV does not respond to polls + * fixed: + * LG didn't switch sources after the TV powered up + * always poll a device when the status is unknown, and don't try to + determine whether it needs to be polled by checking the status of other + devices + * don't mark a device as inactive when receiving a routing change message, + only when another device was made acive. fixes the issue that rc + passthrough doesn't work when a tv sends a quick routing change to + another port before requesting the active source when coming out of + standby + * LibCecSharp: fixed 14 char long OSD name (wasn't \0 terminated) + * LibCecSharp: fixed return value of GetActiveDevices(). issue #131 + * cec-tray: fixed index out of range exception in CECSettingNumeric.cs. + bugzid: 2082 + * cec-tray: ensure that the tray app only initialises once. bugzid: 2082 + * rpi: don't set the physical address to 1.0.0.0 when receiving + VC_HDMI_UNPLUGGED. it may wake up device when they were just sent to + standby. issue #142 + * osx: use the correct dylib name in cecloader.h, used by cec-client + + -- Pulse-Eight Packaging Fri, 8 Mar 2013 17:21:00 +0100 + + libcec (2.1.0-1) unstable; urgency=low + + * changed / added: + * added vendor id for Denon + * added DetectAdapters() method, that returns all device information for + detected adapters, not just the com port + * added new method PowerOnScreensaver. credits: @jmarcet + * LibCECTray: Added ability to send modifiers by nesting commands in + KeyInput.cs. credits: Nate Burr + * rpi: Added /opt/vc/include/interface/vmcs_host/linux to rpi_cflags to fix + building on 'next' firmware branch. credits: Nedim Lisica + * fixed: + * don't send two active source message sequences to philips. issue #118 + * don't send deck status updates to philips when activating the source + * update the active source status correctly after a manual switch to + another source. closes #124 + * rename cec_audio_status() to cec_audio_get_status() to avoid conflict + with the cec_audio_status enum. This makes the C API compile again. + credits: Dave Chapman + * LibCECTray: Fixed bug with libcec adding the keyup for button commands + and making sure they are still executed. credits: Nate Burr + * rpi: register callback for HPD. re-read the physical address when we + received VC_HDMI_ATTACHED. issue #109 + + -- Pulse-Eight Packaging Tue, 26 Feb 2013 23:06:00 +0100 libcec (2.0.5-1) unstable; urgency=low diff -Nru libcec-2.0.5/include/cec.h libcec-2.1.1/include/cec.h --- libcec-2.0.5/include/cec.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/include/cec.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -72,6 +72,7 @@ virtual void Close(void) = 0; /*! + * @deprecated Use DetectAdapters() instead * @brief Try to find all connected CEC adapters. * @param deviceList The vector to store device descriptors in. * @param iBufSize The size of the deviceList buffer. @@ -446,6 +447,17 @@ * @return The current audio status, or cec_audio_status if unknown. */ virtual uint8_t AudioStatus(void) = 0; + + /*! + * @brief Try to find all connected CEC adapters. + * @param deviceList The vector to store device descriptors in. + * @param iBufSize The size of the deviceList buffer. + * @param strDevicePath Optional device path. Only adds device descriptors that match the given device path. + * @param bQuickScan True to do a "quick scan", which will not open a connection to the adapter. Firmware version information and the exact device type will be missing + * @return The number of devices that were found, or -1 when an error occured. + */ + virtual int8_t DetectAdapters(cec_adapter_descriptor *deviceList, uint8_t iBufSize, const char *strDevicePath = NULL, bool bQuickScan = false) = 0; + }; }; diff -Nru libcec-2.0.5/include/cecc.h libcec-2.1.1/include/cecc.h --- libcec-2.0.5/include/cecc.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/include/cecc.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -282,7 +282,13 @@ extern DECLSPEC uint8_t cec_audio_unmute(void); -extern DECLSPEC uint8_t cec_audio_status(void); +extern DECLSPEC uint8_t cec_audio_get_status(void); + +#ifdef __cplusplus +extern DECLSPEC int8_t cec_detect_adapters(CEC::cec_adapter_descriptor *deviceList, uint8_t iBufSize, const char *strDevicePath, int bQuickScan); +#else +extern DECLSPEC int8_t cec_detect_adapters(cec_adapter_descriptor *deviceList, uint8_t iBufSize, const char *strDevicePath, int bQuickScan); +#endif #ifdef __cplusplus }; diff -Nru libcec-2.0.5/include/cecloader.h libcec-2.1.1/include/cecloader.h --- libcec-2.0.5/include/cecloader.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/include/cecloader.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -130,7 +130,7 @@ if (!g_libCEC) { #if defined(__APPLE__) - g_libCEC = dlopen(strLib ? strLib : "libcec.dylib", RTLD_LAZY); + g_libCEC = dlopen(strLib ? strLib : "libcec." CEC_LIB_VERSION_MAJOR_STR ".dylib", RTLD_LAZY); #else g_libCEC = dlopen(strLib ? strLib : "libcec.so." CEC_LIB_VERSION_MAJOR_STR, RTLD_LAZY); #endif diff -Nru libcec-2.0.5/include/cectypes.h libcec-2.1.1/include/cectypes.h --- libcec-2.0.5/include/cectypes.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/include/cectypes.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -175,6 +175,11 @@ #define CEC_DEFAULT_SETTING_POWER_OFF_SCREENSAVER 1 /*! + * default value for settings "wake up when deactivating the screensaver" + */ +#define CEC_DEFAULT_SETTING_POWER_ON_SCREENSAVER 1 + +/*! * default value for settings "power off on standby" */ #define CEC_DEFAULT_SETTING_POWER_OFF_ON_STANDBY 1 @@ -307,7 +312,7 @@ /*! * libCEC's minor version number */ -#define CEC_LIB_VERSION_MINOR 0 +#define CEC_LIB_VERSION_MINOR 1 #define MSGSTART 0xFF #define MSGEND 0xFE @@ -820,26 +825,26 @@ typedef enum cec_vendor_id { + CEC_VENDOR_TOSHIBA = 0x000039, CEC_VENDOR_SAMSUNG = 0x0000F0, - CEC_VENDOR_LG = 0x00E091, - CEC_VENDOR_PANASONIC = 0x008045, - CEC_VENDOR_PIONEER = 0x00E036, + CEC_VENDOR_DENON = 0x0005CD, + CEC_VENDOR_LOEWE = 0x000982, CEC_VENDOR_ONKYO = 0x0009B0, - CEC_VENDOR_YAMAHA = 0x00A0DE, - CEC_VENDOR_PHILIPS = 0x00903E, - CEC_VENDOR_SONY = 0x080046, - CEC_VENDOR_TOSHIBA = 0x000039, + CEC_VENDOR_MEDION = 0x000CB8, CEC_VENDOR_AKAI = 0x0020C7, CEC_VENDOR_AOC = 0x002467, - CEC_VENDOR_BENQ = 0x8065E9, + CEC_VENDOR_PANASONIC = 0x008045, + CEC_VENDOR_PHILIPS = 0x00903E, CEC_VENDOR_DAEWOO = 0x009053, + CEC_VENDOR_YAMAHA = 0x00A0DE, CEC_VENDOR_GRUNDIG = 0x00D0D5, - CEC_VENDOR_MEDION = 0x000CB8, + CEC_VENDOR_PIONEER = 0x00E036, + CEC_VENDOR_LG = 0x00E091, CEC_VENDOR_SHARP = 0x08001F, - CEC_VENDOR_VIZIO = 0x6B746D, + CEC_VENDOR_SONY = 0x080046, CEC_VENDOR_BROADCOM = 0x18C086, - CEC_VENDOR_LOEWE = 0x000982, - + CEC_VENDOR_VIZIO = 0x6B746D, + CEC_VENDOR_BENQ = 0x8065E9, CEC_VENDOR_UNKNOWN = 0 } cec_vendor_id; @@ -883,6 +888,18 @@ char comm[1024]; /**< the name of the com port */ } cec_adapter; +typedef struct cec_adapter_descriptor +{ + char strComPath[1024]; /**< the path to the com port */ + char strComName[1024]; /**< the name of the com port */ + uint16_t iVendorId; + uint16_t iProductId; + uint16_t iFirmwareVersion; + uint16_t iPhysicalAddress; + uint32_t iFirmwareBuildDate; + cec_adapter_type adapterType; +} cec_adapter_descriptor; + typedef struct cec_datapacket { uint8_t data[100]; /**< the actual data */ @@ -1264,7 +1281,8 @@ CEC_ALERT_CONNECTION_LOST, CEC_ALERT_PERMISSION_ERROR, CEC_ALERT_PORT_BUSY, - CEC_ALERT_PHYSICAL_ADDRESS_ERROR + CEC_ALERT_PHYSICAL_ADDRESS_ERROR, + CEC_ALERT_TV_POLL_FAILED } libcec_alert; typedef enum libcec_parameter_type @@ -1387,7 +1405,9 @@ CEC_CLIENT_VERSION_2_0_3 = 0x2003, CEC_CLIENT_VERSION_2_0_4 = 0x2004, CEC_CLIENT_VERSION_2_0_5 = 0x2005, - CEC_CLIENT_VERSION_CURRENT = 0x2005 + CEC_CLIENT_VERSION_2_1_0 = 0x2100, + CEC_CLIENT_VERSION_2_1_1 = 0x2101, + CEC_CLIENT_VERSION_CURRENT = 0x2101 } cec_client_version; typedef enum cec_server_version @@ -1415,7 +1435,9 @@ CEC_SERVER_VERSION_2_0_3 = 0x2003, CEC_SERVER_VERSION_2_0_4 = 0x2004, CEC_SERVER_VERSION_2_0_5 = 0x2005, - CEC_SERVER_VERSION_CURRENT = 0x2005 + CEC_SERVER_VERSION_2_1_0 = 0x2100, + CEC_SERVER_VERSION_2_1_1 = 0x2101, + CEC_SERVER_VERSION_CURRENT = 0x2101 } cec_server_version; struct libcec_configuration @@ -1438,6 +1460,7 @@ uint8_t bUseTVMenuLanguage; /*!< use the menu language of the TV in the player application */ uint8_t bActivateSource; /*!< make libCEC the active source on the bus when starting the player application */ uint8_t bPowerOffScreensaver; /*!< put devices in standby mode when activating the screensaver */ + uint8_t bPowerOnScreensaver; /*!< wake devices when deactivating the screensaver */ uint8_t bPowerOffOnStandby; /*!< put this PC in standby mode when the TV is switched off. only used when bShutdownOnStandby = 0 */ uint8_t bSendInactiveSource; /*!< send an 'inactive source' message when stopping the player. added in 1.5.1 */ @@ -1490,8 +1513,9 @@ cecVersion == other.cecVersion && adapterType == other.adapterType && iDoubleTapTimeoutMs == other.iDoubleTapTimeoutMs && - (other.clientVersion <= CEC_CLIENT_VERSION_2_0_4 || comboKey == other.comboKey) && - (other.clientVersion <= CEC_CLIENT_VERSION_2_0_4 || iComboKeyTimeoutMs == other.iComboKeyTimeoutMs)); + (other.clientVersion <= CEC_CLIENT_VERSION_2_0_4 || comboKey == other.comboKey) && + (other.clientVersion <= CEC_CLIENT_VERSION_2_0_4 || iComboKeyTimeoutMs == other.iComboKeyTimeoutMs) && + (other.clientVersion < CEC_CLIENT_VERSION_2_1_0 || bPowerOnScreensaver == other.bPowerOnScreensaver)); } bool operator!=(const libcec_configuration &other) const @@ -1515,6 +1539,7 @@ bUseTVMenuLanguage = CEC_DEFAULT_SETTING_USE_TV_MENU_LANGUAGE; bActivateSource = CEC_DEFAULT_SETTING_ACTIVATE_SOURCE; bPowerOffScreensaver = CEC_DEFAULT_SETTING_POWER_OFF_SCREENSAVER; + bPowerOnScreensaver = CEC_DEFAULT_SETTING_POWER_ON_SCREENSAVER; bPowerOffOnStandby = CEC_DEFAULT_SETTING_POWER_OFF_ON_STANDBY; bShutdownOnStandby = CEC_DEFAULT_SETTING_SHUTDOWN_ON_STANDBY; bSendInactiveSource = CEC_DEFAULT_SETTING_SEND_INACTIVE_SOURCE; diff -Nru libcec-2.0.5/src/CecSharpTester/CecSharpClient.cs libcec-2.1.1/src/CecSharpTester/CecSharpClient.cs --- libcec-2.0.5/src/CecSharpTester/CecSharpClient.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/CecSharpTester/CecSharpClient.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -43,7 +43,7 @@ Config = new LibCECConfiguration(); Config.DeviceTypes.Types[0] = CecDeviceType.RecordingDevice; Config.DeviceName = "CEC Tester"; - Config.ClientVersion = CecClientVersion.Version2_0_5; + Config.ClientVersion = CecClientVersion.Version2_1_0; Config.SetCallbacks(this); LogLevel = (int)CecLogLevel.All; diff -Nru libcec-2.0.5/src/CecSharpTester/Properties/AssemblyInfo.cs libcec-2.1.1/src/CecSharpTester/Properties/AssemblyInfo.cs --- libcec-2.0.5/src/CecSharpTester/Properties/AssemblyInfo.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/CecSharpTester/Properties/AssemblyInfo.cs 2013-03-09 20:14:55.000000000 +0000 @@ -10,7 +10,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Pulse-Eight Ltd.")] [assembly: AssemblyProduct("CecSharpClient")] -[assembly: AssemblyCopyright("Copyright (c) Pulse-Eight Ltd. 2011-2012")] +[assembly: AssemblyCopyright("Copyright (c) Pulse-Eight Ltd. 2011-2013")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.5.0")] -[assembly: AssemblyFileVersion("2.0.5.0")] +[assembly: AssemblyVersion("2.1.1.0")] +[assembly: AssemblyFileVersion("2.1.1.0")] diff -Nru libcec-2.0.5/src/LibCecSharp/AssemblyInfo.cpp libcec-2.1.1/src/LibCecSharp/AssemblyInfo.cpp --- libcec-2.0.5/src/LibCecSharp/AssemblyInfo.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecSharp/AssemblyInfo.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -9,11 +9,11 @@ [assembly:AssemblyConfigurationAttribute("")]; [assembly:AssemblyCompanyAttribute("Pulse-Eight Ltd.")]; [assembly:AssemblyProductAttribute("LibCecSharp")]; -[assembly:AssemblyCopyrightAttribute("Copyright (c) Pulse-Eight Ltd. 2011-2012")]; +[assembly:AssemblyCopyrightAttribute("Copyright (c) Pulse-Eight Ltd. 2011-2013")]; [assembly:AssemblyTrademarkAttribute("")]; [assembly:AssemblyCultureAttribute("")]; -[assembly:AssemblyVersionAttribute("2.0.5.0")]; +[assembly:AssemblyVersionAttribute("2.1.1.0")]; [assembly:ComVisible(false)]; [assembly:CLSCompliantAttribute(true)]; diff -Nru libcec-2.0.5/src/LibCecSharp/CecSharpTypes.h libcec-2.1.1/src/LibCecSharp/CecSharpTypes.h --- libcec-2.0.5/src/LibCecSharp/CecSharpTypes.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecSharp/CecSharpTypes.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * -* libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. +* libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -764,22 +764,26 @@ /// public enum class CecVendorId { + Toshiba = 0x000039, Samsung = 0x0000F0, - LG = 0x00E091, - Panasonic = 0x008045, - Pioneer = 0x00E036, + Denon = 0x0005CD, + Loewe = 0x000982, Onkyo = 0x0009B0, - Yamaha = 0x00A0DE, - Philips = 0x00903E, - Sony = 0x080046, - Toshiba = 0x000039, + Medion = 0x000CB8, Akai = 0x0020C7, - Benq = 0x8065E9, + AOC = 0x002467, + Panasonic = 0x008045, + Philips = 0x00903E, Daewoo = 0x009053, + Yamaha = 0x00A0DE, Grundig = 0x00D0D5, - Medion = 0x000CB8, + Pioneer = 0x00E036, + LG = 0x00E091, Sharp = 0x08001F, + Sony = 0x080046, + Broadcom = 0x18C086, Vizio = 0x6B746D, + Benq = 0x8065E9, Unknown = 0 }; @@ -1183,7 +1187,15 @@ /// /// v2.0.5 /// - Version2_0_5 = 0x2005 + Version2_0_5 = 0x2005, + /// + /// v2.1.0 + /// + Version2_1_0 = 0x2100, + /// + /// v2.1.1 + /// + Version2_1_1 = 0x2101 }; /// @@ -1282,7 +1294,15 @@ /// /// v2.0.5 /// - Version2_0_5 = 0x2005 + Version2_0_5 = 0x2005, + /// + /// v2.1.0 + /// + Version2_1_0 = 0x2100, + /// + /// v2.1.1 + /// + Version2_1_1 = 0x2101 }; /// @@ -1305,7 +1325,11 @@ /// /// Raspberry Pi /// - RaspberryPi = 0x100 + RaspberryPi = 0x100, + /// + /// TDA995x + /// + TDA995x = 0x200 }; /// @@ -1669,8 +1693,8 @@ PhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS; BaseDevice = (CecLogicalAddress)CEC_DEFAULT_BASE_DEVICE; HDMIPort = CEC_DEFAULT_HDMI_PORT; - ClientVersion = CecClientVersion::VersionPre1_5; - ServerVersion = CecServerVersion::VersionPre1_5; + ClientVersion = CecClientVersion::Version2_1_1; + ServerVersion = CecServerVersion::Version2_1_1; TvVendor = CecVendorId::Unknown; GetSettingsFromROM = false; @@ -1778,6 +1802,9 @@ if (ServerVersion >= CecServerVersion::Version1_8_2) AdapterType = (CecAdapterType)config.adapterType; + + if (ServerVersion >= CecServerVersion::Version2_1_0) + PowerOnScreensaver = config.bPowerOnScreensaver == 1; } /// @@ -1916,6 +1943,11 @@ /// The type of adapter that libCEC is connected to. /// property CecAdapterType AdapterType; + + /// + /// True to power on when quitting the screensaver. + /// + property bool PowerOnScreensaver; }; // the callback methods are called by unmanaged code, so we need some delegates for this diff -Nru libcec-2.0.5/src/LibCecSharp/LibCecSharp.cpp libcec-2.1.1/src/LibCecSharp/LibCecSharp.cpp --- libcec-2.0.5/src/LibCecSharp/LibCecSharp.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecSharp/LibCecSharp.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * -* libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. +* libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -377,7 +377,7 @@ for (uint8_t iPtr = 0; iPtr < 16; iPtr++) if (activeDevices[iPtr]) - retVal->Addresses[iDevices++] = (CecLogicalAddress)iPtr; + retVal->Set((CecLogicalAddress)iPtr); return retVal; } @@ -474,7 +474,11 @@ String ^ GetDeviceOSDName(CecLogicalAddress logicalAddress) { cec_osd_name osd = m_libCec->GetDeviceOSDName((cec_logical_address) logicalAddress); - return gcnew String(osd.name); + // we need to terminate with \0, and we only got 14 chars in osd.name + char strOsdName[15]; + memset(strOsdName, 0, sizeof(strOsdName)); + memcpy(strOsdName, osd.name, sizeof(osd.name)); + return gcnew String(strOsdName); } /// @@ -822,6 +826,9 @@ if (netConfig->ServerVersion >= CecServerVersion::Version1_8_0) config.cecVersion = (cec_version)netConfig->CECVersion; + if (netConfig->ServerVersion >= CecServerVersion::Version2_1_0) + config.bPowerOnScreensaver = netConfig->PowerOnScreensaver ? 1 : 0; + config.callbacks = &g_cecCallbacks; } diff -Nru libcec-2.0.5/src/LibCecTray/Program.cs libcec-2.1.1/src/LibCecTray/Program.cs --- libcec-2.0.5/src/LibCecTray/Program.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/Program.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/Properties/AssemblyInfo.cs libcec-2.1.1/src/LibCecTray/Properties/AssemblyInfo.cs --- libcec-2.0.5/src/LibCecTray/Properties/AssemblyInfo.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/Properties/AssemblyInfo.cs 2013-03-09 20:14:55.000000000 +0000 @@ -9,7 +9,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Pulse-Eight Ltd.")] [assembly: AssemblyProduct("libCEC Tray")] -[assembly: AssemblyCopyright("Copyright (c) Pulse-Eight Ltd. 2011-2012")] +[assembly: AssemblyCopyright("Copyright (c) Pulse-Eight Ltd. 2011-2013")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -31,5 +31,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.5.0")] -[assembly: AssemblyFileVersion("2.0.5.0")] +[assembly: AssemblyVersion("2.1.1.0")] +[assembly: AssemblyFileVersion("2.1.1.0")] diff -Nru libcec-2.0.5/src/LibCecTray/Properties/Resources.Designer.cs libcec-2.1.1/src/LibCecTray/Properties/Resources.Designer.cs --- libcec-2.0.5/src/LibCecTray/Properties/Resources.Designer.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/Properties/Resources.Designer.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.5448 +// Runtime Version:2.0.50727.5466 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -304,7 +304,7 @@ } /// - /// Looks up a localized string similar to Pulse-Eight USB-CEC Adapter - libCECTray BETA3. + /// Looks up a localized string similar to Pulse-Eight USB-CEC Adapter - libCECTray. /// internal static string app_name { get { diff -Nru libcec-2.0.5/src/LibCecTray/Properties/Resources.resx libcec-2.1.1/src/LibCecTray/Properties/Resources.resx --- libcec-2.0.5/src/LibCecTray/Properties/Resources.resx 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/Properties/Resources.resx 2013-03-09 20:14:55.000000000 +0000 @@ -121,7 +121,7 @@ Could not detect to any CEC adapter. Please check your configuration. Do you want to try again? - Pulse-Eight USB-CEC Adapter - libCECTray BETA3 + Pulse-Eight USB-CEC Adapter - libCECTray You have changed the device type. Persist the configuration, and restart the application to use the new setting. diff -Nru libcec-2.0.5/src/LibCecTray/controller/Actions.cs libcec-2.1.1/src/LibCecTray/controller/Actions.cs --- libcec-2.0.5/src/LibCecTray/controller/Actions.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/Actions.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/CECController.cs libcec-2.1.1/src/LibCecTray/controller/CECController.cs --- libcec-2.0.5/src/LibCecTray/controller/CECController.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/CECController.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -203,6 +203,11 @@ /// public void Initialise() { + // only load once + if (_initialised) + return; + _initialised = true; + CECActions.ConnectToDevice(Config); Applications.Initialise(this); } @@ -215,6 +220,7 @@ Lib.DisableCallbacks(); Lib.StandbyDevices(CecLogicalAddress.Broadcast); Lib.Close(); + _initialised = false; } /// @@ -438,7 +444,7 @@ { if (_config == null) { - _config = new LibCECConfiguration { DeviceName = "CEC Tray", ClientVersion = CecClientVersion.Version2_0_5 }; + _config = new LibCECConfiguration { DeviceName = "CEC Tray", ClientVersion = CecClientVersion.Version2_1_0 }; _config.DeviceTypes.Types[0] = CecDeviceType.RecordingDevice; _config.SetCallbacks(this); @@ -519,6 +525,7 @@ private readonly CECTray _gui; public Actions CECActions; private bool _deviceChangeWarningDisplayed; + private bool _initialised; #endregion } diff -Nru libcec-2.0.5/src/LibCecTray/controller/actions/ConnectToDevice.cs libcec-2.1.1/src/LibCecTray/controller/actions/ConnectToDevice.cs --- libcec-2.0.5/src/LibCecTray/controller/actions/ConnectToDevice.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/actions/ConnectToDevice.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/actions/GetCurrentPhysicalAddress.cs libcec-2.1.1/src/LibCecTray/controller/actions/GetCurrentPhysicalAddress.cs --- libcec-2.0.5/src/LibCecTray/controller/actions/GetCurrentPhysicalAddress.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/actions/GetCurrentPhysicalAddress.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/actions/RescanDevices.cs libcec-2.1.1/src/LibCecTray/controller/actions/RescanDevices.cs --- libcec-2.0.5/src/LibCecTray/controller/actions/RescanDevices.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/actions/RescanDevices.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/actions/SendActivateSource.cs libcec-2.1.1/src/LibCecTray/controller/actions/SendActivateSource.cs --- libcec-2.0.5/src/LibCecTray/controller/actions/SendActivateSource.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/actions/SendActivateSource.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/actions/SendImageViewOn.cs libcec-2.1.1/src/LibCecTray/controller/actions/SendImageViewOn.cs --- libcec-2.0.5/src/LibCecTray/controller/actions/SendImageViewOn.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/actions/SendImageViewOn.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/actions/SendStandby.cs libcec-2.1.1/src/LibCecTray/controller/actions/SendStandby.cs --- libcec-2.0.5/src/LibCecTray/controller/actions/SendStandby.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/actions/SendStandby.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/actions/ShowDeviceInfo.cs libcec-2.1.1/src/LibCecTray/controller/actions/ShowDeviceInfo.cs --- libcec-2.0.5/src/LibCecTray/controller/actions/ShowDeviceInfo.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/actions/ShowDeviceInfo.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,3 +1,35 @@ +/* + * This file is part of the libCEC(R) library. + * + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is an original work, containing original code. + * + * libCEC(R) is a trademark of Pulse-Eight Limited. + * + * This program is dual-licensed; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * + * Alternatively, you can license this library under a commercial license, + * please contact Pulse-Eight Licensing for more information. + * + * For more information contact: + * Pulse-Eight Licensing + * http://www.pulse-eight.com/ + * http://www.pulse-eight.net/ + */ + using CecSharp; using LibCECTray.Properties; using LibCECTray.ui; diff -Nru libcec-2.0.5/src/LibCecTray/controller/actions/UpdateConfiguration.cs libcec-2.1.1/src/LibCecTray/controller/actions/UpdateConfiguration.cs --- libcec-2.0.5/src/LibCecTray/controller/actions/UpdateConfiguration.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/actions/UpdateConfiguration.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/actions/UpdateConnectedDevice.cs libcec-2.1.1/src/LibCecTray/controller/actions/UpdateConnectedDevice.cs --- libcec-2.0.5/src/LibCecTray/controller/actions/UpdateConnectedDevice.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/actions/UpdateConnectedDevice.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/actions/UpdateDeviceInfo.cs libcec-2.1.1/src/LibCecTray/controller/actions/UpdateDeviceInfo.cs --- libcec-2.0.5/src/LibCecTray/controller/actions/UpdateDeviceInfo.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/actions/UpdateDeviceInfo.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/actions/UpdateEvent.cs libcec-2.1.1/src/LibCecTray/controller/actions/UpdateEvent.cs --- libcec-2.0.5/src/LibCecTray/controller/actions/UpdateEvent.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/actions/UpdateEvent.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/actions/UpdatePhysicalAddress.cs libcec-2.1.1/src/LibCecTray/controller/actions/UpdatePhysicalAddress.cs --- libcec-2.0.5/src/LibCecTray/controller/actions/UpdatePhysicalAddress.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/actions/UpdatePhysicalAddress.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/applications/ApplicationController.cs libcec-2.1.1/src/LibCecTray/controller/applications/ApplicationController.cs --- libcec-2.0.5/src/LibCecTray/controller/applications/ApplicationController.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/applications/ApplicationController.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -114,7 +114,20 @@ var item = args.RowIndex < ButtonConfig.Count ? ButtonConfig[args.RowIndex] : null; if (item == null) return; - (new CecButtonConfigUI(item)).ShowDialog(); + if (args.ColumnIndex >= 0) + { + (new CecButtonConfigUI(item)).ShowDialog(); + } + else + { + var mappedButton = ButtonConfig[item.Key]; + if (mappedButton == null || mappedButton.Value.Empty()) + return; + + var controlWindow = FindInstance(); + if (controlWindow != IntPtr.Zero && item.Key.Duration == 0) + mappedButton.Value.Transmit(controlWindow); + } }; foreach (var item in _buttonConfig) @@ -235,7 +248,7 @@ return false; var controlWindow = FindInstance(); - if (controlWindow != IntPtr.Zero && key.Duration == 0) + if (controlWindow != IntPtr.Zero && (key.Duration == 0 || key.Duration > 500)) return mappedButton.Value.Transmit(controlWindow); return false; diff -Nru libcec-2.0.5/src/LibCecTray/controller/applications/ApplicationControllerUI.cs libcec-2.1.1/src/LibCecTray/controller/applications/ApplicationControllerUI.cs --- libcec-2.0.5/src/LibCecTray/controller/applications/ApplicationControllerUI.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/applications/ApplicationControllerUI.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/applications/ApplicationInput.cs libcec-2.1.1/src/LibCecTray/controller/applications/ApplicationInput.cs --- libcec-2.0.5/src/LibCecTray/controller/applications/ApplicationInput.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/applications/ApplicationInput.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/applications/Applications.cs libcec-2.1.1/src/LibCecTray/controller/applications/Applications.cs --- libcec-2.0.5/src/LibCecTray/controller/applications/Applications.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/applications/Applications.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/applications/CecButtonConfig.cs libcec-2.1.1/src/LibCecTray/controller/applications/CecButtonConfig.cs --- libcec-2.0.5/src/LibCecTray/controller/applications/CecButtonConfig.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/applications/CecButtonConfig.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/applications/CecButtonConfigUI.cs libcec-2.1.1/src/LibCecTray/controller/applications/CecButtonConfigUI.cs --- libcec-2.0.5/src/LibCecTray/controller/applications/CecButtonConfigUI.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/applications/CecButtonConfigUI.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/applications/ConfigureApplication.cs libcec-2.1.1/src/LibCecTray/controller/applications/ConfigureApplication.cs --- libcec-2.0.5/src/LibCecTray/controller/applications/ConfigureApplication.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/applications/ConfigureApplication.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/applications/IControllerTabPage.cs libcec-2.1.1/src/LibCecTray/controller/applications/IControllerTabPage.cs --- libcec-2.0.5/src/LibCecTray/controller/applications/IControllerTabPage.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/applications/IControllerTabPage.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/applications/KeyInput.cs libcec-2.1.1/src/LibCecTray/controller/applications/KeyInput.cs --- libcec-2.0.5/src/LibCecTray/controller/applications/KeyInput.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/applications/KeyInput.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -176,8 +176,39 @@ { if (input != null) { - foreach (var item in input._input) - _input.Add(item); + bool foundModifier = false; + if (KeyCount > 0) + { + for (int i = _input.Count - 1; i >= 0; i--) + { + + if (_input[i].Data.Keyboard.Flags == 0 && ( + (ushort)WindowsAPI.VirtualKeyCode.VK_SHIFT == _input[i].Data.Keyboard.KeyCode || + (ushort)WindowsAPI.VirtualKeyCode.VK_LSHIFT == _input[i].Data.Keyboard.KeyCode || + (ushort)WindowsAPI.VirtualKeyCode.VK_RSHIFT == _input[i].Data.Keyboard.KeyCode || + + (ushort)WindowsAPI.VirtualKeyCode.VK_CONTROL == _input[i].Data.Keyboard.KeyCode || + (ushort)WindowsAPI.VirtualKeyCode.VK_LCONTROL == _input[i].Data.Keyboard.KeyCode || + (ushort)WindowsAPI.VirtualKeyCode.VK_RCONTROL == _input[i].Data.Keyboard.KeyCode || + + (ushort)WindowsAPI.VirtualKeyCode.VK_MENU == _input[i].Data.Keyboard.KeyCode || + (ushort)WindowsAPI.VirtualKeyCode.VK_LMENU == _input[i].Data.Keyboard.KeyCode || + (ushort)WindowsAPI.VirtualKeyCode.VK_RMENU == _input[i].Data.Keyboard.KeyCode + )) + { + foundModifier = true; + _input.Insert(i+1, input._input[0]); + _input.Insert(i+2, input._input[1]); + break; + } + } + } + + if (!foundModifier) + { + _input.Add(input._input[0]); + _input.Add(input._input[1]); + } } return this; } @@ -202,12 +233,38 @@ public ApplicationAction RemoveItem(int index) { - //both keyup and keydown - if (index * 2 + 1 < _input.Count) + var current = 0; + var downKeyIndex = 0; + var upKeyIndex = 0; + bool downFound = false; + + for (int i = 0; i < _input.Count; i++) { - _input.RemoveAt(index * 2); - _input.RemoveAt(index * 2); + if (_input[i].Data.Keyboard.Flags == 0 && !downFound) + { + if (index == current) + { + downKeyIndex = i; + downFound = true; + } + current++; + } + else if(_input[i].Data.Keyboard.Flags != 0 && downFound) + { + if (_input[i].Data.Keyboard.KeyCode == _input[downKeyIndex].Data.Keyboard.KeyCode) + { + upKeyIndex = i; + break; + } + } } + + WindowsAPI.Input downKey = _input[downKeyIndex]; + WindowsAPI.Input upKey = _input[upKeyIndex]; + + _input.Remove(downKey); + _input.Remove(upKey); + return this; } @@ -221,7 +278,7 @@ { var tmp = string.Format(KeyCount > 1 ? "[{0}] " : "{0} ", WindowsAPI.GetVirtualKeyName((WindowsAPI.VirtualKeyCode) input.Data.Keyboard.KeyCode)); - current += tmp.Length + 1; + current += tmp.Length; if (index <= current) return RemoveItem(item); item++; @@ -233,4 +290,4 @@ private readonly List _input = new List(); } -} \ No newline at end of file +} diff -Nru libcec-2.0.5/src/LibCecTray/controller/applications/WindowsAPI.cs libcec-2.1.1/src/LibCecTray/controller/applications/WindowsAPI.cs --- libcec-2.0.5/src/LibCecTray/controller/applications/WindowsAPI.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/applications/WindowsAPI.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -451,4 +451,4 @@ return null; } } -} \ No newline at end of file +} diff -Nru libcec-2.0.5/src/LibCecTray/controller/applications/internal/WMCController.cs libcec-2.1.1/src/LibCecTray/controller/applications/internal/WMCController.cs --- libcec-2.0.5/src/LibCecTray/controller/applications/internal/WMCController.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/applications/internal/WMCController.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/applications/internal/XBMCController.cs libcec-2.1.1/src/LibCecTray/controller/applications/internal/XBMCController.cs --- libcec-2.0.5/src/LibCecTray/controller/applications/internal/XBMCController.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/applications/internal/XBMCController.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/controller/applications/internal/XBMCControllerUI.cs libcec-2.1.1/src/LibCecTray/controller/applications/internal/XBMCControllerUI.cs --- libcec-2.0.5/src/LibCecTray/controller/applications/internal/XBMCControllerUI.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/controller/applications/internal/XBMCControllerUI.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/settings/CECSetting.cs libcec-2.1.1/src/LibCecTray/settings/CECSetting.cs --- libcec-2.0.5/src/LibCecTray/settings/CECSetting.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/settings/CECSetting.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/settings/CECSettingBool.cs libcec-2.1.1/src/LibCecTray/settings/CECSettingBool.cs --- libcec-2.0.5/src/LibCecTray/settings/CECSettingBool.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/settings/CECSettingBool.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/settings/CECSettingByte.cs libcec-2.1.1/src/LibCecTray/settings/CECSettingByte.cs --- libcec-2.0.5/src/LibCecTray/settings/CECSettingByte.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/settings/CECSettingByte.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/settings/CECSettingDeviceType.cs libcec-2.1.1/src/LibCecTray/settings/CECSettingDeviceType.cs --- libcec-2.0.5/src/LibCecTray/settings/CECSettingDeviceType.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/settings/CECSettingDeviceType.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/settings/CECSettingLogicalAddress.cs libcec-2.1.1/src/LibCecTray/settings/CECSettingLogicalAddress.cs --- libcec-2.0.5/src/LibCecTray/settings/CECSettingLogicalAddress.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/settings/CECSettingLogicalAddress.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,3 +1,35 @@ +/* + * This file is part of the libCEC(R) library. + * + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is an original work, containing original code. + * + * libCEC(R) is a trademark of Pulse-Eight Limited. + * + * This program is dual-licensed; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * + * Alternatively, you can license this library under a commercial license, + * please contact Pulse-Eight Licensing for more information. + * + * For more information contact: + * Pulse-Eight Licensing + * http://www.pulse-eight.com/ + * http://www.pulse-eight.net/ + */ + using System.Windows.Forms; using CecSharp; using LibCECTray.Properties; diff -Nru libcec-2.0.5/src/LibCecTray/settings/CECSettingLogicalAddresses.cs libcec-2.1.1/src/LibCecTray/settings/CECSettingLogicalAddresses.cs --- libcec-2.0.5/src/LibCecTray/settings/CECSettingLogicalAddresses.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/settings/CECSettingLogicalAddresses.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/settings/CECSettingNumeric.cs libcec-2.1.1/src/LibCecTray/settings/CECSettingNumeric.cs --- libcec-2.0.5/src/LibCecTray/settings/CECSettingNumeric.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/settings/CECSettingNumeric.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -158,10 +158,13 @@ ResetItems(BaseItems.Count == 0); - control.SelectedValueChanged += delegate - { - Value = BaseItems[control.SelectedIndex]; - }; + if (BaseItems.Count > 0 && control.SelectedIndex < BaseItems.Count) + { + control.SelectedValueChanged += delegate + { + Value = BaseItems[control.SelectedIndex]; + }; + } } public override Control ValueControl diff -Nru libcec-2.0.5/src/LibCecTray/settings/CECSettingString.cs libcec-2.1.1/src/LibCecTray/settings/CECSettingString.cs --- libcec-2.0.5/src/LibCecTray/settings/CECSettingString.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/settings/CECSettingString.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/settings/CECSettingUShort.cs libcec-2.1.1/src/LibCecTray/settings/CECSettingUShort.cs --- libcec-2.0.5/src/LibCecTray/settings/CECSettingUShort.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/settings/CECSettingUShort.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,3 +1,35 @@ +/* + * This file is part of the libCEC(R) library. + * + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is an original work, containing original code. + * + * libCEC(R) is a trademark of Pulse-Eight Limited. + * + * This program is dual-licensed; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * + * Alternatively, you can license this library under a commercial license, + * please contact Pulse-Eight Licensing for more information. + * + * For more information contact: + * Pulse-Eight Licensing + * http://www.pulse-eight.com/ + * http://www.pulse-eight.net/ + */ + using System.Globalization; using System.Windows.Forms; diff -Nru libcec-2.0.5/src/LibCecTray/settings/CECSettingVendorId.cs libcec-2.1.1/src/LibCecTray/settings/CECSettingVendorId.cs --- libcec-2.0.5/src/LibCecTray/settings/CECSettingVendorId.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/settings/CECSettingVendorId.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/settings/CECSettings.cs libcec-2.1.1/src/LibCecTray/settings/CECSettings.cs --- libcec-2.0.5/src/LibCecTray/settings/CECSettings.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/settings/CECSettings.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/ui/About.cs libcec-2.1.1/src/LibCecTray/ui/About.cs --- libcec-2.0.5/src/LibCecTray/ui/About.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/ui/About.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/ui/About.resx libcec-2.1.1/src/LibCecTray/ui/About.resx --- libcec-2.0.5/src/LibCecTray/ui/About.resx 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/ui/About.resx 2013-03-09 20:14:55.000000000 +0000 @@ -118,7 +118,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. libCEC(R) is an original work, containing original code. libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/ui/AsyncForm.cs libcec-2.1.1/src/LibCecTray/ui/AsyncForm.cs --- libcec-2.0.5/src/LibCecTray/ui/AsyncForm.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/ui/AsyncForm.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/LibCecTray/ui/CECTray.cs libcec-2.1.1/src/LibCecTray/ui/CECTray.cs --- libcec-2.0.5/src/LibCecTray/ui/CECTray.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/ui/CECTray.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -63,7 +63,6 @@ { Text = Resources.app_name; InitializeComponent(); - _controller = new CECController(this); VisibleChanged += delegate { if (!Visible) @@ -81,7 +80,7 @@ private void CECTrayLoad(object sender, EventArgs e) { - _controller.Initialise(); + Controller.Initialise(); } protected override void Dispose(bool disposing) @@ -89,7 +88,7 @@ Hide(); if (disposing) { - _controller.Close(); + Controller.Close(); } if (disposing && (components != null)) { @@ -120,12 +119,12 @@ private void BSaveClick(object sender, EventArgs e) { - _controller.PersistSettings(); + Controller.PersistSettings(); } private void BReloadConfigClick(object sender, EventArgs e) { - _controller.ResetDefaultSettings(); + Controller.ResetDefaultSettings(); } #endregion @@ -170,22 +169,22 @@ private void BSendImageViewOnClick(object sender, EventArgs e) { - _controller.CECActions.SendImageViewOn(GetTargetDevice()); + Controller.CECActions.SendImageViewOn(GetTargetDevice()); } private void BStandbyClick(object sender, EventArgs e) { - _controller.CECActions.SendStandby(GetTargetDevice()); + Controller.CECActions.SendStandby(GetTargetDevice()); } private void BScanClick(object sender, EventArgs e) { - _controller.CECActions.ShowDeviceInfo(GetTargetDevice()); + Controller.CECActions.ShowDeviceInfo(GetTargetDevice()); } private void BActivateSourceClick(object sender, EventArgs e) { - _controller.CECActions.ActivateSource(GetTargetDevice()); + Controller.CECActions.ActivateSource(GetTargetDevice()); } private void CbCommandDestinationSelectedIndexChanged(object sender, EventArgs e) @@ -200,22 +199,22 @@ private void BVolUpClick(object sender, EventArgs e) { - _controller.Lib.VolumeUp(true); + Controller.Lib.VolumeUp(true); } private void BVolDownClick(object sender, EventArgs e) { - _controller.Lib.VolumeDown(true); + Controller.Lib.VolumeDown(true); } private void BMuteClick(object sender, EventArgs e) { - _controller.Lib.MuteAudio(true); + Controller.Lib.MuteAudio(true); } private void BRescanDevicesClick(object sender, EventArgs e) { - _controller.CECActions.RescanDevices(); + Controller.CECActions.RescanDevices(); } #endregion @@ -333,12 +332,12 @@ private void AboutToolStripMenuItemClick(object sender, EventArgs e) { - (new About(_controller.LibServerVersion, _controller.LibClientVersion, _controller.LibInfo)).ShowDialog(); + (new About(Controller.LibServerVersion, Controller.LibClientVersion, Controller.LibInfo)).ShowDialog(); } private void AdvancedModeToolStripMenuItemClick(object sender, EventArgs e) { - _controller.Settings.AdvancedMode.Value = !advancedModeToolStripMenuItem.Checked; + Controller.Settings.AdvancedMode.Value = !advancedModeToolStripMenuItem.Checked; ShowHideAdvanced(!advancedModeToolStripMenuItem.Checked); } @@ -372,12 +371,12 @@ { if (Visible && WindowState != FormWindowState.Minimized) { - _controller.Settings.StartHidden.Value = true; + Controller.Settings.StartHidden.Value = true; Hide(); } else { - _controller.Settings.StartHidden.Value = false; + Controller.Settings.StartHidden.Value = false; Show(); } } @@ -426,7 +425,7 @@ private void TsAdvancedClick(object sender, EventArgs e) { - _controller.Settings.AdvancedMode.Value = !tsAdvanced.Checked; + Controller.Settings.AdvancedMode.Value = !tsAdvanced.Checked; ShowHideAdvanced(!tsAdvanced.Checked); } @@ -482,10 +481,10 @@ #region Class members private ConfigTab _selectedTab = ConfigTab.Configuration; private string _log = string.Empty; - private readonly CECController _controller; + private CECController _controller; public CECController Controller { - get { return _controller; } + get { return _controller ?? (_controller = new CECController(this)); } } public Control.ControlCollection TabControls { @@ -499,8 +498,8 @@ private void AddNewApplicationToolStripMenuItemClick(object sender, EventArgs e) { - ConfigureApplication appConfig = new ConfigureApplication(_controller.Settings, _controller); - _controller.DisplayDialog(appConfig, false); + ConfigureApplication appConfig = new ConfigureApplication(Controller.Settings, Controller); + Controller.DisplayDialog(appConfig, false); } } } diff -Nru libcec-2.0.5/src/LibCecTray/ui/DeviceInformation.cs libcec-2.1.1/src/LibCecTray/ui/DeviceInformation.cs --- libcec-2.0.5/src/LibCecTray/ui/DeviceInformation.cs 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/LibCecTray/ui/DeviceInformation.cs 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/env.h libcec-2.1.1/src/env.h --- libcec-2.0.5/src/env.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/env.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/CECClient.cpp libcec-2.1.1/src/lib/CECClient.cpp --- libcec-2.0.5/src/lib/CECClient.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/CECClient.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -822,6 +822,7 @@ configuration.wakeDevices = m_configuration.wakeDevices; configuration.powerOffDevices = m_configuration.powerOffDevices; configuration.bPowerOffScreensaver = m_configuration.bPowerOffScreensaver; + configuration.bPowerOnScreensaver = m_configuration.bPowerOnScreensaver; configuration.bPowerOffOnStandby = m_configuration.bPowerOffOnStandby; configuration.bSendInactiveSource = m_configuration.bSendInactiveSource; configuration.logicalAddresses = m_configuration.logicalAddresses; @@ -888,6 +889,11 @@ m_configuration.comboKey = defaultSettings.comboKey; m_configuration.iComboKeyTimeoutMs = defaultSettings.iComboKeyTimeoutMs; } + + if (m_configuration.clientVersion >= CEC_CLIENT_VERSION_2_1_0) + m_configuration.bPowerOnScreensaver = configuration.bPowerOnScreensaver; + else + m_configuration.bPowerOnScreensaver = defaultSettings.bPowerOnScreensaver; } bool bNeedReinit(false); diff -Nru libcec-2.0.5/src/lib/CECClient.h libcec-2.1.1/src/lib/CECClient.h --- libcec-2.0.5/src/lib/CECClient.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/CECClient.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/CECInputBuffer.h libcec-2.1.1/src/lib/CECInputBuffer.h --- libcec-2.0.5/src/lib/CECInputBuffer.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/CECInputBuffer.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/CECProcessor.cpp libcec-2.1.1/src/lib/CECProcessor.cpp --- libcec-2.0.5/src/lib/CECProcessor.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/CECProcessor.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -53,6 +53,7 @@ #define CEC_PROCESSOR_SIGNAL_WAIT_TIME 1000 #define ACTIVE_SOURCE_CHECK_INTERVAL 500 +#define TV_PRESENT_CHECK_INTERVAL 30000 #define ToString(x) CCECTypeUtils::ToString(x) @@ -216,6 +217,7 @@ cec_command command; command.Clear(); CTimeout activeSourceCheck(ACTIVE_SOURCE_CHECK_INTERVAL); + CTimeout tvPresentCheck(TV_PRESENT_CHECK_INTERVAL); // as long as we're not being stopped and the connection is open while (!IsStopped() && m_communication->IsOpen()) @@ -239,6 +241,19 @@ TransmitPendingActiveSourceCommands(); activeSourceCheck.Init(ACTIVE_SOURCE_CHECK_INTERVAL); } + + // check whether the TV is present and responding + if (tvPresentCheck.TimeLeft() == 0) + { + if (!m_busDevices->At(CECDEVICE_TV)->IsPresent()) + { + libcec_parameter param; + param.paramType = CEC_PARAMETER_TYPE_STRING; + param.paramData = (void*)"TV does not respond to CEC polls"; + GetPrimaryClient()->Alert(CEC_ALERT_TV_POLL_FAILED, param); + } + tvPresentCheck.Init(TV_PRESENT_CHECK_INTERVAL); + } } } @@ -623,6 +638,8 @@ config->iFirmwareBuildDate = m_communication->GetFirmwareBuildDate(); config->adapterType = m_communication->GetAdapterType(); + Close(); + return true; } @@ -986,6 +1003,14 @@ } } +void CCECProcessor::HandlePhysicalAddressChanged(uint16_t iNewAddress) +{ + m_libcec->AddLog(CEC_LOG_NOTICE, "physical address changed to %04x", iNewAddress); + CCECClient* client = GetPrimaryClient(); + if (client) + client->SetPhysicalAddress(iNewAddress); +} + uint16_t CCECProcessor::GetAdapterVendorId(void) const { return m_communication ? m_communication->GetAdapterVendorId() : 0; diff -Nru libcec-2.0.5/src/lib/CECProcessor.h libcec-2.1.1/src/lib/CECProcessor.h --- libcec-2.0.5/src/lib/CECProcessor.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/CECProcessor.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -83,6 +83,7 @@ bool OnCommandReceived(const cec_command &command); void HandleLogicalAddressLost(cec_logical_address oldAddress); + void HandlePhysicalAddressChanged(uint16_t iNewAddress); CCECBusDevice * GetDevice(cec_logical_address address) const; CCECAudioSystem * GetAudioSystem(void) const; diff -Nru libcec-2.0.5/src/lib/CECTypeUtils.h libcec-2.1.1/src/lib/CECTypeUtils.h --- libcec-2.0.5/src/lib/CECTypeUtils.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/CECTypeUtils.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -512,6 +512,8 @@ return "Broadcom"; case CEC_VENDOR_LOEWE: return "Loewe"; + case CEC_VENDOR_DENON: + return "Denon"; default: return "Unknown"; } @@ -567,6 +569,10 @@ return "2.0.4"; case CEC_CLIENT_VERSION_2_0_5: return "2.0.5"; + case CEC_CLIENT_VERSION_2_1_0: + return "2.1.0"; + case CEC_CLIENT_VERSION_2_1_1: + return "2.1.1"; default: return "Unknown"; } @@ -622,6 +628,10 @@ return "2.0.4"; case CEC_SERVER_VERSION_2_0_5: return "2.0.5"; + case CEC_SERVER_VERSION_2_1_0: + return "2.1.0"; + case CEC_SERVER_VERSION_2_1_1: + return "2.1.1"; default: return "Unknown"; } diff -Nru libcec-2.0.5/src/lib/LibCEC.cpp libcec-2.1.1/src/lib/LibCEC.cpp --- libcec-2.0.5/src/lib/LibCEC.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/LibCEC.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -559,3 +559,21 @@ { return m_client ? m_client->AudioStatus() : (uint8_t)CEC_AUDIO_VOLUME_STATUS_UNKNOWN; } + +int8_t CLibCEC::DetectAdapters(cec_adapter_descriptor *deviceList, uint8_t iBufSize, const char *strDevicePath /* = NULL */, bool bQuickScan /* = false */) +{ + int8_t iAdaptersFound = CAdapterFactory(this).DetectAdapters(deviceList, iBufSize, strDevicePath); + if (!bQuickScan) + { + for (int8_t iPtr = 0; iPtr < iAdaptersFound; iPtr++) + { + libcec_configuration config; + GetDeviceInformation(deviceList[iPtr].strComName, &config); + deviceList[iPtr].iFirmwareVersion = config.iFirmwareVersion; + deviceList[iPtr].iPhysicalAddress = config.iPhysicalAddress; + deviceList[iPtr].iFirmwareBuildDate = config.iFirmwareBuildDate; + deviceList[iPtr].adapterType = config.adapterType; + } + } + return iAdaptersFound; +} diff -Nru libcec-2.0.5/src/lib/LibCEC.h libcec-2.1.1/src/lib/LibCEC.h --- libcec-2.0.5/src/lib/LibCEC.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/LibCEC.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -52,6 +52,7 @@ void Close(void); bool EnableCallbacks(void *cbParam, ICECCallbacks *callbacks); int8_t FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath = NULL); + int8_t DetectAdapters(cec_adapter_descriptor *deviceList, uint8_t iBufSize, const char *strDevicePath = NULL, bool bQuickScan = false); bool PingAdapter(void); bool StartBootloader(void); diff -Nru libcec-2.0.5/src/lib/LibCECC.cpp libcec-2.1.1/src/lib/LibCECC.cpp --- libcec-2.0.5/src/lib/LibCECC.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/LibCECC.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -403,9 +403,16 @@ return cec_parser ? cec_parser->AudioUnmute() : (uint8_t)CEC_AUDIO_VOLUME_STATUS_UNKNOWN; } -uint8_t cec_audio_status(void) +uint8_t cec_audio_get_status(void) { return cec_parser ? cec_parser->AudioStatus() : (uint8_t)CEC_AUDIO_VOLUME_STATUS_UNKNOWN; } +int8_t cec_detect_adapters(cec_adapter_descriptor *deviceList, uint8_t iBufSize, const char *strDevicePath, int bQuickScan) +{ + if (cec_parser) + return cec_parser->DetectAdapters(deviceList, iBufSize, strDevicePath, bQuickScan == 1); + return -1; +} + //@} diff -Nru libcec-2.0.5/src/lib/LibCECDll.cpp libcec-2.1.1/src/lib/LibCECDll.cpp --- libcec-2.0.5/src/lib/LibCECDll.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/LibCECDll.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/AdapterCommunication.h libcec-2.1.1/src/lib/adapter/AdapterCommunication.h --- libcec-2.0.5/src/lib/adapter/AdapterCommunication.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/AdapterCommunication.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -81,6 +81,12 @@ */ virtual void HandleLogicalAddressLost(cec_logical_address oldAddress) = 0; + /*! + * @brief Callback method for IAdapterCommunication, called when the physical address changed. + * @param iNewAddress The new physical address. + */ + virtual void HandlePhysicalAddressChanged(uint16_t iNewAddress) = 0; + virtual CLibCEC *GetLib(void) const = 0; }; diff -Nru libcec-2.0.5/src/lib/adapter/AdapterFactory.cpp libcec-2.1.1/src/lib/adapter/AdapterFactory.cpp --- libcec-2.0.5/src/lib/adapter/AdapterFactory.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/AdapterFactory.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -57,6 +57,18 @@ int8_t CAdapterFactory::FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath /* = NULL */) { + cec_adapter_descriptor devices[50]; + int8_t iReturn = DetectAdapters(devices, iBufSize, strDevicePath); + for (int8_t iPtr = 0; iPtr < iReturn; iPtr++) + { + strncpy(deviceList[iPtr].comm, devices[iPtr].strComName, sizeof(deviceList[iPtr].comm)); + strncpy(deviceList[iPtr].path, devices[iPtr].strComPath, sizeof(deviceList[iPtr].path)); + } + return iReturn; +} + +int8_t CAdapterFactory::DetectAdapters(cec_adapter_descriptor *deviceList, uint8_t iBufSize, const char *strDevicePath /* = NULL */) +{ int8_t iAdaptersFound(0); #if defined(HAVE_P8_USB) @@ -75,8 +87,12 @@ if (iAdaptersFound < iBufSize && CRPiCECAdapterDetection::FindAdapter() && (!strDevicePath || !strcmp(strDevicePath, CEC_RPI_VIRTUAL_COM))) { - snprintf(deviceList[iAdaptersFound].path, 1024, CEC_RPI_VIRTUAL_PATH); - snprintf(deviceList[iAdaptersFound++].comm, 1024, CEC_RPI_VIRTUAL_COM); + snprintf(deviceList[iAdaptersFound].strComPath, sizeof(deviceList[iAdaptersFound].strComPath), CEC_RPI_VIRTUAL_PATH); + snprintf(deviceList[iAdaptersFound].strComName, sizeof(deviceList[iAdaptersFound].strComName), CEC_RPI_VIRTUAL_COM); + deviceList[iAdaptersFound].iVendorId = RPI_ADAPTER_VID; + deviceList[iAdaptersFound].iProductId = RPI_ADAPTER_PID; + deviceList[iAdaptersFound].adapterType = ADAPTERTYPE_RPI; + iAdaptersFound++; } #endif @@ -84,8 +100,12 @@ if (iAdaptersFound < iBufSize && CTDA995xCECAdapterDetection::FindAdapter() && (!strDevicePath || !strcmp(strDevicePath, CEC_TDA995x_VIRTUAL_COM))) { - snprintf(deviceList[iAdaptersFound].path, 1024, CEC_TDA995x_PATH); - snprintf(deviceList[iAdaptersFound++].comm, 1024, CEC_TDA995x_VIRTUAL_COM); + snprintf(deviceList[iAdaptersFound].strComPath, sizeof(deviceList[iAdaptersFound].strComPath), CEC_TDA995x_PATH); + snprintf(deviceList[iAdaptersFound].strComName, sizeof(deviceList[iAdaptersFound].strComName), CEC_TDA995x_VIRTUAL_COM); + deviceList[iAdaptersFound].iVendorId = TDA995X_ADAPTER_VID; + deviceList[iAdaptersFound].iProductId = TDA995X_ADAPTER_PID; + deviceList[iAdaptersFound].adapterType = ADAPTERTYPE_TDA995x; + iAdaptersFound++; } #endif diff -Nru libcec-2.0.5/src/lib/adapter/AdapterFactory.h libcec-2.1.1/src/lib/adapter/AdapterFactory.h --- libcec-2.0.5/src/lib/adapter/AdapterFactory.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/AdapterFactory.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -47,6 +47,7 @@ virtual ~CAdapterFactory(void) {}; int8_t FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath = NULL); + int8_t DetectAdapters(cec_adapter_descriptor *deviceList, uint8_t iBufSize, const char *strDevicePath = NULL); IAdapterCommunication *GetInstance(const char *strPort, uint16_t iBaudRate = CEC_SERIAL_DEFAULT_BAUDRATE); static void InitVideoStandalone(void); diff -Nru libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterCommands.cpp libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterCommands.cpp --- libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterCommands.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterCommands.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterCommands.h libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterCommands.h --- libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterCommands.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterCommands.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterCommunication.cpp libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterCommunication.cpp --- libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterCommunication.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterCommunication.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterCommunication.h libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterCommunication.h --- libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterCommunication.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterCommunication.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.cpp libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.cpp --- libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -202,7 +202,7 @@ } #endif -uint8_t CUSBCECAdapterDetection::FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath /* = NULL */) +uint8_t CUSBCECAdapterDetection::FindAdapters(cec_adapter_descriptor *deviceList, uint8_t iBufSize, const char *strDevicePath /* = NULL */) { uint8_t iFound(0); @@ -262,10 +262,13 @@ if (!strDevicePath || !strcmp(bsdPath, strDevicePath)) { // on darwin, the device path is the same as the comm path. - if (iFound == 0 || strcmp(deviceList[iFound-1].comm, bsdPath)) + if (iFound == 0 || strcmp(deviceList[iFound-1].strComName, bsdPath)) { - snprintf(deviceList[iFound].path, sizeof(deviceList[iFound].path), "%s", bsdPath); - snprintf(deviceList[iFound].comm, sizeof(deviceList[iFound].path), "%s", bsdPath); + snprintf(deviceList[iFound].strComPath, sizeof(deviceList[iFound].strComPath), "%s", bsdPath); + snprintf(deviceList[iFound].strComName, sizeof(deviceList[iFound].strComName), "%s", bsdPath); + deviceList[iFound].iVendorId = iVendor; + deviceList[iFound].iProductId = iProduct; + deviceList[iFound].adapterType = ADAPTERTYPE_P8_EXTERNAL; // will be overridden when not doing a "quick scan" by the actual type iFound++; } } @@ -312,10 +315,13 @@ if (!strDevicePath || !strcmp(strPath.c_str(), strDevicePath)) { CStdString strComm(strPath); - if (FindComPort(strComm) && (iFound == 0 || strcmp(deviceList[iFound-1].comm, strComm.c_str()))) + if (FindComPort(strComm) && (iFound == 0 || strcmp(deviceList[iFound-1].strComName, strComm.c_str()))) { - snprintf(deviceList[iFound].path, sizeof(deviceList[iFound].path), "%s", strPath.c_str()); - snprintf(deviceList[iFound].comm, sizeof(deviceList[iFound].path), "%s", strComm.c_str()); + snprintf(deviceList[iFound].strComPath, sizeof(deviceList[iFound].strComPath), "%s", strPath.c_str()); + snprintf(deviceList[iFound].strComName, sizeof(deviceList[iFound].strComName), "%s", strComm.c_str()); + deviceList[iFound].iVendorId = iVendor; + deviceList[iFound].iProductId = iProduct; + deviceList[iFound].adapterType = ADAPTERTYPE_P8_EXTERNAL; // will be overridden when not doing a "quick scan" by the actual type iFound++; } } @@ -408,15 +414,21 @@ // the 1002 pid indicates a composite device, that needs special treatment char strId[512]; CM_Get_Device_ID(devInfoData.DevInst, strId, 512, 0); - if (FindComPortForComposite(strId, deviceList[iFound].comm, sizeof(deviceList[iFound].comm))) + if (FindComPortForComposite(strId, deviceList[iFound].strComName, sizeof(deviceList[iFound].strComName))) { - snprintf(deviceList[iFound].path, sizeof(deviceList[iFound].path), "%s", devicedetailData->DevicePath); + snprintf(deviceList[iFound].strComPath, sizeof(deviceList[iFound].strComPath), "%s", devicedetailData->DevicePath); + deviceList[iFound].iVendorId = (uint16_t)iVendor; + deviceList[iFound].iProductId = (uint16_t)iProduct; + deviceList[iFound].adapterType = ADAPTERTYPE_P8_EXTERNAL; // will be overridden when not doing a "quick scan" by the actual type iFound++; } } - else if (GetComPortFromHandle(hDevHandle, &devInfoData, deviceList[iFound].comm, sizeof(deviceList[iFound].comm))) + else if (GetComPortFromHandle(hDevHandle, &devInfoData, deviceList[iFound].strComName, sizeof(deviceList[iFound].strComName))) { - snprintf(deviceList[iFound].path, sizeof(deviceList[iFound].path), "%s", devicedetailData->DevicePath); + snprintf(deviceList[iFound].strComPath, sizeof(deviceList[iFound].strComPath), "%s", devicedetailData->DevicePath); + deviceList[iFound].iVendorId = (uint16_t)iVendor; + deviceList[iFound].iProductId = (uint16_t)iProduct; + deviceList[iFound].adapterType = ADAPTERTYPE_P8_EXTERNAL; // will be overridden when not doing a "quick scan" by the actual type iFound++; } } @@ -431,8 +443,11 @@ continue; if (!access(devicePath, 0)) { - snprintf(deviceList[iFound].path, sizeof(deviceList[iFound].path), "%s", devicePath); - snprintf(deviceList[iFound].comm, sizeof(deviceList[iFound].path), "%s", devicePath); + snprintf(deviceList[iFound].strComPath, sizeof(deviceList[iFound].strComPath), "%s", devicePath); + snprintf(deviceList[iFound].strComName, sizeof(deviceList[iFound].strComName), "%s", devicePath); + deviceList[iFound].iVendorId = CEC_VID; + deviceList[iFound].iProductId = CEC_VID; + deviceList[iFound].adapterType = ADAPTERTYPE_P8_EXTERNAL; // will be overridden when not doing a "quick scan" by the actual type iFound++; } } diff -Nru libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.h libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.h --- libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -40,7 +40,7 @@ class CUSBCECAdapterDetection { public: - static uint8_t FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath = NULL); + static uint8_t FindAdapters(cec_adapter_descriptor *deviceList, uint8_t iBufSize, const char *strDevicePath = NULL); static bool CanAutodetect(void); }; }; diff -Nru libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterMessage.cpp libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterMessage.cpp --- libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterMessage.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterMessage.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterMessage.h libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterMessage.h --- libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterMessage.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterMessage.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterMessageQueue.cpp libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterMessageQueue.cpp --- libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterMessageQueue.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterMessageQueue.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterMessageQueue.h libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterMessageQueue.h --- libcec-2.0.5/src/lib/adapter/Pulse-Eight/USBCECAdapterMessageQueue.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/Pulse-Eight/USBCECAdapterMessageQueue.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/RPi/RPiCECAdapterCommunication.cpp libcec-2.1.1/src/lib/adapter/RPi/RPiCECAdapterCommunication.cpp --- libcec-2.0.5/src/lib/adapter/RPi/RPiCECAdapterCommunication.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/RPi/RPiCECAdapterCommunication.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -58,11 +58,19 @@ static_cast(callback_data)->OnDataReceived(p0, p1, p2, p3, p4); } +// callback for the TV service +void rpi_tv_callback(void *callback_data, uint32_t reason, uint32_t p0, uint32_t p1) +{ + if (callback_data) + static_cast(callback_data)->OnTVServiceCallback(reason, p0, p1); +} + CRPiCECAdapterCommunication::CRPiCECAdapterCommunication(IAdapterCommunicationCallback *callback) : IAdapterCommunication(callback), m_logicalAddress(CECDEVICE_UNKNOWN), m_bLogicalAddressChanged(false), - m_previousLogicalAddress(CECDEVICE_FREEUSE) + m_previousLogicalAddress(CECDEVICE_FREEUSE), + m_bLogicalAddressRegistered(false) { m_queue = new CRPiCECAdapterMessageQueue(this); } @@ -106,6 +114,28 @@ return m_bInitialised; } +void CRPiCECAdapterCommunication::OnTVServiceCallback(uint32_t reason, uint32_t UNUSED(p0), uint32_t UNUSED(p1)) +{ + switch(reason) + { + case VC_HDMI_ATTACHED: + { + uint16_t iNewAddress = GetPhysicalAddress(); + m_callback->HandlePhysicalAddressChanged(iNewAddress); + break; + } + case VC_HDMI_UNPLUGGED: + case VC_HDMI_DVI: + case VC_HDMI_HDMI: + case VC_HDMI_HDCP_UNAUTH: + case VC_HDMI_HDCP_AUTH: + case VC_HDMI_HDCP_KEY_DOWNLOAD: + case VC_HDMI_HDCP_SRM_DOWNLOAD: + default: + break; + } +} + void CRPiCECAdapterCommunication::OnDataReceived(uint32_t header, uint32_t p0, uint32_t p1, uint32_t p2, uint32_t p3) { VC_CEC_NOTIFY_T reason = (VC_CEC_NOTIFY_T)CEC_CB_REASON(header); @@ -199,7 +229,12 @@ m_logicalAddress = CECDEVICE_UNKNOWN; // notify libCEC that we lost our LA when the connection was initialised - if (m_bInitialised) + bool bNotify(false); + { + CLockObject lock(m_mutex); + bNotify = m_bInitialised && m_bLogicalAddressRegistered; + } + if (bNotify) m_callback->HandleLogicalAddressLost(previousAddress); } break; @@ -266,8 +301,9 @@ // enable passive mode vc_cec_set_passive(true); - // register the callback - vc_cec_register_callback(((CECSERVICE_CALLBACK_T)rpi_cec_callback), (void*)this); + // register the callbacks + vc_cec_register_callback(rpi_cec_callback, (void*)this); + vc_tv_register_callback(rpi_tv_callback, (void*)this); // release previous LA vc_cec_release_logical_address(); @@ -317,6 +353,8 @@ else return; } + vc_tv_unregister_callback(rpi_tv_callback); + UnregisterLogicalAddress(); // disable passive mode @@ -379,7 +417,11 @@ return true; LIB_CEC->AddLog(CEC_LOG_DEBUG, "%s - releasing previous logical address", __FUNCTION__); - m_bLogicalAddressChanged = false; + { + CLockObject lock(m_mutex); + m_bLogicalAddressRegistered = false; + m_bLogicalAddressChanged = false; + } vc_cec_release_logical_address(); @@ -411,7 +453,12 @@ return false; } - return m_logicalAddressCondition.Wait(m_mutex, m_bLogicalAddressChanged); + if (m_logicalAddressCondition.Wait(m_mutex, m_bLogicalAddressChanged)) + { + m_bLogicalAddressRegistered = true; + return true; + } + return false; } cec_logical_addresses CRPiCECAdapterCommunication::GetLogicalAddresses(void) diff -Nru libcec-2.0.5/src/lib/adapter/RPi/RPiCECAdapterCommunication.h libcec-2.1.1/src/lib/adapter/RPi/RPiCECAdapterCommunication.h --- libcec-2.0.5/src/lib/adapter/RPi/RPiCECAdapterCommunication.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/RPi/RPiCECAdapterCommunication.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -90,6 +90,7 @@ bool IsInitialised(void); void OnDataReceived(uint32_t p0, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4); + void OnTVServiceCallback(uint32_t reason, uint32_t p0, uint32_t p1); static void InitHost(void); @@ -110,6 +111,7 @@ VCHI_INSTANCE_T m_vchi_instance; VCHI_CONNECTION_T * m_vchi_connection; cec_logical_address m_previousLogicalAddress; + bool m_bLogicalAddressRegistered; }; }; diff -Nru libcec-2.0.5/src/lib/adapter/RPi/RPiCECAdapterDetection.cpp libcec-2.1.1/src/lib/adapter/RPi/RPiCECAdapterDetection.cpp --- libcec-2.0.5/src/lib/adapter/RPi/RPiCECAdapterDetection.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/RPi/RPiCECAdapterDetection.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/RPi/RPiCECAdapterDetection.h libcec-2.1.1/src/lib/adapter/RPi/RPiCECAdapterDetection.h --- libcec-2.0.5/src/lib/adapter/RPi/RPiCECAdapterDetection.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/RPi/RPiCECAdapterDetection.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/RPi/RPiCECAdapterMessageQueue.cpp libcec-2.1.1/src/lib/adapter/RPi/RPiCECAdapterMessageQueue.cpp --- libcec-2.0.5/src/lib/adapter/RPi/RPiCECAdapterMessageQueue.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/RPi/RPiCECAdapterMessageQueue.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/RPi/RPiCECAdapterMessageQueue.h libcec-2.1.1/src/lib/adapter/RPi/RPiCECAdapterMessageQueue.h --- libcec-2.0.5/src/lib/adapter/RPi/RPiCECAdapterMessageQueue.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/RPi/RPiCECAdapterMessageQueue.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/TDA995x/AdapterMessageQueue.h libcec-2.1.1/src/lib/adapter/TDA995x/AdapterMessageQueue.h --- libcec-2.0.5/src/lib/adapter/TDA995x/AdapterMessageQueue.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/TDA995x/AdapterMessageQueue.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/TDA995x/TDA995xCECAdapterCommunication.cpp libcec-2.1.1/src/lib/adapter/TDA995x/TDA995xCECAdapterCommunication.cpp --- libcec-2.0.5/src/lib/adapter/TDA995x/TDA995xCECAdapterCommunication.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/TDA995x/TDA995xCECAdapterCommunication.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/TDA995x/TDA995xCECAdapterCommunication.h libcec-2.1.1/src/lib/adapter/TDA995x/TDA995xCECAdapterCommunication.h --- libcec-2.0.5/src/lib/adapter/TDA995x/TDA995xCECAdapterCommunication.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/TDA995x/TDA995xCECAdapterCommunication.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/TDA995x/TDA995xCECAdapterDetection.cpp libcec-2.1.1/src/lib/adapter/TDA995x/TDA995xCECAdapterDetection.cpp --- libcec-2.0.5/src/lib/adapter/TDA995x/TDA995xCECAdapterDetection.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/TDA995x/TDA995xCECAdapterDetection.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/adapter/TDA995x/TDA995xCECAdapterDetection.h libcec-2.1.1/src/lib/adapter/TDA995x/TDA995xCECAdapterDetection.h --- libcec-2.0.5/src/lib/adapter/TDA995x/TDA995xCECAdapterDetection.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/adapter/TDA995x/TDA995xCECAdapterDetection.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/devices/CECAudioSystem.cpp libcec-2.1.1/src/lib/devices/CECAudioSystem.cpp --- libcec-2.0.5/src/lib/devices/CECAudioSystem.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/devices/CECAudioSystem.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/devices/CECAudioSystem.h libcec-2.1.1/src/lib/devices/CECAudioSystem.h --- libcec-2.0.5/src/lib/devices/CECAudioSystem.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/devices/CECAudioSystem.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/devices/CECBusDevice.cpp libcec-2.1.1/src/lib/devices/CECBusDevice.cpp --- libcec-2.0.5/src/lib/devices/CECBusDevice.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/devices/CECBusDevice.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -781,7 +781,7 @@ if (bNeedsPoll) { bool bPollAcked(false); - if (bNeedsPoll && NeedsPoll()) + if (bNeedsPoll) bPollAcked = m_processor->PollDevice(m_iLogicalAddress); status = bPollAcked ? CEC_DEVICE_STATUS_PRESENT : CEC_DEVICE_STATUS_NOT_PRESENT; @@ -1134,8 +1134,15 @@ return; CCECBusDevice* newRoute = m_processor->GetDeviceByPhysicalAddress(iRoute, true); - if (newRoute && newRoute->IsHandledByLibCEC()) - newRoute->ActivateSource(); + if (newRoute) + { + // we were made the active source, send notification + if (newRoute->IsHandledByLibCEC()) + newRoute->ActivateSource(); + // another device was made active + else + newRoute->MarkAsActiveSource(); + } } void CCECBusDevice::SetStreamPath(uint16_t iNewAddress, uint16_t iOldAddress /* = CEC_INVALID_PHYSICAL_ADDRESS */) diff -Nru libcec-2.0.5/src/lib/devices/CECBusDevice.h libcec-2.1.1/src/lib/devices/CECBusDevice.h --- libcec-2.0.5/src/lib/devices/CECBusDevice.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/devices/CECBusDevice.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/devices/CECDeviceMap.cpp libcec-2.1.1/src/lib/devices/CECDeviceMap.cpp --- libcec-2.0.5/src/lib/devices/CECDeviceMap.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/devices/CECDeviceMap.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/devices/CECDeviceMap.h libcec-2.1.1/src/lib/devices/CECDeviceMap.h --- libcec-2.0.5/src/lib/devices/CECDeviceMap.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/devices/CECDeviceMap.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/devices/CECPlaybackDevice.cpp libcec-2.1.1/src/lib/devices/CECPlaybackDevice.cpp --- libcec-2.0.5/src/lib/devices/CECPlaybackDevice.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/devices/CECPlaybackDevice.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/devices/CECPlaybackDevice.h libcec-2.1.1/src/lib/devices/CECPlaybackDevice.h --- libcec-2.0.5/src/lib/devices/CECPlaybackDevice.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/devices/CECPlaybackDevice.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/devices/CECRecordingDevice.cpp libcec-2.1.1/src/lib/devices/CECRecordingDevice.cpp --- libcec-2.0.5/src/lib/devices/CECRecordingDevice.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/devices/CECRecordingDevice.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/devices/CECRecordingDevice.h libcec-2.1.1/src/lib/devices/CECRecordingDevice.h --- libcec-2.0.5/src/lib/devices/CECRecordingDevice.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/devices/CECRecordingDevice.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/devices/CECTV.cpp libcec-2.1.1/src/lib/devices/CECTV.cpp --- libcec-2.0.5/src/lib/devices/CECTV.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/devices/CECTV.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/devices/CECTV.h libcec-2.1.1/src/lib/devices/CECTV.h --- libcec-2.0.5/src/lib/devices/CECTV.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/devices/CECTV.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/devices/CECTuner.cpp libcec-2.1.1/src/lib/devices/CECTuner.cpp --- libcec-2.0.5/src/lib/devices/CECTuner.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/devices/CECTuner.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/devices/CECTuner.h libcec-2.1.1/src/lib/devices/CECTuner.h --- libcec-2.0.5/src/lib/devices/CECTuner.h 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/devices/CECTuner.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/implementations/ANCommandHandler.cpp libcec-2.1.1/src/lib/implementations/ANCommandHandler.cpp --- libcec-2.0.5/src/lib/implementations/ANCommandHandler.cpp 2012-12-07 00:16:09.000000000 +0000 +++ libcec-2.1.1/src/lib/implementations/ANCommandHandler.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/implementations/ANCommandHandler.h libcec-2.1.1/src/lib/implementations/ANCommandHandler.h --- libcec-2.0.5/src/lib/implementations/ANCommandHandler.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/implementations/ANCommandHandler.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/implementations/CECCommandHandler.cpp libcec-2.1.1/src/lib/implementations/CECCommandHandler.cpp --- libcec-2.0.5/src/lib/implementations/CECCommandHandler.cpp 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/implementations/CECCommandHandler.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/implementations/CECCommandHandler.h libcec-2.1.1/src/lib/implementations/CECCommandHandler.h --- libcec-2.0.5/src/lib/implementations/CECCommandHandler.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/implementations/CECCommandHandler.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/implementations/PHCommandHandler.cpp libcec-2.1.1/src/lib/implementations/PHCommandHandler.cpp --- libcec-2.0.5/src/lib/implementations/PHCommandHandler.cpp 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/implementations/PHCommandHandler.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -86,6 +86,7 @@ { m_imageViewOnCheck = new CImageViewOnCheck(this); m_vendorId = CEC_VENDOR_PHILIPS; + m_bOPTSendDeckStatusUpdateOnActiveSource = false; } CPHCommandHandler::~CPHCommandHandler(void) @@ -121,7 +122,7 @@ { // tv sometimes ignores image view on. check the power status of the tv in 5 seconds, and retry when it failed to power up if (m_imageViewOnCheck && !m_imageViewOnCheck->IsRunning()) - m_imageViewOnCheck->CreateThread(false); + return m_imageViewOnCheck->CreateThread(false); } return CCECCommandHandler::ActivateSource(bTransmitDelayedCommandsOnly); diff -Nru libcec-2.0.5/src/lib/implementations/PHCommandHandler.h libcec-2.1.1/src/lib/implementations/PHCommandHandler.h --- libcec-2.0.5/src/lib/implementations/PHCommandHandler.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/implementations/PHCommandHandler.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/implementations/RLCommandHandler.cpp libcec-2.1.1/src/lib/implementations/RLCommandHandler.cpp --- libcec-2.0.5/src/lib/implementations/RLCommandHandler.cpp 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/implementations/RLCommandHandler.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/implementations/RLCommandHandler.h libcec-2.1.1/src/lib/implementations/RLCommandHandler.h --- libcec-2.0.5/src/lib/implementations/RLCommandHandler.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/implementations/RLCommandHandler.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/implementations/SLCommandHandler.cpp libcec-2.1.1/src/lib/implementations/SLCommandHandler.cpp --- libcec-2.0.5/src/lib/implementations/SLCommandHandler.cpp 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/implementations/SLCommandHandler.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -194,6 +194,10 @@ { m_processor->GetPrimaryDevice()->SetPowerStatus(CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON); TransmitVendorCommand0205(command.destination, command.initiator); + + CCECBusDevice* dev = m_processor->GetDevice(command.destination); + if (dev && dev->IsHandledByLibCEC() && dev->IsActiveSource()) + dev->TransmitActiveSource(false); } void CSLCommandHandler::TransmitVendorCommand0205(const cec_logical_address iSource, const cec_logical_address iDestination) @@ -204,6 +208,7 @@ response.PushBack(SL_COMMAND_TYPE_HDDRECORDER); Transmit(response, false, true); + SetSLInitialised(); } void CSLCommandHandler::HandleVendorCommandPowerOn(const cec_command &command) diff -Nru libcec-2.0.5/src/lib/implementations/SLCommandHandler.h libcec-2.1.1/src/lib/implementations/SLCommandHandler.h --- libcec-2.0.5/src/lib/implementations/SLCommandHandler.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/implementations/SLCommandHandler.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/implementations/VLCommandHandler.cpp libcec-2.1.1/src/lib/implementations/VLCommandHandler.cpp --- libcec-2.0.5/src/lib/implementations/VLCommandHandler.cpp 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/implementations/VLCommandHandler.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/implementations/VLCommandHandler.h libcec-2.1.1/src/lib/implementations/VLCommandHandler.h --- libcec-2.0.5/src/lib/implementations/VLCommandHandler.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/implementations/VLCommandHandler.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/adl/adl-edid.cpp libcec-2.1.1/src/lib/platform/adl/adl-edid.cpp --- libcec-2.0.5/src/lib/platform/adl/adl-edid.cpp 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/adl/adl-edid.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/adl/adl-edid.h libcec-2.1.1/src/lib/platform/adl/adl-edid.h --- libcec-2.0.5/src/lib/platform/adl/adl-edid.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/adl/adl-edid.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/nvidia/nv-edid.cpp libcec-2.1.1/src/lib/platform/nvidia/nv-edid.cpp --- libcec-2.0.5/src/lib/platform/nvidia/nv-edid.cpp 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/nvidia/nv-edid.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/nvidia/nv-edid.h libcec-2.1.1/src/lib/platform/nvidia/nv-edid.h --- libcec-2.0.5/src/lib/platform/nvidia/nv-edid.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/nvidia/nv-edid.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/os.h libcec-2.1.1/src/lib/platform/os.h --- libcec-2.0.5/src/lib/platform/os.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/os.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/posix/os-edid.cpp libcec-2.1.1/src/lib/platform/posix/os-edid.cpp --- libcec-2.0.5/src/lib/platform/posix/os-edid.cpp 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/posix/os-edid.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/posix/os-socket.h libcec-2.1.1/src/lib/platform/posix/os-socket.h --- libcec-2.0.5/src/lib/platform/posix/os-socket.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/posix/os-socket.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/posix/os-threads.h libcec-2.1.1/src/lib/platform/posix/os-threads.h --- libcec-2.0.5/src/lib/platform/posix/os-threads.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/posix/os-threads.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/posix/os-types.h libcec-2.1.1/src/lib/platform/posix/os-types.h --- libcec-2.0.5/src/lib/platform/posix/os-types.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/posix/os-types.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/posix/serialport.cpp libcec-2.1.1/src/lib/platform/posix/serialport.cpp --- libcec-2.0.5/src/lib/platform/posix/serialport.cpp 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/posix/serialport.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/posix/serversocket.cpp libcec-2.1.1/src/lib/platform/posix/serversocket.cpp --- libcec-2.0.5/src/lib/platform/posix/serversocket.cpp 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/posix/serversocket.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/sockets/cdevsocket.h libcec-2.1.1/src/lib/platform/sockets/cdevsocket.h --- libcec-2.0.5/src/lib/platform/sockets/cdevsocket.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/sockets/cdevsocket.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/sockets/serialport.h libcec-2.1.1/src/lib/platform/sockets/serialport.h --- libcec-2.0.5/src/lib/platform/sockets/serialport.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/sockets/serialport.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/sockets/serversocket.h libcec-2.1.1/src/lib/platform/sockets/serversocket.h --- libcec-2.0.5/src/lib/platform/sockets/serversocket.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/sockets/serversocket.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/sockets/socket.h libcec-2.1.1/src/lib/platform/sockets/socket.h --- libcec-2.0.5/src/lib/platform/sockets/socket.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/sockets/socket.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/sockets/tcp.h libcec-2.1.1/src/lib/platform/sockets/tcp.h --- libcec-2.0.5/src/lib/platform/sockets/tcp.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/sockets/tcp.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/threads/mutex.h libcec-2.1.1/src/lib/platform/threads/mutex.h --- libcec-2.0.5/src/lib/platform/threads/mutex.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/threads/mutex.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/threads/threads.h libcec-2.1.1/src/lib/platform/threads/threads.h --- libcec-2.0.5/src/lib/platform/threads/threads.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/threads/threads.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/util/baudrate.h libcec-2.1.1/src/lib/platform/util/baudrate.h --- libcec-2.0.5/src/lib/platform/util/baudrate.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/util/baudrate.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/util/buffer.h libcec-2.1.1/src/lib/platform/util/buffer.h --- libcec-2.0.5/src/lib/platform/util/buffer.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/util/buffer.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/util/edid.h libcec-2.1.1/src/lib/platform/util/edid.h --- libcec-2.0.5/src/lib/platform/util/edid.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/util/edid.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/util/timeutils.h libcec-2.1.1/src/lib/platform/util/timeutils.h --- libcec-2.0.5/src/lib/platform/util/timeutils.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/util/timeutils.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/util/util.h libcec-2.1.1/src/lib/platform/util/util.h --- libcec-2.0.5/src/lib/platform/util/util.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/util/util.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/windows/os-edid.cpp libcec-2.1.1/src/lib/platform/windows/os-edid.cpp --- libcec-2.0.5/src/lib/platform/windows/os-edid.cpp 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/windows/os-edid.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/windows/os-socket.h libcec-2.1.1/src/lib/platform/windows/os-socket.h --- libcec-2.0.5/src/lib/platform/windows/os-socket.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/windows/os-socket.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/windows/os-threads.cpp libcec-2.1.1/src/lib/platform/windows/os-threads.cpp --- libcec-2.0.5/src/lib/platform/windows/os-threads.cpp 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/windows/os-threads.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/windows/os-threads.h libcec-2.1.1/src/lib/platform/windows/os-threads.h --- libcec-2.0.5/src/lib/platform/windows/os-threads.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/windows/os-threads.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/windows/os-types.h libcec-2.1.1/src/lib/platform/windows/os-types.h --- libcec-2.0.5/src/lib/platform/windows/os-types.h 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/windows/os-types.h 2013-03-09 20:14:55.000000000 +0000 @@ -2,7 +2,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/lib/platform/windows/serialport.cpp libcec-2.1.1/src/lib/platform/windows/serialport.cpp --- libcec-2.0.5/src/lib/platform/windows/serialport.cpp 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/lib/platform/windows/serialport.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. diff -Nru libcec-2.0.5/src/testclient/main.cpp libcec-2.1.1/src/testclient/main.cpp --- libcec-2.0.5/src/testclient/main.cpp 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/src/testclient/main.cpp 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -197,45 +197,41 @@ void ListDevices(ICECAdapter *parser) { - cec_adapter *devices = new cec_adapter[10]; - int8_t iDevicesFound = parser->FindAdapters(devices, 10, NULL); + cec_adapter_descriptor devices[10]; + int8_t iDevicesFound = parser->DetectAdapters(devices, 10, NULL); if (iDevicesFound <= 0) { PrintToStdOut("Found devices: NONE"); } else { - CStdString strDeviceInfo; - strDeviceInfo.Format("Found devices: %d\n\n", iDevicesFound); + PrintToStdOut("Found devices: %d\n", iDevicesFound); for (int8_t iDevicePtr = 0; iDevicePtr < iDevicesFound; iDevicePtr++) { - strDeviceInfo.AppendFormat("device: %d\ncom port: %s\n", iDevicePtr + 1, devices[iDevicePtr].comm); - libcec_configuration config; - config.Clear(); + PrintToStdOut("device: %d", iDevicePtr + 1); + PrintToStdOut("com port: %s", devices[iDevicePtr].strComName); + PrintToStdOut("vendor id: %04x", devices[iDevicePtr].iVendorId); + PrintToStdOut("product id: %04x", devices[iDevicePtr].iProductId); + PrintToStdOut("firmware version: %d", devices[iDevicePtr].iFirmwareVersion); - if (!parser->GetDeviceInformation(devices[iDevicePtr].comm, &config)) - PrintToStdOut("WARNING: unable to open the device on port %s", devices[iDevicePtr].comm); - else + if (devices[iDevicePtr].iFirmwareBuildDate != CEC_FW_BUILD_UNKNOWN) { - strDeviceInfo.AppendFormat("firmware version: %d\n", config.iFirmwareVersion); - - if (config.iFirmwareBuildDate != CEC_FW_BUILD_UNKNOWN) - { - time_t buildTime = (time_t)config.iFirmwareBuildDate; - strDeviceInfo.AppendFormat("firmware build date: %s", asctime(gmtime(&buildTime))); - strDeviceInfo = strDeviceInfo.Left(strDeviceInfo.length() > 1 ? (unsigned)(strDeviceInfo.length() - 1) : 0); // strip \n added by asctime - strDeviceInfo.append(" +0000\n"); - } + time_t buildTime = (time_t)devices[iDevicePtr].iFirmwareBuildDate; + CStdString strDeviceInfo; + strDeviceInfo.AppendFormat("firmware build date: %s", asctime(gmtime(&buildTime))); + strDeviceInfo = strDeviceInfo.Left(strDeviceInfo.length() > 1 ? (unsigned)(strDeviceInfo.length() - 1) : 0); // strip \n added by asctime + strDeviceInfo.append(" +0000"); + PrintToStdOut(strDeviceInfo.c_str()); + } - if (config.adapterType != ADAPTERTYPE_UNKNOWN) - { - strDeviceInfo.AppendFormat("type: %s\n", parser->ToString(config.adapterType)); - } + if (devices[iDevicePtr].adapterType != ADAPTERTYPE_UNKNOWN) + { + PrintToStdOut("type: %s", parser->ToString(devices[iDevicePtr].adapterType)); } - strDeviceInfo.append("\n"); + + PrintToStdOut(""); } - PrintToStdOut(strDeviceInfo.c_str()); } } diff -Nru libcec-2.0.5/support/cec-test-device.sh libcec-2.1.1/support/cec-test-device.sh --- libcec-2.0.5/support/cec-test-device.sh 2012-12-07 00:16:10.000000000 +0000 +++ libcec-2.1.1/support/cec-test-device.sh 2013-03-09 20:14:55.000000000 +0000 @@ -1,7 +1,7 @@ #!/bin/bash ## Tests whether the USB-CEC adapter can be accessed correctly -## Copyright (C) 2011 Pulse-Eight Ltd. +## Copyright (C) 2011-2013 Pulse-Eight Ltd. check_lsusb() {