Skip to content

Commit 47cbcc2

Browse files
committed
Merge branch 'master' into release
2 parents d54093a + 1167779 commit 47cbcc2

File tree

134 files changed

+6186
-1640
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

134 files changed

+6186
-1640
lines changed

.gitignore

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
*.aps
2020
env.h
2121
version.h
22+
.vs
2223

23-
*.rc
2424
AssemblyInfo.cs
2525
AssemblyInfo.cpp
2626

@@ -73,15 +73,13 @@ project/obj
7373
project/Properties
7474
project/_*
7575
project/x64
76-
project/LibCecSharp/x64
77-
project/LibCecSharp/Debug
78-
project/LibCecSharp/Release
7976
project/libcec/x64
8077
project/libcec/Debug
8178
project/libcec/Release
8279
project/testclient/x64
8380
project/testclient/Debug
8481
project/testclient/Release
82+
project/nsis/libcec-version.nsh
8583

8684
project/RPi/toolchain
8785
project/RPi/firmware
@@ -104,3 +102,7 @@ src/libcec-wmc/obj
104102
/dpinst-amd64.exe
105103

106104
/documentation
105+
106+
/src/EventGhost/egplugin_sources/PulseEight/cec
107+
/src/EventGhost/pulse_eight.egplugin
108+

CMakeLists.txt

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
project(libcec)
2-
cmake_minimum_required(VERSION 2.8.9)
2+
cmake_minimum_required(VERSION 3.12.0)
33

44
set(LIBCEC_VERSION_MAJOR 4)
55
set(LIBCEC_VERSION_MINOR 0)
6-
set(LIBCEC_VERSION_PATCH 2)
6+
set(LIBCEC_VERSION_PATCH 5)
77

88
# cec-client
99
add_subdirectory(src/cec-client)
@@ -23,12 +23,20 @@ add_subdirectory(src/libcec)
2323
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/version.h.in
2424
${CMAKE_CURRENT_SOURCE_DIR}/include/version.h)
2525

26-
# resource files for windows
26+
# windows specific files
2727
if(WIN32)
28-
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/project/LibCecSharp/LibCecSharp.rc.in
29-
${CMAKE_CURRENT_SOURCE_DIR}/project/LibCecSharp/LibCecSharp.rc)
30-
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/LibCecSharp/AssemblyInfo.cpp.in
31-
${CMAKE_CURRENT_SOURCE_DIR}/src/LibCecSharp/AssemblyInfo.cpp)
32-
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/project/libCEC-version.nsh.in
33-
${CMAKE_CURRENT_SOURCE_DIR}/project/libCEC-version.nsh)
28+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/project/nsis/libcec-version.nsh.in
29+
${CMAKE_CURRENT_SOURCE_DIR}/project/nsis/libcec-version.nsh)
30+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/dotnetlib/LibCecSharp/project/LibCecSharp.rc.in
31+
${CMAKE_CURRENT_SOURCE_DIR}/src/dotnetlib/LibCecSharp/project/LibCecSharp.rc)
32+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/dotnetlib/LibCecSharp/AssemblyInfo.cpp.in
33+
${CMAKE_CURRENT_SOURCE_DIR}/src/dotnetlib/LibCecSharp/AssemblyInfo.cpp)
34+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/dotnetlib/LibCecSharpCore/AssemblyInfo.cpp.in
35+
${CMAKE_CURRENT_SOURCE_DIR}/src/dotnetlib/LibCecSharpCore/AssemblyInfo.cpp)
36+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/dotnet/src/LibCecTray/LibCECTray.csproj.in
37+
${CMAKE_CURRENT_SOURCE_DIR}/src/dotnet/src/LibCecTray/LibCECTray.csproj)
38+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/dotnet/src/CecSharpTester/netcore/CecSharpCoreTester.csproj.in
39+
${CMAKE_CURRENT_SOURCE_DIR}/src/dotnet/src/CecSharpTester/netcore/CecSharpCoreTester.csproj)
40+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/dotnet/src/CecSharpTester/netfx/CecSharpTester.csproj.in
41+
${CMAKE_CURRENT_SOURCE_DIR}/src/dotnet/src/CecSharpTester/netfx/CecSharpTester.csproj)
3442
endif()

COPYING

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
This file is part of the libCEC(R) library.
22

3-
libCEC(R) is Copyright (C) 2011-2015 Pulse-Eight Limited. All rights reserved.
3+
libCEC(R) is Copyright (C) 2011-2020 Pulse-Eight Limited. All rights reserved.
44
libCEC(R) is a original work, containing original code.
55

