mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
Hyperion "Light", Build improvements and minor fixes (#1400)
* Allow build, if no grabbers are enabled * Align available functions to right Qt version * Update to next development version * Align available functions to right Qt version * fix workflows (apt/nightly) * Disable QNetworkConfigurationManager deprecation warnings * Initial go on Smart Pointers * Add Deallocation * Correct QT_WARNING_DISABLE_DEPRECATED (available since 5.9) * Cluster Build Variables * Hyperion Light * Address build warnings * Hyperion Light - UI * Update Protobuf to latest master * Removed compiler warnings * Added restart ability to systray * Correct Protobuf * Ignore 'no-return' warning on protobuf build * hyperion-remote: Fix auto discovery of hyperion server * Fix Qt version override * Update changelog * Remove Grabber Components, if no Grabber exists * Standalone Grabber - Fix fps default * Remote Control - Have Source Selction accrosswhole screen * Enable Blackborder detection only, if relevant input sources available * Enable Blackborder detection only, if relevant input sources available * Remote UI - rearrange containers * - QT5/6 path for arm64 added - Remove ZLib Dependency - Fix macOS bundle info details - Cleanup Co-authored-by: Paulchen Panther <16664240+Paulchen-Panther@users.noreply.github.com> Co-authored-by: Paulchen Panther <Paulchen-Panter@protonmail.com>
This commit is contained in:
parent
c38ec60208
commit
2f573a117f
@ -16,5 +16,5 @@
|
||||
},
|
||||
},
|
||||
"forwardPorts": [8090, 8092],
|
||||
"postCreateCommand": "git submodule update --recursive --init && sudo apt-get update && sudo apt-get install -y git cmake build-essential qtbase5-dev libqt5serialport5-dev libqt5sql5-sqlite libqt5svg5-dev libqt5x11extras5-dev libusb-1.0-0-dev python3-dev libcec-dev libxcb-image0-dev libxcb-util0-dev libxcb-shm0-dev libxcb-render0-dev libxcb-randr0-dev libxrandr-dev libxrender-dev libavahi-core-dev libavahi-compat-libdnssd-dev libjpeg-dev libturbojpeg0-dev libssl-dev zlib1g-dev"
|
||||
"postCreateCommand": "git submodule update --recursive --init && sudo apt-get update && sudo apt-get install -y git cmake build-essential qtbase5-dev libqt5serialport5-dev libqt5sql5-sqlite libqt5svg5-dev libqt5x11extras5-dev libusb-1.0-0-dev python3-dev libcec-dev libxcb-image0-dev libxcb-util0-dev libxcb-shm0-dev libxcb-render0-dev libxcb-randr0-dev libxrandr-dev libxrender-dev libavahi-core-dev libavahi-compat-libdnssd-dev libjpeg-dev libturbojpeg0-dev libssl-dev"
|
||||
}
|
||||
|
20
.github/workflows/apt/amd64.json
vendored
20
.github/workflows/apt/amd64.json
vendored
@ -2,7 +2,7 @@
|
||||
{
|
||||
"distribution": "Bionic",
|
||||
"architecture": "amd64",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl1.0-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl1.0-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.6, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls10, libturbojpeg, libcec4",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Ubuntu 18.04 (Bionic Beaver) (amd64)"
|
||||
@ -10,7 +10,7 @@
|
||||
{
|
||||
"distribution": "Focal",
|
||||
"architecture": "amd64",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.8, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec4",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Ubuntu 20.04 (Focal Fossa) (amd64)"
|
||||
@ -18,7 +18,7 @@
|
||||
{
|
||||
"distribution": "Groovy",
|
||||
"architecture": "amd64",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.8, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Ubuntu 20.10 (Groovy Gorilla) (amd64)"
|
||||
@ -26,7 +26,7 @@
|
||||
{
|
||||
"distribution": "Hirsute",
|
||||
"architecture": "amd64",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Ubuntu 21.04 (Hirsute Hippo) (amd64)"
|
||||
@ -34,7 +34,7 @@
|
||||
{
|
||||
"distribution": "Impish",
|
||||
"architecture": "amd64",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Ubuntu 21.10 (Impish Indri) (amd64)"
|
||||
@ -42,7 +42,7 @@
|
||||
{
|
||||
"distribution": "Jammy",
|
||||
"architecture": "amd64",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Ubuntu 22.04 (Jammy Jellyfish) (amd64)"
|
||||
@ -50,7 +50,7 @@
|
||||
{
|
||||
"distribution": "Stretch",
|
||||
"architecture": "amd64",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl1.0-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl1.0-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.5, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls10, libturbojpeg0, libcec4",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Debian 9.x (Stretch) (amd64)"
|
||||
@ -58,7 +58,7 @@
|
||||
{
|
||||
"distribution": "Buster",
|
||||
"architecture": "amd64",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.7, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec4",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Debian 10.x (Buster) (amd64)"
|
||||
@ -66,7 +66,7 @@
|
||||
{
|
||||
"distribution": "Bullseye",
|
||||
"architecture": "amd64",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec6",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Debian 11.x (Bullseye) (amd64)"
|
||||
@ -74,7 +74,7 @@
|
||||
{
|
||||
"distribution": "Bookworm",
|
||||
"architecture": "amd64",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec6",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Debian 12.x (Bookworm) (amd64)"
|
||||
|
12
.github/workflows/apt/arm64.json
vendored
12
.github/workflows/apt/arm64.json
vendored
@ -2,7 +2,7 @@
|
||||
{
|
||||
"distribution": "Bionic",
|
||||
"architecture": "arm64",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl1.0-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl1.0-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.6, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls10, libturbojpeg, libcec4",
|
||||
"cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Ubuntu 18.04 (Bionic Beaver) (arm64)"
|
||||
@ -10,7 +10,7 @@
|
||||
{
|
||||
"distribution": "Focal",
|
||||
"architecture": "arm64",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.8, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec4",
|
||||
"cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Ubuntu 20.04 (Focal Fossa) (arm64)"
|
||||
@ -18,7 +18,7 @@
|
||||
{
|
||||
"distribution": "Hirsute",
|
||||
"architecture": "arm64",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6",
|
||||
"cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Ubuntu 21.04 (Hirsute Hippo) (arm64)"
|
||||
@ -26,7 +26,7 @@
|
||||
{
|
||||
"distribution": "Impish",
|
||||
"architecture": "arm64",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6",
|
||||
"cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Ubuntu 21.10 (Impish Indri) (arm64)"
|
||||
@ -34,7 +34,7 @@
|
||||
{
|
||||
"distribution": "Buster",
|
||||
"architecture": "arm64",
|
||||
"build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, zlib1g-dev, libssl-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libssl-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.7, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec4",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Debian 10.x (Buster) (arm64)"
|
||||
@ -42,7 +42,7 @@
|
||||
{
|
||||
"distribution": "Bullseye",
|
||||
"architecture": "arm64",
|
||||
"build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, zlib1g-dev, libssl-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libssl-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec6",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Debian 11.x (Bullseye) (arm64)"
|
||||
|
16
.github/workflows/apt/armhf.json
vendored
16
.github/workflows/apt/armhf.json
vendored
@ -2,7 +2,7 @@
|
||||
{
|
||||
"distribution": "Bionic",
|
||||
"architecture": "armhf",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl1.0-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl1.0-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.6, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls10, libturbojpeg, libcec4",
|
||||
"cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Ubuntu 18.04 (Bionic Beaver) (armhf)"
|
||||
@ -10,7 +10,7 @@
|
||||
{
|
||||
"distribution": "Focal",
|
||||
"architecture": "armhf",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.8, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec4",
|
||||
"cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Ubuntu 20.04 (Focal Fossa) (armhf)"
|
||||
@ -18,7 +18,7 @@
|
||||
{
|
||||
"distribution": "Hirsute",
|
||||
"architecture": "armhf",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6",
|
||||
"cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Ubuntu 21.04 (Hirsute Hippo) (armhf)"
|
||||
@ -26,7 +26,7 @@
|
||||
{
|
||||
"distribution": "Impish",
|
||||
"architecture": "armhf",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6",
|
||||
"cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Ubuntu 21.10 (Impish Indri) (armhf)"
|
||||
@ -34,7 +34,7 @@
|
||||
{
|
||||
"distribution": "Stretch",
|
||||
"architecture": "armhf",
|
||||
"build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, zlib1g-dev, libssl1.0-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libssl1.0-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.5, libusb-1.0-0, libqt5widgets5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls10, libturbojpeg0, libcec4",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description":"Debian 9.x (Stretch) (armhf)"
|
||||
@ -42,7 +42,7 @@
|
||||
{
|
||||
"distribution": "Buster",
|
||||
"architecture": "armhf",
|
||||
"build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, zlib1g-dev, libssl1.0-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libssl1.0-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.7, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec4",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Debian 10.x (Buster) (armhf)"
|
||||
@ -50,7 +50,7 @@
|
||||
{
|
||||
"distribution": "Bullseye",
|
||||
"architecture": "armhf",
|
||||
"build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, zlib1g-dev, libssl-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libssl-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec6",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Debian 11.x (Bullseye) (armhf)"
|
||||
@ -58,7 +58,7 @@
|
||||
{
|
||||
"distribution": "Bookworm",
|
||||
"architecture": "armhf",
|
||||
"build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, zlib1g-dev, libssl-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev",
|
||||
"build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libssl-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev",
|
||||
"package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec6",
|
||||
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||
"description": "Debian 12.x (Bookworm) (armhf)"
|
||||
|
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -8,5 +8,4 @@
|
||||
branch = master
|
||||
[submodule "dependencies/external/protobuf"]
|
||||
path = dependencies/external/protobuf
|
||||
url = https://github.com/hyperion-project/protobuf.git
|
||||
branch = master
|
||||
url = https://github.com/protocolbuffers/protobuf
|
||||
|
@ -24,4 +24,3 @@ extraction:
|
||||
- "libavahi-compat-libdnssd-dev"
|
||||
- "libturbojpeg0-dev"
|
||||
- "libssl-dev"
|
||||
- "zlib1g-dev"
|
||||
|
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@ -38,7 +38,7 @@
|
||||
"name": "(macOS) Hyperion.app",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/build/bin/hyperiond.app/Contents/MacOS/hyperiond",
|
||||
"program": "${workspaceFolder}/build/bin/Hyperion.app/Contents/MacOS/Hyperion",
|
||||
"args": ["-d"],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceFolder}",
|
||||
|
@ -10,6 +10,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
### Added
|
||||
|
||||
- Allow to build a "light" version of Hyperion, i.e. no grabbers, or services like flat-/proto buffers, boblight, CEC
|
||||
- Allow to restart Hyperion via Systray
|
||||
|
||||
### Changed
|
||||
|
||||
- Colors Smoothing is started in pause mode to save resources, when Hyperion starts with no active source
|
||||
@ -19,7 +22,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Effects: Fix image URL in Matrix effect
|
||||
- Fixes that the Led-Device output flow was interrupted, by an enabling API request on an already enabled device (#967
|
||||
- Yeelight - Workaround: Ignore error when setting music mode = off, but the music-mode is already off (#1372)
|
||||
- Standalone grabbers: Improved fps help/error text, fixed default address and port
|
||||
- Standalone grabbers: Improved fps help/error text, fixed default address and port, fixed auto discovery of Hyperion server in hyperion-remote
|
||||
- Fixed Qt version override, e.g. set via QTDIR
|
||||
|
||||
## Removed
|
||||
|
||||
|
212
CMakeLists.txt
212
CMakeLists.txt
@ -2,6 +2,18 @@ cmake_minimum_required(VERSION 3.0.0)
|
||||
|
||||
message( STATUS "CMake Version: ${CMAKE_VERSION}" )
|
||||
|
||||
macro(addIndent text)
|
||||
if(${CMAKE_VERSION} VERSION_GREATER "3.16.0")
|
||||
list(APPEND CMAKE_MESSAGE_INDENT ${text})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(removeIndent)
|
||||
if(${CMAKE_VERSION} VERSION_GREATER "3.16.0")
|
||||
list(POP_BACK CMAKE_MESSAGE_INDENT)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
PROJECT(hyperion)
|
||||
|
||||
# Parse semantic version of version file and write version to config
|
||||
@ -19,10 +31,6 @@ set(CMAKE_AUTOMOC ON)
|
||||
# auto prepare .qrc files
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
if ( POLICY CMP0026 )
|
||||
CMAKE_POLICY( SET CMP0026 OLD )
|
||||
endif()
|
||||
|
||||
# Configure CCache if available
|
||||
find_program(CCACHE_FOUND ccache)
|
||||
if ( CCACHE_FOUND )
|
||||
@ -41,40 +49,61 @@ else()
|
||||
endif()
|
||||
|
||||
# Set build variables
|
||||
# Grabber
|
||||
SET ( DEFAULT_AMLOGIC OFF )
|
||||
SET ( DEFAULT_BOBLIGHT ON )
|
||||
SET ( DEFAULT_DISPMANX OFF )
|
||||
SET ( DEFAULT_DX OFF )
|
||||
SET ( DEFAULT_MF OFF )
|
||||
SET ( DEFAULT_OSX OFF )
|
||||
SET ( DEFAULT_QT ON )
|
||||
SET ( DEFAULT_V4L2 OFF )
|
||||
SET ( DEFAULT_X11 OFF )
|
||||
SET ( DEFAULT_XCB OFF )
|
||||
SET ( DEFAULT_V4L2 OFF )
|
||||
|
||||
# Input
|
||||
SET ( DEFAULT_BOBLIGHT_SERVER ON )
|
||||
SET ( DEFAULT_CEC OFF )
|
||||
SET ( DEFAULT_FLATBUF_SERVER ON )
|
||||
SET ( DEFAULT_PROTOBUF_SERVER ON )
|
||||
|
||||
# Output
|
||||
SET ( DEFAULT_FORWARDER ON )
|
||||
SET ( DEFAULT_FLATBUF_CONNECT ON )
|
||||
|
||||
# LED-Devices
|
||||
SET ( DEFAULT_SPIDEV OFF )
|
||||
SET ( DEFAULT_TINKERFORGE OFF )
|
||||
SET ( DEFAULT_USB_HID OFF )
|
||||
SET ( DEFAULT_WS281XPWM OFF )
|
||||
|
||||
# Services
|
||||
SET ( DEFAULT_AVAHI ON )
|
||||
SET ( DEFAULT_EXPERIMENTAL OFF )
|
||||
|
||||
# Build
|
||||
SET ( DEFAULT_TESTS OFF )
|
||||
SET ( DEFAULT_DEPLOY_DEPENDENCIES ON )
|
||||
SET ( DEFAULT_USE_SHARED_AVAHI_LIBS ON )
|
||||
SET ( DEFAULT_USE_SYSTEM_FLATBUFFERS_LIBS OFF )
|
||||
SET ( DEFAULT_USE_SYSTEM_PROTO_LIBS OFF )
|
||||
SET ( DEFAULT_USE_SYSTEM_MBEDTLS_LIBS OFF )
|
||||
SET ( DEFAULT_TESTS OFF )
|
||||
SET ( DEFAULT_EXPERIMENTAL OFF )
|
||||
SET ( DEFAULT_CEC OFF )
|
||||
SET ( DEFAULT_DEPLOY_DEPENDENCIES ON )
|
||||
|
||||
# Build Hyperion with a reduced set of functionality, overwrites other default values
|
||||
SET ( DEFAULT_HYPERION_LIGHT OFF )
|
||||
|
||||
IF ( ${CMAKE_SYSTEM} MATCHES "Linux" )
|
||||
SET ( DEFAULT_FB ON )
|
||||
SET ( DEFAULT_V4L2 ON )
|
||||
SET ( DEFAULT_SPIDEV ON )
|
||||
SET ( DEFAULT_TINKERFORGE ON )
|
||||
SET ( DEFAULT_FB ON )
|
||||
SET ( DEFAULT_USB_HID ON )
|
||||
SET ( DEFAULT_CEC ON )
|
||||
ELSEIF ( WIN32 )
|
||||
SET ( DEFAULT_DX ON )
|
||||
SET ( DEFAULT_MF ON )
|
||||
ELSE()
|
||||
SET ( DEFAULT_V4L2 OFF )
|
||||
SET ( DEFAULT_FB OFF )
|
||||
SET ( DEFAULT_V4L2 OFF )
|
||||
SET ( DEFAULT_SPIDEV OFF )
|
||||
SET ( DEFAULT_TINKERFORGE OFF )
|
||||
SET ( DEFAULT_USB_HID OFF )
|
||||
@ -166,49 +195,65 @@ ADD_DEFINITIONS( ${PLATFORM_DEFINE} )
|
||||
|
||||
# set the build options
|
||||
|
||||
option(ENABLE_BOBLIGHT "Enable BOBLIGHT server" ${DEFAULT_BOBLIGHT} )
|
||||
message(STATUS "ENABLE_BOBLIGHT = ${ENABLE_BOBLIGHT}")
|
||||
option(HYPERION_LIGHT "Build Hyperion with a reduced set of functionality" ${DEFAULT_HYPERION_LIGHT} )
|
||||
message(STATUS "HYPERION_LIGHT = ${HYPERION_LIGHT}")
|
||||
|
||||
if (HYPERION_LIGHT)
|
||||
message(STATUS "HYPERION_LIGHT: Hyperion is build with a reduced set of functionality.")
|
||||
# Disable Grabbers
|
||||
SET ( DEFAULT_AMLOGIC OFF )
|
||||
SET ( DEFAULT_DISPMANX OFF )
|
||||
SET ( DEFAULT_DX OFF )
|
||||
SET ( DEFAULT_FB OFF )
|
||||
SET ( DEFAULT_MF OFF )
|
||||
SET ( DEFAULT_OSX OFF )
|
||||
SET ( DEFAULT_QT OFF )
|
||||
SET ( DEFAULT_V4L2 OFF )
|
||||
SET ( DEFAULT_X11 OFF )
|
||||
SET ( DEFAULT_XCB OFF )
|
||||
|
||||
# Disable Input Servers
|
||||
SET ( DEFAULT_BOBLIGHT_SERVER OFF )
|
||||
SET ( DEFAULT_CEC OFF )
|
||||
SET ( DEFAULT_FLATBUF_SERVER OFF )
|
||||
SET ( DEFAULT_PROTOBUF_SERVER OFF )
|
||||
|
||||
# Disable Output Connectors
|
||||
SET ( DEFAULT_FORWARDER OFF )
|
||||
SET ( DEFAULT_FLATBUF_CONNECT OFF )
|
||||
endif()
|
||||
|
||||
message(STATUS "Grabber options:")
|
||||
|
||||
addIndent(" - ")
|
||||
|
||||
option(ENABLE_AMLOGIC "Enable the AMLOGIC video grabber" ${DEFAULT_AMLOGIC} )
|
||||
message(STATUS "ENABLE_AMLOGIC = ${ENABLE_AMLOGIC}")
|
||||
|
||||
option(ENABLE_DISPMANX "Enable the RPi dispmanx grabber" ${DEFAULT_DISPMANX} )
|
||||
message(STATUS "ENABLE_DISPMANX = ${ENABLE_DISPMANX}")
|
||||
|
||||
option(ENABLE_DX "Enable the DirectX grabber" ${DEFAULT_DX})
|
||||
message(STATUS "ENABLE_DX = ${ENABLE_DX}")
|
||||
|
||||
if (ENABLE_AMLOGIC)
|
||||
SET(ENABLE_FB ON)
|
||||
else()
|
||||
option(ENABLE_FB " Enable the framebuffer grabber" ${DEFAULT_FB} )
|
||||
endif()
|
||||
|
||||
message(STATUS "ENABLE_FB = ${ENABLE_FB}")
|
||||
|
||||
option(ENABLE_DISPMANX "Enable the RPi dispmanx grabber" ${DEFAULT_DISPMANX} )
|
||||
message(STATUS "ENABLE_DISPMANX = ${ENABLE_DISPMANX}")
|
||||
|
||||
option(ENABLE_OSX "Enable the OSX grabber" ${DEFAULT_OSX} )
|
||||
message(STATUS "ENABLE_OSX = ${ENABLE_OSX}")
|
||||
|
||||
option(ENABLE_SPIDEV "Enable the SPIDEV device" ${DEFAULT_SPIDEV} )
|
||||
message(STATUS "ENABLE_SPIDEV = ${ENABLE_SPIDEV}")
|
||||
|
||||
option(ENABLE_TINKERFORGE "Enable the TINKERFORGE device" ${DEFAULT_TINKERFORGE})
|
||||
message(STATUS "ENABLE_TINKERFORGE = ${ENABLE_TINKERFORGE}")
|
||||
|
||||
option(ENABLE_V4L2 "Enable the V4L2 grabber" ${DEFAULT_V4L2})
|
||||
message(STATUS "ENABLE_V4L2 = ${ENABLE_V4L2}")
|
||||
|
||||
option(ENABLE_MF "Enable the Media Foundation grabber" ${DEFAULT_MF})
|
||||
message(STATUS "ENABLE_MF = ${ENABLE_MF}")
|
||||
|
||||
option(ENABLE_WS281XPWM "Enable the WS281x-PWM device" ${DEFAULT_WS281XPWM} )
|
||||
message(STATUS "ENABLE_WS281XPWM = ${ENABLE_WS281XPWM}")
|
||||
option(ENABLE_OSX "Enable the OSX grabber" ${DEFAULT_OSX} )
|
||||
message(STATUS "ENABLE_OSX = ${ENABLE_OSX}")
|
||||
|
||||
option(ENABLE_AVAHI "Enable Zeroconf" ${DEFAULT_AVAHI})
|
||||
message(STATUS "ENABLE_AVAHI = " ${ENABLE_AVAHI})
|
||||
option(ENABLE_QT "Enable the Qt grabber" ${DEFAULT_QT})
|
||||
message(STATUS "ENABLE_QT = ${ENABLE_QT}")
|
||||
|
||||
option(ENABLE_USB_HID "Enable the libusb and hid devices" ${DEFAULT_USB_HID} )
|
||||
message(STATUS "ENABLE_USB_HID = ${ENABLE_USB_HID}")
|
||||
|
||||
option(ENABLE_CEC "Enable the libcec and CEC control" ${DEFAULT_CEC} )
|
||||
message(STATUS "ENABLE_CEC = ${ENABLE_CEC}")
|
||||
option(ENABLE_V4L2 "Enable the V4L2 grabber" ${DEFAULT_V4L2})
|
||||
message(STATUS "ENABLE_V4L2 = ${ENABLE_V4L2}")
|
||||
|
||||
option(ENABLE_X11 "Enable the X11 grabber" ${DEFAULT_X11})
|
||||
message(STATUS "ENABLE_X11 = ${ENABLE_X11}")
|
||||
@ -216,11 +261,70 @@ message(STATUS "ENABLE_X11 = ${ENABLE_X11}")
|
||||
option(ENABLE_XCB "Enable the XCB grabber" ${DEFAULT_XCB})
|
||||
message(STATUS "ENABLE_XCB = ${ENABLE_XCB}")
|
||||
|
||||
option(ENABLE_QT "Enable the Qt grabber" ${DEFAULT_QT})
|
||||
message(STATUS "ENABLE_QT = ${ENABLE_QT}")
|
||||
removeIndent()
|
||||
|
||||
option(ENABLE_DX "Enable the DirectX grabber" ${DEFAULT_DX})
|
||||
message(STATUS "ENABLE_DX = ${ENABLE_DX}")
|
||||
message(STATUS "Input options:")
|
||||
addIndent(" - ")
|
||||
|
||||
option(ENABLE_BOBLIGHT_SERVER "Enable BOBLIGHT server" ${DEFAULT_BOBLIGHT_SERVER} )
|
||||
message(STATUS "ENABLE_BOBLIGHT_SERVER = ${ENABLE_BOBLIGHT_SERVER}")
|
||||
|
||||
option(ENABLE_CEC "Enable the libcec and CEC control" ${DEFAULT_CEC} )
|
||||
message(STATUS "ENABLE_CEC = ${ENABLE_CEC}")
|
||||
|
||||
option(ENABLE_FLATBUF_SERVER "Enable Flatbuffers server" ${DEFAULT_FLATBUF_SERVER} )
|
||||
message(STATUS "ENABLE_FLATBUF_SERVER = ${ENABLE_FLATBUF_SERVER}")
|
||||
|
||||
option(ENABLE_PROTOBUF_SERVER "Enable Protocol Buffers server" ${DEFAULT_PROTOBUF_SERVER} )
|
||||
message(STATUS "ENABLE_PROTOBUF_SERVER = ${ENABLE_PROTOBUF_SERVER}")
|
||||
|
||||
removeIndent()
|
||||
|
||||
message(STATUS "Output options:")
|
||||
addIndent(" - ")
|
||||
|
||||
option(ENABLE_FORWARDER "Enable Hyperion forwarding" ${DEFAULT_FORWARDER} )
|
||||
message(STATUS "ENABLE_FORWARDER = ${ENABLE_FORWARDER}")
|
||||
|
||||
if (ENABLE_FORWARDER)
|
||||
SET(ENABLE_FLATBUF_CONNECT ON)
|
||||
else()
|
||||
option(ENABLE_FLATBUF_CONNECT "Enable Flatbuffers connecting remotely" ${DEFAULT_FLATBUF_CONNECT} )
|
||||
endif()
|
||||
message(STATUS "ENABLE_FLATBUF_CONNECT = ${ENABLE_FLATBUF_CONNECT}")
|
||||
|
||||
removeIndent()
|
||||
|
||||
message(STATUS "LED-Device options:")
|
||||
addIndent(" - ")
|
||||
|
||||
option(ENABLE_SPIDEV "Enable the SPIDEV device" ${DEFAULT_SPIDEV} )
|
||||
message(STATUS "ENABLE_SPIDEV = ${ENABLE_SPIDEV}")
|
||||
|
||||
option(ENABLE_TINKERFORGE "Enable the TINKERFORGE device" ${DEFAULT_TINKERFORGE})
|
||||
message(STATUS "ENABLE_TINKERFORGE = ${ENABLE_TINKERFORGE}")
|
||||
|
||||
option(ENABLE_USB_HID "Enable the libusb and hid devices" ${DEFAULT_USB_HID} )
|
||||
message(STATUS "ENABLE_USB_HID = ${ENABLE_USB_HID}")
|
||||
|
||||
option(ENABLE_WS281XPWM "Enable the WS281x-PWM device" ${DEFAULT_WS281XPWM} )
|
||||
message(STATUS "ENABLE_WS281XPWM = ${ENABLE_WS281XPWM}")
|
||||
|
||||
removeIndent()
|
||||
|
||||
message(STATUS "Services options:")
|
||||
addIndent(" - ")
|
||||
|
||||
option(ENABLE_AVAHI "Enable Zeroconf" ${DEFAULT_AVAHI})
|
||||
message(STATUS "ENABLE_AVAHI = " ${ENABLE_AVAHI})
|
||||
|
||||
option(ENABLE_EXPERIMENTAL "Compile experimental features" ${DEFAULT_EXPERIMENTAL})
|
||||
message(STATUS "ENABLE_EXPERIMENTAL = ${ENABLE_EXPERIMENTAL}")
|
||||
|
||||
removeIndent()
|
||||
|
||||
message(STATUS "Build options:")
|
||||
addIndent(" - ")
|
||||
|
||||
option(ENABLE_TESTS "Compile additional test applications" ${DEFAULT_TESTS})
|
||||
message(STATUS "ENABLE_TESTS = ${ENABLE_TESTS}")
|
||||
@ -228,12 +332,18 @@ message(STATUS "ENABLE_TESTS = ${ENABLE_TESTS}")
|
||||
option(ENABLE_PROFILER "enable profiler capabilities - not for release code" OFF)
|
||||
message(STATUS "ENABLE_PROFILER = ${ENABLE_PROFILER}")
|
||||
|
||||
option(ENABLE_EXPERIMENTAL "Compile experimental features" ${DEFAULT_EXPERIMENTAL})
|
||||
message(STATUS "ENABLE_EXPERIMENTAL = ${ENABLE_EXPERIMENTAL}")
|
||||
|
||||
option(ENABLE_DEPLOY_DEPENDENCIES "Deploy with dependencies" ${DEFAULT_DEPLOY_DEPENDENCIES})
|
||||
message(STATUS "ENABLE_DEPLOY_DEPENDENCIES = ${ENABLE_DEPLOY_DEPENDENCIES}")
|
||||
|
||||
if (ENABLE_AVAHI)
|
||||
message(STATUS "DEFAULT_USE_SHARED_AVAHI_LIBS = ${DEFAULT_USE_SHARED_AVAHI_LIBS}")
|
||||
endif()
|
||||
message(STATUS "DEFAULT_USE_SYSTEM_FLATBUFFERS_LIBS = ${DEFAULT_USE_SYSTEM_FLATBUFFERS_LIBS}")
|
||||
message(STATUS "DEFAULT_USE_SYSTEM_MBEDTLS_LIBS = ${DEFAULT_USE_SYSTEM_MBEDTLS_LIBS}")
|
||||
message(STATUS "DEFAULT_USE_SYSTEM_PROTO_LIBS = ${DEFAULT_USE_SYSTEM_PROTO_LIBS}")
|
||||
|
||||
removeIndent()
|
||||
|
||||
SET ( FLATBUFFERS_INSTALL_BIN_DIR ${CMAKE_BINARY_DIR}/flatbuf )
|
||||
SET ( FLATBUFFERS_INSTALL_LIB_DIR ${CMAKE_BINARY_DIR}/flatbuf )
|
||||
|
||||
@ -346,10 +456,18 @@ if (NOT DEFINED QTDIR)
|
||||
set(QTDIR "${SUBDIRQT}/msvc2019_64")
|
||||
endif()
|
||||
elseif ( "${PLATFORM}" MATCHES "osx" )
|
||||
# QT6 x86_64 location
|
||||
if (EXISTS /usr/local/opt/qt6)
|
||||
set(QTDIR "/usr/local/opt/qt6")
|
||||
# QT6 arm64 location
|
||||
elseif (EXISTS /opt/homebrew/opt/qt@6)
|
||||
set(QTDIR "/opt/homebrew/opt/qt@6")
|
||||
# QT5 x86_64 location
|
||||
elseif (EXISTS /usr/local/opt/qt5)
|
||||
set(QTDIR "/usr/local/opt/qt5")
|
||||
# QT5 arm64 location
|
||||
elseif (EXISTS /opt/homebrew/opt/qt@5)
|
||||
set(QTDIR "/opt/homebrew/opt/qt@5")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@ -376,7 +494,7 @@ IF ( "${QT_VERSION}" VERSION_LESS "${QT_MIN_VERSION}" )
|
||||
message( FATAL_ERROR "Your Qt version is to old! Minimum required ${QT_MIN_VERSION}" )
|
||||
ENDIF()
|
||||
|
||||
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Network SerialPort Sql Widgets REQUIRED)
|
||||
find_package(Qt${QT_VERSION_MAJOR} ${QT_VERSION} COMPONENTS Core Gui Network SerialPort Sql Widgets REQUIRED)
|
||||
|
||||
message( STATUS "Qt version used: ${QT_VERSION}" )
|
||||
|
||||
|
@ -1,62 +1,77 @@
|
||||
// Generated config file
|
||||
|
||||
// Define to enable the DispmanX grabber
|
||||
#cmakedefine ENABLE_DISPMANX
|
||||
|
||||
// Define to enable the V4L2 grabber
|
||||
#cmakedefine ENABLE_V4L2
|
||||
|
||||
// Define to enable the Media Foundation grabber
|
||||
#cmakedefine ENABLE_MF
|
||||
|
||||
// Define to enable the Framebuffer grabber
|
||||
#cmakedefine ENABLE_FB
|
||||
|
||||
// Define to enable the AMLogic grabber
|
||||
#cmakedefine ENABLE_AMLOGIC
|
||||
|
||||
// Define to enable the DispmanX grabber
|
||||
#cmakedefine ENABLE_DISPMANX
|
||||
|
||||
// Define to enable the DirectX grabber
|
||||
#cmakedefine ENABLE_DX
|
||||
|
||||
// Define to enable the Framebuffer grabber
|
||||
#cmakedefine ENABLE_FB
|
||||
|
||||
// Define to enable the Media Foundation grabber
|
||||
#cmakedefine ENABLE_MF
|
||||
|
||||
// Define to enable the OSX grabber
|
||||
#cmakedefine ENABLE_OSX
|
||||
|
||||
// Define to enable the Qt grabber
|
||||
#cmakedefine ENABLE_QT
|
||||
|
||||
// Define to enable the V4L2 grabber
|
||||
#cmakedefine ENABLE_V4L2
|
||||
|
||||
// Define to enable the X11 grabber
|
||||
#cmakedefine ENABLE_X11
|
||||
|
||||
// Define to enable the XCB grabber
|
||||
#cmakedefine ENABLE_XCB
|
||||
|
||||
// Define to enable the Qt grabber
|
||||
#cmakedefine ENABLE_QT
|
||||
|
||||
// Define to enable the DirectX grabber
|
||||
#cmakedefine ENABLE_DX
|
||||
|
||||
// Define to enable the SPI-Device
|
||||
#cmakedefine ENABLE_SPIDEV
|
||||
|
||||
// Define to enable the WS281x-PWM-via-DMA-device using jgarff's library
|
||||
#cmakedefine ENABLE_WS281XPWM
|
||||
|
||||
// Define to enable the Tinkerforge device
|
||||
#cmakedefine ENABLE_TINKERFORGE
|
||||
|
||||
// Define to enable AVAHI
|
||||
#cmakedefine ENABLE_AVAHI
|
||||
// Define to enable boblight server
|
||||
#cmakedefine ENABLE_BOBLIGHT_SERVER
|
||||
|
||||
// Define to enable CEC
|
||||
#cmakedefine ENABLE_CEC
|
||||
|
||||
// Define to enable boblight server
|
||||
#cmakedefine ENABLE_BOBLIGHT
|
||||
// Define to enable flatbuffer server
|
||||
#cmakedefine ENABLE_FLATBUF_SERVER
|
||||
|
||||
// Define to enable protocol buffer server
|
||||
#cmakedefine ENABLE_PROTOBUF_SERVER
|
||||
|
||||
// Define to enable hyperion forwarding
|
||||
#cmakedefine ENABLE_FORWARDER
|
||||
|
||||
// Define to enable enable flatbuffer connect
|
||||
#cmakedefine ENABLE_FLATBUF_CONNECT
|
||||
|
||||
// Define to enable protocol buffer connect
|
||||
#cmakedefine ENABLE_PROTOBUF_CONNECT
|
||||
|
||||
// Define to enable the SPI-Device
|
||||
#cmakedefine ENABLE_SPIDEV
|
||||
|
||||
// Define to enable the Tinkerforge device
|
||||
#cmakedefine ENABLE_TINKERFORGE
|
||||
|
||||
// Define to enable the USB / HID devices
|
||||
#cmakedefine ENABLE_USB_HID
|
||||
|
||||
// Define to enable profiler for development purpose
|
||||
#cmakedefine ENABLE_PROFILER
|
||||
// Define to enable the WS281x-PWM-via-DMA-device using jgarff's library
|
||||
#cmakedefine ENABLE_WS281XPWM
|
||||
|
||||
// Define to enable AVAHI
|
||||
#cmakedefine ENABLE_AVAHI
|
||||
|
||||
// Define to enable experimental features
|
||||
#cmakedefine ENABLE_EXPERIMENTAL
|
||||
|
||||
// Define to enable profiler for development purpose
|
||||
#cmakedefine ENABLE_PROFILER
|
||||
|
||||
// Define to enable deploy dependencies to packages
|
||||
#cmakedefine ENABLE_DEPLOY_DEPENDENCIES
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
<span id="dash_config_status">Status</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<table class="table borderless">
|
||||
<table id="dash_capture_hw" class="table borderless">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
@ -26,7 +26,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<tr id="dash_screen_grabber_row">
|
||||
<td></td>
|
||||
<td data-i18n="edt_conf_fg_heading_title">Screen-Grabber</td>
|
||||
<td style="text-align: right; padding-right: 0">
|
||||
@ -34,7 +34,7 @@
|
||||
<a class="fa fa-cog fa-fw" onclick="SwitchToMenuItem('MenuItemGrabber', 'editor_container_screengrabber')" style="text-decoration: none; cursor: pointer"></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr id="dash_video_grabber_row">
|
||||
<td></td>
|
||||
<td data-i18n="edt_conf_v4l2_heading_title">Video-Grabber</td>
|
||||
<td style="text-align: right; padding-right: 0">
|
||||
@ -44,7 +44,7 @@
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table borderless">
|
||||
<table id="dash_ports" class="table borderless">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
@ -54,15 +54,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td data-i18n="dashboard_infobox_label_port_proto">proto</td>
|
||||
<td style="text-align: right; padding-right: 0">
|
||||
<span id="dash_pbPort">unknown</span>
|
||||
<a class="fa fa-cog fa-fw" onclick="SwitchToMenuItem('MenuItemNetwork', 'editor_container_protoserver')" style="text-decoration: none; cursor: pointer"></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr id="dash_ports_flat_row">
|
||||
<td></td>
|
||||
<td data-i18n="dashboard_infobox_label_port_flat">flat</td>
|
||||
<td style="text-align: right; padding-right: 0">
|
||||
@ -70,6 +62,14 @@
|
||||
<a class="fa fa-cog fa-fw" onclick="SwitchToMenuItem('MenuItemNetwork', 'editor_container_fbserver')" style="text-decoration: none; cursor: pointer"></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="dash_ports_proto_row">
|
||||
<td></td>
|
||||
<td data-i18n="dashboard_infobox_label_port_proto">proto</td>
|
||||
<td style="text-align: right; padding-right: 0">
|
||||
<span id="dash_pbPort">unknown</span>
|
||||
<a class="fa fa-cog fa-fw" onclick="SwitchToMenuItem('MenuItemNetwork', 'editor_container_protoserver')" style="text-decoration: none; cursor: pointer"></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td data-i18n="dashboard_infobox_label_port_json">json</td>
|
||||
|
@ -14,7 +14,7 @@
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-8 col-xxl-7">
|
||||
<div class="col-md-12 col-lg-8 col-xxl-8">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading"><i class="fa fa-wifi fa-fw"></i><span data-i18n="remote_input_label">Source selection</span></div>
|
||||
<div class="panel-body">
|
||||
@ -24,7 +24,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 col-lg-4 col-xxl-5">
|
||||
<div class="col-md-6 col-lg-4 col-xxl-4">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading"><i class="fa fa-wifi fa-fw"></i><span data-i18n="remote_components_label">Components control</span></div>
|
||||
<div class="panel-body" id="comp_intro">
|
||||
@ -32,7 +32,9 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-lg-6 col-xxl-4">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading"><i class="fa fa-wifi fa-fw"></i><span data-i18n="remote_color_label">Colors/Effects</span></div>
|
||||
|
@ -1,6 +1,8 @@
|
||||
$(document).ready(function () {
|
||||
performTranslation();
|
||||
|
||||
var BORDERDETECT_ENABLED = (jQuery.inArray("borderdetection", window.serverInfo.services) !== -1);
|
||||
|
||||
// update instance listing
|
||||
updateHyperionInstanceListing();
|
||||
|
||||
@ -20,16 +22,20 @@ $(document).ready(function () {
|
||||
$('#conf_cont_smoothing').append(createHelpTable(window.schema.smoothing.properties, $.i18n("edt_conf_smooth_heading_title"), "smoothingHelpPanelId"));
|
||||
|
||||
//blackborder
|
||||
if (BORDERDETECT_ENABLED) {
|
||||
$('#conf_cont').append(createRow('conf_cont_blackborder'));
|
||||
$('#conf_cont_blackborder').append(createOptPanel('fa-photo', $.i18n("edt_conf_bb_heading_title"), 'editor_container_blackborder', 'btn_submit_blackborder'));
|
||||
$('#conf_cont_blackborder').append(createHelpTable(window.schema.blackborderdetector.properties, $.i18n("edt_conf_bb_heading_title"), "blackborderHelpPanelId"));
|
||||
}
|
||||
}
|
||||
else {
|
||||
$('#conf_cont').addClass('row');
|
||||
$('#conf_cont').append(createOptPanel('fa-photo', $.i18n("edt_conf_color_heading_title"), 'editor_container_color', 'btn_submit_color'));
|
||||
$('#conf_cont').append(createOptPanel('fa-photo', $.i18n("edt_conf_smooth_heading_title"), 'editor_container_smoothing', 'btn_submit_smoothing'));
|
||||
if (BORDERDETECT_ENABLED) {
|
||||
$('#conf_cont').append(createOptPanel('fa-photo', $.i18n("edt_conf_bb_heading_title"), 'editor_container_blackborder', 'btn_submit_blackborder'));
|
||||
}
|
||||
}
|
||||
|
||||
//color
|
||||
editor_color = createJsonEditor('editor_container_color', {
|
||||
@ -66,6 +72,7 @@ $(document).ready(function () {
|
||||
});
|
||||
|
||||
//blackborder
|
||||
if (BORDERDETECT_ENABLED) {
|
||||
editor_blackborder = createJsonEditor('editor_container_blackborder', {
|
||||
blackborderdetector: window.schema.blackborderdetector
|
||||
}, true, true);
|
||||
@ -88,6 +95,7 @@ $(document).ready(function () {
|
||||
$('#btn_submit_blackborder').off().on('click', function () {
|
||||
requestWriteConfig(editor_blackborder.getValue());
|
||||
});
|
||||
}
|
||||
|
||||
//wiki links
|
||||
var wikiElement = $(buildWL("user/advanced/Advanced.html#blackbar-detection", "edt_conf_bb_mode_title", true));
|
||||
@ -98,8 +106,10 @@ $(document).ready(function () {
|
||||
if (window.showOptHelp) {
|
||||
createHint("intro", $.i18n('conf_colors_color_intro'), "editor_container_color");
|
||||
createHint("intro", $.i18n('conf_colors_smoothing_intro'), "editor_container_smoothing");
|
||||
if (BORDERDETECT_ENABLED) {
|
||||
createHint("intro", $.i18n('conf_colors_blackborder_intro'), "editor_container_blackborder");
|
||||
}
|
||||
}
|
||||
|
||||
removeOverlay();
|
||||
});
|
||||
|
@ -102,15 +102,41 @@ $(document).ready(function () {
|
||||
|
||||
// add more info
|
||||
|
||||
var screenGrabberAvailable = (window.serverInfo.grabbers.screen.available.length !== 0);
|
||||
var videoGrabberAvailable = (window.serverInfo.grabbers.video.available.length !== 0);
|
||||
|
||||
if (screenGrabberAvailable || videoGrabberAvailable) {
|
||||
|
||||
if (screenGrabberAvailable) {
|
||||
var screenGrabber = window.serverConfig.framegrabber.enable ? $.i18n('general_enabled') : $.i18n('general_disabled');
|
||||
$('#dash_screen_grabber').html(screenGrabber);
|
||||
} else {
|
||||
$("#dash_screen_grabber_row").hide();
|
||||
}
|
||||
|
||||
if (videoGrabberAvailable) {
|
||||
var videoGrabber = window.serverConfig.grabberV4L2.enable ? $.i18n('general_enabled') : $.i18n('general_disabled');
|
||||
$('#dash_video_grabber').html(videoGrabber);
|
||||
} else {
|
||||
$("#dash_video_grabber_row").hide();
|
||||
}
|
||||
} else {
|
||||
$("#dash_capture_hw").hide();
|
||||
}
|
||||
|
||||
if (jQuery.inArray("flatbuffer", window.serverInfo.services) !== -1) {
|
||||
var fbPort = window.serverConfig.flatbufServer.enable ? window.serverConfig.flatbufServer.port : $.i18n('general_disabled');
|
||||
$('#dash_fbPort').html(fbPort);
|
||||
} else {
|
||||
$("#dash_ports_flat_row").hide();
|
||||
}
|
||||
|
||||
if (jQuery.inArray("protobuffer", window.serverInfo.services) !== -1) {
|
||||
var pbPort = window.serverConfig.protoServer.enable ? window.serverConfig.protoServer.port : $.i18n('general_disabled');
|
||||
$('#dash_pbPort').html(pbPort);
|
||||
} else {
|
||||
$("#dash_ports_proto_row").hide();
|
||||
}
|
||||
|
||||
var jsonPort = window.serverConfig.jsonServer.port;
|
||||
$('#dash_jsonPort').html(jsonPort);
|
||||
|
@ -1,17 +1,29 @@
|
||||
$(document).ready(function () {
|
||||
|
||||
performTranslation();
|
||||
|
||||
var screenGrabberAvailable = (window.serverInfo.grabbers.screen.available.length !== 0);
|
||||
var videoGrabberAvailable = (window.serverInfo.grabbers.video.available.length !== 0);
|
||||
var CEC_ENABLED = (jQuery.inArray("cec", window.serverInfo.services) !== -1);
|
||||
|
||||
var conf_editor_video = null;
|
||||
var conf_editor_screen = null;
|
||||
|
||||
var configuredDevice = "";
|
||||
var discoveredInputSources = {};
|
||||
var deviceProperties = {};
|
||||
|
||||
// Screen-Grabber
|
||||
if (screenGrabberAvailable) {
|
||||
$('#conf_cont').append(createRow('conf_cont_screen'));
|
||||
$('#conf_cont_screen').append(createOptPanel('fa-camera', $.i18n("edt_conf_fg_heading_title"), 'editor_container_screengrabber', 'btn_submit_screengrabber', 'panel-system', 'screengrabberPanelId'));
|
||||
if (window.showOptHelp) {
|
||||
$('#conf_cont_screen').append(createHelpTable(window.schema.framegrabber.properties, $.i18n("edt_conf_fg_heading_title"), "screengrabberHelpPanelId"));
|
||||
}
|
||||
}
|
||||
|
||||
// Video-Grabber
|
||||
if (videoGrabberAvailable) {
|
||||
$('#conf_cont').append(createRow('conf_cont_video'));
|
||||
$('#conf_cont_video').append(createOptPanel('fa-camera', $.i18n("edt_conf_v4l2_heading_title"), 'editor_container_videograbber', 'btn_submit_videograbber', 'panel-system', 'videograbberPanelId'));
|
||||
|
||||
@ -24,6 +36,7 @@ $(document).ready(function () {
|
||||
if (window.showOptHelp) {
|
||||
$('#conf_cont_video').append(createHelpTable(window.schema.grabberV4L2.properties, $.i18n("edt_conf_v4l2_heading_title"), "videograbberHelpPanelId"));
|
||||
}
|
||||
}
|
||||
|
||||
JSONEditor.defaults.custom_validators.push(function (schema, value, path) {
|
||||
var errors = [];
|
||||
@ -77,6 +90,7 @@ $(document).ready(function () {
|
||||
}
|
||||
|
||||
// Screen-Grabber
|
||||
if (screenGrabberAvailable) {
|
||||
conf_editor_screen = createJsonEditor('editor_container_screengrabber', {
|
||||
framegrabber: window.schema.framegrabber
|
||||
}, true, true);
|
||||
@ -300,13 +314,10 @@ $(document).ready(function () {
|
||||
|
||||
requestWriteConfig(saveOptions);
|
||||
});
|
||||
}
|
||||
|
||||
// External Input Sources (Video-Grabbers)
|
||||
|
||||
var configuredDevice = "";
|
||||
var discoveredInputSources = {};
|
||||
var deviceProperties = {};
|
||||
|
||||
if (videoGrabberAvailable) {
|
||||
function updateDeviceProperties(deviceProperties, property, key) {
|
||||
var properties = {};
|
||||
if (deviceProperties) {
|
||||
@ -341,7 +352,7 @@ $(document).ready(function () {
|
||||
conf_editor_video.on('change', function () {
|
||||
|
||||
// Hide elements not supported by the backend
|
||||
if (window.serverInfo.cec.enabled === false) {
|
||||
if (window.serverInfo.cec.enabled === false || !CEC_ENABLED) {
|
||||
showInputOptionForItem(conf_editor_video, "grabberV4L2", "cecDetection", false);
|
||||
}
|
||||
|
||||
@ -681,6 +692,7 @@ $(document).ready(function () {
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
@ -688,9 +700,13 @@ $(document).ready(function () {
|
||||
|
||||
//create introduction
|
||||
if (window.showOptHelp) {
|
||||
if (screenGrabberAvailable) {
|
||||
createHint("intro", $.i18n('conf_grabber_fg_intro'), "editor_container_screengrabber");
|
||||
}
|
||||
if (videoGrabberAvailable) {
|
||||
createHint("intro", $.i18n('conf_grabber_v4l_intro'), "editor_container_videograbber");
|
||||
}
|
||||
}
|
||||
|
||||
removeOverlay();
|
||||
|
||||
@ -773,11 +789,15 @@ $(document).ready(function () {
|
||||
switch (type) {
|
||||
case "screen":
|
||||
discoveredInputSources.screen = discoveryResult.video_sources;
|
||||
if (screenGrabberAvailable) {
|
||||
updateScreenSourcesList(type, discoveredInputSources.screen);
|
||||
}
|
||||
break;
|
||||
case "video":
|
||||
discoveredInputSources.video = discoveryResult.video_sources;
|
||||
if (videoGrabberAvailable) {
|
||||
updateVideoSourcesList(type, discoveredInputSources.video);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -222,6 +222,12 @@ $(document).ready(function () {
|
||||
|
||||
$(window.hyperion).one("ready", function (event) {
|
||||
// Content will be loaded by the instance load/switch
|
||||
|
||||
//Hide capture menu entries, if no grabbers are available
|
||||
if ((window.serverInfo.grabbers.screen.available.length === 0) && (window.serverInfo.grabbers.video.available.length === 0)) {
|
||||
$("#MenuItemGrabber").attr('style', 'display:none')
|
||||
$("#MenuItemInstCapture").attr('style', 'display:none')
|
||||
}
|
||||
});
|
||||
|
||||
$(window.hyperion).on("cmd-adjustment-update", function (event) {
|
||||
|
@ -1,6 +1,9 @@
|
||||
$(document).ready(function () {
|
||||
performTranslation();
|
||||
|
||||
var screenGrabberAvailable = (window.serverInfo.grabbers.screen.available.length !== 0);
|
||||
var videoGrabberAvailable = (window.serverInfo.grabbers.video.available.length !== 0);
|
||||
|
||||
// update instance listing
|
||||
updateHyperionInstanceListing();
|
||||
|
||||
@ -26,6 +29,7 @@ $(document).ready(function () {
|
||||
|
||||
conf_editor_instCapt.on('ready', function () {
|
||||
|
||||
if (screenGrabberAvailable) {
|
||||
if (!window.serverConfig.framegrabber.enable) {
|
||||
conf_editor_instCapt.getEditor("root.instCapture.systemEnable").setValue(false);
|
||||
conf_editor_instCapt.getEditor("root.instCapture.systemEnable").disable();
|
||||
@ -33,13 +37,25 @@ $(document).ready(function () {
|
||||
else {
|
||||
conf_editor_instCapt.getEditor("root.instCapture.systemEnable").setValue(window.serverConfig.instCapture.systemEnable);
|
||||
}
|
||||
} else {
|
||||
showInputOptionForItem(conf_editor_instCapt, "instCapture", "systemEnable", false);
|
||||
showInputOptionForItem(conf_editor_instCapt, "instCapture", "systemGrabberDevice", false);
|
||||
showInputOptionForItem(conf_editor_instCapt, "instCapture", "systemPriority", false);
|
||||
}
|
||||
|
||||
if (videoGrabberAvailable) {
|
||||
if (!window.serverConfig.grabberV4L2.enable) {
|
||||
conf_editor_instCapt.getEditor("root.instCapture.v4lEnable").setValue(false);
|
||||
conf_editor_instCapt.getEditor("root.instCapture.v4lEnable").disable();
|
||||
}
|
||||
else {
|
||||
conf_editor_instCapt.getEditor("root.instCapture.v4lEnable").setValue(window.serverConfig.instCapture.v4lEnable);
|
||||
|
||||
}
|
||||
} else {
|
||||
showInputOptionForItem(conf_editor_instCapt, "instCapture", "v4lGrabberDevice", false);
|
||||
showInputOptionForItem(conf_editor_instCapt, "instCapture", "v4lEnable", false);
|
||||
showInputOptionForItem(conf_editor_instCapt, "instCapture", "v4lPriority", false);
|
||||
}
|
||||
|
||||
});
|
||||
@ -75,6 +91,7 @@ $(document).ready(function () {
|
||||
});
|
||||
|
||||
conf_editor_instCapt.watch('root.instCapture.v4lEnable', () => {
|
||||
console.log("instCapt.watch(root.instCapture.v4lEnable");
|
||||
var videoEnable = conf_editor_instCapt.getEditor("root.instCapture.v4lEnable").getValue();
|
||||
if (videoEnable) {
|
||||
conf_editor_instCapt.getEditor("root.instCapture.v4lGrabberDevice").setValue(window.serverConfig.grabberV4L2.available_devices);
|
||||
|
@ -1,7 +1,10 @@
|
||||
$(document).ready(function () {
|
||||
performTranslation();
|
||||
|
||||
var BOBLIGHT_ENABLED = window.comps.find(element => element.name == "BOBLIGHTSERVER");
|
||||
var BOBLIGHT_ENABLED = (jQuery.inArray("boblight", window.serverInfo.services) !== -1);
|
||||
var FORWARDER_ENABLED = (jQuery.inArray("forwarder", window.serverInfo.services) !== -1);
|
||||
var FLATBUF_SERVER_ENABLED = (jQuery.inArray("flatbuffer", window.serverInfo.services) !== -1);
|
||||
var PROTOTBUF_SERVER_ENABLED = (jQuery.inArray("protobuffer", window.serverInfo.services) !== -1);
|
||||
|
||||
var conf_editor_net = null;
|
||||
var conf_editor_json = null;
|
||||
@ -24,14 +27,18 @@ $(document).ready(function () {
|
||||
$('#conf_cont_json').append(createHelpTable(window.schema.jsonServer.properties, $.i18n("edt_conf_js_heading_title")));
|
||||
|
||||
//flatbufserver
|
||||
if (FLATBUF_SERVER_ENABLED) {
|
||||
$('#conf_cont').append(createRow('conf_cont_flatbuf'));
|
||||
$('#conf_cont_flatbuf').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fbs_heading_title"), 'editor_container_fbserver', 'btn_submit_fbserver', 'panel-system'));
|
||||
$('#conf_cont_flatbuf').append(createHelpTable(window.schema.flatbufServer.properties, $.i18n("edt_conf_fbs_heading_title"), "flatbufServerHelpPanelId"));
|
||||
}
|
||||
|
||||
//protoserver
|
||||
if (PROTOTBUF_SERVER_ENABLED) {
|
||||
$('#conf_cont').append(createRow('conf_cont_proto'));
|
||||
$('#conf_cont_proto').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_pbs_heading_title"), 'editor_container_protoserver', 'btn_submit_protoserver', 'panel-system'));
|
||||
$('#conf_cont_proto').append(createHelpTable(window.schema.protoServer.properties, $.i18n("edt_conf_pbs_heading_title"), "protoServerHelpPanelId"));
|
||||
}
|
||||
|
||||
//boblight
|
||||
if (BOBLIGHT_ENABLED) {
|
||||
@ -41,21 +48,30 @@ $(document).ready(function () {
|
||||
}
|
||||
|
||||
//forwarder
|
||||
if (FORWARDER_ENABLED) {
|
||||
if (storedAccess != 'default') {
|
||||
$('#conf_cont').append(createRow('conf_cont_fw'));
|
||||
$('#conf_cont_fw').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fw_heading_title"), 'editor_container_forwarder', 'btn_submit_forwarder', 'panel-system'));
|
||||
$('#conf_cont_fw').append(createHelpTable(window.schema.forwarder.properties, $.i18n("edt_conf_fw_heading_title"), "forwarderHelpPanelId"));
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
$('#conf_cont').addClass('row');
|
||||
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_net_heading_title"), 'editor_container_net', 'btn_submit_net'));
|
||||
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_js_heading_title"), 'editor_container_jsonserver', 'btn_submit_jsonserver'));
|
||||
if (FLATBUF_SERVER_ENABLED) {
|
||||
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fbs_heading_title"), 'editor_container_fbserver', 'btn_submit_fbserver'));
|
||||
}
|
||||
if (PROTOTBUF_SERVER_ENABLED) {
|
||||
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_pbs_heading_title"), 'editor_container_protoserver', 'btn_submit_protoserver'));
|
||||
}
|
||||
if (BOBLIGHT_ENABLED) {
|
||||
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_bobls_heading_title"), 'editor_container_boblightserver', 'btn_submit_boblightserver'));
|
||||
}
|
||||
if (FORWARDER_ENABLED) {
|
||||
$('#conf_cont').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fw_heading_title"), 'editor_container_forwarder', 'btn_submit_forwarder'));
|
||||
|
||||
}
|
||||
$("#conf_cont_tok").removeClass('row');
|
||||
}
|
||||
|
||||
@ -86,6 +102,7 @@ $(document).ready(function () {
|
||||
});
|
||||
|
||||
//flatbuffer
|
||||
if (FLATBUF_SERVER_ENABLED) {
|
||||
conf_editor_fbs = createJsonEditor('editor_container_fbserver', {
|
||||
flatbufServer: window.schema.flatbufServer
|
||||
}, true, true);
|
||||
@ -105,8 +122,10 @@ $(document).ready(function () {
|
||||
$('#btn_submit_fbserver').off().on('click', function () {
|
||||
requestWriteConfig(conf_editor_fbs.getValue());
|
||||
});
|
||||
}
|
||||
|
||||
//protobuffer
|
||||
if (PROTOTBUF_SERVER_ENABLED) {
|
||||
conf_editor_proto = createJsonEditor('editor_container_protoserver', {
|
||||
protoServer: window.schema.protoServer
|
||||
}, true, true);
|
||||
@ -126,6 +145,7 @@ $(document).ready(function () {
|
||||
$('#btn_submit_protoserver').off().on('click', function () {
|
||||
requestWriteConfig(conf_editor_proto.getValue());
|
||||
});
|
||||
}
|
||||
|
||||
//boblight
|
||||
if (BOBLIGHT_ENABLED) {
|
||||
@ -150,8 +170,9 @@ $(document).ready(function () {
|
||||
});
|
||||
}
|
||||
|
||||
if (storedAccess != 'default') {
|
||||
//forwarder
|
||||
if (FORWARDER_ENABLED) {
|
||||
if (storedAccess != 'default') {
|
||||
conf_editor_forw = createJsonEditor('editor_container_forwarder', {
|
||||
forwarder: window.schema.forwarder
|
||||
}, true, true);
|
||||
@ -172,17 +193,24 @@ $(document).ready(function () {
|
||||
requestWriteConfig(conf_editor_forw.getValue());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//create introduction
|
||||
if (window.showOptHelp) {
|
||||
createHint("intro", $.i18n('conf_network_net_intro'), "editor_container_net");
|
||||
createHint("intro", $.i18n('conf_network_json_intro'), "editor_container_jsonserver");
|
||||
if (FLATBUF_SERVER_ENABLED) {
|
||||
createHint("intro", $.i18n('conf_network_fbs_intro'), "editor_container_fbserver");
|
||||
}
|
||||
if (PROTOTBUF_SERVER_ENABLED) {
|
||||
createHint("intro", $.i18n('conf_network_proto_intro'), "editor_container_protoserver");
|
||||
}
|
||||
if (BOBLIGHT_ENABLED) {
|
||||
createHint("intro", $.i18n('conf_network_bobl_intro'), "editor_container_boblightserver");
|
||||
}
|
||||
if (FORWARDER_ENABLED) {
|
||||
createHint("intro", $.i18n('conf_network_forw_intro'), "editor_container_forwarder");
|
||||
}
|
||||
createHint("intro", $.i18n('conf_network_tok_intro'), "tok_desc_cont");
|
||||
}
|
||||
|
||||
|
@ -1208,7 +1208,9 @@ function getSystemInfo() {
|
||||
info += '- UI Lang: ' + storedLang + ' (BrowserLang: ' + navigator.language + ')\n';
|
||||
info += '- UI Access: ' + storedAccess + '\n';
|
||||
//info += '- Log lvl: ' + window.serverConfig.logger.level + '\n';
|
||||
info += '- Avail Capt: ' + window.serverInfo.grabbers.available + '\n';
|
||||
info += '- Avail Screen Cap.: ' + window.serverInfo.grabbers.screen.available + '\n';
|
||||
info += '- Avail Video Cap.: ' + window.serverInfo.grabbers.video.available + '\n';
|
||||
info += '- Avail Services: ' + window.serverInfo.services + '\n';
|
||||
info += '- Config path: ' + shy.rootPath + '\n';
|
||||
info += '- Database: ' + (shy.readOnlyMode ? "ready-only" : "read/write") + '\n';
|
||||
|
||||
|
@ -27,7 +27,6 @@ sudo apt-get install \
|
||||
libssl-dev \
|
||||
libqt5sql5-sqlite \
|
||||
libqt5svg5-dev \
|
||||
zlib1g-dev \
|
||||
|
||||
if [ -e /dev/vc-cma -a -e /dev/vc-mem ]
|
||||
then
|
||||
|
@ -1,10 +1,9 @@
|
||||
# - Find the native BCM includes and library
|
||||
# Find Broadcom VideoCore firmware installation
|
||||
#
|
||||
|
||||
# This module defines
|
||||
# BCM_INCLUDE_DIR, where to find png.h, etc.
|
||||
# BCM_LIBRARIES, the libraries to link against to use PNG.
|
||||
# BCM_FOUND, If false, do not try to use PNG.
|
||||
# BCM_INCLUDE_DIR - The Broadcom VideoCore include directory
|
||||
# BCM_LIBRARIES - The Broadcom VideoCore BCM_HOST library.
|
||||
# BCM_FOUND - BCM_HOST is available
|
||||
#
|
||||
|
||||
FIND_PATH(BCM_INCLUDE_DIR
|
||||
|
@ -1,60 +0,0 @@
|
||||
# - Find the native PNG includes and library
|
||||
#
|
||||
|
||||
# This module defines
|
||||
# PNG_INCLUDE_DIR, where to find png.h, etc.
|
||||
# PNG_LIBRARIES, the libraries to link against to use PNG.
|
||||
# PNG_DEFINITIONS - You should ADD_DEFINITONS(${PNG_DEFINITIONS}) before compiling code that includes png library files.
|
||||
# PNG_FOUND, If false, do not try to use PNG.
|
||||
# also defined, but not for general use are
|
||||
# PNG_LIBRARY, where to find the PNG library.
|
||||
# None of the above will be defined unles zlib can be found.
|
||||
# PNG depends on Zlib
|
||||
#
|
||||
|
||||
INCLUDE(FindZLIB)
|
||||
|
||||
SET(PNG_FOUND "NO")
|
||||
|
||||
IF(ZLIB_FOUND)
|
||||
FIND_PATH(PNG_PNG_INCLUDE_DIR png.h
|
||||
/usr/local/include
|
||||
/usr/include
|
||||
/usr/local/include/libpng # OpenBSD
|
||||
)
|
||||
|
||||
SET(PNG_NAMES ${PNG_NAMES} png libpng)
|
||||
FIND_LIBRARY(PNG_LIBRARY
|
||||
NAMES ${PNG_NAMES}
|
||||
PATHS /usr/lib64 /usr/lib /usr/local/lib
|
||||
)
|
||||
|
||||
IF (PNG_LIBRARY AND PNG_PNG_INCLUDE_DIR)
|
||||
# png.h includes zlib.h. Sigh.
|
||||
SET(PNG_INCLUDE_DIR ${PNG_PNG_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR} )
|
||||
SET(PNG_LIBRARIES ${PNG_LIBRARY} ${ZLIB_LIBRARY})
|
||||
SET(PNG_FOUND "YES")
|
||||
SET(HAVE_PNG_H)
|
||||
IF (CYGWIN)
|
||||
IF(BUILD_SHARED_LIBS)
|
||||
# No need to define PNG_USE_DLL here, because it's default for Cygwin.
|
||||
ELSE(BUILD_SHARED_LIBS)
|
||||
SET (PNG_DEFINITIONS -DPNG_STATIC)
|
||||
ENDIF(BUILD_SHARED_LIBS)
|
||||
ENDIF (CYGWIN)
|
||||
|
||||
ENDIF (PNG_LIBRARY AND PNG_PNG_INCLUDE_DIR)
|
||||
|
||||
ENDIF(ZLIB_FOUND)
|
||||
|
||||
IF (PNG_FOUND)
|
||||
IF (NOT PNG_FIND_QUIETLY)
|
||||
MESSAGE(STATUS "Found PNG: ${PNG_LIBRARY}")
|
||||
ENDIF (NOT PNG_FIND_QUIETLY)
|
||||
ELSE (PNG_FOUND)
|
||||
IF (PNG_FIND_REQUIRED)
|
||||
MESSAGE(FATAL_ERROR "Could not find PNG library")
|
||||
ENDIF (PNG_FIND_REQUIRED)
|
||||
ENDIF (PNG_FOUND)
|
||||
|
||||
MARK_AS_ADVANCED(PNG_PNG_INCLUDE_DIR PNG_LIBRARY )
|
@ -5,19 +5,27 @@
|
||||
<key>CFBundleDeveloperRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.hyperion-project.hyperiond</string>
|
||||
<string>${MACOSX_BUNDLE_GUI_IDENTIFIER}</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Hyperion</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Hyperion</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Hyperion.icns</string>
|
||||
<string>${MACOSX_BUNDLE_ICON_FILE}</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>${MACOSX_BUNDLE_INFO_STRING}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
|
||||
<key>CFBundleLongVersionString</key>
|
||||
<string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>MIT License</string>
|
||||
<string>${MACOSX_BUNDLE_COPYRIGHT}</string>
|
||||
<key>Source Code</key>
|
||||
<string>"https://github.com/hyperion-project/hyperion.ng"</string>
|
||||
</dict>
|
23
dependencies/CMakeLists.txt
vendored
23
dependencies/CMakeLists.txt
vendored
@ -16,6 +16,7 @@ endif()
|
||||
# FLATBUFFER
|
||||
#=============================================================================
|
||||
|
||||
if(ENABLE_FLATBUF_SERVER OR ENABLE_FLATBUF_CONNECT)
|
||||
set(USE_SYSTEM_FLATBUFFERS_LIBS ${DEFAULT_USE_SYSTEM_FLATBUFFERS_LIBS} CACHE BOOL "use flatbuffers library from system")
|
||||
|
||||
if (USE_SYSTEM_FLATBUFFERS_LIBS)
|
||||
@ -40,7 +41,7 @@ else ()
|
||||
|
||||
IF (NOT CMAKE_CROSSCOMPILING)
|
||||
# define the flatc executable at the parent scope
|
||||
get_property(FLATBUFFERS_FLATC_EXECUTABLE TARGET flatc PROPERTY LOCATION)
|
||||
set(FLATBUFFERS_FLATC_EXECUTABLE "$<TARGET_FILE:flatc>")
|
||||
else()
|
||||
#Workaround, set flatc comiplier directory hard, as cmake definitions of flatc do not cater for crosscompile correctly.
|
||||
#Includ of flatc_export.cmake detects that flatc target is defined aand returns before using the definitions written by export
|
||||
@ -52,7 +53,7 @@ set(FLATBUFFERS_INCLUDE_DIRS ${FLATBUFFERS_INCLUDE_DIRS} PARENT_SCOPE)
|
||||
include_directories(${FLATBUFFERS_INCLUDE_DIRS})
|
||||
|
||||
|
||||
message(STATUS "Using flatbuffers compiler: " ${FLATBUFFERS_FLATC_EXECUTABLE})
|
||||
# message(STATUS "Using flatbuffers compiler: " ${FLATBUFFERS_FLATC_EXECUTABLE})
|
||||
|
||||
function(compile_flattbuffer_schema SRC_FBS OUTPUT_DIR)
|
||||
string(REGEX REPLACE "\\.fbs$" "_generated.h" GEN_HEADER ${SRC_FBS})
|
||||
@ -66,24 +67,28 @@ function(compile_flattbuffer_schema SRC_FBS OUTPUT_DIR)
|
||||
"${SRC_FBS}"
|
||||
DEPENDS "${FLATBUFFERS_FLATC_EXECUTABLE}" ${SRC_FBS})
|
||||
endfunction()
|
||||
endif()
|
||||
|
||||
#=============================================================================
|
||||
# PROTOBUFFER
|
||||
#=============================================================================
|
||||
|
||||
if(ENABLE_PROTOBUF_SERVER)
|
||||
|
||||
set(USE_SYSTEM_PROTO_LIBS ${DEFAULT_USE_SYSTEM_PROTO_LIBS} CACHE BOOL "use protobuf library from system")
|
||||
|
||||
if (USE_SYSTEM_PROTO_LIBS)
|
||||
find_package(Protobuf REQUIRED)
|
||||
else ()
|
||||
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared protobuf library")
|
||||
set(protobuf_BUILD_TESTS OFF CACHE BOOL "Build protobuf with tests")
|
||||
set(protobuf_BUILD_SHARED_LIBS OFF CACHE BOOL "Build protobuf shared")
|
||||
set(protobuf_WITH_ZLIB OFF CACHE BOOL "Build protobuf with zlib support")
|
||||
|
||||
if (WIN32)
|
||||
set(protobuf_MSVC_STATIC_RUNTIME OFF CACHE BOOL "Build protobuf static")
|
||||
endif()
|
||||
|
||||
add_subdirectory(external/protobuf)
|
||||
add_subdirectory(external/protobuf/cmake)
|
||||
|
||||
if(CMAKE_CROSSCOMPILING)
|
||||
# when crosscompiling import the protoc executable targets from a file generated by a native build
|
||||
@ -91,22 +96,21 @@ else ()
|
||||
include(${IMPORT_PROTOC})
|
||||
else()
|
||||
# export the protoc compiler so it can be used when cross compiling
|
||||
export(TARGETS protoc_compiler FILE "${CMAKE_BINARY_DIR}/protoc_export.cmake")
|
||||
export(TARGETS protoc FILE "${CMAKE_BINARY_DIR}/protoc_export.cmake")
|
||||
endif()
|
||||
|
||||
# define the include for the protobuf library at the parent scope
|
||||
set(PROTOBUF_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/external/protobuf/src")
|
||||
|
||||
# define the protoc executable at the parent scope
|
||||
get_property(PROTOBUF_PROTOC_EXECUTABLE TARGET protoc_compiler PROPERTY LOCATION)
|
||||
set(PROTOBUF_PROTOC_EXECUTABLE "$<TARGET_FILE:protoc>")
|
||||
endif()
|
||||
option(protobuf_BUILD_TESTS "" OFF)
|
||||
|
||||
set(PROTOBUF_PROTOC_EXECUTABLE ${PROTOBUF_PROTOC_EXECUTABLE} PARENT_SCOPE)
|
||||
set(PROTOBUF_INCLUDE_DIRS ${PROTOBUF_INCLUDE_DIRS} PARENT_SCOPE)
|
||||
include_directories(${PROTOBUF_INCLUDE_DIRS})
|
||||
|
||||
message(STATUS "Using protobuf compiler: " ${PROTOBUF_PROTOC_EXECUTABLE})
|
||||
# message(STATUS "Using protobuf compiler: " ${PROTOBUF_PROTOC_EXECUTABLE})
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2009 Kitware, Inc.
|
||||
@ -155,7 +159,7 @@ function(PROTOBUF_GENERATE_CPP SRCS HDRS)
|
||||
if(CMAKE_CROSSCOMPILING OR USE_SYSTEM_PROTO_LIBS)
|
||||
set(PROTOC_DEPENDENCY ${PROTOBUF_PROTOC_EXECUTABLE})
|
||||
else()
|
||||
set(PROTOC_DEPENDENCY protoc_compiler)
|
||||
set(PROTOC_DEPENDENCY protoc)
|
||||
endif()
|
||||
|
||||
set(${SRCS})
|
||||
@ -184,6 +188,7 @@ function(PROTOBUF_GENERATE_CPP SRCS HDRS)
|
||||
set(${SRCS} ${${SRCS}} PARENT_SCOPE)
|
||||
set(${HDRS} ${${HDRS}} PARENT_SCOPE)
|
||||
endfunction()
|
||||
endif()
|
||||
|
||||
#=============================================================================
|
||||
# MBEDTLS
|
||||
|
2
dependencies/external/protobuf
vendored
2
dependencies/external/protobuf
vendored
@ -1 +1 @@
|
||||
Subproject commit adce8a99fdab90f290d659b6b3bf2d09b721e24a
|
||||
Subproject commit b360b9e388351aaed97f2ead98dd951fb5f1951e
|
@ -74,7 +74,7 @@ cd $HYPERION_HOME
|
||||
|
||||
```console
|
||||
sudo apt-get update
|
||||
sudo apt-get install git cmake build-essential qtbase5-dev libqt5serialport5-dev libqt5sql5-sqlite libqt5svg5-dev libqt5x11extras5-dev libusb-1.0-0-dev python3-dev libavahi-core-dev libavahi-compat-libdnssd-dev libturbojpeg0-dev libssl-dev zlib1g-dev
|
||||
sudo apt-get install git cmake build-essential qtbase5-dev libqt5serialport5-dev libqt5sql5-sqlite libqt5svg5-dev libqt5x11extras5-dev libusb-1.0-0-dev python3-dev libavahi-core-dev libavahi-compat-libdnssd-dev libturbojpeg0-dev libssl-dev
|
||||
```
|
||||
|
||||
**For Linux X11/XXCB grabber support**
|
||||
@ -125,7 +125,7 @@ To install on OS X you either need Homebrew or Macport but Homebrew is the recom
|
||||
|
||||
First you need to install the dependencies:
|
||||
```console
|
||||
brew install qt5 python3 cmake libusb doxygen zlib
|
||||
brew install qt5 python3 cmake libusb doxygen
|
||||
```
|
||||
|
||||
## Windows
|
||||
|
15
include/grabber/GrabberType.h
Normal file
15
include/grabber/GrabberType.h
Normal file
@ -0,0 +1,15 @@
|
||||
#ifndef GRABBERTYPE_H
|
||||
#define GRABBERTYPE_H
|
||||
|
||||
enum class GrabberType {
|
||||
SCREEN,
|
||||
VIDEO,
|
||||
};
|
||||
|
||||
enum class GrabberTypeFilter {
|
||||
ALL,
|
||||
SCREEN,
|
||||
VIDEO,
|
||||
};
|
||||
|
||||
#endif // GRABBERTYPE_H
|
@ -16,6 +16,8 @@
|
||||
#include <utils/settings.h>
|
||||
#include <utils/VideoStandard.h>
|
||||
|
||||
#include <grabber/GrabberType.h>
|
||||
|
||||
class Grabber;
|
||||
class GlobalSignals;
|
||||
class QTimer;
|
||||
@ -67,16 +69,17 @@ public:
|
||||
///
|
||||
/// @brief Get active grabber name
|
||||
/// @param hyperionInd The instance index
|
||||
/// @param type Filter for a given grabber type
|
||||
/// @return Active grabbers
|
||||
///
|
||||
virtual QStringList getActive(int inst) const;
|
||||
virtual QStringList getActive(int inst, GrabberTypeFilter type = GrabberTypeFilter::ALL) const;
|
||||
|
||||
bool getSysGrabberState() const { return GLOBAL_GRABBER_SYS_ENABLE; }
|
||||
void setSysGrabberState(bool sysGrabberState){ GLOBAL_GRABBER_SYS_ENABLE = sysGrabberState; }
|
||||
bool getV4lGrabberState() const { return GLOBAL_GRABBER_V4L_ENABLE; }
|
||||
void setV4lGrabberState(bool v4lGrabberState){ GLOBAL_GRABBER_V4L_ENABLE = v4lGrabberState; }
|
||||
|
||||
static QStringList availableGrabbers();
|
||||
static QStringList availableGrabbers(GrabberTypeFilter type = GrabberTypeFilter::ALL);
|
||||
|
||||
public:
|
||||
template <typename Grabber_T>
|
||||
|
@ -38,7 +38,9 @@
|
||||
// Forward class declaration
|
||||
class HyperionDaemon;
|
||||
class ImageProcessor;
|
||||
#if defined(ENABLE_FORWARDER)
|
||||
class MessageForwarder;
|
||||
#endif
|
||||
class LinearColorSmoothing;
|
||||
class EffectEngine;
|
||||
class MultiColorAdjustment;
|
||||
@ -46,7 +48,7 @@ class ColorAdjustment;
|
||||
class SettingsManager;
|
||||
class BGEffectHandler;
|
||||
class CaptureCont;
|
||||
#if defined(ENABLE_BOBLIGHT)
|
||||
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||
class BoblightServer;
|
||||
#endif
|
||||
class LedDeviceWrapper;
|
||||
@ -534,8 +536,10 @@ private:
|
||||
/// Effect engine
|
||||
EffectEngine * _effectEngine;
|
||||
|
||||
#if defined(ENABLE_FORWARDER)
|
||||
// Message forwarder
|
||||
MessageForwarder * _messageForwarder;
|
||||
#endif
|
||||
|
||||
/// Logger instance
|
||||
Logger * _log;
|
||||
@ -555,7 +559,7 @@ private:
|
||||
|
||||
VideoMode _currVideoMode = VideoMode::VIDEO_2D;
|
||||
|
||||
#if defined(ENABLE_BOBLIGHT)
|
||||
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||
/// Boblight instance
|
||||
BoblightServer* _boblightServer;
|
||||
#endif
|
||||
|
@ -6,7 +6,7 @@
|
||||
#include <utils/ColorRgb.h>
|
||||
#include <utils/Components.h>
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
|
||||
#include <QRecursiveMutex>
|
||||
#else
|
||||
#include <QMutex>
|
||||
@ -129,7 +129,7 @@ protected:
|
||||
/// contains all available led device constructors
|
||||
static LedDeviceRegistry _ledDeviceMap;
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
|
||||
static QRecursiveMutex _ledDeviceMapLock;
|
||||
#else
|
||||
static QMutex _ledDeviceMapLock;
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
#undef slots
|
||||
#include <Python.h>
|
||||
#define slots
|
||||
#define slots Q_SLOTS
|
||||
|
||||
// decl
|
||||
extern PyThreadState* mainThreadState;
|
||||
|
@ -87,6 +87,22 @@ private slots:
|
||||
///
|
||||
void handleMSearchRequest(const QString& target, const QString& mx, const QString address, quint16 port);
|
||||
|
||||
private:
|
||||
WebServer* _webserver;
|
||||
QString _localAddress;
|
||||
QString _uuid;
|
||||
|
||||
/// Targets for announcement
|
||||
std::vector<QString> _deviceList;
|
||||
|
||||
//Handle elements deprecated from Qt 6.x and reported as deprecatedsince 5.15.x
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_DEPRECATED
|
||||
#endif
|
||||
|
||||
private slots:
|
||||
|
||||
///
|
||||
/// @brief Handle changes in the network configuration
|
||||
/// @param conig New config
|
||||
@ -96,12 +112,12 @@ private slots:
|
||||
#endif
|
||||
|
||||
private:
|
||||
WebServer* _webserver;
|
||||
QString _localAddress;
|
||||
|
||||
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
|
||||
QNetworkConfigurationManager* _NCA;
|
||||
#endif
|
||||
QString _uuid;
|
||||
/// Targets for announcement
|
||||
std::vector<QString> _deviceList;
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
||||
QT_WARNING_POP
|
||||
#endif
|
||||
};
|
||||
|
@ -15,8 +15,10 @@ enum Components
|
||||
COMP_ALL,
|
||||
COMP_SMOOTHING,
|
||||
COMP_BLACKBORDER,
|
||||
#if defined(ENABLE_FORWARDER)
|
||||
COMP_FORWARDER,
|
||||
#if defined(ENABLE_BOBLIGHT)
|
||||
#endif
|
||||
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||
COMP_BOBLIGHTSERVER,
|
||||
#endif
|
||||
COMP_GRABBER,
|
||||
@ -25,8 +27,12 @@ enum Components
|
||||
COMP_IMAGE,
|
||||
COMP_EFFECT,
|
||||
COMP_LEDDEVICE,
|
||||
#if defined(ENABLE_FLATBUF_SERVER)
|
||||
COMP_FLATBUFSERVER,
|
||||
#endif
|
||||
#if defined(ENABLE_PROTOBUF_SERVER)
|
||||
COMP_PROTOSERVER
|
||||
#endif
|
||||
};
|
||||
|
||||
inline const char* componentToString(Components c)
|
||||
@ -36,8 +42,10 @@ inline const char* componentToString(Components c)
|
||||
case COMP_ALL: return "Hyperion";
|
||||
case COMP_SMOOTHING: return "Smoothing";
|
||||
case COMP_BLACKBORDER: return "Blackborder detector";
|
||||
#if defined(ENABLE_FORWARDER)
|
||||
case COMP_FORWARDER: return "Json/Proto forwarder";
|
||||
#if defined(ENABLE_BOBLIGHT)
|
||||
#endif
|
||||
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||
case COMP_BOBLIGHTSERVER:return "Boblight server";
|
||||
#endif
|
||||
case COMP_GRABBER: return "Framegrabber";
|
||||
@ -46,8 +54,12 @@ inline const char* componentToString(Components c)
|
||||
case COMP_EFFECT: return "Effect";
|
||||
case COMP_IMAGE: return "Image";
|
||||
case COMP_LEDDEVICE: return "LED device";
|
||||
#if defined(ENABLE_FLATBUF_SERVER)
|
||||
case COMP_FLATBUFSERVER: return "Image Receiver";
|
||||
#endif
|
||||
#if defined(ENABLE_PROTOBUF_SERVER)
|
||||
case COMP_PROTOSERVER: return "Proto Server";
|
||||
#endif
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
@ -59,8 +71,10 @@ inline const char* componentToIdString(Components c)
|
||||
case COMP_ALL: return "ALL";
|
||||
case COMP_SMOOTHING: return "SMOOTHING";
|
||||
case COMP_BLACKBORDER: return "BLACKBORDER";
|
||||
#if defined(ENABLE_FORWARDER)
|
||||
case COMP_FORWARDER: return "FORWARDER";
|
||||
#if defined(ENABLE_BOBLIGHT)
|
||||
#endif
|
||||
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||
case COMP_BOBLIGHTSERVER:return "BOBLIGHTSERVER";
|
||||
#endif
|
||||
case COMP_GRABBER: return "GRABBER";
|
||||
@ -69,8 +83,12 @@ inline const char* componentToIdString(Components c)
|
||||
case COMP_EFFECT: return "EFFECT";
|
||||
case COMP_IMAGE: return "IMAGE";
|
||||
case COMP_LEDDEVICE: return "LEDDEVICE";
|
||||
#if defined(ENABLE_FLATBUF_SERVER)
|
||||
case COMP_FLATBUFSERVER: return "FLATBUFSERVER";
|
||||
#endif
|
||||
#if defined(ENABLE_PROTOBUF_SERVER)
|
||||
case COMP_PROTOSERVER: return "PROTOSERVER";
|
||||
#endif
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
@ -81,8 +99,10 @@ inline Components stringToComponent(const QString& component)
|
||||
if (cmp == "ALL") return COMP_ALL;
|
||||
if (cmp == "SMOOTHING") return COMP_SMOOTHING;
|
||||
if (cmp == "BLACKBORDER") return COMP_BLACKBORDER;
|
||||
#if defined(ENABLE_FORWARDER)
|
||||
if (cmp == "FORWARDER") return COMP_FORWARDER;
|
||||
#if defined(ENABLE_BOBLIGHT)
|
||||
#endif
|
||||
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||
if (cmp == "BOBLIGHTSERVER")return COMP_BOBLIGHTSERVER;
|
||||
#endif
|
||||
if (cmp == "GRABBER") return COMP_GRABBER;
|
||||
@ -91,8 +111,12 @@ inline Components stringToComponent(const QString& component)
|
||||
if (cmp == "EFFECT") return COMP_EFFECT;
|
||||
if (cmp == "IMAGE") return COMP_IMAGE;
|
||||
if (cmp == "LEDDEVICE") return COMP_LEDDEVICE;
|
||||
#if defined(ENABLE_FLATBUF_SERVER)
|
||||
if (cmp == "FLATBUFSERVER") return COMP_FLATBUFSERVER;
|
||||
#endif
|
||||
#if defined(ENABLE_PROTOBUF_SERVER)
|
||||
if (cmp == "PROTOSERVER") return COMP_PROTOSERVER;
|
||||
#endif
|
||||
return COMP_INVALID;
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
#include <QAtomicInteger>
|
||||
#include <QList>
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
|
||||
#include <QRecursiveMutex>
|
||||
#else
|
||||
#include <QMutex>
|
||||
@ -86,7 +86,7 @@ protected:
|
||||
private:
|
||||
void write(const Logger::T_LOG_MESSAGE & message);
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
|
||||
static QRecursiveMutex MapLock;
|
||||
#else
|
||||
static QMutex MapLock;
|
||||
|
@ -1,4 +1,5 @@
|
||||
#pragma once
|
||||
#include <memory>
|
||||
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
@ -35,7 +36,7 @@ private:
|
||||
SysInfo();
|
||||
void getCPUInfo();
|
||||
|
||||
static SysInfo* _instance;
|
||||
static std::unique_ptr <SysInfo> _instance;
|
||||
|
||||
HyperionSysInfo _sysinfo;
|
||||
};
|
||||
|
@ -7,12 +7,23 @@ add_subdirectory(hyperion)
|
||||
add_subdirectory(commandline)
|
||||
add_subdirectory(blackborder)
|
||||
add_subdirectory(jsonserver)
|
||||
add_subdirectory(flatbufserver)
|
||||
add_subdirectory(protoserver)
|
||||
add_subdirectory(ssdp)
|
||||
if(ENABLE_BOBLIGHT)
|
||||
|
||||
if(ENABLE_BOBLIGHT_SERVER)
|
||||
add_subdirectory(boblightserver)
|
||||
endif()
|
||||
|
||||
if(ENABLE_FLATBUF_SERVER OR ENABLE_FLATBUF_CONNECT)
|
||||
add_subdirectory(flatbufserver)
|
||||
endif()
|
||||
|
||||
if(ENABLE_PROTOBUF_SERVER)
|
||||
add_subdirectory(protoserver)
|
||||
endif()
|
||||
|
||||
if(ENABLE_FORWARDER)
|
||||
add_subdirectory(forwarder)
|
||||
endif()
|
||||
|
||||
add_subdirectory(leddevice)
|
||||
add_subdirectory(utils)
|
||||
add_subdirectory(effectengine)
|
||||
@ -22,14 +33,15 @@ add_subdirectory(db)
|
||||
add_subdirectory(api)
|
||||
add_subdirectory(python)
|
||||
|
||||
if(ENABLE_CEC)
|
||||
add_subdirectory(cec)
|
||||
endif()
|
||||
|
||||
add_subdirectory(ssdp)
|
||||
if(ENABLE_AVAHI)
|
||||
add_subdirectory(bonjour)
|
||||
endif()
|
||||
|
||||
if(ENABLE_CEC)
|
||||
add_subdirectory(cec)
|
||||
endif()
|
||||
|
||||
if(ENABLE_EXPERIMENTAL)
|
||||
add_subdirectory(experimental)
|
||||
endif()
|
||||
|
@ -512,34 +512,71 @@ void JsonAPI::handleServerInfoCommand(const QJsonObject &message, const QString
|
||||
info["ledDevices"] = ledDevices;
|
||||
|
||||
QJsonObject grabbers;
|
||||
QJsonArray availableGrabbers;
|
||||
|
||||
#if defined(ENABLE_DISPMANX) || defined(ENABLE_V4L2) || defined(ENABLE_MF) || defined(ENABLE_FB) || defined(ENABLE_AMLOGIC) || defined(ENABLE_OSX) || defined(ENABLE_X11) || defined(ENABLE_XCB) || defined(ENABLE_QT)
|
||||
// *** Deprecated ***
|
||||
//QJsonArray availableGrabbers;
|
||||
//if ( GrabberWrapper::getInstance() != nullptr )
|
||||
//{
|
||||
// QStringList activeGrabbers = GrabberWrapper::getInstance()->getActive(_hyperion->getInstanceIndex());
|
||||
// QJsonArray activeGrabberNames;
|
||||
// for (auto grabberName : activeGrabbers)
|
||||
// {
|
||||
// activeGrabberNames.append(grabberName);
|
||||
// }
|
||||
|
||||
// grabbers["active"] = activeGrabberNames;
|
||||
//}
|
||||
//for (auto grabber : GrabberWrapper::availableGrabbers(GrabberTypeFilter::ALL))
|
||||
//{
|
||||
// availableGrabbers.append(grabber);
|
||||
//}
|
||||
|
||||
//grabbers["available"] = availableGrabbers;
|
||||
|
||||
QJsonObject screenGrabbers;
|
||||
if (GrabberWrapper::getInstance() != nullptr)
|
||||
{
|
||||
QStringList activeGrabbers = GrabberWrapper::getInstance()->getActive(_hyperion->getInstanceIndex());
|
||||
QStringList activeGrabbers = GrabberWrapper::getInstance()->getActive(_hyperion->getInstanceIndex(), GrabberTypeFilter::SCREEN);
|
||||
QJsonArray activeGrabberNames;
|
||||
for (auto grabberName : activeGrabbers)
|
||||
{
|
||||
activeGrabberNames.append(grabberName);
|
||||
}
|
||||
|
||||
grabbers["active"] = activeGrabberNames;
|
||||
screenGrabbers["active"] = activeGrabberNames;
|
||||
}
|
||||
|
||||
// get available grabbers
|
||||
for (auto grabber : GrabberWrapper::availableGrabbers())
|
||||
QJsonArray availableScreenGrabbers;
|
||||
for (auto grabber : GrabberWrapper::availableGrabbers(GrabberTypeFilter::SCREEN))
|
||||
{
|
||||
availableGrabbers.append(grabber);
|
||||
availableScreenGrabbers.append(grabber);
|
||||
}
|
||||
screenGrabbers["available"] = availableScreenGrabbers;
|
||||
|
||||
QJsonObject videoGrabbers;
|
||||
if (GrabberWrapper::getInstance() != nullptr)
|
||||
{
|
||||
QStringList activeGrabbers = GrabberWrapper::getInstance()->getActive(_hyperion->getInstanceIndex(), GrabberTypeFilter::VIDEO);
|
||||
QJsonArray activeGrabberNames;
|
||||
for (auto grabberName : activeGrabbers)
|
||||
{
|
||||
activeGrabberNames.append(grabberName);
|
||||
}
|
||||
|
||||
#endif
|
||||
videoGrabbers["active"] = activeGrabberNames;
|
||||
}
|
||||
QJsonArray availableVideoGrabbers;
|
||||
for (auto grabber : GrabberWrapper::availableGrabbers(GrabberTypeFilter::VIDEO))
|
||||
{
|
||||
availableVideoGrabbers.append(grabber);
|
||||
}
|
||||
videoGrabbers["available"] = availableVideoGrabbers;
|
||||
|
||||
grabbers["available"] = availableGrabbers;
|
||||
info["videomode"] = QString(videoMode2String(_hyperion->getCurrentVideoMode()));
|
||||
grabbers.insert("screen", screenGrabbers);
|
||||
grabbers.insert("video", videoGrabbers);
|
||||
info["grabbers"] = grabbers;
|
||||
|
||||
info["videomode"] = QString(videoMode2String(_hyperion->getCurrentVideoMode()));
|
||||
|
||||
QJsonObject cecInfo;
|
||||
#if defined(ENABLE_CEC)
|
||||
cecInfo["enabled"] = true;
|
||||
@ -548,6 +585,36 @@ void JsonAPI::handleServerInfoCommand(const QJsonObject &message, const QString
|
||||
#endif
|
||||
info["cec"] = cecInfo;
|
||||
|
||||
// get available services
|
||||
QJsonArray services;
|
||||
|
||||
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||
services.append("boblight");
|
||||
#endif
|
||||
|
||||
#if defined(ENABLE_CEC)
|
||||
services.append("cec");
|
||||
#endif
|
||||
|
||||
#if defined(ENABLE_FORWARDER)
|
||||
services.append("forwarder");
|
||||
#endif
|
||||
|
||||
#if defined(ENABLE_FLATBUF_SERVER)
|
||||
services.append("flatbuffer");
|
||||
#endif
|
||||
|
||||
#if defined(ENABLE_PROTOBUF_SERVER)
|
||||
services.append("protobuffer");
|
||||
#endif
|
||||
|
||||
if (!availableScreenGrabbers.isEmpty() || !availableVideoGrabbers.isEmpty() || services.contains("flatbuffer") || services.contains("protobuffer"))
|
||||
{
|
||||
services.append("borderdetection");
|
||||
}
|
||||
|
||||
info["services"] = services;
|
||||
|
||||
// get available components
|
||||
QJsonArray component;
|
||||
std::map<hyperion::Components, bool> components = _hyperion->getComponentRegister().getRegister();
|
||||
|
@ -43,6 +43,14 @@ BlackBorderProcessor::~BlackBorderProcessor()
|
||||
void BlackBorderProcessor::handleSettingsUpdate(settings::type type, const QJsonDocument& config)
|
||||
{
|
||||
if(type == settings::BLACKBORDER)
|
||||
{
|
||||
if (_hyperion->isComponentEnabled(COMP_BLACKBORDER) == -1)
|
||||
{
|
||||
//Disable, if service is not available
|
||||
_enabled = false;
|
||||
_userEnabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
const QJsonObject& obj = config.object();
|
||||
_unknownSwitchCnt = obj["unknownFrameCnt"].toInt(600);
|
||||
@ -67,6 +75,7 @@ void BlackBorderProcessor::handleSettingsUpdate(settings::type type, const QJson
|
||||
handleCompStateChangeRequest(hyperion::COMP_BLACKBORDER, obj["enable"].toBool(true));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void BlackBorderProcessor::handleCompStateChangeRequest(hyperion::Components component, bool enable)
|
||||
{
|
||||
|
@ -118,6 +118,8 @@ void BonjourServiceRegister::registerService(const BonjourRecord &record, quint1
|
||||
connect(bonjourSocket, &QSocketNotifier::activated, this, &BonjourServiceRegister::bonjourSocketReadyRead);
|
||||
}
|
||||
}
|
||||
|
||||
TXTRecordDeallocate(&txtRec);
|
||||
}
|
||||
|
||||
|
||||
|
@ -8,8 +8,6 @@ include_directories(
|
||||
${FLATBUFFERS_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
FILE ( GLOB FLATBUFSERVER_SOURCES "${CURRENT_HEADER_DIR}/*.h" "${CURRENT_SOURCE_DIR}/*.h" "${CURRENT_SOURCE_DIR}/*.cpp" )
|
||||
|
||||
set(Flatbuffer_GENERATED_FBS
|
||||
hyperion_reply_generated.h
|
||||
hyperion_request_generated.h
|
||||
@ -28,7 +26,30 @@ set_source_files_properties(
|
||||
${Flatbuffer_GENERATED_FBS} PROPERTIES GENERATED TRUE
|
||||
)
|
||||
|
||||
### Split flatbufconnect from flatbufserver as flatbufserver relates to HyperionDaemon
|
||||
|
||||
if(ENABLE_FLATBUF_CONNECT)
|
||||
add_library(flatbufconnect
|
||||
${CURRENT_HEADER_DIR}/FlatBufferConnection.h
|
||||
${CURRENT_SOURCE_DIR}/FlatBufferConnection.cpp
|
||||
${FLATBUFSERVER_SOURCES}
|
||||
${Flatbuffer_GENERATED_FBS}
|
||||
|
||||
)
|
||||
target_link_libraries(flatbufconnect
|
||||
hyperion-utils
|
||||
flatbuffers
|
||||
Qt${QT_VERSION_MAJOR}::Network
|
||||
Qt${QT_VERSION_MAJOR}::Core
|
||||
)
|
||||
endif()
|
||||
|
||||
if(ENABLE_FLATBUF_SERVER)
|
||||
add_library(flatbufserver
|
||||
${CURRENT_HEADER_DIR}/FlatBufferServer.h
|
||||
${CURRENT_SOURCE_DIR}/FlatBufferServer.cpp
|
||||
${CURRENT_SOURCE_DIR}/FlatBufferClient.h
|
||||
${CURRENT_SOURCE_DIR}/FlatBufferClient.cpp
|
||||
${FLATBUFSERVER_SOURCES}
|
||||
${Flatbuffer_GENERATED_FBS}
|
||||
)
|
||||
@ -39,3 +60,5 @@ target_link_libraries(flatbufserver
|
||||
Qt${QT_VERSION_MAJOR}::Network
|
||||
Qt${QT_VERSION_MAJOR}::Core
|
||||
)
|
||||
endif()
|
||||
|
||||
|
24
libsrc/forwarder/CMakeLists.txt
Normal file
24
libsrc/forwarder/CMakeLists.txt
Normal file
@ -0,0 +1,24 @@
|
||||
|
||||
# Define the current source locations
|
||||
SET(CURRENT_HEADER_DIR ${CMAKE_SOURCE_DIR}/include/forwarder)
|
||||
SET(CURRENT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/libsrc/forwarder)
|
||||
|
||||
if(ENABLE_FLATBUF_CONNECT)
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_BINARY_DIR}/../../libsrc/flatbufserver
|
||||
)
|
||||
endif()
|
||||
|
||||
FILE ( GLOB Forwarder_SOURCES "${CURRENT_HEADER_DIR}/*.h" "${CURRENT_SOURCE_DIR}/*.h" "${CURRENT_SOURCE_DIR}/*.cpp" )
|
||||
|
||||
add_library(forwarder ${Forwarder_SOURCES} )
|
||||
|
||||
target_link_libraries(forwarder
|
||||
hyperion
|
||||
hyperion-utils
|
||||
${QT_LIBRARIES}
|
||||
)
|
||||
|
||||
if(ENABLE_FLATBUF_CONNECT)
|
||||
target_link_libraries(forwarder flatbufconnect)
|
||||
endif()
|
@ -2,7 +2,7 @@
|
||||
#include <stdexcept>
|
||||
|
||||
// project includes
|
||||
#include <hyperion/MessageForwarder.h>
|
||||
#include <forwarder/MessageForwarder.h>
|
||||
|
||||
// hyperion includes
|
||||
#include <hyperion/Hyperion.h>
|
@ -3,9 +3,11 @@
|
||||
SET(CURRENT_HEADER_DIR ${CMAKE_SOURCE_DIR}/include/hyperion)
|
||||
SET(CURRENT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/libsrc/hyperion)
|
||||
|
||||
if(ENABLE_FLATBUF_SERVER)
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_BINARY_DIR}/../../libsrc/flatbufserver
|
||||
)
|
||||
endif()
|
||||
|
||||
FILE ( GLOB Hyperion_SOURCES "${CURRENT_HEADER_DIR}/*.h" "${CURRENT_SOURCE_DIR}/*.h" "${CURRENT_SOURCE_DIR}/*.cpp" )
|
||||
|
||||
@ -19,18 +21,24 @@ add_library(hyperion
|
||||
target_link_libraries(hyperion
|
||||
blackborder
|
||||
hyperion-utils
|
||||
flatbufserver
|
||||
flatbuffers
|
||||
leddevice
|
||||
effectengine
|
||||
database
|
||||
${QT_LIBRARIES}
|
||||
)
|
||||
|
||||
if(ENABLE_BOBLIGHT)
|
||||
if(ENABLE_BOBLIGHT_SERVER)
|
||||
target_link_libraries(hyperion boblightserver)
|
||||
endif()
|
||||
|
||||
if(ENABLE_FLATBUF_SERVER)
|
||||
target_link_libraries(hyperion flatbufserver)
|
||||
endif()
|
||||
|
||||
if(ENABLE_FORWARDER)
|
||||
target_link_libraries(hyperion forwarder)
|
||||
endif()
|
||||
|
||||
if (ENABLE_AVAHI)
|
||||
target_link_libraries(hyperion bonjour)
|
||||
endif ()
|
||||
|
@ -3,6 +3,8 @@
|
||||
|
||||
#include <hyperion/Hyperion.h>
|
||||
|
||||
#include <hyperion/GrabberWrapper.h>
|
||||
|
||||
using namespace hyperion;
|
||||
|
||||
ComponentRegister::ComponentRegister(Hyperion* hyperion)
|
||||
@ -11,12 +13,45 @@ ComponentRegister::ComponentRegister(Hyperion* hyperion)
|
||||
{
|
||||
// init all comps to false
|
||||
QVector<hyperion::Components> vect;
|
||||
vect << COMP_ALL << COMP_SMOOTHING << COMP_BLACKBORDER << COMP_FORWARDER << COMP_GRABBER << COMP_V4L << COMP_LEDDEVICE;
|
||||
vect << COMP_ALL << COMP_SMOOTHING << COMP_LEDDEVICE;
|
||||
|
||||
#if defined(ENABLE_BOBLIGHT)
|
||||
bool areScreenGrabberAvailable = !GrabberWrapper::availableGrabbers(GrabberTypeFilter::VIDEO).isEmpty();
|
||||
bool areVideoGrabberAvailable = !GrabberWrapper::availableGrabbers(GrabberTypeFilter::VIDEO).isEmpty();
|
||||
bool flatBufServerAvailable { false };
|
||||
bool protoBufServerAvailable{ false };
|
||||
|
||||
#if defined(ENABLE_FLATBUF_SERVER)
|
||||
flatBufServerAvailable = true;
|
||||
#endif
|
||||
|
||||
#if defined(ENABLE_PROTOBUF_SERVER)
|
||||
protoBufServerAvailable = true;
|
||||
#endif
|
||||
|
||||
if (areScreenGrabberAvailable)
|
||||
{
|
||||
vect << COMP_GRABBER;
|
||||
}
|
||||
|
||||
if (areVideoGrabberAvailable)
|
||||
{
|
||||
vect << COMP_V4L;
|
||||
}
|
||||
|
||||
if (areScreenGrabberAvailable || areVideoGrabberAvailable || flatBufServerAvailable || protoBufServerAvailable)
|
||||
{
|
||||
vect << COMP_BLACKBORDER;
|
||||
}
|
||||
|
||||
|
||||
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||
vect << COMP_BOBLIGHTSERVER;
|
||||
#endif
|
||||
|
||||
#if defined(ENABLE_FORWARDER)
|
||||
vect << COMP_FORWARDER;
|
||||
#endif
|
||||
|
||||
for(auto e : vect)
|
||||
{
|
||||
_componentStates.emplace(e, (e == COMP_ALL));
|
||||
@ -35,6 +70,9 @@ int ComponentRegister::isComponentEnabled(hyperion::Components comp) const
|
||||
}
|
||||
|
||||
void ComponentRegister::setNewComponentState(hyperion::Components comp, bool activated)
|
||||
{
|
||||
|
||||
if (_componentStates.count(comp) > 0)
|
||||
{
|
||||
if (_componentStates[comp] != activated)
|
||||
{
|
||||
@ -44,6 +82,7 @@ void ComponentRegister::setNewComponentState(hyperion::Components comp, bool act
|
||||
emit updatedComponentState(comp, activated);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ComponentRegister::handleCompStateChangeRequest(hyperion::Components comps, bool activated)
|
||||
{
|
||||
|
@ -83,31 +83,35 @@ bool GrabberWrapper::isActive() const
|
||||
return _timer->isActive();
|
||||
}
|
||||
|
||||
QStringList GrabberWrapper::getActive(int inst) const
|
||||
QStringList GrabberWrapper::getActive(int inst, GrabberTypeFilter type) const
|
||||
{
|
||||
QStringList result = QStringList();
|
||||
|
||||
if(GRABBER_V4L_CLIENTS.contains(inst))
|
||||
result << GRABBER_V4L_CLIENTS.value(inst);
|
||||
|
||||
if (type == GrabberTypeFilter::SCREEN || type == GrabberTypeFilter::ALL)
|
||||
{
|
||||
if (GRABBER_SYS_CLIENTS.contains(inst))
|
||||
result << GRABBER_SYS_CLIENTS.value(inst);
|
||||
}
|
||||
|
||||
if (type == GrabberTypeFilter::VIDEO || type == GrabberTypeFilter::ALL)
|
||||
{
|
||||
if (GRABBER_V4L_CLIENTS.contains(inst))
|
||||
result << GRABBER_V4L_CLIENTS.value(inst);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
QStringList GrabberWrapper::availableGrabbers()
|
||||
QStringList GrabberWrapper::availableGrabbers(GrabberTypeFilter type)
|
||||
{
|
||||
QStringList grabbers;
|
||||
|
||||
if (type == GrabberTypeFilter::SCREEN || type == GrabberTypeFilter::ALL)
|
||||
{
|
||||
#ifdef ENABLE_DISPMANX
|
||||
grabbers << "dispmanx";
|
||||
#endif
|
||||
|
||||
#if defined(ENABLE_V4L2) || defined(ENABLE_MF)
|
||||
grabbers << "v4l2";
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_FB
|
||||
grabbers << "framebuffer";
|
||||
#endif
|
||||
@ -135,6 +139,14 @@ QStringList GrabberWrapper::availableGrabbers()
|
||||
#ifdef ENABLE_DX
|
||||
grabbers << "dx";
|
||||
#endif
|
||||
}
|
||||
|
||||
if (type == GrabberTypeFilter::VIDEO || type == GrabberTypeFilter::ALL)
|
||||
{
|
||||
#if defined(ENABLE_V4L2) || defined(ENABLE_MF)
|
||||
grabbers << "v4l2";
|
||||
#endif
|
||||
}
|
||||
|
||||
return grabbers;
|
||||
}
|
||||
|
@ -9,7 +9,11 @@
|
||||
|
||||
// hyperion include
|
||||
#include <hyperion/Hyperion.h>
|
||||
#include <hyperion/MessageForwarder.h>
|
||||
|
||||
#if defined(ENABLE_FORWARDER)
|
||||
#include <forwarder/MessageForwarder.h>
|
||||
#endif
|
||||
|
||||
#include <hyperion/ImageProcessor.h>
|
||||
#include <hyperion/ColorAdjustment.h>
|
||||
|
||||
@ -37,7 +41,7 @@
|
||||
#include <hyperion/CaptureCont.h>
|
||||
|
||||
// Boblight
|
||||
#if defined(ENABLE_BOBLIGHT)
|
||||
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||
#include <boblightserver/BoblightServer.h>
|
||||
#endif
|
||||
|
||||
@ -53,14 +57,16 @@ Hyperion::Hyperion(quint8 instance, bool readonlyMode)
|
||||
, _ledDeviceWrapper(nullptr)
|
||||
, _deviceSmooth(nullptr)
|
||||
, _effectEngine(nullptr)
|
||||
#if defined(ENABLE_FORWARDER)
|
||||
, _messageForwarder(nullptr)
|
||||
#endif
|
||||
, _log(Logger::getInstance("HYPERION"))
|
||||
, _hwLedCount()
|
||||
, _ledGridSize(hyperion::getLedLayoutGridSize(getSetting(settings::LEDS).array()))
|
||||
, _BGEffectHandler(nullptr)
|
||||
, _captureCont(nullptr)
|
||||
, _ledBuffer(_ledString.leds().size(), ColorRgb::BLACK)
|
||||
#if defined(ENABLE_BOBLIGHT)
|
||||
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||
, _boblightServer(nullptr)
|
||||
#endif
|
||||
, _readOnlyMode(readonlyMode)
|
||||
@ -127,11 +133,13 @@ void Hyperion::start()
|
||||
//Start in pause mode, a new priority will activate smoothing (either start-effect or grabber)
|
||||
_deviceSmooth->setPause(true);
|
||||
|
||||
#if defined(ENABLE_FORWARDER)
|
||||
// create the message forwarder only on main instance
|
||||
if (_instIndex == 0)
|
||||
{
|
||||
_messageForwarder = new MessageForwarder(this);
|
||||
}
|
||||
#endif
|
||||
|
||||
// create the effect engine; needs to be initialized after smoothing!
|
||||
_effectEngine = new EffectEngine(this);
|
||||
@ -155,7 +163,7 @@ void Hyperion::start()
|
||||
// if there is no startup / background effect and no sending capture interface we probably want to push once BLACK (as PrioMuxer won't emit a priority change)
|
||||
update();
|
||||
|
||||
#if defined(ENABLE_BOBLIGHT)
|
||||
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||
// boblight, can't live in global scope as it depends on layout
|
||||
_boblightServer = new BoblightServer(this, getSetting(settings::BOBLSERVER));
|
||||
connect(this, &Hyperion::settingsChanged, _boblightServer, &BoblightServer::handleSettingsUpdate);
|
||||
@ -177,13 +185,18 @@ void Hyperion::freeObjects()
|
||||
clear(-1,true);
|
||||
|
||||
// delete components on exit of hyperion core
|
||||
#if defined(ENABLE_BOBLIGHT)
|
||||
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||
delete _boblightServer;
|
||||
#endif
|
||||
|
||||
delete _captureCont;
|
||||
delete _effectEngine;
|
||||
delete _raw2ledAdjustment;
|
||||
|
||||
#if defined(ENABLE_FORWARDER)
|
||||
delete _messageForwarder;
|
||||
#endif
|
||||
|
||||
delete _settingsManager;
|
||||
delete _ledDeviceWrapper;
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
LedDeviceRegistry LedDeviceWrapper::_ledDeviceMap {};
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
|
||||
QRecursiveMutex LedDeviceWrapper::_ledDeviceMapLock;
|
||||
#else
|
||||
QMutex LedDeviceWrapper::_ledDeviceMapLock{ QMutex::Recursive };
|
||||
|
@ -11,7 +11,6 @@ include_directories(
|
||||
set(ProtoServer_PROTOS ${CURRENT_SOURCE_DIR}/message.proto )
|
||||
|
||||
protobuf_generate_cpp(ProtoServer_PROTO_SRCS ProtoServer_PROTO_HDRS ${ProtoServer_PROTOS} )
|
||||
|
||||
### Split protoclient from protoserver as protoserver relates to HyperionDaemon and standalone capture binarys can't link to it
|
||||
|
||||
add_library(protoclient
|
||||
@ -27,12 +26,16 @@ add_library(protoserver
|
||||
)
|
||||
|
||||
# disable warnings for auto generated proto files, we can't change the files ....
|
||||
SET_SOURCE_FILES_PROPERTIES ( ${ProtoServer_PROTO_SRCS} ${ProtoServer_PROTO_HDRS} ${ProtoServer_PROTOS} PROPERTIES COMPILE_FLAGS -w )
|
||||
if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
|
||||
set_source_files_properties(${ProtoServer_PROTO_SRCS} ${ProtoServer_PROTO_HDRS} ${ProtoServer_PROTOS} PROPERTIES COMPILE_FLAGS "-w -Wno-return-local-addr")
|
||||
elseif(MSVC)
|
||||
set_source_files_properties(${ProtoServer_PROTO_SRCS} ${ProtoServer_PROTO_HDRS} ${ProtoServer_PROTOS} PROPERTIES COMPILE_FLAGS "/W0")
|
||||
endif()
|
||||
|
||||
target_link_libraries(protoclient
|
||||
hyperion
|
||||
hyperion-utils
|
||||
protobuf
|
||||
libprotobuf
|
||||
Qt${QT_VERSION_MAJOR}::Gui
|
||||
)
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
syntax = "proto2";
|
||||
package proto;
|
||||
|
||||
message HyperionRequest {
|
||||
|
@ -31,7 +31,8 @@ PythonInit::PythonInit()
|
||||
|
||||
#if defined(ENABLE_DEPLOY_DEPENDENCIES)
|
||||
// Set Program name
|
||||
Py_SetProgramName(L"Hyperion");
|
||||
wchar_t programName[] = L"Hyperion";
|
||||
Py_SetProgramName(programName);
|
||||
|
||||
// set Python module path when exists
|
||||
QString py_path = QDir::cleanPath(qApp->applicationDirPath() + "/../lib/python" + STRINGIFY(PYTHON_VERSION_MAJOR) + "." + STRINGIFY(PYTHON_VERSION_MINOR));
|
||||
|
@ -51,8 +51,17 @@ void SSDPHandler::initServer()
|
||||
SSDPServer::initServer();
|
||||
|
||||
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_DEPRECATED
|
||||
#endif
|
||||
|
||||
_NCA = new QNetworkConfigurationManager(this);
|
||||
connect(_NCA, &QNetworkConfigurationManager::configurationChanged, this, &SSDPHandler::handleNetworkConfigurationChanged);
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
||||
QT_WARNING_POP
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// listen for mSearchRequestes
|
||||
@ -144,6 +153,10 @@ void SSDPHandler::handleWebServerStateChange(bool newState)
|
||||
}
|
||||
|
||||
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_DEPRECATED
|
||||
#endif
|
||||
void SSDPHandler::handleNetworkConfigurationChanged(const QNetworkConfiguration& config)
|
||||
{
|
||||
// get localAddress from interface
|
||||
@ -160,6 +173,9 @@ void SSDPHandler::handleNetworkConfigurationChanged(const QNetworkConfiguration
|
||||
sendAnnounceList(true);
|
||||
}
|
||||
}
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
||||
QT_WARNING_POP
|
||||
#endif
|
||||
#endif
|
||||
|
||||
QString SSDPHandler::getLocalAddress() const
|
||||
|
@ -27,7 +27,9 @@ static const QString UPNP_ALIVE_MESSAGE = "NOTIFY * HTTP/1.1\r\n"
|
||||
"NTS: ssdp:alive\r\n"
|
||||
"SERVER: %4\r\n"
|
||||
"USN: uuid:%5\r\n"
|
||||
#if defined(ENABLE_FLATBUF_SERVER)
|
||||
"HYPERION-FBS-PORT: %6\r\n"
|
||||
#endif
|
||||
"HYPERION-JSS-PORT: %7\r\n"
|
||||
"HYPERION-NAME: %8\r\n"
|
||||
"\r\n";
|
||||
@ -72,7 +74,9 @@ static const QString UPNP_MSEARCH_RESPONSE = "HTTP/1.1 200 OK\r\n"
|
||||
"SERVER: %4\r\n"
|
||||
"ST: %5\r\n"
|
||||
"USN: uuid:%6\r\n"
|
||||
#if defined(ENABLE_FLATBUF_SERVER)
|
||||
"HYPERION-FBS-PORT: %7\r\n"
|
||||
#endif
|
||||
"HYPERION-JSS-PORT: %8\r\n"
|
||||
"HYPERION-NAME: %9\r\n"
|
||||
"\r\n";
|
||||
@ -175,7 +179,9 @@ void SSDPServer::sendMSearchResponse(const QString& st, const QString& senderIp,
|
||||
, _serverHeader
|
||||
, st
|
||||
, _uuid
|
||||
#if defined(ENABLE_FLATBUF_SERVER)
|
||||
, _fbsPort
|
||||
#endif
|
||||
, _jssPort
|
||||
, _name );
|
||||
|
||||
@ -202,7 +208,9 @@ void SSDPServer::sendAlive(const QString& st)
|
||||
, st
|
||||
, _serverHeader
|
||||
, tempUSN
|
||||
#if defined(ENABLE_FLATBUF_SERVER)
|
||||
, _fbsPort
|
||||
#endif
|
||||
, _jssPort
|
||||
, _name );
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
#include <QThreadStorage>
|
||||
#include <time.h>
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
|
||||
QRecursiveMutex Logger::MapLock;
|
||||
#else
|
||||
QMutex Logger::MapLock{ QMutex::Recursive };
|
||||
|
@ -1,10 +1,25 @@
|
||||
#ifdef _WIN32
|
||||
#include <QCoreApplication>
|
||||
#include <QProcess>
|
||||
#include <utils/Logger.h>
|
||||
#include <QString>
|
||||
#include <QByteArray>
|
||||
|
||||
namespace Process {
|
||||
|
||||
void restartHyperion(bool asNewProcess) {}
|
||||
void restartHyperion(bool asNewProcess)
|
||||
{
|
||||
Logger* log = Logger::getInstance("Process");
|
||||
Info(log, "Restarting hyperion ...");
|
||||
|
||||
auto arguments = QCoreApplication::arguments();
|
||||
if (!arguments.contains("--wait-hyperion"))
|
||||
arguments << "--wait-hyperion";
|
||||
|
||||
QProcess::startDetached(QCoreApplication::applicationFilePath(), arguments);
|
||||
|
||||
QCoreApplication::quit();
|
||||
}
|
||||
|
||||
QByteArray command_exec(const QString& /*cmd*/, const QByteArray& /*data*/)
|
||||
{
|
||||
|
@ -15,7 +15,7 @@
|
||||
#include <shlobj_core.h>
|
||||
#endif
|
||||
|
||||
SysInfo* SysInfo::_instance = nullptr;
|
||||
std::unique_ptr<SysInfo> SysInfo::_instance = nullptr;
|
||||
|
||||
SysInfo::SysInfo()
|
||||
: QObject()
|
||||
@ -38,7 +38,7 @@ SysInfo::SysInfo()
|
||||
SysInfo::HyperionSysInfo SysInfo::get()
|
||||
{
|
||||
if (SysInfo::_instance == nullptr)
|
||||
SysInfo::_instance = new SysInfo();
|
||||
SysInfo::_instance = std::unique_ptr<SysInfo>(new SysInfo());
|
||||
|
||||
return SysInfo::_instance->_sysinfo;
|
||||
}
|
||||
|
1
resources/icons/restart.svg
Normal file
1
resources/icons/restart.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,4C14.1,4 16.1,4.8 17.6,6.3C20.7,9.4 20.7,14.5 17.6,17.6C15.8,19.5 13.3,20.2 10.9,19.9L11.4,17.9C13.1,18.1 14.9,17.5 16.2,16.2C18.5,13.9 18.5,10.1 16.2,7.7C15.1,6.6 13.5,6 12,6V10.6L7,5.6L12,0.6V4M6.3,17.6C3.7,15 3.3,11 5.1,7.9L6.6,9.4C5.5,11.6 5.9,14.4 7.8,16.2C8.3,16.7 8.9,17.1 9.6,17.4L9,19.4C8,19 7.1,18.4 6.3,17.6Z" /></svg>
|
After Width: | Height: | Size: 618 B |
@ -46,7 +46,6 @@ parts:
|
||||
- libavahi-compat-libdnssd-dev
|
||||
- libturbojpeg0-dev
|
||||
- libssl-dev
|
||||
- zlib1g-dev
|
||||
stage-packages:
|
||||
- libfontconfig1
|
||||
- libfreetype6
|
||||
|
@ -2,34 +2,34 @@ add_subdirectory(hyperiond)
|
||||
add_subdirectory(hyperion-remote)
|
||||
|
||||
# The following binaries are just compiled if requested
|
||||
if (ENABLE_AMLOGIC)
|
||||
if (ENABLE_AMLOGIC AND ENABLE_FLATBUF_CONNECT)
|
||||
add_subdirectory(hyperion-aml)
|
||||
endif()
|
||||
|
||||
if(ENABLE_V4L2)
|
||||
if(ENABLE_V4L2 AND ENABLE_FLATBUF_CONNECT)
|
||||
add_subdirectory(hyperion-v4l2)
|
||||
endif()
|
||||
|
||||
if(ENABLE_X11)
|
||||
if(ENABLE_X11 AND ENABLE_FLATBUF_CONNECT)
|
||||
add_subdirectory(hyperion-x11)
|
||||
endif()
|
||||
|
||||
if(ENABLE_XCB)
|
||||
if(ENABLE_XCB AND ENABLE_FLATBUF_CONNECT)
|
||||
add_subdirectory(hyperion-xcb)
|
||||
endif()
|
||||
|
||||
if(ENABLE_DISPMANX)
|
||||
if(ENABLE_DISPMANX AND ENABLE_FLATBUF_CONNECT)
|
||||
add_subdirectory(hyperion-dispmanx)
|
||||
endif()
|
||||
|
||||
if(ENABLE_FB)
|
||||
if(ENABLE_FB AND ENABLE_FLATBUF_CONNECT)
|
||||
add_subdirectory(hyperion-framebuffer)
|
||||
endif()
|
||||
|
||||
if(ENABLE_QT)
|
||||
if(ENABLE_QT AND ENABLE_FLATBUF_CONNECT)
|
||||
add_subdirectory(hyperion-qt)
|
||||
endif()
|
||||
|
||||
if(ENABLE_OSX)
|
||||
if(ENABLE_OSX AND ENABLE_FLATBUF_CONNECT)
|
||||
add_subdirectory(hyperion-osx)
|
||||
endif()
|
||||
|
@ -25,7 +25,7 @@ add_executable(${PROJECT_NAME}
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
commandline
|
||||
hyperion-utils
|
||||
flatbufserver
|
||||
flatbufconnect
|
||||
flatbuffers
|
||||
amlogic-grabber
|
||||
framebuffer-grabber
|
||||
|
@ -44,7 +44,7 @@ int main(int argc, char ** argv)
|
||||
// create the option parser and initialize all parser
|
||||
Parser parser("AmLogic capture application for Hyperion. Will automatically search a Hyperion server if -a option isn't used. Please note that if you have more than one server running it's more or less random which one will be used.");
|
||||
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", "Capture frame rate. %1", QString("Range %1-%2fps, default: [%3]").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", QString("Capture frame rate. Range %1-%2fps").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ), QString::number(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
IntOption & argSizeDecimation = parser.add<IntOption> ('s', "size-decimator", "Decimation factor for the output image size [default=%1]", QString::number(GrabberWrapper::DEFAULT_PIXELDECIMATION), 1);
|
||||
|
||||
IntOption & argCropLeft = parser.add<IntOption> (0x0, "crop-left", "Number of pixels to crop from the left of the picture before decimation");
|
||||
|
@ -33,7 +33,7 @@ add_executable( ${PROJECT_NAME}
|
||||
target_link_libraries( ${PROJECT_NAME}
|
||||
commandline
|
||||
hyperion-utils
|
||||
flatbufserver
|
||||
flatbufconnect
|
||||
flatbuffers
|
||||
dispmanx-grabber
|
||||
${Dispmanx_LIBRARIES}
|
||||
|
@ -45,7 +45,7 @@ int main(int argc, char ** argv)
|
||||
// create the option parser and initialize all parameters
|
||||
Parser parser("Dispmanx capture application for Hyperion. Will automatically search a Hyperion server if -a option isn't used. Please note that if you have more than one server running it's more or less random which one will be used.");
|
||||
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", "Capture frame rate. %1", QString("Range %1-%2fps, default: [%3]").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", QString("Capture frame rate. Range %1-%2fps").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ), QString::number(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
IntOption & argSizeDecimation = parser.add<IntOption> ('s', "size-decimator", "Decimation factor for the output image size [default=%1]", QString::number(GrabberWrapper::DEFAULT_PIXELDECIMATION), 1);
|
||||
|
||||
IntOption & argCropLeft = parser.add<IntOption> (0x0, "crop-left", "Number of pixels to crop from the left of the picture before decimation");
|
||||
|
@ -25,7 +25,7 @@ add_executable( ${PROJECT_NAME}
|
||||
target_link_libraries( ${PROJECT_NAME}
|
||||
commandline
|
||||
hyperion-utils
|
||||
flatbufserver
|
||||
flatbufconnect
|
||||
flatbuffers
|
||||
framebuffer-grabber
|
||||
ssdp
|
||||
|
@ -46,7 +46,7 @@ int main(int argc, char ** argv)
|
||||
|
||||
Option & argDevice = parser.add<Option> ('d', "device", "Set the framebuffer device [default: %1]", "/dev/fb0");
|
||||
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", "Capture frame rate. %1", QString("Range %1-%2fps, default: [%3]").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", QString("Capture frame rate. Range %1-%2fps").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ), QString::number(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
IntOption & argSizeDecimation = parser.add<IntOption> ('s', "size-decimator", "Decimation factor for the output image size [default=%1]", QString::number(GrabberWrapper::DEFAULT_PIXELDECIMATION), 1);
|
||||
|
||||
IntOption & argCropLeft = parser.add<IntOption> (0x0, "crop-left", "Number of pixels to crop from the left of the picture before decimation");
|
||||
|
@ -25,7 +25,7 @@ add_executable( ${PROJECT_NAME}
|
||||
target_link_libraries( ${PROJECT_NAME}
|
||||
commandline
|
||||
hyperion-utils
|
||||
flatbufserver
|
||||
flatbufconnect
|
||||
flatbuffers
|
||||
osx-grabber
|
||||
ssdp
|
||||
|
@ -40,7 +40,7 @@ int main(int argc, char ** argv)
|
||||
|
||||
IntOption & argDisplay = parser.add<IntOption> ('d', "display", "Set the display to capture [default: %1]", "0");
|
||||
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", "Capture frame rate. %1", QString("Range %1-%2fps, default: [%3]").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", QString("Capture frame rate. Range %1-%2fps").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ), QString::number(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
IntOption & argSizeDecimation = parser.add<IntOption> ('s', "size-decimator", "Decimation factor for the output image size [default=%1]", QString::number(GrabberWrapper::DEFAULT_PIXELDECIMATION), 1);
|
||||
|
||||
IntOption & argCropLeft = parser.add<IntOption> (0x0, "crop-left", "Number of pixels to crop from the left of the picture before decimation");
|
||||
|
@ -32,7 +32,7 @@ add_executable(${PROJECT_NAME}
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
commandline
|
||||
qt-grabber
|
||||
flatbufserver
|
||||
flatbufconnect
|
||||
flatbuffers
|
||||
ssdp
|
||||
Qt${QT_VERSION_MAJOR}::Core
|
||||
|
@ -47,7 +47,7 @@ int main(int argc, char ** argv)
|
||||
|
||||
IntOption & argDisplay = parser.add<IntOption> ('d', "display", "Set the display to capture [default: %1]", "0");
|
||||
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", "Capture frame rate. %1", QString("Range %1-%2fps, default: [%3]").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", QString("Capture frame rate. Range %1-%2fps").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ), QString::number(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
IntOption & argSizeDecimation = parser.add<IntOption> ('s', "size-decimator", "Decimation factor for the output image size [default=%1]", QString::number(GrabberWrapper::DEFAULT_PIXELDECIMATION), 1);
|
||||
|
||||
IntOption & argCropLeft = parser.add<IntOption> (0x0, "crop-left", "Number of pixels to crop from the left of the picture before decimation");
|
||||
|
@ -93,7 +93,7 @@ int main(int argc, char * argv[])
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// art variable definition append art to Parser short-, long option description, optional default value //
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
Option & argAddress = parser.add<Option> ('a', "address" , "The hostname or IP-address (IPv4 or IPv6) of the hyperion server.\nDefault port: 19444.\nSample addresses:\nHost : hyperion.fritz.box\nIPv4 : 127.0.0.1:19444\nIPv6 : [2001:1:2:3:4:5:6:7]");
|
||||
Option & argAddress = parser.add<Option> ('a', "address" , "The hostname or IP-address (IPv4 or IPv6) of the hyperion server.\nDefault port: 19444.\nSample addresses:\nHost : hyperion.fritz.box\nIPv4 : 127.0.0.1:19444\nIPv6 : [2001:1:2:3:4:5:6:7]", "127.0.0.1");
|
||||
Option & argToken = parser.add<Option> ('t', "token" , "If authorization tokens are required, this token is used");
|
||||
Option & argInstance = parser.add<Option> ('I', "instance" , "Select a specific target instance by name for your command. By default it uses always the first instance");
|
||||
IntOption & argPriority = parser.add<IntOption> ('p', "priority" , "Used to the provided priority channel (suggested 2-99) [default: %1]", "50");
|
||||
@ -200,7 +200,7 @@ int main(int argc, char * argv[])
|
||||
|
||||
// server searching by ssdp
|
||||
QString address = argAddress.value(parser);
|
||||
if(argAddress.value(parser) == "127.0.0.1:19444")
|
||||
if(address == "127.0.0.1" || address == "127.0.0.1:19444")
|
||||
{
|
||||
SSDPDiscover discover;
|
||||
address = discover.getFirstService(searchType::STY_JSONSERVER);
|
||||
|
@ -26,7 +26,7 @@ target_link_libraries(${PROJECT_NAME}
|
||||
v4l2-grabber
|
||||
commandline
|
||||
hyperion-utils
|
||||
flatbufserver
|
||||
flatbufconnect
|
||||
flatbuffers
|
||||
ssdp
|
||||
Qt${QT_VERSION_MAJOR}::Core
|
||||
|
@ -57,7 +57,8 @@ int main(int argc, char** argv)
|
||||
IntOption & argInput = parser.add<IntOption> ('i', "input", "The device input [default: %1]", "0");
|
||||
SwitchOption<VideoStandard> & argVideoStandard= parser.add<SwitchOption<VideoStandard>>('v', "video-standard", "The used video standard. Valid values are PAL, NTSC, SECAM or no-change. [default: %1]", "no-change");
|
||||
SwitchOption<PixelFormat> & argPixelFormat = parser.add<SwitchOption<PixelFormat>> (0x0, "pixel-format", "The use pixel format. Valid values are YUYV, UYVY, RGB32, MJPEG or no-change. [default: %1]", "no-change");
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", "Capture frame rate. %1", QString("Range %1-%2fps, default: [%3]").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", QString("Capture frame rate. Range %1-%2fps").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ), QString::number(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
|
||||
SwitchOption<FlipMode> & argFlipMode = parser.add<SwitchOption<FlipMode>>(0x0, "flip-mode", "The used image flip mode. Valid values are HORIZONTAL, VERTICAL, BOTH or no-change. [default: %1]", "no-change");
|
||||
IntOption & argWidth = parser.add<IntOption> ('w', "width", "Width of the captured image [default: %1]", "640", 640);
|
||||
IntOption & argHeight = parser.add<IntOption> ('h', "height", "Height of the captured image [default: %1]", "480", 480);
|
||||
|
@ -32,7 +32,7 @@ add_executable(${PROJECT_NAME}
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
commandline
|
||||
hyperion-utils
|
||||
flatbufserver
|
||||
flatbufconnect
|
||||
flatbuffers
|
||||
x11-grabber
|
||||
ssdp
|
||||
|
@ -41,7 +41,7 @@ int main(int argc, char ** argv)
|
||||
// create the option parser and initialize all parameters
|
||||
Parser parser("X11 capture application for Hyperion. Will automatically search a Hyperion server if -a option isn't used. Please note that if you have more than one server running it's more or less random which one will be used.");
|
||||
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", "Capture frame rate. %1", QString("Range %1-%2fps, default: [%3]").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", QString("Capture frame rate. Range %1-%2fps").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ), QString::number(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
IntOption & argSizeDecimation = parser.add<IntOption> ('s', "size-decimator", "Decimation factor for the output image size [default=%1]", QString::number(GrabberWrapper::DEFAULT_PIXELDECIMATION), 1);
|
||||
|
||||
IntOption & argCropWidth = parser.add<IntOption> (0x0, "crop-width", "Number of pixels to crop from the left and right sides of the picture before decimation [default: %1]", "0");
|
||||
|
@ -25,7 +25,7 @@ add_executable(${PROJECT_NAME}
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
commandline
|
||||
hyperion-utils
|
||||
flatbufserver
|
||||
flatbufconnect
|
||||
flatbuffers
|
||||
xcb-grabber
|
||||
ssdp
|
||||
|
@ -41,7 +41,7 @@ int main(int argc, char ** argv)
|
||||
// create the option parser and initialize all parameters
|
||||
Parser parser("XCB capture application for Hyperion. Will automatically search a Hyperion server if -a option isn't used. Please note that if you have more than one server running it's more or less random which one will be used.");
|
||||
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", "Capture frame rate. %1", QString("Range %1-%2fps, default: [%3]").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
IntOption & argFps = parser.add<IntOption> ('f', "framerate", QString("Capture frame rate. Range %1-%2fps").arg(GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ).arg(GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ), QString::number(GrabberWrapper::DEFAULT_RATE_HZ), GrabberWrapper::DEFAULT_MIN_GRAB_RATE_HZ, GrabberWrapper::DEFAULT_MAX_GRAB_RATE_HZ);
|
||||
IntOption & argSizeDecimation = parser.add<IntOption> ('s', "size-decimator", "Decimation factor for the output image size [default=%1]", QString::number(GrabberWrapper::DEFAULT_PIXELDECIMATION), 1);
|
||||
|
||||
IntOption & argCropWidth = parser.add<IntOption> (0x0, "crop-width", "Number of pixels to crop from the left and right sides of the picture before decimation [default: %1]", "0");
|
||||
|
@ -49,8 +49,6 @@ target_link_libraries(${PROJECT_NAME}
|
||||
hyperion
|
||||
effectengine
|
||||
jsonserver
|
||||
flatbufserver
|
||||
protoserver
|
||||
webserver
|
||||
ssdp
|
||||
database
|
||||
@ -68,6 +66,15 @@ else()
|
||||
target_link_libraries( ${PROJECT_NAME} ${PYTHON_LIBRARIES} )
|
||||
endif()
|
||||
|
||||
|
||||
if(ENABLE_FLATBUF_SERVER)
|
||||
target_link_libraries(${PROJECT_NAME} flatbufserver)
|
||||
endif()
|
||||
|
||||
if(ENABLE_PROTOBUF_SERVER)
|
||||
target_link_libraries(${PROJECT_NAME} protoserver)
|
||||
endif()
|
||||
|
||||
if (ENABLE_AVAHI)
|
||||
target_link_libraries(${PROJECT_NAME} bonjour)
|
||||
endif (ENABLE_AVAHI)
|
||||
@ -137,13 +144,13 @@ endif (ENABLE_CEC)
|
||||
if (APPLE)
|
||||
set_target_properties( ${PROJECT_NAME} PROPERTIES
|
||||
MACOSX_BUNDLE TRUE
|
||||
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/cmake/osxbundle/Info.plist
|
||||
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/cmake/osxbundle/Info.plist.in
|
||||
MACOSX_BUNDLE_BUNDLE_NAME "Hyperion"
|
||||
MACOSX_BUNDLE_BUNDLE_VERSION ${HYPERION_VERSION}
|
||||
MACOSX_BUNDLE_COPYRIGHT "Copyright (c) 2014-2021 Hyperion Project"
|
||||
MACOSX_BUNDLE_GUI_IDENTIFIER "com.hyperion-project.${PROJECT_NAME}"
|
||||
MACOSX_BUNDLE_ICON_FILE "Hyperion.icns"
|
||||
MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME} Version ${HYPERION_VERSION}"
|
||||
MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME} ${HYPERION_VERSION}"
|
||||
MACOSX_BUNDLE_LONG_VERSION_STRING ${HYPERION_VERSION}
|
||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${HYPERION_VERSION}
|
||||
)
|
||||
|
@ -29,10 +29,14 @@
|
||||
#include "hyperiond.h"
|
||||
|
||||
// Flatbuffer Server
|
||||
#ifdef ENABLE_FLATBUF_SERVER
|
||||
#include <flatbufserver/FlatBufferServer.h>
|
||||
#endif
|
||||
|
||||
// Protobuffer Server
|
||||
#ifdef ENABLE_PROTOBUF_SERVER
|
||||
#include <protoserver/ProtoServer.h>
|
||||
#endif
|
||||
|
||||
// ssdp
|
||||
#include <ssdp/SSDPHandler.h>
|
||||
@ -83,7 +87,9 @@ HyperionDaemon::HyperionDaemon(const QString& rootPath, QObject* parent, bool lo
|
||||
, _qtGrabber(nullptr)
|
||||
, _dxGrabber(nullptr)
|
||||
, _ssdp(nullptr)
|
||||
#ifdef ENABLE_CEC
|
||||
, _cecHandler(nullptr)
|
||||
#endif
|
||||
, _currVideoMode(VideoMode::VIDEO_2D)
|
||||
{
|
||||
HyperionDaemon::daemon = this;
|
||||
@ -179,6 +185,7 @@ void HyperionDaemon::freeObjects()
|
||||
delete _jsonServer;
|
||||
_jsonServer = nullptr;
|
||||
|
||||
#if defined(ENABLE_FLATBUF_SERVER)
|
||||
if (_flatBufferServer != nullptr)
|
||||
{
|
||||
auto flatBufferServerThread = _flatBufferServer->thread();
|
||||
@ -187,7 +194,9 @@ void HyperionDaemon::freeObjects()
|
||||
delete flatBufferServerThread;
|
||||
_flatBufferServer = nullptr;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(ENABLE_PROTOBUF_SERVER)
|
||||
if (_protoServer != nullptr)
|
||||
{
|
||||
auto protoServerThread = _protoServer->thread();
|
||||
@ -196,6 +205,7 @@ void HyperionDaemon::freeObjects()
|
||||
delete protoServerThread;
|
||||
_protoServer = nullptr;
|
||||
}
|
||||
#endif
|
||||
|
||||
//ssdp before webserver
|
||||
if (_ssdp != nullptr)
|
||||
@ -268,6 +278,7 @@ void HyperionDaemon::startNetworkServices()
|
||||
_jsonServer = new JsonServer(getSetting(settings::JSONSERVER));
|
||||
connect(this, &HyperionDaemon::settingsChanged, _jsonServer, &JsonServer::handleSettingsUpdate);
|
||||
|
||||
#if defined(ENABLE_FLATBUF_SERVER)
|
||||
// Create FlatBuffer server in thread
|
||||
_flatBufferServer = new FlatBufferServer(getSetting(settings::FLATBUFSERVER));
|
||||
QThread* fbThread = new QThread(this);
|
||||
@ -277,7 +288,9 @@ void HyperionDaemon::startNetworkServices()
|
||||
connect(fbThread, &QThread::finished, _flatBufferServer, &FlatBufferServer::deleteLater);
|
||||
connect(this, &HyperionDaemon::settingsChanged, _flatBufferServer, &FlatBufferServer::handleSettingsUpdate);
|
||||
fbThread->start();
|
||||
#endif
|
||||
|
||||
#if defined(ENABLE_PROTOBUF_SERVER)
|
||||
// Create Proto server in thread
|
||||
_protoServer = new ProtoServer(getSetting(settings::PROTOSERVER));
|
||||
QThread* pThread = new QThread(this);
|
||||
@ -287,6 +300,7 @@ void HyperionDaemon::startNetworkServices()
|
||||
connect(pThread, &QThread::finished, _protoServer, &ProtoServer::deleteLater);
|
||||
connect(this, &HyperionDaemon::settingsChanged, _protoServer, &ProtoServer::handleSettingsUpdate);
|
||||
pThread->start();
|
||||
#endif
|
||||
|
||||
// Create Webserver in thread
|
||||
_webserver = new WebServer(getSetting(settings::WEBSERVER), false);
|
||||
@ -416,8 +430,6 @@ void HyperionDaemon::handleSettingsUpdate(settings::type settingsType, const QJs
|
||||
|
||||
if (_prevType != type)
|
||||
{
|
||||
Info(_log, "set screen capture device to '%s'", QSTRING_CSTR(type));
|
||||
|
||||
// stop all capture interfaces
|
||||
#ifdef ENABLE_FB
|
||||
if (_fbGrabber != nullptr)
|
||||
|
@ -58,6 +58,8 @@
|
||||
typedef QObject DirectXWrapper;
|
||||
#endif
|
||||
|
||||
#include <hyperion/GrabberWrapper.h>
|
||||
|
||||
#include <utils/Logger.h>
|
||||
#include <utils/VideoMode.h>
|
||||
|
||||
@ -180,10 +182,16 @@ private:
|
||||
QtWrapper* _qtGrabber;
|
||||
DirectXWrapper* _dxGrabber;
|
||||
SSDPHandler* _ssdp;
|
||||
CECHandler* _cecHandler;
|
||||
FlatBufferServer* _flatBufferServer;
|
||||
ProtoServer* _protoServer;
|
||||
|
||||
#ifdef ENABLE_CEC
|
||||
CECHandler* _cecHandler;
|
||||
#endif
|
||||
#if defined(ENABLE_FLATBUF_SERVER)
|
||||
FlatBufferServer* _flatBufferServer;
|
||||
#endif
|
||||
#if defined(ENABLE_PROTOBUF_SERVER)
|
||||
ProtoServer* _protoServer;
|
||||
#endif
|
||||
int _grabber_width;
|
||||
int _grabber_height;
|
||||
int _grabber_pixelDecimation;
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include <QSettings>
|
||||
|
||||
#include <utils/ColorRgb.h>
|
||||
#include <utils/Process.h>
|
||||
#include <effectengine/EffectDefinition.h>
|
||||
#include <effectengine/Effect.h>
|
||||
#include <webserver/WebServer.h>
|
||||
@ -72,19 +73,23 @@ void SysTray::createTrayIcon()
|
||||
|
||||
quitAction = new QAction(tr("&Quit"), this);
|
||||
quitAction->setIcon(QPixmap(":/quit.svg"));
|
||||
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
|
||||
connect(quitAction, &QAction::triggered, qApp, QApplication::quit);
|
||||
|
||||
restartAction = new QAction(tr("&Restart"), this);
|
||||
restartAction->setIcon(QPixmap(":/restart.svg"));
|
||||
connect(restartAction, &QAction::triggered, this , [=](){ Process::restartHyperion(); });
|
||||
|
||||
colorAction = new QAction(tr("&Color"), this);
|
||||
colorAction->setIcon(QPixmap(":/color.svg"));
|
||||
connect(colorAction, SIGNAL(triggered()), this, SLOT(showColorDialog()));
|
||||
connect(colorAction, &QAction::triggered, this, &SysTray::showColorDialog);
|
||||
|
||||
settingsAction = new QAction(tr("&Settings"), this);
|
||||
settingsAction->setIcon(QPixmap(":/settings.svg"));
|
||||
connect(settingsAction, SIGNAL(triggered()), this, SLOT(settings()));
|
||||
connect(settingsAction, &QAction::triggered, this, &SysTray::settings);
|
||||
|
||||
clearAction = new QAction(tr("&Clear"), this);
|
||||
clearAction->setIcon(QPixmap(":/clear.svg"));
|
||||
connect(clearAction, SIGNAL(triggered()), this, SLOT(clearEfxColor()));
|
||||
connect(clearAction, &QAction::triggered, this, &SysTray::clearEfxColor);
|
||||
|
||||
const std::list<EffectDefinition> efxs = _hyperion->getEffects();
|
||||
_trayIconMenu = new QMenu(this);
|
||||
@ -98,7 +103,7 @@ void SysTray::createTrayIcon()
|
||||
if (efx.file.mid(0, 1) != ":")
|
||||
{
|
||||
QAction *efxAction = new QAction(efx.name, this);
|
||||
connect(efxAction, SIGNAL(triggered()), this, SLOT(setEffect()));
|
||||
connect(efxAction, &QAction::triggered, this, &SysTray::setEffect);
|
||||
_trayIconEfxMenu->addAction(efxAction);
|
||||
}
|
||||
}
|
||||
@ -113,7 +118,7 @@ void SysTray::createTrayIcon()
|
||||
if (efx.file.mid(0, 1) == ":")
|
||||
{
|
||||
QAction *efxAction = new QAction(efx.name, this);
|
||||
connect(efxAction, SIGNAL(triggered()), this, SLOT(setEffect()));
|
||||
connect(efxAction, &QAction::triggered, this, &SysTray::setEffect);
|
||||
_trayIconEfxMenu->addAction(efxAction);
|
||||
}
|
||||
}
|
||||
@ -121,7 +126,7 @@ void SysTray::createTrayIcon()
|
||||
#ifdef _WIN32
|
||||
autorunAction = new QAction(tr("&Disable autostart"), this);
|
||||
autorunAction->setIcon(QPixmap(":/autorun.svg"));
|
||||
connect(autorunAction, SIGNAL(triggered()), this, SLOT(setAutorunState()));
|
||||
connect(autorunAction, &QAction::triggered, this, &SysTray::setAutorunState);
|
||||
|
||||
_trayIconMenu->addAction(autorunAction);
|
||||
_trayIconMenu->addSeparator();
|
||||
@ -133,6 +138,7 @@ void SysTray::createTrayIcon()
|
||||
_trayIconMenu->addMenu(_trayIconEfxMenu);
|
||||
_trayIconMenu->addAction(clearAction);
|
||||
_trayIconMenu->addSeparator();
|
||||
_trayIconMenu->addAction(restartAction);
|
||||
_trayIconMenu->addAction(quitAction);
|
||||
|
||||
_trayIcon = new QSystemTrayIcon(this);
|
||||
@ -242,12 +248,10 @@ void SysTray::handleInstanceStateChange(InstanceState state, quint8 instance, co
|
||||
_hyperion = _instanceManager->getHyperionInstance(0);
|
||||
|
||||
createTrayIcon();
|
||||
connect(_trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
|
||||
this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
|
||||
|
||||
connect(_trayIcon, &QSystemTrayIcon::activated, this, &SysTray::iconActivated);
|
||||
connect(quitAction, &QAction::triggered, _trayIcon, &QSystemTrayIcon::hide, Qt::DirectConnection);
|
||||
connect(&_colorDlg, &QColorDialog::currentColorChanged, this, &SysTray::setColor);
|
||||
|
||||
connect(&_colorDlg, SIGNAL(currentColorChanged(const QColor&)), this, SLOT(setColor(const QColor &)));
|
||||
QIcon icon(":/hyperion-icon-32px.png");
|
||||
_trayIcon->setIcon(icon);
|
||||
_trayIcon->show();
|
||||
|
@ -54,6 +54,7 @@ private:
|
||||
#endif
|
||||
|
||||
QAction *quitAction;
|
||||
QAction *restartAction;
|
||||
QAction *startAction;
|
||||
QAction *stopAction;
|
||||
QAction *colorAction;
|
||||
|
@ -1,45 +0,0 @@
|
||||
|
||||
// STL includes
|
||||
#include <iostream>
|
||||
|
||||
// HyperionPNG includes
|
||||
#include <hyperionpng/HyperionPng.h>
|
||||
|
||||
template <typename Hyperion_T>
|
||||
void process(Hyperion_T& hyperion)
|
||||
{
|
||||
hyperion.setInputSize(64, 64);
|
||||
|
||||
// Obtain reference to buffer
|
||||
RgbImage& image = hyperion.image();
|
||||
|
||||
// Write some data to the image
|
||||
std::cout << "Write data to buffer-image" << std::endl;
|
||||
for (unsigned y=0; y<image.height(); ++y)
|
||||
{
|
||||
for (unsigned x=0; x<image.width(); ++x)
|
||||
{
|
||||
const RgbColor color = {255, 0, 0};
|
||||
image(x,y) = color;
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << "Commit image to write png" << std::endl;
|
||||
for (unsigned i=0; i<40; ++i)
|
||||
{
|
||||
// Commit the image (writing first png)
|
||||
hyperion.commit();
|
||||
}
|
||||
std::cout << "FINISHED" << std::endl;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
// Construct instance of Hyperion-PNG
|
||||
std::cout << "Initialisaing Hyperion PNG" << std::endl;
|
||||
HyperionPng hyperion;
|
||||
|
||||
process(hyperion);
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user