66
libCEC(R) is a trademark of Pulse-Eight Limited.

README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# About
44
This library provides support for Pulse-Eight's USB-CEC adapter and other CEC capable hardware, like the Raspberry Pi.
55

6-
A list of frequently asked questions can be found on [libCEC's FAQ page] (http://libcec.pulse-eight.com/faq).
6+
A list of FAQ (Frequently Asked Questions) can be found on [libCEC's FAQ page](http://libcec.pulse-eight.com/faq).
77

88
.Net client applications, previously part of this repository, have been moved to [this repository](https://github.com/Pulse-Eight/cec-dotnet).
99

@@ -21,10 +21,19 @@ See [docs/README.windows.md](docs/README.windows.md).
2121
# Supported hardware
2222
* [Pulse-Eight USB-CEC Adapter](https://www.pulse-eight.com/p/104/usb-hdmi-cec-adapter)
2323
* [Pulse-Eight Intel NUC CEC Adapter](https://www.pulse-eight.com/p/154/intel-nuc-hdmi-cec-adapter)
24+
* [Pulse-Eight CEC Adapter for Skull Canyon and Hades Canyon NUC systems](https://www.pulse-eight.com/p/207/skull-canyon-nuc-cec-adapter)
2425
* [Raspberry Pi](https://www.raspberrypi.org/)
2526
* Some Exynos SoCs
2627
* NXP TDA995x
2728
* Odroid C2 (Amlogic S905)
2829

2930
# Developers
3031
See [docs/README.developers.md](docs/README.developers.md).
32+
33+
# Vendor specific notes
34+
35+
## Panasonic
36+
* On Panasonic to enable media control buttons on bottom of the remote, you may have to change the operation mode. To change it, press bottom Power-button, keep it pressed, and press 7 3 Stop. After releasing Power-button, Play, Pause, etc should work in XBMC.
37+
38+
## Raspberry Pi
39+
* If your TV cannot detect the Raspberry Pi's CEC, or if the the Pi can't detect the TV, try adding the following line in `/boot/config.txt` and reboot the Pi: `hdmi_force_hotplug=1`

debian/changelog.in

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,91 @@
1+
libcec (4.0.5.1~#DIST#) #DIST#; urgency=medium
2+
3+
* fixed:
4+
* windows 64-bit detection. issue #473
5+
* windows build with spaces in path. issue #475 #474
6+
* USBCECAdapterDetection: Only scan tty. issue #495
7+
* don't probe all devices in CCECClient::IsActiveDeviceType(). issue #492
8+
* use cmake TIMESTAMP for reproducible builds. issue #485 #487
9+
* python 3 client. issue #479
10+
* add O_CLOEXEC to prevent child process locking. issue #478 #477
11+
* fix build if hostname does not support '-f' argument. issue #471
12+
* hyperlinks in README files. issue #465 #455
13+
* replace SWIG_ADD_MODULE and force python2 on win x86. issue #481
14+
* cb_cec_log_message() formatting in cecc-client
15+
* missing SetupDiDestroyDeviceInfoList()
16+
* various build script improvements on Windows
17+
* 15 and 16 byte frames didn't fit and couldn't be sent. issue #443
18+
* added:
19+
* Linux CEC framework adapter. issue #380
20+
* .Net Core support. issue #130
21+
* P8 adapter discovery via Linux sysfs. issue #472
22+
* iMX6 support. issue #323
23+
* Apple vendor ID. issue #486
24+
* link to Skull Canyon and Hades Canyon NUC adapter. issue #448
25+
* Request/Report SAD messages. issue #404
26+
* changed:
27+
* use hex format for cec-client address input. issue #480
28+
* adapter detection on windows without advapi
29+
* build using VS2019 on Windows, required for .Net Core
30+
* CMake 3.12+ is now required
31+
32+
-- Pulse-Eight Packaging <[email protected]> Mon, 27 Apr 2020 13:28:00 +0100
33+
34+
libcec (4.0.4.1~#DIST#) #DIST#; urgency=medium
35+
36+
* fixed: only prevent TV polls when a Samsung TV is detected instead of
37+
suppressing all logical addresses. issue #424 #444
38+
39+
-- Pulse-Eight Packaging <[email protected]> Fri, 21 Dec 2018 22:34:14 +0100
40+
41+
libcec (4.0.3.1~#DIST#) #DIST#; urgency=medium
42+
43+
* fixed:
44+
* detect debian based distros properly when installing python. closes #314
45+
* don't filter out broadcast in HandleDeviceVendorCommandWithId(). issue
46+
#309
47+
* send an active source message when a routing change has been received with
48+
libCEC's address as new route and no active source message has been sent
49+
yet. issue #309 #205 #233
50+
* vs2015 c++ redistributables
51+
* fix missing tinfo linking in cec-client. #341
52+
* set wrong variable. #343 #352
53+
* LG - don't activate the source when receiving vendor command 0xB. #344
54+
* LG TV always changing input when turned on #307
55+
* Fix menu language string. #360
56+
* correct python lib path for python 2.7+/3+. #356
57+
* Fix build if tinfo library is not present. #398
58+
* disable autonomous mode when a Samsung TV is connected. Samsung 2017+ TVs
59+
will power on randomly (Samsung bug). don't poll the TV. #424
60+
* CRPiCECAdapterMessageQueue::Write() accessed the queue without locking.
61+
#423
62+
* use sig_atomic_t for shared object between sig handler and main. #425
63+
* python 3.5+ import. #356
64+
* TDA995x: Fix logical address readback. #303
65+
* TDA995x: Handle physical address change, optimize logical address setup.
66+
#303
67+
* Pulse-Eight USB CEC adapter detection on macOS Mojave. #434
68+
* Fix broken Python version check and failure to build on cmake < 3.7. #409
69+
* 13 char device name got truncated
70+
71+
* changed:
72+
* log a warning when we detect that RPi's CEC service is used by something
73+
else, blocking libCEC. issue #191
74+
* const IAdapterCommunication::GetLogicalAddresses(), making the mutex
75+
mutable for now without changing the platform lib. closes #259
76+
* Add a Reinitialze action. Useful for after the device has been powered
77+
down. #299
78+
* Panasonic media control info to the readme
79+
* detect WIN64 in cmake automatically. #322
80+
* README.developers.md. #330
81+
* instructions for hdmi_force_hotplug=1 on the pi
82+
* eventghost plugin install/create. #375
83+
* Include C version of libCEC loader when installing. #397
84+
* Explicitly use python3 in pyCecClient. #433
85+
* build with vs 2015
86+
87+
-- Pulse-Eight Packaging <[email protected]> Thu, 8 Nov 2018 18:05:36 +0100
88+
189
libcec (4.0.2.1~#DIST#) #DIST#; urgency=medium
290

391
* fixed:

debian/python-libcec.install

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
usr/lib/python*/dist-packages/cec/*
1+
usr/lib/python*/dist-packages/*
22
usr/bin/pyCecClient

docs/README.developers.md

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,27 @@ We provide a C, C++, Python and .NET CLR interface to the adapter.
44

55
## C++ developers
66
* the API can be found in `include/cec.h`
7-
* an example implementation can be found on https://github.com/Pulse-Eight/cec-utils/blob/master/src/cec-client/cec-client.cpp
7+
* an example implementation can be found on https://github.com/Pulse-Eight/libcec/blob/master/src/cec-client/cec-client.cpp
88

99
## C developers
1010
* the API can be found in `include/cecc.h`
11-
* an example implementation can be found on https://github.com/Pulse-Eight/cec-utils/blob/master/src/cecc-client/cecc-client.cpp
11+
* an example implementation can be found on https://github.com/Pulse-Eight/libcec/blob/master/src/cecc-client/cecc-client.c
1212

13-
## .NET developers
14-
* add a reference to `LibCecSharp.dll`
15-
* add `cec.dll` to your project and enable "copy to output directory"
16-
* an example implementation can be found on https://github.com/Pulse-Eight/cec-utils/blob/master/src/CecSharpTester/CecSharpClient.cs
13+
## .NET Framework developers
14+
* add a reference to LibCecSharp.dll for the target architecture (x86/amd64). It's installed to `C:\Program Files (x86)\Pulse-Eight\USB-CEC Adapter\netfx` by default
15+
* the minimum .Net Framework version required for LibCecSharp is 4.0
16+
* an example implementation can be found on https://github.com/Pulse-Eight/cec-dotnet/blob/master/src/CecSharpTester/CecSharpClient.cs
17+
18+
## .NET Core developers
19+
* add a reference to LibCecSharpCore.dll for the target architecture (x86/amd64). It's installed to `C:\Program Files (x86)\Pulse-Eight\USB-CEC Adapter\netcore` by default
20+
* the minimum .Net Core version required for LibCecSharpCore is 3.1
21+
* an example implementation can be found on https://github.com/Pulse-Eight/cec-dotnet/blob/master/src/CecSharpTester/CecSharpClient.cs
1722

1823
## Python developers
1924
* the API is exported to Python through Swig
20-
* an example implementation can be found on https://github.com/Pulse-Eight/cec-utils/blob/master/src/pyCecClient/pyCecClient.py
25+
* an example implementation can be found on https://github.com/Pulse-Eight/libcec/blob/master/src/pyCecClient/pyCecClient.py
2126

2227
# Developers Agreement
2328

2429
If you wish to contribute to this project, you must first sign our contributors agreement.
25-
Please see [the contributors agreement] (http://www.pulse-eight.net/contributors) for more information.
30+
Please see [the contributors agreement](http://www.pulse-eight.com/contributors) for more information.

docs/README.linux.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
### Prerequisites
44
libCEC needs the following dependencies in order to work correctly:
5-
* [p8-platform] (https://github.com/Pulse-Eight/platform) 2.0 or later
5+
* [p8-platform](https://github.com/Pulse-Eight/platform) 2.0 or later
66
* udev v151 or later
77
* cdc-acm support compiled into the kernel or available as module
88

99
To compile libCEC on Linux, you'll need the following dependencies:
10-
* [cmake 2.6 or better] (http://www.cmake.org/)
10+
* [cmake 2.6 or better](http://www.cmake.org/)
1111
* a supported C++ 11 compiler
1212

1313
The following dependencies are recommended. Without them, the adapter can not
@@ -51,5 +51,11 @@ Pass the argument `-DHAVE_TDA995X_API=1` to the cmake command in the compilation
5151
cmake -DHAVE_TDA995X_API=1 ..
5252
```
5353

54+
### Linux CEC Framework (v4.10+)
55+
Pass the argument `-DHAVE_LINUX_API=1` to the cmake command in the compilation instructions:
56+
```
57+
cmake -DHAVE_LINUX_API=1 ..
58+
```
59+
5460
### Debian / Ubuntu .deb packaging
5561
See [docs/README.debian.md](README.debian.md).

docs/README.osx.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
### MacPorts
44

5-
libCEC is available through [MacPorts] (https://www.macports.org/) and has been tested on OS X 10.9 through 10.12
5+
libCEC is available through [MacPorts](https://www.macports.org/) and has been tested on OS X 10.9 through 10.12
66

77
### Prerequisites
88
To compile libCEC on OS X, you'll need the following dependencies:
9-
* [p8-platform] (https://github.com/Pulse-Eight/platform) 2.0 or later
10-
* [cmake 2.6 or better] (http://www.cmake.org/)
9+
* [p8-platform](https://github.com/Pulse-Eight/platform) 2.0 or later
10+
* [cmake 2.6 or better](http://www.cmake.org/)
1111
* a supported C++ 11 compiler. Support for C++11 was added in OS X 10.9
1212
* xcode 3.2.6 or later
13-
* optional: [Python 3.4 or later] (https://www.python.org/) and [Swig] (http://www.swig.org/) to generate Python bindings
13+
* optional: [Python 3.4 or later](https://www.python.org/) and [Swig](http://www.swig.org/) to generate Python bindings
1414
* optional: libX11 and xrandr to read the sink's EDID, used to determine the PC's HDMI physical address
1515

1616
### Compilation

docs/README.raspberrypi.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/CrossCompile.cmake \
2121
To compile libCEC on a new Raspbian installation, follow these instructions:
2222
```
2323
sudo apt-get update
24-
sudo apt-get install cmake libudev-dev libxrandr-dev python-dev swig
24+
sudo apt-get install cmake libudev-dev libxrandr-dev python3-dev swig
2525
cd
2626
git clone https://github.com/Pulse-Eight/platform.git
2727
mkdir platform/build
@@ -37,4 +37,9 @@ cmake -DRPI_INCLUDE_DIR=/opt/vc/include -DRPI_LIB_DIR=/opt/vc/lib ..
3737
make -j4
3838
sudo make install
3939
sudo ldconfig
40-
```
40+
```
41+
42+
## Examples
43+
Example implementations using libCEC can be found here:
44+
* [github.com/Pulse-Eight/libcec/blob/master/src/cec-client/cec-client.cpp](https://github.com/Pulse-Eight/libcec/blob/master/src/cec-client/cec-client.cpp)
45+
* [github.com/DrGeoff/cec_simplest](https://github.com/DrGeoff/cec_simplest)

0 commit comments

Comments
 (0)