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],
|
"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",
|
"distribution": "Bionic",
|
||||||
"architecture": "amd64",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description": "Ubuntu 18.04 (Bionic Beaver) (amd64)"
|
"description": "Ubuntu 18.04 (Bionic Beaver) (amd64)"
|
||||||
@ -10,7 +10,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Focal",
|
"distribution": "Focal",
|
||||||
"architecture": "amd64",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description": "Ubuntu 20.04 (Focal Fossa) (amd64)"
|
"description": "Ubuntu 20.04 (Focal Fossa) (amd64)"
|
||||||
@ -18,7 +18,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Groovy",
|
"distribution": "Groovy",
|
||||||
"architecture": "amd64",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description": "Ubuntu 20.10 (Groovy Gorilla) (amd64)"
|
"description": "Ubuntu 20.10 (Groovy Gorilla) (amd64)"
|
||||||
@ -26,7 +26,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Hirsute",
|
"distribution": "Hirsute",
|
||||||
"architecture": "amd64",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description": "Ubuntu 21.04 (Hirsute Hippo) (amd64)"
|
"description": "Ubuntu 21.04 (Hirsute Hippo) (amd64)"
|
||||||
@ -34,7 +34,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Impish",
|
"distribution": "Impish",
|
||||||
"architecture": "amd64",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description": "Ubuntu 21.10 (Impish Indri) (amd64)"
|
"description": "Ubuntu 21.10 (Impish Indri) (amd64)"
|
||||||
@ -42,7 +42,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Jammy",
|
"distribution": "Jammy",
|
||||||
"architecture": "amd64",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description": "Ubuntu 22.04 (Jammy Jellyfish) (amd64)"
|
"description": "Ubuntu 22.04 (Jammy Jellyfish) (amd64)"
|
||||||
@ -50,7 +50,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Stretch",
|
"distribution": "Stretch",
|
||||||
"architecture": "amd64",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description": "Debian 9.x (Stretch) (amd64)"
|
"description": "Debian 9.x (Stretch) (amd64)"
|
||||||
@ -58,7 +58,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Buster",
|
"distribution": "Buster",
|
||||||
"architecture": "amd64",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description": "Debian 10.x (Buster) (amd64)"
|
"description": "Debian 10.x (Buster) (amd64)"
|
||||||
@ -66,7 +66,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Bullseye",
|
"distribution": "Bullseye",
|
||||||
"architecture": "amd64",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description": "Debian 11.x (Bullseye) (amd64)"
|
"description": "Debian 11.x (Bullseye) (amd64)"
|
||||||
@ -74,7 +74,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Bookworm",
|
"distribution": "Bookworm",
|
||||||
"architecture": "amd64",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description": "Debian 12.x (Bookworm) (amd64)"
|
"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",
|
"distribution": "Bionic",
|
||||||
"architecture": "arm64",
|
"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",
|
"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",
|
"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)"
|
"description": "Ubuntu 18.04 (Bionic Beaver) (arm64)"
|
||||||
@ -10,7 +10,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Focal",
|
"distribution": "Focal",
|
||||||
"architecture": "arm64",
|
"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",
|
"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",
|
"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)"
|
"description": "Ubuntu 20.04 (Focal Fossa) (arm64)"
|
||||||
@ -18,7 +18,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Hirsute",
|
"distribution": "Hirsute",
|
||||||
"architecture": "arm64",
|
"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",
|
"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",
|
"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)"
|
"description": "Ubuntu 21.04 (Hirsute Hippo) (arm64)"
|
||||||
@ -26,7 +26,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Impish",
|
"distribution": "Impish",
|
||||||
"architecture": "arm64",
|
"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",
|
"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",
|
"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)"
|
"description": "Ubuntu 21.10 (Impish Indri) (arm64)"
|
||||||
@ -34,7 +34,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Buster",
|
"distribution": "Buster",
|
||||||
"architecture": "arm64",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description": "Debian 10.x (Buster) (arm64)"
|
"description": "Debian 10.x (Buster) (arm64)"
|
||||||
@ -42,7 +42,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Bullseye",
|
"distribution": "Bullseye",
|
||||||
"architecture": "arm64",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description": "Debian 11.x (Bullseye) (arm64)"
|
"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",
|
"distribution": "Bionic",
|
||||||
"architecture": "armhf",
|
"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",
|
"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",
|
"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)"
|
"description": "Ubuntu 18.04 (Bionic Beaver) (armhf)"
|
||||||
@ -10,7 +10,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Focal",
|
"distribution": "Focal",
|
||||||
"architecture": "armhf",
|
"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",
|
"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",
|
"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)"
|
"description": "Ubuntu 20.04 (Focal Fossa) (armhf)"
|
||||||
@ -18,7 +18,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Hirsute",
|
"distribution": "Hirsute",
|
||||||
"architecture": "armhf",
|
"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",
|
"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",
|
"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)"
|
"description": "Ubuntu 21.04 (Hirsute Hippo) (armhf)"
|
||||||
@ -26,7 +26,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Impish",
|
"distribution": "Impish",
|
||||||
"architecture": "armhf",
|
"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",
|
"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",
|
"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)"
|
"description": "Ubuntu 21.10 (Impish Indri) (armhf)"
|
||||||
@ -34,7 +34,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Stretch",
|
"distribution": "Stretch",
|
||||||
"architecture": "armhf",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description":"Debian 9.x (Stretch) (armhf)"
|
"description":"Debian 9.x (Stretch) (armhf)"
|
||||||
@ -42,7 +42,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Buster",
|
"distribution": "Buster",
|
||||||
"architecture": "armhf",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description": "Debian 10.x (Buster) (armhf)"
|
"description": "Debian 10.x (Buster) (armhf)"
|
||||||
@ -50,7 +50,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Bullseye",
|
"distribution": "Bullseye",
|
||||||
"architecture": "armhf",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description": "Debian 11.x (Bullseye) (armhf)"
|
"description": "Debian 11.x (Bullseye) (armhf)"
|
||||||
@ -58,7 +58,7 @@
|
|||||||
{
|
{
|
||||||
"distribution": "Bookworm",
|
"distribution": "Bookworm",
|
||||||
"architecture": "armhf",
|
"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",
|
"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",
|
"cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release",
|
||||||
"description": "Debian 12.x (Bookworm) (armhf)"
|
"description": "Debian 12.x (Bookworm) (armhf)"
|
||||||
|
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -8,5 +8,4 @@
|
|||||||
branch = master
|
branch = master
|
||||||
[submodule "dependencies/external/protobuf"]
|
[submodule "dependencies/external/protobuf"]
|
||||||
path = dependencies/external/protobuf
|
path = dependencies/external/protobuf
|
||||||
url = https://github.com/hyperion-project/protobuf.git
|
url = https://github.com/protocolbuffers/protobuf
|
||||||
branch = master
|
|
||||||
|
@ -24,4 +24,3 @@ extraction:
|
|||||||
- "libavahi-compat-libdnssd-dev"
|
- "libavahi-compat-libdnssd-dev"
|
||||||
- "libturbojpeg0-dev"
|
- "libturbojpeg0-dev"
|
||||||
- "libssl-dev"
|
- "libssl-dev"
|
||||||
- "zlib1g-dev"
|
|
||||||
|
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@ -38,7 +38,7 @@
|
|||||||
"name": "(macOS) Hyperion.app",
|
"name": "(macOS) Hyperion.app",
|
||||||
"type": "cppdbg",
|
"type": "cppdbg",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${workspaceFolder}/build/bin/hyperiond.app/Contents/MacOS/hyperiond",
|
"program": "${workspaceFolder}/build/bin/Hyperion.app/Contents/MacOS/Hyperion",
|
||||||
"args": ["-d"],
|
"args": ["-d"],
|
||||||
"stopAtEntry": false,
|
"stopAtEntry": false,
|
||||||
"cwd": "${workspaceFolder}",
|
"cwd": "${workspaceFolder}",
|
||||||
|
@ -10,6 +10,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Added
|
### 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
|
### Changed
|
||||||
|
|
||||||
- Colors Smoothing is started in pause mode to save resources, when Hyperion starts with no active source
|
- 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
|
- 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
|
- 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)
|
- 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
|
## Removed
|
||||||
|
|
||||||
|
216
CMakeLists.txt
216
CMakeLists.txt
@ -2,6 +2,18 @@ cmake_minimum_required(VERSION 3.0.0)
|
|||||||
|
|
||||||
message( STATUS "CMake Version: ${CMAKE_VERSION}" )
|
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)
|
PROJECT(hyperion)
|
||||||
|
|
||||||
# Parse semantic version of version file and write version to config
|
# Parse semantic version of version file and write version to config
|
||||||
@ -19,10 +31,6 @@ set(CMAKE_AUTOMOC ON)
|
|||||||
# auto prepare .qrc files
|
# auto prepare .qrc files
|
||||||
set(CMAKE_AUTORCC ON)
|
set(CMAKE_AUTORCC ON)
|
||||||
|
|
||||||
if ( POLICY CMP0026 )
|
|
||||||
CMAKE_POLICY( SET CMP0026 OLD )
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Configure CCache if available
|
# Configure CCache if available
|
||||||
find_program(CCACHE_FOUND ccache)
|
find_program(CCACHE_FOUND ccache)
|
||||||
if ( CCACHE_FOUND )
|
if ( CCACHE_FOUND )
|
||||||
@ -41,40 +49,61 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set build variables
|
# Set build variables
|
||||||
|
# Grabber
|
||||||
SET ( DEFAULT_AMLOGIC OFF )
|
SET ( DEFAULT_AMLOGIC OFF )
|
||||||
SET ( DEFAULT_BOBLIGHT ON )
|
|
||||||
SET ( DEFAULT_DISPMANX OFF )
|
SET ( DEFAULT_DISPMANX OFF )
|
||||||
SET ( DEFAULT_DX OFF )
|
SET ( DEFAULT_DX OFF )
|
||||||
SET ( DEFAULT_MF OFF )
|
SET ( DEFAULT_MF OFF )
|
||||||
SET ( DEFAULT_OSX OFF )
|
SET ( DEFAULT_OSX OFF )
|
||||||
SET ( DEFAULT_QT ON )
|
SET ( DEFAULT_QT ON )
|
||||||
|
SET ( DEFAULT_V4L2 OFF )
|
||||||
SET ( DEFAULT_X11 OFF )
|
SET ( DEFAULT_X11 OFF )
|
||||||
SET ( DEFAULT_XCB 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 )
|
SET ( DEFAULT_WS281XPWM OFF )
|
||||||
|
|
||||||
|
# Services
|
||||||
SET ( DEFAULT_AVAHI ON )
|
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_SHARED_AVAHI_LIBS ON )
|
||||||
SET ( DEFAULT_USE_SYSTEM_FLATBUFFERS_LIBS OFF )
|
SET ( DEFAULT_USE_SYSTEM_FLATBUFFERS_LIBS OFF )
|
||||||
SET ( DEFAULT_USE_SYSTEM_PROTO_LIBS OFF )
|
SET ( DEFAULT_USE_SYSTEM_PROTO_LIBS OFF )
|
||||||
SET ( DEFAULT_USE_SYSTEM_MBEDTLS_LIBS OFF )
|
SET ( DEFAULT_USE_SYSTEM_MBEDTLS_LIBS OFF )
|
||||||
SET ( DEFAULT_TESTS OFF )
|
|
||||||
SET ( DEFAULT_EXPERIMENTAL OFF )
|
# Build Hyperion with a reduced set of functionality, overwrites other default values
|
||||||
SET ( DEFAULT_CEC OFF )
|
SET ( DEFAULT_HYPERION_LIGHT OFF )
|
||||||
SET ( DEFAULT_DEPLOY_DEPENDENCIES ON )
|
|
||||||
|
|
||||||
IF ( ${CMAKE_SYSTEM} MATCHES "Linux" )
|
IF ( ${CMAKE_SYSTEM} MATCHES "Linux" )
|
||||||
|
SET ( DEFAULT_FB ON )
|
||||||
SET ( DEFAULT_V4L2 ON )
|
SET ( DEFAULT_V4L2 ON )
|
||||||
SET ( DEFAULT_SPIDEV ON )
|
SET ( DEFAULT_SPIDEV ON )
|
||||||
SET ( DEFAULT_TINKERFORGE ON )
|
SET ( DEFAULT_TINKERFORGE ON )
|
||||||
SET ( DEFAULT_FB ON )
|
|
||||||
SET ( DEFAULT_USB_HID ON )
|
SET ( DEFAULT_USB_HID ON )
|
||||||
SET ( DEFAULT_CEC ON )
|
SET ( DEFAULT_CEC ON )
|
||||||
ELSEIF ( WIN32 )
|
ELSEIF ( WIN32 )
|
||||||
SET ( DEFAULT_DX ON )
|
SET ( DEFAULT_DX ON )
|
||||||
SET ( DEFAULT_MF ON )
|
SET ( DEFAULT_MF ON )
|
||||||
ELSE()
|
ELSE()
|
||||||
SET ( DEFAULT_V4L2 OFF )
|
|
||||||
SET ( DEFAULT_FB OFF )
|
SET ( DEFAULT_FB OFF )
|
||||||
|
SET ( DEFAULT_V4L2 OFF )
|
||||||
SET ( DEFAULT_SPIDEV OFF )
|
SET ( DEFAULT_SPIDEV OFF )
|
||||||
SET ( DEFAULT_TINKERFORGE OFF )
|
SET ( DEFAULT_TINKERFORGE OFF )
|
||||||
SET ( DEFAULT_USB_HID OFF )
|
SET ( DEFAULT_USB_HID OFF )
|
||||||
@ -166,49 +195,65 @@ ADD_DEFINITIONS( ${PLATFORM_DEFINE} )
|
|||||||
|
|
||||||
# set the build options
|
# set the build options
|
||||||
|
|
||||||
option(ENABLE_BOBLIGHT "Enable BOBLIGHT server" ${DEFAULT_BOBLIGHT} )
|
option(HYPERION_LIGHT "Build Hyperion with a reduced set of functionality" ${DEFAULT_HYPERION_LIGHT} )
|
||||||
message(STATUS "ENABLE_BOBLIGHT = ${ENABLE_BOBLIGHT}")
|
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} )
|
option(ENABLE_AMLOGIC "Enable the AMLOGIC video grabber" ${DEFAULT_AMLOGIC} )
|
||||||
message(STATUS "ENABLE_AMLOGIC = ${ENABLE_AMLOGIC}")
|
message(STATUS "ENABLE_AMLOGIC = ${ENABLE_AMLOGIC}")
|
||||||
|
|
||||||
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} )
|
option(ENABLE_DISPMANX "Enable the RPi dispmanx grabber" ${DEFAULT_DISPMANX} )
|
||||||
message(STATUS "ENABLE_DISPMANX = ${ENABLE_DISPMANX}")
|
message(STATUS "ENABLE_DISPMANX = ${ENABLE_DISPMANX}")
|
||||||
|
|
||||||
option(ENABLE_OSX "Enable the OSX grabber" ${DEFAULT_OSX} )
|
option(ENABLE_DX "Enable the DirectX grabber" ${DEFAULT_DX})
|
||||||
message(STATUS "ENABLE_OSX = ${ENABLE_OSX}")
|
message(STATUS "ENABLE_DX = ${ENABLE_DX}")
|
||||||
|
|
||||||
option(ENABLE_SPIDEV "Enable the SPIDEV device" ${DEFAULT_SPIDEV} )
|
if (ENABLE_AMLOGIC)
|
||||||
message(STATUS "ENABLE_SPIDEV = ${ENABLE_SPIDEV}")
|
SET(ENABLE_FB ON)
|
||||||
|
else()
|
||||||
option(ENABLE_TINKERFORGE "Enable the TINKERFORGE device" ${DEFAULT_TINKERFORGE})
|
option(ENABLE_FB " Enable the framebuffer grabber" ${DEFAULT_FB} )
|
||||||
message(STATUS "ENABLE_TINKERFORGE = ${ENABLE_TINKERFORGE}")
|
endif()
|
||||||
|
message(STATUS "ENABLE_FB = ${ENABLE_FB}")
|
||||||
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})
|
option(ENABLE_MF "Enable the Media Foundation grabber" ${DEFAULT_MF})
|
||||||
message(STATUS "ENABLE_MF = ${ENABLE_MF}")
|
message(STATUS "ENABLE_MF = ${ENABLE_MF}")
|
||||||
|
|
||||||
option(ENABLE_WS281XPWM "Enable the WS281x-PWM device" ${DEFAULT_WS281XPWM} )
|
option(ENABLE_OSX "Enable the OSX grabber" ${DEFAULT_OSX} )
|
||||||
message(STATUS "ENABLE_WS281XPWM = ${ENABLE_WS281XPWM}")
|
message(STATUS "ENABLE_OSX = ${ENABLE_OSX}")
|
||||||
|
|
||||||
option(ENABLE_AVAHI "Enable Zeroconf" ${DEFAULT_AVAHI})
|
option(ENABLE_QT "Enable the Qt grabber" ${DEFAULT_QT})
|
||||||
message(STATUS "ENABLE_AVAHI = " ${ENABLE_AVAHI})
|
message(STATUS "ENABLE_QT = ${ENABLE_QT}")
|
||||||
|
|
||||||
option(ENABLE_USB_HID "Enable the libusb and hid devices" ${DEFAULT_USB_HID} )
|
option(ENABLE_V4L2 "Enable the V4L2 grabber" ${DEFAULT_V4L2})
|
||||||
message(STATUS "ENABLE_USB_HID = ${ENABLE_USB_HID}")
|
message(STATUS "ENABLE_V4L2 = ${ENABLE_V4L2}")
|
||||||
|
|
||||||
option(ENABLE_CEC "Enable the libcec and CEC control" ${DEFAULT_CEC} )
|
|
||||||
message(STATUS "ENABLE_CEC = ${ENABLE_CEC}")
|
|
||||||
|
|
||||||
option(ENABLE_X11 "Enable the X11 grabber" ${DEFAULT_X11})
|
option(ENABLE_X11 "Enable the X11 grabber" ${DEFAULT_X11})
|
||||||
message(STATUS "ENABLE_X11 = ${ENABLE_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})
|
option(ENABLE_XCB "Enable the XCB grabber" ${DEFAULT_XCB})
|
||||||
message(STATUS "ENABLE_XCB = ${ENABLE_XCB}")
|
message(STATUS "ENABLE_XCB = ${ENABLE_XCB}")
|
||||||
|
|
||||||
option(ENABLE_QT "Enable the Qt grabber" ${DEFAULT_QT})
|
removeIndent()
|
||||||
message(STATUS "ENABLE_QT = ${ENABLE_QT}")
|
|
||||||
|
|
||||||
option(ENABLE_DX "Enable the DirectX grabber" ${DEFAULT_DX})
|
message(STATUS "Input options:")
|
||||||
message(STATUS "ENABLE_DX = ${ENABLE_DX}")
|
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})
|
option(ENABLE_TESTS "Compile additional test applications" ${DEFAULT_TESTS})
|
||||||
message(STATUS "ENABLE_TESTS = ${ENABLE_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)
|
option(ENABLE_PROFILER "enable profiler capabilities - not for release code" OFF)
|
||||||
message(STATUS "ENABLE_PROFILER = ${ENABLE_PROFILER}")
|
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})
|
option(ENABLE_DEPLOY_DEPENDENCIES "Deploy with dependencies" ${DEFAULT_DEPLOY_DEPENDENCIES})
|
||||||
message(STATUS "ENABLE_DEPLOY_DEPENDENCIES = ${ENABLE_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_BIN_DIR ${CMAKE_BINARY_DIR}/flatbuf )
|
||||||
SET ( FLATBUFFERS_INSTALL_LIB_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")
|
set(QTDIR "${SUBDIRQT}/msvc2019_64")
|
||||||
endif()
|
endif()
|
||||||
elseif ( "${PLATFORM}" MATCHES "osx" )
|
elseif ( "${PLATFORM}" MATCHES "osx" )
|
||||||
|
# QT6 x86_64 location
|
||||||
if (EXISTS /usr/local/opt/qt6)
|
if (EXISTS /usr/local/opt/qt6)
|
||||||
set(QTDIR "/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)
|
elseif (EXISTS /usr/local/opt/qt5)
|
||||||
set(QTDIR "/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()
|
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}" )
|
message( FATAL_ERROR "Your Qt version is to old! Minimum required ${QT_MIN_VERSION}" )
|
||||||
ENDIF()
|
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}" )
|
message( STATUS "Qt version used: ${QT_VERSION}" )
|
||||||
|
|
||||||
|
@ -1,62 +1,77 @@
|
|||||||
// Generated config file
|
// 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
|
// Define to enable the AMLogic grabber
|
||||||
#cmakedefine ENABLE_AMLOGIC
|
#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
|
// Define to enable the OSX grabber
|
||||||
#cmakedefine ENABLE_OSX
|
#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
|
// Define to enable the X11 grabber
|
||||||
#cmakedefine ENABLE_X11
|
#cmakedefine ENABLE_X11
|
||||||
|
|
||||||
// Define to enable the XCB grabber
|
// Define to enable the XCB grabber
|
||||||
#cmakedefine ENABLE_XCB
|
#cmakedefine ENABLE_XCB
|
||||||
|
|
||||||
// Define to enable the Qt grabber
|
// Define to enable boblight server
|
||||||
#cmakedefine ENABLE_QT
|
#cmakedefine ENABLE_BOBLIGHT_SERVER
|
||||||
|
|
||||||
// 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 CEC
|
// Define to enable CEC
|
||||||
#cmakedefine ENABLE_CEC
|
#cmakedefine ENABLE_CEC
|
||||||
|
|
||||||
// Define to enable boblight server
|
// Define to enable flatbuffer server
|
||||||
#cmakedefine ENABLE_BOBLIGHT
|
#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
|
// Define to enable the USB / HID devices
|
||||||
#cmakedefine ENABLE_USB_HID
|
#cmakedefine ENABLE_USB_HID
|
||||||
|
|
||||||
// Define to enable profiler for development purpose
|
// Define to enable the WS281x-PWM-via-DMA-device using jgarff's library
|
||||||
#cmakedefine ENABLE_PROFILER
|
#cmakedefine ENABLE_WS281XPWM
|
||||||
|
|
||||||
|
// Define to enable AVAHI
|
||||||
|
#cmakedefine ENABLE_AVAHI
|
||||||
|
|
||||||
// Define to enable experimental features
|
// Define to enable experimental features
|
||||||
#cmakedefine ENABLE_EXPERIMENTAL
|
#cmakedefine ENABLE_EXPERIMENTAL
|
||||||
|
|
||||||
|
// Define to enable profiler for development purpose
|
||||||
|
#cmakedefine ENABLE_PROFILER
|
||||||
|
|
||||||
// Define to enable deploy dependencies to packages
|
// Define to enable deploy dependencies to packages
|
||||||
#cmakedefine ENABLE_DEPLOY_DEPENDENCIES
|
#cmakedefine ENABLE_DEPLOY_DEPENDENCIES
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
<span id="dash_config_status">Status</span>
|
<span id="dash_config_status">Status</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<table class="table borderless">
|
<table id="dash_capture_hw" class="table borderless">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th colspan="3">
|
<th colspan="3">
|
||||||
@ -26,7 +26,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr id="dash_screen_grabber_row">
|
||||||
<td></td>
|
<td></td>
|
||||||
<td data-i18n="edt_conf_fg_heading_title">Screen-Grabber</td>
|
<td data-i18n="edt_conf_fg_heading_title">Screen-Grabber</td>
|
||||||
<td style="text-align: right; padding-right: 0">
|
<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>
|
<a class="fa fa-cog fa-fw" onclick="SwitchToMenuItem('MenuItemGrabber', 'editor_container_screengrabber')" style="text-decoration: none; cursor: pointer"></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr id="dash_video_grabber_row">
|
||||||
<td></td>
|
<td></td>
|
||||||
<td data-i18n="edt_conf_v4l2_heading_title">Video-Grabber</td>
|
<td data-i18n="edt_conf_v4l2_heading_title">Video-Grabber</td>
|
||||||
<td style="text-align: right; padding-right: 0">
|
<td style="text-align: right; padding-right: 0">
|
||||||
@ -44,7 +44,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<table class="table borderless">
|
<table id="dash_ports" class="table borderless">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th colspan="3">
|
<th colspan="3">
|
||||||
@ -54,15 +54,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr id="dash_ports_flat_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></td>
|
||||||
<td data-i18n="dashboard_infobox_label_port_flat">flat</td>
|
<td data-i18n="dashboard_infobox_label_port_flat">flat</td>
|
||||||
<td style="text-align: right; padding-right: 0">
|
<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>
|
<a class="fa fa-cog fa-fw" onclick="SwitchToMenuItem('MenuItemNetwork', 'editor_container_fbserver')" style="text-decoration: none; cursor: pointer"></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</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>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td data-i18n="dashboard_infobox_label_port_json">json</td>
|
<td data-i18n="dashboard_infobox_label_port_json">json</td>
|
||||||
|
@ -14,8 +14,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<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 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-heading"><i class="fa fa-wifi fa-fw"></i><span data-i18n="remote_input_label">Source selection</span></div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div id="sstcont"></div>
|
<div id="sstcont"></div>
|
||||||
@ -24,17 +24,19 @@
|
|||||||
</div>
|
</div>
|
||||||
</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 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-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">
|
<div class="panel-body" id="comp_intro">
|
||||||
<div id="componentsbutton"></div>
|
<div id="componentsbutton"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
<div class="col-md-6 col-lg-6 col-xxl-4">
|
<div class="col-md-6 col-lg-6 col-xxl-4">
|
||||||
<div class="panel panel-default" >
|
<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>
|
<div class="panel-heading"><i class="fa fa-wifi fa-fw"></i><span data-i18n="remote_color_label">Colors/Effects</span></div>
|
||||||
<div class="panel-body" id="color_intro">
|
<div class="panel-body" id="color_intro">
|
||||||
<table class="table borderless">
|
<table class="table borderless">
|
||||||
@ -43,7 +45,7 @@
|
|||||||
<td style="vertical-align:middle"><label for="cpeff" data-i18n="remote_color_label_color"></label></td>
|
<td style="vertical-align:middle"><label for="cpeff" data-i18n="remote_color_label_color"></label></td>
|
||||||
<td>
|
<td>
|
||||||
<div id="cp2" class="colorpicker-component input-group">
|
<div id="cp2" class="colorpicker-component input-group">
|
||||||
<input type="text" id="cpeff" class="form-control"/>
|
<input type="text" id="cpeff" class="form-control" />
|
||||||
<span class="input-group-addon"><i></i></span>
|
<span class="input-group-addon"><i></i></span>
|
||||||
<span class="input-group-addon" id="remote_input_rescol" title="Repeat Color" style="cursor:pointer"><i class="fa fa-repeat"></i></span>
|
<span class="input-group-addon" id="remote_input_rescol" title="Repeat Color" style="cursor:pointer"><i class="fa fa-repeat"></i></span>
|
||||||
</div>
|
</div>
|
||||||
@ -57,7 +59,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="vertical-align:middle"><label for="remote_input_img" data-i18n="remote_effects_label_picture" >Picture:</label></td>
|
<td style="vertical-align:middle"><label for="remote_input_img" data-i18n="remote_effects_label_picture">Picture:</label></td>
|
||||||
<td class="input-group custom-file">
|
<td class="input-group custom-file">
|
||||||
<input class="form-control" id="remote_input_img" type="file" accept="image/*" />
|
<input class="form-control" id="remote_input_img" type="file" accept="image/*" />
|
||||||
<span class="input-group-addon" id="remote_input_repimg" title="Repeat Image" style="cursor:pointer"><i class="fa fa-repeat"></i></span>
|
<span class="input-group-addon" id="remote_input_repimg" title="Repeat Image" style="cursor:pointer"><i class="fa fa-repeat"></i></span>
|
||||||
@ -66,7 +68,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td style="vertical-align:middle"><label for="remote_duration" data-i18n="remote_input_duration"></label></td>
|
<td style="vertical-align:middle"><label for="remote_duration" data-i18n="remote_input_duration"></label></td>
|
||||||
<td class="input-group">
|
<td class="input-group">
|
||||||
<input id="remote_duration" type="number" class="form-control" value="0" min="0"/>
|
<input id="remote_duration" type="number" class="form-control" value="0" min="0" />
|
||||||
<span class="input-group-addon" data-i18n="edt_append_s"></span>
|
<span class="input-group-addon" data-i18n="edt_append_s"></span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -77,7 +79,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6 col-lg-6 col-xxl-3">
|
<div class="col-md-6 col-lg-6 col-xxl-3">
|
||||||
<div class="panel panel-default" >
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading"><i class="fa fa-wifi fa-fw"></i><span data-i18n="remote_maptype_label">Mapping types</span></div>
|
<div class="panel-heading"><i class="fa fa-wifi fa-fw"></i><span data-i18n="remote_maptype_label">Mapping types</span></div>
|
||||||
<div class="panel-body" id="maptype_intro">
|
<div class="panel-body" id="maptype_intro">
|
||||||
<div id="mappingsbutton"></div>
|
<div id="mappingsbutton"></div>
|
||||||
@ -85,7 +87,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6 col-lg-6 col-xxl-5">
|
<div class="col-md-6 col-lg-6 col-xxl-5">
|
||||||
<div class="panel panel-default" >
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading"><i class="fa fa-wifi fa-fw"></i><span data-i18n="remote_videoMode_label"></span></div>
|
<div class="panel-heading"><i class="fa fa-wifi fa-fw"></i><span data-i18n="remote_videoMode_label"></span></div>
|
||||||
<div class="panel-body" id="videomode_intro">
|
<div class="panel-body" id="videomode_intro">
|
||||||
<div id="videomodebtns"></div>
|
<div id="videomodebtns"></div>
|
||||||
@ -93,7 +95,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6 col-lg-6 col-xxl-5">
|
<div class="col-md-6 col-lg-6 col-xxl-5">
|
||||||
<div class="panel panel-default" >
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading"><i class="fa fa-wifi fa-fw"></i><span data-i18n="remote_adjustment_label"></span></div>
|
<div class="panel-heading"><i class="fa fa-wifi fa-fw"></i><span data-i18n="remote_adjustment_label"></span></div>
|
||||||
<div class="panel-body" id="adjust_content">
|
<div class="panel-body" id="adjust_content">
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
performTranslation();
|
performTranslation();
|
||||||
|
|
||||||
|
var BORDERDETECT_ENABLED = (jQuery.inArray("borderdetection", window.serverInfo.services) !== -1);
|
||||||
|
|
||||||
// update instance listing
|
// update instance listing
|
||||||
updateHyperionInstanceListing();
|
updateHyperionInstanceListing();
|
||||||
|
|
||||||
@ -20,16 +22,20 @@ $(document).ready(function () {
|
|||||||
$('#conf_cont_smoothing').append(createHelpTable(window.schema.smoothing.properties, $.i18n("edt_conf_smooth_heading_title"), "smoothingHelpPanelId"));
|
$('#conf_cont_smoothing').append(createHelpTable(window.schema.smoothing.properties, $.i18n("edt_conf_smooth_heading_title"), "smoothingHelpPanelId"));
|
||||||
|
|
||||||
//blackborder
|
//blackborder
|
||||||
|
if (BORDERDETECT_ENABLED) {
|
||||||
$('#conf_cont').append(createRow('conf_cont_blackborder'));
|
$('#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(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"));
|
$('#conf_cont_blackborder').append(createHelpTable(window.schema.blackborderdetector.properties, $.i18n("edt_conf_bb_heading_title"), "blackborderHelpPanelId"));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
$('#conf_cont').addClass('row');
|
$('#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_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'));
|
$('#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'));
|
$('#conf_cont').append(createOptPanel('fa-photo', $.i18n("edt_conf_bb_heading_title"), 'editor_container_blackborder', 'btn_submit_blackborder'));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//color
|
//color
|
||||||
editor_color = createJsonEditor('editor_container_color', {
|
editor_color = createJsonEditor('editor_container_color', {
|
||||||
@ -66,6 +72,7 @@ $(document).ready(function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
//blackborder
|
//blackborder
|
||||||
|
if (BORDERDETECT_ENABLED) {
|
||||||
editor_blackborder = createJsonEditor('editor_container_blackborder', {
|
editor_blackborder = createJsonEditor('editor_container_blackborder', {
|
||||||
blackborderdetector: window.schema.blackborderdetector
|
blackborderdetector: window.schema.blackborderdetector
|
||||||
}, true, true);
|
}, true, true);
|
||||||
@ -88,6 +95,7 @@ $(document).ready(function () {
|
|||||||
$('#btn_submit_blackborder').off().on('click', function () {
|
$('#btn_submit_blackborder').off().on('click', function () {
|
||||||
requestWriteConfig(editor_blackborder.getValue());
|
requestWriteConfig(editor_blackborder.getValue());
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
//wiki links
|
//wiki links
|
||||||
var wikiElement = $(buildWL("user/advanced/Advanced.html#blackbar-detection", "edt_conf_bb_mode_title", true));
|
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) {
|
if (window.showOptHelp) {
|
||||||
createHint("intro", $.i18n('conf_colors_color_intro'), "editor_container_color");
|
createHint("intro", $.i18n('conf_colors_color_intro'), "editor_container_color");
|
||||||
createHint("intro", $.i18n('conf_colors_smoothing_intro'), "editor_container_smoothing");
|
createHint("intro", $.i18n('conf_colors_smoothing_intro'), "editor_container_smoothing");
|
||||||
|
if (BORDERDETECT_ENABLED) {
|
||||||
createHint("intro", $.i18n('conf_colors_blackborder_intro'), "editor_container_blackborder");
|
createHint("intro", $.i18n('conf_colors_blackborder_intro'), "editor_container_blackborder");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
removeOverlay();
|
removeOverlay();
|
||||||
});
|
});
|
||||||
|
@ -102,15 +102,41 @@ $(document).ready(function () {
|
|||||||
|
|
||||||
// add more info
|
// 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');
|
var screenGrabber = window.serverConfig.framegrabber.enable ? $.i18n('general_enabled') : $.i18n('general_disabled');
|
||||||
$('#dash_screen_grabber').html(screenGrabber);
|
$('#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');
|
var videoGrabber = window.serverConfig.grabberV4L2.enable ? $.i18n('general_enabled') : $.i18n('general_disabled');
|
||||||
$('#dash_video_grabber').html(videoGrabber);
|
$('#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');
|
var fbPort = window.serverConfig.flatbufServer.enable ? window.serverConfig.flatbufServer.port : $.i18n('general_disabled');
|
||||||
$('#dash_fbPort').html(fbPort);
|
$('#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');
|
var pbPort = window.serverConfig.protoServer.enable ? window.serverConfig.protoServer.port : $.i18n('general_disabled');
|
||||||
$('#dash_pbPort').html(pbPort);
|
$('#dash_pbPort').html(pbPort);
|
||||||
|
} else {
|
||||||
|
$("#dash_ports_proto_row").hide();
|
||||||
|
}
|
||||||
|
|
||||||
var jsonPort = window.serverConfig.jsonServer.port;
|
var jsonPort = window.serverConfig.jsonServer.port;
|
||||||
$('#dash_jsonPort').html(jsonPort);
|
$('#dash_jsonPort').html(jsonPort);
|
||||||
|
@ -1,17 +1,29 @@
|
|||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
|
||||||
performTranslation();
|
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_video = null;
|
||||||
var conf_editor_screen = null;
|
var conf_editor_screen = null;
|
||||||
|
|
||||||
|
var configuredDevice = "";
|
||||||
|
var discoveredInputSources = {};
|
||||||
|
var deviceProperties = {};
|
||||||
|
|
||||||
// Screen-Grabber
|
// Screen-Grabber
|
||||||
|
if (screenGrabberAvailable) {
|
||||||
$('#conf_cont').append(createRow('conf_cont_screen'));
|
$('#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'));
|
$('#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) {
|
if (window.showOptHelp) {
|
||||||
$('#conf_cont_screen').append(createHelpTable(window.schema.framegrabber.properties, $.i18n("edt_conf_fg_heading_title"), "screengrabberHelpPanelId"));
|
$('#conf_cont_screen').append(createHelpTable(window.schema.framegrabber.properties, $.i18n("edt_conf_fg_heading_title"), "screengrabberHelpPanelId"));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Video-Grabber
|
// Video-Grabber
|
||||||
|
if (videoGrabberAvailable) {
|
||||||
$('#conf_cont').append(createRow('conf_cont_video'));
|
$('#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'));
|
$('#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) {
|
if (window.showOptHelp) {
|
||||||
$('#conf_cont_video').append(createHelpTable(window.schema.grabberV4L2.properties, $.i18n("edt_conf_v4l2_heading_title"), "videograbberHelpPanelId"));
|
$('#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) {
|
JSONEditor.defaults.custom_validators.push(function (schema, value, path) {
|
||||||
var errors = [];
|
var errors = [];
|
||||||
@ -77,6 +90,7 @@ $(document).ready(function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Screen-Grabber
|
// Screen-Grabber
|
||||||
|
if (screenGrabberAvailable) {
|
||||||
conf_editor_screen = createJsonEditor('editor_container_screengrabber', {
|
conf_editor_screen = createJsonEditor('editor_container_screengrabber', {
|
||||||
framegrabber: window.schema.framegrabber
|
framegrabber: window.schema.framegrabber
|
||||||
}, true, true);
|
}, true, true);
|
||||||
@ -300,13 +314,10 @@ $(document).ready(function () {
|
|||||||
|
|
||||||
requestWriteConfig(saveOptions);
|
requestWriteConfig(saveOptions);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// External Input Sources (Video-Grabbers)
|
// External Input Sources (Video-Grabbers)
|
||||||
|
if (videoGrabberAvailable) {
|
||||||
var configuredDevice = "";
|
|
||||||
var discoveredInputSources = {};
|
|
||||||
var deviceProperties = {};
|
|
||||||
|
|
||||||
function updateDeviceProperties(deviceProperties, property, key) {
|
function updateDeviceProperties(deviceProperties, property, key) {
|
||||||
var properties = {};
|
var properties = {};
|
||||||
if (deviceProperties) {
|
if (deviceProperties) {
|
||||||
@ -341,7 +352,7 @@ $(document).ready(function () {
|
|||||||
conf_editor_video.on('change', function () {
|
conf_editor_video.on('change', function () {
|
||||||
|
|
||||||
// Hide elements not supported by the backend
|
// 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);
|
showInputOptionForItem(conf_editor_video, "grabberV4L2", "cecDetection", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -681,6 +692,7 @@ $(document).ready(function () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
|
|
||||||
@ -688,9 +700,13 @@ $(document).ready(function () {
|
|||||||
|
|
||||||
//create introduction
|
//create introduction
|
||||||
if (window.showOptHelp) {
|
if (window.showOptHelp) {
|
||||||
|
if (screenGrabberAvailable) {
|
||||||
createHint("intro", $.i18n('conf_grabber_fg_intro'), "editor_container_screengrabber");
|
createHint("intro", $.i18n('conf_grabber_fg_intro'), "editor_container_screengrabber");
|
||||||
|
}
|
||||||
|
if (videoGrabberAvailable) {
|
||||||
createHint("intro", $.i18n('conf_grabber_v4l_intro'), "editor_container_videograbber");
|
createHint("intro", $.i18n('conf_grabber_v4l_intro'), "editor_container_videograbber");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
removeOverlay();
|
removeOverlay();
|
||||||
|
|
||||||
@ -773,11 +789,15 @@ $(document).ready(function () {
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case "screen":
|
case "screen":
|
||||||
discoveredInputSources.screen = discoveryResult.video_sources;
|
discoveredInputSources.screen = discoveryResult.video_sources;
|
||||||
|
if (screenGrabberAvailable) {
|
||||||
updateScreenSourcesList(type, discoveredInputSources.screen);
|
updateScreenSourcesList(type, discoveredInputSources.screen);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "video":
|
case "video":
|
||||||
discoveredInputSources.video = discoveryResult.video_sources;
|
discoveredInputSources.video = discoveryResult.video_sources;
|
||||||
|
if (videoGrabberAvailable) {
|
||||||
updateVideoSourcesList(type, discoveredInputSources.video);
|
updateVideoSourcesList(type, discoveredInputSources.video);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -222,6 +222,12 @@ $(document).ready(function () {
|
|||||||
|
|
||||||
$(window.hyperion).one("ready", function (event) {
|
$(window.hyperion).one("ready", function (event) {
|
||||||
// Content will be loaded by the instance load/switch
|
// 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) {
|
$(window.hyperion).on("cmd-adjustment-update", function (event) {
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
performTranslation();
|
performTranslation();
|
||||||
|
|
||||||
|
var screenGrabberAvailable = (window.serverInfo.grabbers.screen.available.length !== 0);
|
||||||
|
var videoGrabberAvailable = (window.serverInfo.grabbers.video.available.length !== 0);
|
||||||
|
|
||||||
// update instance listing
|
// update instance listing
|
||||||
updateHyperionInstanceListing();
|
updateHyperionInstanceListing();
|
||||||
|
|
||||||
@ -26,6 +29,7 @@ $(document).ready(function () {
|
|||||||
|
|
||||||
conf_editor_instCapt.on('ready', function () {
|
conf_editor_instCapt.on('ready', function () {
|
||||||
|
|
||||||
|
if (screenGrabberAvailable) {
|
||||||
if (!window.serverConfig.framegrabber.enable) {
|
if (!window.serverConfig.framegrabber.enable) {
|
||||||
conf_editor_instCapt.getEditor("root.instCapture.systemEnable").setValue(false);
|
conf_editor_instCapt.getEditor("root.instCapture.systemEnable").setValue(false);
|
||||||
conf_editor_instCapt.getEditor("root.instCapture.systemEnable").disable();
|
conf_editor_instCapt.getEditor("root.instCapture.systemEnable").disable();
|
||||||
@ -33,13 +37,25 @@ $(document).ready(function () {
|
|||||||
else {
|
else {
|
||||||
conf_editor_instCapt.getEditor("root.instCapture.systemEnable").setValue(window.serverConfig.instCapture.systemEnable);
|
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) {
|
if (!window.serverConfig.grabberV4L2.enable) {
|
||||||
conf_editor_instCapt.getEditor("root.instCapture.v4lEnable").setValue(false);
|
conf_editor_instCapt.getEditor("root.instCapture.v4lEnable").setValue(false);
|
||||||
conf_editor_instCapt.getEditor("root.instCapture.v4lEnable").disable();
|
conf_editor_instCapt.getEditor("root.instCapture.v4lEnable").disable();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
conf_editor_instCapt.getEditor("root.instCapture.v4lEnable").setValue(window.serverConfig.instCapture.v4lEnable);
|
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', () => {
|
conf_editor_instCapt.watch('root.instCapture.v4lEnable', () => {
|
||||||
|
console.log("instCapt.watch(root.instCapture.v4lEnable");
|
||||||
var videoEnable = conf_editor_instCapt.getEditor("root.instCapture.v4lEnable").getValue();
|
var videoEnable = conf_editor_instCapt.getEditor("root.instCapture.v4lEnable").getValue();
|
||||||
if (videoEnable) {
|
if (videoEnable) {
|
||||||
conf_editor_instCapt.getEditor("root.instCapture.v4lGrabberDevice").setValue(window.serverConfig.grabberV4L2.available_devices);
|
conf_editor_instCapt.getEditor("root.instCapture.v4lGrabberDevice").setValue(window.serverConfig.grabberV4L2.available_devices);
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
performTranslation();
|
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_net = null;
|
||||||
var conf_editor_json = 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")));
|
$('#conf_cont_json').append(createHelpTable(window.schema.jsonServer.properties, $.i18n("edt_conf_js_heading_title")));
|
||||||
|
|
||||||
//flatbufserver
|
//flatbufserver
|
||||||
|
if (FLATBUF_SERVER_ENABLED) {
|
||||||
$('#conf_cont').append(createRow('conf_cont_flatbuf'));
|
$('#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(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"));
|
$('#conf_cont_flatbuf').append(createHelpTable(window.schema.flatbufServer.properties, $.i18n("edt_conf_fbs_heading_title"), "flatbufServerHelpPanelId"));
|
||||||
|
}
|
||||||
|
|
||||||
//protoserver
|
//protoserver
|
||||||
|
if (PROTOTBUF_SERVER_ENABLED) {
|
||||||
$('#conf_cont').append(createRow('conf_cont_proto'));
|
$('#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(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"));
|
$('#conf_cont_proto').append(createHelpTable(window.schema.protoServer.properties, $.i18n("edt_conf_pbs_heading_title"), "protoServerHelpPanelId"));
|
||||||
|
}
|
||||||
|
|
||||||
//boblight
|
//boblight
|
||||||
if (BOBLIGHT_ENABLED) {
|
if (BOBLIGHT_ENABLED) {
|
||||||
@ -41,21 +48,30 @@ $(document).ready(function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//forwarder
|
//forwarder
|
||||||
|
if (FORWARDER_ENABLED) {
|
||||||
if (storedAccess != 'default') {
|
if (storedAccess != 'default') {
|
||||||
$('#conf_cont').append(createRow('conf_cont_fw'));
|
$('#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(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"));
|
$('#conf_cont_fw').append(createHelpTable(window.schema.forwarder.properties, $.i18n("edt_conf_fw_heading_title"), "forwarderHelpPanelId"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
$('#conf_cont').addClass('row');
|
$('#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_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'));
|
$('#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'));
|
$('#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'));
|
$('#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'));
|
$('#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').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fw_heading_title"), 'editor_container_forwarder', 'btn_submit_forwarder'));
|
||||||
|
}
|
||||||
$("#conf_cont_tok").removeClass('row');
|
$("#conf_cont_tok").removeClass('row');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,6 +102,7 @@ $(document).ready(function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
//flatbuffer
|
//flatbuffer
|
||||||
|
if (FLATBUF_SERVER_ENABLED) {
|
||||||
conf_editor_fbs = createJsonEditor('editor_container_fbserver', {
|
conf_editor_fbs = createJsonEditor('editor_container_fbserver', {
|
||||||
flatbufServer: window.schema.flatbufServer
|
flatbufServer: window.schema.flatbufServer
|
||||||
}, true, true);
|
}, true, true);
|
||||||
@ -105,8 +122,10 @@ $(document).ready(function () {
|
|||||||
$('#btn_submit_fbserver').off().on('click', function () {
|
$('#btn_submit_fbserver').off().on('click', function () {
|
||||||
requestWriteConfig(conf_editor_fbs.getValue());
|
requestWriteConfig(conf_editor_fbs.getValue());
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
//protobuffer
|
//protobuffer
|
||||||
|
if (PROTOTBUF_SERVER_ENABLED) {
|
||||||
conf_editor_proto = createJsonEditor('editor_container_protoserver', {
|
conf_editor_proto = createJsonEditor('editor_container_protoserver', {
|
||||||
protoServer: window.schema.protoServer
|
protoServer: window.schema.protoServer
|
||||||
}, true, true);
|
}, true, true);
|
||||||
@ -126,6 +145,7 @@ $(document).ready(function () {
|
|||||||
$('#btn_submit_protoserver').off().on('click', function () {
|
$('#btn_submit_protoserver').off().on('click', function () {
|
||||||
requestWriteConfig(conf_editor_proto.getValue());
|
requestWriteConfig(conf_editor_proto.getValue());
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
//boblight
|
//boblight
|
||||||
if (BOBLIGHT_ENABLED) {
|
if (BOBLIGHT_ENABLED) {
|
||||||
@ -150,8 +170,9 @@ $(document).ready(function () {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (storedAccess != 'default') {
|
|
||||||
//forwarder
|
//forwarder
|
||||||
|
if (FORWARDER_ENABLED) {
|
||||||
|
if (storedAccess != 'default') {
|
||||||
conf_editor_forw = createJsonEditor('editor_container_forwarder', {
|
conf_editor_forw = createJsonEditor('editor_container_forwarder', {
|
||||||
forwarder: window.schema.forwarder
|
forwarder: window.schema.forwarder
|
||||||
}, true, true);
|
}, true, true);
|
||||||
@ -172,17 +193,24 @@ $(document).ready(function () {
|
|||||||
requestWriteConfig(conf_editor_forw.getValue());
|
requestWriteConfig(conf_editor_forw.getValue());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//create introduction
|
//create introduction
|
||||||
if (window.showOptHelp) {
|
if (window.showOptHelp) {
|
||||||
createHint("intro", $.i18n('conf_network_net_intro'), "editor_container_net");
|
createHint("intro", $.i18n('conf_network_net_intro'), "editor_container_net");
|
||||||
createHint("intro", $.i18n('conf_network_json_intro'), "editor_container_jsonserver");
|
createHint("intro", $.i18n('conf_network_json_intro'), "editor_container_jsonserver");
|
||||||
|
if (FLATBUF_SERVER_ENABLED) {
|
||||||
createHint("intro", $.i18n('conf_network_fbs_intro'), "editor_container_fbserver");
|
createHint("intro", $.i18n('conf_network_fbs_intro'), "editor_container_fbserver");
|
||||||
|
}
|
||||||
|
if (PROTOTBUF_SERVER_ENABLED) {
|
||||||
createHint("intro", $.i18n('conf_network_proto_intro'), "editor_container_protoserver");
|
createHint("intro", $.i18n('conf_network_proto_intro'), "editor_container_protoserver");
|
||||||
|
}
|
||||||
if (BOBLIGHT_ENABLED) {
|
if (BOBLIGHT_ENABLED) {
|
||||||
createHint("intro", $.i18n('conf_network_bobl_intro'), "editor_container_boblightserver");
|
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_forw_intro'), "editor_container_forwarder");
|
||||||
|
}
|
||||||
createHint("intro", $.i18n('conf_network_tok_intro'), "tok_desc_cont");
|
createHint("intro", $.i18n('conf_network_tok_intro'), "tok_desc_cont");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1200,7 +1200,7 @@ function getSystemInfo() {
|
|||||||
var sys = window.sysInfo.system;
|
var sys = window.sysInfo.system;
|
||||||
var shy = window.sysInfo.hyperion;
|
var shy = window.sysInfo.hyperion;
|
||||||
|
|
||||||
var info = "Hyperion Server: \n";
|
var info = "Hyperion Server:\n";
|
||||||
info += '- Build: ' + shy.build + '\n';
|
info += '- Build: ' + shy.build + '\n';
|
||||||
info += '- Build time: ' + shy.time + '\n';
|
info += '- Build time: ' + shy.time + '\n';
|
||||||
info += '- Git Remote: ' + shy.gitremote + '\n';
|
info += '- Git Remote: ' + shy.gitremote + '\n';
|
||||||
@ -1208,13 +1208,15 @@ function getSystemInfo() {
|
|||||||
info += '- UI Lang: ' + storedLang + ' (BrowserLang: ' + navigator.language + ')\n';
|
info += '- UI Lang: ' + storedLang + ' (BrowserLang: ' + navigator.language + ')\n';
|
||||||
info += '- UI Access: ' + storedAccess + '\n';
|
info += '- UI Access: ' + storedAccess + '\n';
|
||||||
//info += '- Log lvl: ' + window.serverConfig.logger.level + '\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 += '- Config path: ' + shy.rootPath + '\n';
|
||||||
info += '- Database: ' + (shy.readOnlyMode ? "ready-only" : "read/write") + '\n';
|
info += '- Database: ' + (shy.readOnlyMode ? "ready-only" : "read/write") + '\n';
|
||||||
|
|
||||||
info += '\n';
|
info += '\n';
|
||||||
|
|
||||||
info += 'Hyperion Server OS: \n';
|
info += 'Hyperion Server OS:\n';
|
||||||
info += '- Distribution: ' + sys.prettyName + '\n';
|
info += '- Distribution: ' + sys.prettyName + '\n';
|
||||||
info += '- Architecture: ' + sys.architecture + '\n';
|
info += '- Architecture: ' + sys.architecture + '\n';
|
||||||
|
|
||||||
|
@ -27,7 +27,6 @@ sudo apt-get install \
|
|||||||
libssl-dev \
|
libssl-dev \
|
||||||
libqt5sql5-sqlite \
|
libqt5sql5-sqlite \
|
||||||
libqt5svg5-dev \
|
libqt5svg5-dev \
|
||||||
zlib1g-dev \
|
|
||||||
|
|
||||||
if [ -e /dev/vc-cma -a -e /dev/vc-mem ]
|
if [ -e /dev/vc-cma -a -e /dev/vc-mem ]
|
||||||
then
|
then
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
# - Find the native BCM includes and library
|
# Find Broadcom VideoCore firmware installation
|
||||||
#
|
#
|
||||||
|
|
||||||
# This module defines
|
# This module defines
|
||||||
# BCM_INCLUDE_DIR, where to find png.h, etc.
|
# BCM_INCLUDE_DIR - The Broadcom VideoCore include directory
|
||||||
# BCM_LIBRARIES, the libraries to link against to use PNG.
|
# BCM_LIBRARIES - The Broadcom VideoCore BCM_HOST library.
|
||||||
# BCM_FOUND, If false, do not try to use PNG.
|
# BCM_FOUND - BCM_HOST is available
|
||||||
#
|
#
|
||||||
|
|
||||||
FIND_PATH(BCM_INCLUDE_DIR
|
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>
|
<key>CFBundleDeveloperRegion</key>
|
||||||
<string>en</string>
|
<string>en</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>com.hyperion-project.hyperiond</string>
|
<string>${MACOSX_BUNDLE_GUI_IDENTIFIER}</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>Hyperion</string>
|
<string>Hyperion</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>Hyperion</string>
|
<string>Hyperion</string>
|
||||||
<key>CFBundleIconFile</key>
|
<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>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
<string>6.0</string>
|
<string>6.0</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
<string>MIT License</string>
|
<string>${MACOSX_BUNDLE_COPYRIGHT}</string>
|
||||||
<key>Source Code</key>
|
<key>Source Code</key>
|
||||||
<string>"https://github.com/hyperion-project/hyperion.ng"</string>
|
<string>"https://github.com/hyperion-project/hyperion.ng"</string>
|
||||||
</dict>
|
</dict>
|
87
dependencies/CMakeLists.txt
vendored
87
dependencies/CMakeLists.txt
vendored
@ -16,12 +16,13 @@ endif()
|
|||||||
# FLATBUFFER
|
# FLATBUFFER
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
set(USE_SYSTEM_FLATBUFFERS_LIBS ${DEFAULT_USE_SYSTEM_FLATBUFFERS_LIBS} CACHE BOOL "use flatbuffers library from system")
|
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)
|
if (USE_SYSTEM_FLATBUFFERS_LIBS)
|
||||||
find_program(FLATBUFFERS_FLATC_EXECUTABLE NAMES flatc REQUIRED)
|
find_program(FLATBUFFERS_FLATC_EXECUTABLE NAMES flatc REQUIRED)
|
||||||
find_package(Flatbuffers REQUIRED)
|
find_package(Flatbuffers REQUIRED)
|
||||||
else ()
|
else ()
|
||||||
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared flatbuffers library")
|
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared flatbuffers library")
|
||||||
set(FLATBUFFERS_BUILD_TESTS OFF CACHE BOOL "Build Flatbuffers with tests")
|
set(FLATBUFFERS_BUILD_TESTS OFF CACHE BOOL "Build Flatbuffers with tests")
|
||||||
add_subdirectory(external/flatbuffers)
|
add_subdirectory(external/flatbuffers)
|
||||||
@ -40,21 +41,21 @@ else ()
|
|||||||
|
|
||||||
IF (NOT CMAKE_CROSSCOMPILING)
|
IF (NOT CMAKE_CROSSCOMPILING)
|
||||||
# define the flatc executable at the parent scope
|
# 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()
|
else()
|
||||||
#Workaround, set flatc comiplier directory hard, as cmake definitions of flatc do not cater for crosscompile correctly.
|
#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
|
#Includ of flatc_export.cmake detects that flatc target is defined aand returns before using the definitions written by export
|
||||||
set ( FLATBUFFERS_FLATC_EXECUTABLE "${CMAKE_BINARY_DIR}/../build-x86x64/bin/flatc")
|
set ( FLATBUFFERS_FLATC_EXECUTABLE "${CMAKE_BINARY_DIR}/../build-x86x64/bin/flatc")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
set(FLATBUFFERS_FLATC_EXECUTABLE ${FLATBUFFERS_FLATC_EXECUTABLE} PARENT_SCOPE)
|
set(FLATBUFFERS_FLATC_EXECUTABLE ${FLATBUFFERS_FLATC_EXECUTABLE} PARENT_SCOPE)
|
||||||
set(FLATBUFFERS_INCLUDE_DIRS ${FLATBUFFERS_INCLUDE_DIRS} PARENT_SCOPE)
|
set(FLATBUFFERS_INCLUDE_DIRS ${FLATBUFFERS_INCLUDE_DIRS} PARENT_SCOPE)
|
||||||
include_directories(${FLATBUFFERS_INCLUDE_DIRS})
|
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)
|
function(compile_flattbuffer_schema SRC_FBS OUTPUT_DIR)
|
||||||
string(REGEX REPLACE "\\.fbs$" "_generated.h" GEN_HEADER ${SRC_FBS})
|
string(REGEX REPLACE "\\.fbs$" "_generated.h" GEN_HEADER ${SRC_FBS})
|
||||||
set_property(SOURCE ${GEN_HEADER} PROPERTY SKIP_AUTOMOC ON)
|
set_property(SOURCE ${GEN_HEADER} PROPERTY SKIP_AUTOMOC ON)
|
||||||
|
|
||||||
@ -65,25 +66,29 @@ function(compile_flattbuffer_schema SRC_FBS OUTPUT_DIR)
|
|||||||
-o "${OUTPUT_DIR}"
|
-o "${OUTPUT_DIR}"
|
||||||
"${SRC_FBS}"
|
"${SRC_FBS}"
|
||||||
DEPENDS "${FLATBUFFERS_FLATC_EXECUTABLE}" ${SRC_FBS})
|
DEPENDS "${FLATBUFFERS_FLATC_EXECUTABLE}" ${SRC_FBS})
|
||||||
endfunction()
|
endfunction()
|
||||||
|
endif()
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# PROTOBUFFER
|
# PROTOBUFFER
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
set(USE_SYSTEM_PROTO_LIBS ${DEFAULT_USE_SYSTEM_PROTO_LIBS} CACHE BOOL "use protobuf library from system")
|
if(ENABLE_PROTOBUF_SERVER)
|
||||||
|
|
||||||
if (USE_SYSTEM_PROTO_LIBS)
|
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)
|
find_package(Protobuf REQUIRED)
|
||||||
else ()
|
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_BUILD_SHARED_LIBS OFF CACHE BOOL "Build protobuf shared")
|
||||||
|
set(protobuf_WITH_ZLIB OFF CACHE BOOL "Build protobuf with zlib support")
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
set(protobuf_MSVC_STATIC_RUNTIME OFF CACHE BOOL "Build protobuf static")
|
set(protobuf_MSVC_STATIC_RUNTIME OFF CACHE BOOL "Build protobuf static")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_subdirectory(external/protobuf)
|
add_subdirectory(external/protobuf/cmake)
|
||||||
|
|
||||||
if(CMAKE_CROSSCOMPILING)
|
if(CMAKE_CROSSCOMPILING)
|
||||||
# when crosscompiling import the protoc executable targets from a file generated by a native build
|
# when crosscompiling import the protoc executable targets from a file generated by a native build
|
||||||
@ -91,38 +96,37 @@ else ()
|
|||||||
include(${IMPORT_PROTOC})
|
include(${IMPORT_PROTOC})
|
||||||
else()
|
else()
|
||||||
# export the protoc compiler so it can be used when cross compiling
|
# 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()
|
endif()
|
||||||
|
|
||||||
# define the include for the protobuf library at the parent scope
|
# define the include for the protobuf library at the parent scope
|
||||||
set(PROTOBUF_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/external/protobuf/src")
|
set(PROTOBUF_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/external/protobuf/src")
|
||||||
|
|
||||||
# define the protoc executable at the parent scope
|
# 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()
|
endif()
|
||||||
option(protobuf_BUILD_TESTS "" OFF)
|
|
||||||
|
|
||||||
set(PROTOBUF_PROTOC_EXECUTABLE ${PROTOBUF_PROTOC_EXECUTABLE} PARENT_SCOPE)
|
set(PROTOBUF_PROTOC_EXECUTABLE ${PROTOBUF_PROTOC_EXECUTABLE} PARENT_SCOPE)
|
||||||
set(PROTOBUF_INCLUDE_DIRS ${PROTOBUF_INCLUDE_DIRS} PARENT_SCOPE)
|
set(PROTOBUF_INCLUDE_DIRS ${PROTOBUF_INCLUDE_DIRS} PARENT_SCOPE)
|
||||||
include_directories(${PROTOBUF_INCLUDE_DIRS})
|
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.
|
# Copyright 2009 Kitware, Inc.
|
||||||
# Copyright 2009-2011 Philip Lowman <philip@yhbt.com>
|
# Copyright 2009-2011 Philip Lowman <philip@yhbt.com>
|
||||||
# Copyright 2008 Esben Mose Hansen, Ange Optimization ApS
|
# Copyright 2008 Esben Mose Hansen, Ange Optimization ApS
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD License (the "License");
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file Copyright.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
#
|
#
|
||||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
# See the License for more information.
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# (To distribute this file outside of CMake, substitute the full
|
# (To distribute this file outside of CMake, substitute the full
|
||||||
# License text for the above reference.)
|
# License text for the above reference.)
|
||||||
function(PROTOBUF_GENERATE_CPP SRCS HDRS)
|
function(PROTOBUF_GENERATE_CPP SRCS HDRS)
|
||||||
if(NOT ARGN)
|
if(NOT ARGN)
|
||||||
message(SEND_ERROR "Error: PROTOBUF_GENERATE_CPP() called without any proto files")
|
message(SEND_ERROR "Error: PROTOBUF_GENERATE_CPP() called without any proto files")
|
||||||
return()
|
return()
|
||||||
@ -155,7 +159,7 @@ function(PROTOBUF_GENERATE_CPP SRCS HDRS)
|
|||||||
if(CMAKE_CROSSCOMPILING OR USE_SYSTEM_PROTO_LIBS)
|
if(CMAKE_CROSSCOMPILING OR USE_SYSTEM_PROTO_LIBS)
|
||||||
set(PROTOC_DEPENDENCY ${PROTOBUF_PROTOC_EXECUTABLE})
|
set(PROTOC_DEPENDENCY ${PROTOBUF_PROTOC_EXECUTABLE})
|
||||||
else()
|
else()
|
||||||
set(PROTOC_DEPENDENCY protoc_compiler)
|
set(PROTOC_DEPENDENCY protoc)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(${SRCS})
|
set(${SRCS})
|
||||||
@ -183,7 +187,8 @@ function(PROTOBUF_GENERATE_CPP SRCS HDRS)
|
|||||||
set_source_files_properties(${${SRCS}} ${${HDRS}} PROPERTIES GENERATED TRUE)
|
set_source_files_properties(${${SRCS}} ${${HDRS}} PROPERTIES GENERATED TRUE)
|
||||||
set(${SRCS} ${${SRCS}} PARENT_SCOPE)
|
set(${SRCS} ${${SRCS}} PARENT_SCOPE)
|
||||||
set(${HDRS} ${${HDRS}} PARENT_SCOPE)
|
set(${HDRS} ${${HDRS}} PARENT_SCOPE)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
endif()
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# MBEDTLS
|
# 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
|
```console
|
||||||
sudo apt-get update
|
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**
|
**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:
|
First you need to install the dependencies:
|
||||||
```console
|
```console
|
||||||
brew install qt5 python3 cmake libusb doxygen zlib
|
brew install qt5 python3 cmake libusb doxygen
|
||||||
```
|
```
|
||||||
|
|
||||||
## Windows
|
## 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/settings.h>
|
||||||
#include <utils/VideoStandard.h>
|
#include <utils/VideoStandard.h>
|
||||||
|
|
||||||
|
#include <grabber/GrabberType.h>
|
||||||
|
|
||||||
class Grabber;
|
class Grabber;
|
||||||
class GlobalSignals;
|
class GlobalSignals;
|
||||||
class QTimer;
|
class QTimer;
|
||||||
@ -67,16 +69,17 @@ public:
|
|||||||
///
|
///
|
||||||
/// @brief Get active grabber name
|
/// @brief Get active grabber name
|
||||||
/// @param hyperionInd The instance index
|
/// @param hyperionInd The instance index
|
||||||
|
/// @param type Filter for a given grabber type
|
||||||
/// @return Active grabbers
|
/// @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; }
|
bool getSysGrabberState() const { return GLOBAL_GRABBER_SYS_ENABLE; }
|
||||||
void setSysGrabberState(bool sysGrabberState){ GLOBAL_GRABBER_SYS_ENABLE = sysGrabberState; }
|
void setSysGrabberState(bool sysGrabberState){ GLOBAL_GRABBER_SYS_ENABLE = sysGrabberState; }
|
||||||
bool getV4lGrabberState() const { return GLOBAL_GRABBER_V4L_ENABLE; }
|
bool getV4lGrabberState() const { return GLOBAL_GRABBER_V4L_ENABLE; }
|
||||||
void setV4lGrabberState(bool v4lGrabberState){ GLOBAL_GRABBER_V4L_ENABLE = v4lGrabberState; }
|
void setV4lGrabberState(bool v4lGrabberState){ GLOBAL_GRABBER_V4L_ENABLE = v4lGrabberState; }
|
||||||
|
|
||||||
static QStringList availableGrabbers();
|
static QStringList availableGrabbers(GrabberTypeFilter type = GrabberTypeFilter::ALL);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
template <typename Grabber_T>
|
template <typename Grabber_T>
|
||||||
|
@ -38,7 +38,9 @@
|
|||||||
// Forward class declaration
|
// Forward class declaration
|
||||||
class HyperionDaemon;
|
class HyperionDaemon;
|
||||||
class ImageProcessor;
|
class ImageProcessor;
|
||||||
|
#if defined(ENABLE_FORWARDER)
|
||||||
class MessageForwarder;
|
class MessageForwarder;
|
||||||
|
#endif
|
||||||
class LinearColorSmoothing;
|
class LinearColorSmoothing;
|
||||||
class EffectEngine;
|
class EffectEngine;
|
||||||
class MultiColorAdjustment;
|
class MultiColorAdjustment;
|
||||||
@ -46,7 +48,7 @@ class ColorAdjustment;
|
|||||||
class SettingsManager;
|
class SettingsManager;
|
||||||
class BGEffectHandler;
|
class BGEffectHandler;
|
||||||
class CaptureCont;
|
class CaptureCont;
|
||||||
#if defined(ENABLE_BOBLIGHT)
|
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||||
class BoblightServer;
|
class BoblightServer;
|
||||||
#endif
|
#endif
|
||||||
class LedDeviceWrapper;
|
class LedDeviceWrapper;
|
||||||
@ -534,8 +536,10 @@ private:
|
|||||||
/// Effect engine
|
/// Effect engine
|
||||||
EffectEngine * _effectEngine;
|
EffectEngine * _effectEngine;
|
||||||
|
|
||||||
|
#if defined(ENABLE_FORWARDER)
|
||||||
// Message forwarder
|
// Message forwarder
|
||||||
MessageForwarder * _messageForwarder;
|
MessageForwarder * _messageForwarder;
|
||||||
|
#endif
|
||||||
|
|
||||||
/// Logger instance
|
/// Logger instance
|
||||||
Logger * _log;
|
Logger * _log;
|
||||||
@ -555,7 +559,7 @@ private:
|
|||||||
|
|
||||||
VideoMode _currVideoMode = VideoMode::VIDEO_2D;
|
VideoMode _currVideoMode = VideoMode::VIDEO_2D;
|
||||||
|
|
||||||
#if defined(ENABLE_BOBLIGHT)
|
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||||
/// Boblight instance
|
/// Boblight instance
|
||||||
BoblightServer* _boblightServer;
|
BoblightServer* _boblightServer;
|
||||||
#endif
|
#endif
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
#include <utils/ColorRgb.h>
|
#include <utils/ColorRgb.h>
|
||||||
#include <utils/Components.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>
|
#include <QRecursiveMutex>
|
||||||
#else
|
#else
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
@ -129,7 +129,7 @@ protected:
|
|||||||
/// contains all available led device constructors
|
/// contains all available led device constructors
|
||||||
static LedDeviceRegistry _ledDeviceMap;
|
static LedDeviceRegistry _ledDeviceMap;
|
||||||
|
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
|
||||||
static QRecursiveMutex _ledDeviceMapLock;
|
static QRecursiveMutex _ledDeviceMapLock;
|
||||||
#else
|
#else
|
||||||
static QMutex _ledDeviceMapLock;
|
static QMutex _ledDeviceMapLock;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#undef slots
|
#undef slots
|
||||||
#include <Python.h>
|
#include <Python.h>
|
||||||
#define slots
|
#define slots Q_SLOTS
|
||||||
|
|
||||||
// decl
|
// decl
|
||||||
extern PyThreadState* mainThreadState;
|
extern PyThreadState* mainThreadState;
|
||||||
|
@ -22,7 +22,7 @@ class SSDPHandler : public SSDPServer
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
SSDPHandler(WebServer* webserver, quint16 flatBufPort, quint16 protoBufPort, quint16 jsonServerPort, quint16 sslPort, const QString &name, QObject * parent = nullptr);
|
SSDPHandler(WebServer* webserver, quint16 flatBufPort, quint16 protoBufPort, quint16 jsonServerPort, quint16 sslPort, const QString& name, QObject* parent = nullptr);
|
||||||
~SSDPHandler() override;
|
~SSDPHandler() override;
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -87,21 +87,37 @@ private slots:
|
|||||||
///
|
///
|
||||||
void handleMSearchRequest(const QString& target, const QString& mx, const QString address, quint16 port);
|
void handleMSearchRequest(const QString& target, const QString& mx, const QString address, quint16 port);
|
||||||
|
|
||||||
///
|
|
||||||
/// @brief Handle changes in the network configuration
|
|
||||||
/// @param conig New config
|
|
||||||
///
|
|
||||||
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
|
|
||||||
void handleNetworkConfigurationChanged(const QNetworkConfiguration &config);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
WebServer* _webserver;
|
WebServer* _webserver;
|
||||||
QString _localAddress;
|
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
|
||||||
|
///
|
||||||
|
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
|
||||||
|
void handleNetworkConfigurationChanged(const QNetworkConfiguration& config);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
|
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
|
||||||
QNetworkConfigurationManager* _NCA;
|
QNetworkConfigurationManager* _NCA;
|
||||||
#endif
|
#endif
|
||||||
QString _uuid;
|
|
||||||
/// Targets for announcement
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
||||||
std::vector<QString> _deviceList;
|
QT_WARNING_POP
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
@ -15,8 +15,10 @@ enum Components
|
|||||||
COMP_ALL,
|
COMP_ALL,
|
||||||
COMP_SMOOTHING,
|
COMP_SMOOTHING,
|
||||||
COMP_BLACKBORDER,
|
COMP_BLACKBORDER,
|
||||||
|
#if defined(ENABLE_FORWARDER)
|
||||||
COMP_FORWARDER,
|
COMP_FORWARDER,
|
||||||
#if defined(ENABLE_BOBLIGHT)
|
#endif
|
||||||
|
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||||
COMP_BOBLIGHTSERVER,
|
COMP_BOBLIGHTSERVER,
|
||||||
#endif
|
#endif
|
||||||
COMP_GRABBER,
|
COMP_GRABBER,
|
||||||
@ -25,8 +27,12 @@ enum Components
|
|||||||
COMP_IMAGE,
|
COMP_IMAGE,
|
||||||
COMP_EFFECT,
|
COMP_EFFECT,
|
||||||
COMP_LEDDEVICE,
|
COMP_LEDDEVICE,
|
||||||
|
#if defined(ENABLE_FLATBUF_SERVER)
|
||||||
COMP_FLATBUFSERVER,
|
COMP_FLATBUFSERVER,
|
||||||
|
#endif
|
||||||
|
#if defined(ENABLE_PROTOBUF_SERVER)
|
||||||
COMP_PROTOSERVER
|
COMP_PROTOSERVER
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
inline const char* componentToString(Components c)
|
inline const char* componentToString(Components c)
|
||||||
@ -36,8 +42,10 @@ inline const char* componentToString(Components c)
|
|||||||
case COMP_ALL: return "Hyperion";
|
case COMP_ALL: return "Hyperion";
|
||||||
case COMP_SMOOTHING: return "Smoothing";
|
case COMP_SMOOTHING: return "Smoothing";
|
||||||
case COMP_BLACKBORDER: return "Blackborder detector";
|
case COMP_BLACKBORDER: return "Blackborder detector";
|
||||||
|
#if defined(ENABLE_FORWARDER)
|
||||||
case COMP_FORWARDER: return "Json/Proto forwarder";
|
case COMP_FORWARDER: return "Json/Proto forwarder";
|
||||||
#if defined(ENABLE_BOBLIGHT)
|
#endif
|
||||||
|
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||||
case COMP_BOBLIGHTSERVER:return "Boblight server";
|
case COMP_BOBLIGHTSERVER:return "Boblight server";
|
||||||
#endif
|
#endif
|
||||||
case COMP_GRABBER: return "Framegrabber";
|
case COMP_GRABBER: return "Framegrabber";
|
||||||
@ -46,8 +54,12 @@ inline const char* componentToString(Components c)
|
|||||||
case COMP_EFFECT: return "Effect";
|
case COMP_EFFECT: return "Effect";
|
||||||
case COMP_IMAGE: return "Image";
|
case COMP_IMAGE: return "Image";
|
||||||
case COMP_LEDDEVICE: return "LED device";
|
case COMP_LEDDEVICE: return "LED device";
|
||||||
|
#if defined(ENABLE_FLATBUF_SERVER)
|
||||||
case COMP_FLATBUFSERVER: return "Image Receiver";
|
case COMP_FLATBUFSERVER: return "Image Receiver";
|
||||||
|
#endif
|
||||||
|
#if defined(ENABLE_PROTOBUF_SERVER)
|
||||||
case COMP_PROTOSERVER: return "Proto Server";
|
case COMP_PROTOSERVER: return "Proto Server";
|
||||||
|
#endif
|
||||||
default: return "";
|
default: return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -59,8 +71,10 @@ inline const char* componentToIdString(Components c)
|
|||||||
case COMP_ALL: return "ALL";
|
case COMP_ALL: return "ALL";
|
||||||
case COMP_SMOOTHING: return "SMOOTHING";
|
case COMP_SMOOTHING: return "SMOOTHING";
|
||||||
case COMP_BLACKBORDER: return "BLACKBORDER";
|
case COMP_BLACKBORDER: return "BLACKBORDER";
|
||||||
|
#if defined(ENABLE_FORWARDER)
|
||||||
case COMP_FORWARDER: return "FORWARDER";
|
case COMP_FORWARDER: return "FORWARDER";
|
||||||
#if defined(ENABLE_BOBLIGHT)
|
#endif
|
||||||
|
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||||
case COMP_BOBLIGHTSERVER:return "BOBLIGHTSERVER";
|
case COMP_BOBLIGHTSERVER:return "BOBLIGHTSERVER";
|
||||||
#endif
|
#endif
|
||||||
case COMP_GRABBER: return "GRABBER";
|
case COMP_GRABBER: return "GRABBER";
|
||||||
@ -69,8 +83,12 @@ inline const char* componentToIdString(Components c)
|
|||||||
case COMP_EFFECT: return "EFFECT";
|
case COMP_EFFECT: return "EFFECT";
|
||||||
case COMP_IMAGE: return "IMAGE";
|
case COMP_IMAGE: return "IMAGE";
|
||||||
case COMP_LEDDEVICE: return "LEDDEVICE";
|
case COMP_LEDDEVICE: return "LEDDEVICE";
|
||||||
|
#if defined(ENABLE_FLATBUF_SERVER)
|
||||||
case COMP_FLATBUFSERVER: return "FLATBUFSERVER";
|
case COMP_FLATBUFSERVER: return "FLATBUFSERVER";
|
||||||
|
#endif
|
||||||
|
#if defined(ENABLE_PROTOBUF_SERVER)
|
||||||
case COMP_PROTOSERVER: return "PROTOSERVER";
|
case COMP_PROTOSERVER: return "PROTOSERVER";
|
||||||
|
#endif
|
||||||
default: return "";
|
default: return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -81,8 +99,10 @@ inline Components stringToComponent(const QString& component)
|
|||||||
if (cmp == "ALL") return COMP_ALL;
|
if (cmp == "ALL") return COMP_ALL;
|
||||||
if (cmp == "SMOOTHING") return COMP_SMOOTHING;
|
if (cmp == "SMOOTHING") return COMP_SMOOTHING;
|
||||||
if (cmp == "BLACKBORDER") return COMP_BLACKBORDER;
|
if (cmp == "BLACKBORDER") return COMP_BLACKBORDER;
|
||||||
|
#if defined(ENABLE_FORWARDER)
|
||||||
if (cmp == "FORWARDER") return COMP_FORWARDER;
|
if (cmp == "FORWARDER") return COMP_FORWARDER;
|
||||||
#if defined(ENABLE_BOBLIGHT)
|
#endif
|
||||||
|
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||||
if (cmp == "BOBLIGHTSERVER")return COMP_BOBLIGHTSERVER;
|
if (cmp == "BOBLIGHTSERVER")return COMP_BOBLIGHTSERVER;
|
||||||
#endif
|
#endif
|
||||||
if (cmp == "GRABBER") return COMP_GRABBER;
|
if (cmp == "GRABBER") return COMP_GRABBER;
|
||||||
@ -91,8 +111,12 @@ inline Components stringToComponent(const QString& component)
|
|||||||
if (cmp == "EFFECT") return COMP_EFFECT;
|
if (cmp == "EFFECT") return COMP_EFFECT;
|
||||||
if (cmp == "IMAGE") return COMP_IMAGE;
|
if (cmp == "IMAGE") return COMP_IMAGE;
|
||||||
if (cmp == "LEDDEVICE") return COMP_LEDDEVICE;
|
if (cmp == "LEDDEVICE") return COMP_LEDDEVICE;
|
||||||
|
#if defined(ENABLE_FLATBUF_SERVER)
|
||||||
if (cmp == "FLATBUFSERVER") return COMP_FLATBUFSERVER;
|
if (cmp == "FLATBUFSERVER") return COMP_FLATBUFSERVER;
|
||||||
|
#endif
|
||||||
|
#if defined(ENABLE_PROTOBUF_SERVER)
|
||||||
if (cmp == "PROTOSERVER") return COMP_PROTOSERVER;
|
if (cmp == "PROTOSERVER") return COMP_PROTOSERVER;
|
||||||
|
#endif
|
||||||
return COMP_INVALID;
|
return COMP_INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#include <QAtomicInteger>
|
#include <QAtomicInteger>
|
||||||
#include <QList>
|
#include <QList>
|
||||||
|
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
|
||||||
#include <QRecursiveMutex>
|
#include <QRecursiveMutex>
|
||||||
#else
|
#else
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
@ -86,7 +86,7 @@ protected:
|
|||||||
private:
|
private:
|
||||||
void write(const Logger::T_LOG_MESSAGE & message);
|
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;
|
static QRecursiveMutex MapLock;
|
||||||
#else
|
#else
|
||||||
static QMutex MapLock;
|
static QMutex MapLock;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
@ -35,7 +36,7 @@ private:
|
|||||||
SysInfo();
|
SysInfo();
|
||||||
void getCPUInfo();
|
void getCPUInfo();
|
||||||
|
|
||||||
static SysInfo* _instance;
|
static std::unique_ptr <SysInfo> _instance;
|
||||||
|
|
||||||
HyperionSysInfo _sysinfo;
|
HyperionSysInfo _sysinfo;
|
||||||
};
|
};
|
||||||
|
@ -7,12 +7,23 @@ add_subdirectory(hyperion)
|
|||||||
add_subdirectory(commandline)
|
add_subdirectory(commandline)
|
||||||
add_subdirectory(blackborder)
|
add_subdirectory(blackborder)
|
||||||
add_subdirectory(jsonserver)
|
add_subdirectory(jsonserver)
|
||||||
add_subdirectory(flatbufserver)
|
|
||||||
add_subdirectory(protoserver)
|
if(ENABLE_BOBLIGHT_SERVER)
|
||||||
add_subdirectory(ssdp)
|
|
||||||
if(ENABLE_BOBLIGHT)
|
|
||||||
add_subdirectory(boblightserver)
|
add_subdirectory(boblightserver)
|
||||||
endif()
|
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(leddevice)
|
||||||
add_subdirectory(utils)
|
add_subdirectory(utils)
|
||||||
add_subdirectory(effectengine)
|
add_subdirectory(effectengine)
|
||||||
@ -22,14 +33,15 @@ add_subdirectory(db)
|
|||||||
add_subdirectory(api)
|
add_subdirectory(api)
|
||||||
add_subdirectory(python)
|
add_subdirectory(python)
|
||||||
|
|
||||||
if(ENABLE_CEC)
|
add_subdirectory(ssdp)
|
||||||
add_subdirectory(cec)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(ENABLE_AVAHI)
|
if(ENABLE_AVAHI)
|
||||||
add_subdirectory(bonjour)
|
add_subdirectory(bonjour)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_CEC)
|
||||||
|
add_subdirectory(cec)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(ENABLE_EXPERIMENTAL)
|
if(ENABLE_EXPERIMENTAL)
|
||||||
add_subdirectory(experimental)
|
add_subdirectory(experimental)
|
||||||
endif()
|
endif()
|
||||||
|
@ -512,34 +512,71 @@ void JsonAPI::handleServerInfoCommand(const QJsonObject &message, const QString
|
|||||||
info["ledDevices"] = ledDevices;
|
info["ledDevices"] = ledDevices;
|
||||||
|
|
||||||
QJsonObject grabbers;
|
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);
|
||||||
|
// }
|
||||||
|
|
||||||
if ( GrabberWrapper::getInstance() != nullptr )
|
// 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;
|
QJsonArray activeGrabberNames;
|
||||||
for (auto grabberName : activeGrabbers)
|
for (auto grabberName : activeGrabbers)
|
||||||
{
|
{
|
||||||
activeGrabberNames.append(grabberName);
|
activeGrabberNames.append(grabberName);
|
||||||
}
|
}
|
||||||
|
|
||||||
grabbers["active"] = activeGrabberNames;
|
screenGrabbers["active"] = activeGrabberNames;
|
||||||
}
|
}
|
||||||
|
QJsonArray availableScreenGrabbers;
|
||||||
// get available grabbers
|
for (auto grabber : GrabberWrapper::availableGrabbers(GrabberTypeFilter::SCREEN))
|
||||||
for (auto grabber : GrabberWrapper::availableGrabbers())
|
|
||||||
{
|
{
|
||||||
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;
|
grabbers.insert("screen", screenGrabbers);
|
||||||
info["videomode"] = QString(videoMode2String(_hyperion->getCurrentVideoMode()));
|
grabbers.insert("video", videoGrabbers);
|
||||||
info["grabbers"] = grabbers;
|
info["grabbers"] = grabbers;
|
||||||
|
|
||||||
|
info["videomode"] = QString(videoMode2String(_hyperion->getCurrentVideoMode()));
|
||||||
|
|
||||||
QJsonObject cecInfo;
|
QJsonObject cecInfo;
|
||||||
#if defined(ENABLE_CEC)
|
#if defined(ENABLE_CEC)
|
||||||
cecInfo["enabled"] = true;
|
cecInfo["enabled"] = true;
|
||||||
@ -548,6 +585,36 @@ void JsonAPI::handleServerInfoCommand(const QJsonObject &message, const QString
|
|||||||
#endif
|
#endif
|
||||||
info["cec"] = cecInfo;
|
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
|
// get available components
|
||||||
QJsonArray component;
|
QJsonArray component;
|
||||||
std::map<hyperion::Components, bool> components = _hyperion->getComponentRegister().getRegister();
|
std::map<hyperion::Components, bool> components = _hyperion->getComponentRegister().getRegister();
|
||||||
|
@ -43,6 +43,14 @@ BlackBorderProcessor::~BlackBorderProcessor()
|
|||||||
void BlackBorderProcessor::handleSettingsUpdate(settings::type type, const QJsonDocument& config)
|
void BlackBorderProcessor::handleSettingsUpdate(settings::type type, const QJsonDocument& config)
|
||||||
{
|
{
|
||||||
if(type == settings::BLACKBORDER)
|
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();
|
const QJsonObject& obj = config.object();
|
||||||
_unknownSwitchCnt = obj["unknownFrameCnt"].toInt(600);
|
_unknownSwitchCnt = obj["unknownFrameCnt"].toInt(600);
|
||||||
@ -50,9 +58,9 @@ void BlackBorderProcessor::handleSettingsUpdate(settings::type type, const QJson
|
|||||||
_maxInconsistentCnt = obj["maxInconsistentCnt"].toInt(10);
|
_maxInconsistentCnt = obj["maxInconsistentCnt"].toInt(10);
|
||||||
_blurRemoveCnt = obj["blurRemoveCnt"].toInt(1);
|
_blurRemoveCnt = obj["blurRemoveCnt"].toInt(1);
|
||||||
_detectionMode = obj["mode"].toString("default");
|
_detectionMode = obj["mode"].toString("default");
|
||||||
const double newThreshold = obj["threshold"].toDouble(5.0)/100.0;
|
const double newThreshold = obj["threshold"].toDouble(5.0) / 100.0;
|
||||||
|
|
||||||
if(_oldThreshold != newThreshold)
|
if (_oldThreshold != newThreshold)
|
||||||
{
|
{
|
||||||
_oldThreshold = newThreshold;
|
_oldThreshold = newThreshold;
|
||||||
|
|
||||||
@ -66,6 +74,7 @@ void BlackBorderProcessor::handleSettingsUpdate(settings::type type, const QJson
|
|||||||
// eval the comp state
|
// eval the comp state
|
||||||
handleCompStateChangeRequest(hyperion::COMP_BLACKBORDER, obj["enable"].toBool(true));
|
handleCompStateChangeRequest(hyperion::COMP_BLACKBORDER, obj["enable"].toBool(true));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BlackBorderProcessor::handleCompStateChangeRequest(hyperion::Components component, bool enable)
|
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);
|
connect(bonjourSocket, &QSocketNotifier::activated, this, &BonjourServiceRegister::bonjourSocketReadyRead);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TXTRecordDeallocate(&txtRec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,8 +8,6 @@ include_directories(
|
|||||||
${FLATBUFFERS_INCLUDE_DIRS}
|
${FLATBUFFERS_INCLUDE_DIRS}
|
||||||
)
|
)
|
||||||
|
|
||||||
FILE ( GLOB FLATBUFSERVER_SOURCES "${CURRENT_HEADER_DIR}/*.h" "${CURRENT_SOURCE_DIR}/*.h" "${CURRENT_SOURCE_DIR}/*.cpp" )
|
|
||||||
|
|
||||||
set(Flatbuffer_GENERATED_FBS
|
set(Flatbuffer_GENERATED_FBS
|
||||||
hyperion_reply_generated.h
|
hyperion_reply_generated.h
|
||||||
hyperion_request_generated.h
|
hyperion_request_generated.h
|
||||||
@ -28,14 +26,39 @@ set_source_files_properties(
|
|||||||
${Flatbuffer_GENERATED_FBS} PROPERTIES GENERATED TRUE
|
${Flatbuffer_GENERATED_FBS} PROPERTIES GENERATED TRUE
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(flatbufserver
|
### 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}
|
${FLATBUFSERVER_SOURCES}
|
||||||
${Flatbuffer_GENERATED_FBS}
|
${Flatbuffer_GENERATED_FBS}
|
||||||
)
|
|
||||||
|
|
||||||
target_link_libraries(flatbufserver
|
)
|
||||||
|
target_link_libraries(flatbufconnect
|
||||||
hyperion-utils
|
hyperion-utils
|
||||||
flatbuffers
|
flatbuffers
|
||||||
Qt${QT_VERSION_MAJOR}::Network
|
Qt${QT_VERSION_MAJOR}::Network
|
||||||
Qt${QT_VERSION_MAJOR}::Core
|
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}
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(flatbufserver
|
||||||
|
hyperion-utils
|
||||||
|
flatbuffers
|
||||||
|
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>
|
#include <stdexcept>
|
||||||
|
|
||||||
// project includes
|
// project includes
|
||||||
#include <hyperion/MessageForwarder.h>
|
#include <forwarder/MessageForwarder.h>
|
||||||
|
|
||||||
// hyperion includes
|
// hyperion includes
|
||||||
#include <hyperion/Hyperion.h>
|
#include <hyperion/Hyperion.h>
|
@ -3,9 +3,11 @@
|
|||||||
SET(CURRENT_HEADER_DIR ${CMAKE_SOURCE_DIR}/include/hyperion)
|
SET(CURRENT_HEADER_DIR ${CMAKE_SOURCE_DIR}/include/hyperion)
|
||||||
SET(CURRENT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/libsrc/hyperion)
|
SET(CURRENT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/libsrc/hyperion)
|
||||||
|
|
||||||
|
if(ENABLE_FLATBUF_SERVER)
|
||||||
include_directories(
|
include_directories(
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/../../libsrc/flatbufserver
|
${CMAKE_CURRENT_BINARY_DIR}/../../libsrc/flatbufserver
|
||||||
)
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
FILE ( GLOB Hyperion_SOURCES "${CURRENT_HEADER_DIR}/*.h" "${CURRENT_SOURCE_DIR}/*.h" "${CURRENT_SOURCE_DIR}/*.cpp" )
|
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
|
target_link_libraries(hyperion
|
||||||
blackborder
|
blackborder
|
||||||
hyperion-utils
|
hyperion-utils
|
||||||
flatbufserver
|
|
||||||
flatbuffers
|
|
||||||
leddevice
|
leddevice
|
||||||
effectengine
|
effectengine
|
||||||
database
|
database
|
||||||
${QT_LIBRARIES}
|
${QT_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(ENABLE_BOBLIGHT)
|
if(ENABLE_BOBLIGHT_SERVER)
|
||||||
target_link_libraries(hyperion boblightserver)
|
target_link_libraries(hyperion boblightserver)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_FLATBUF_SERVER)
|
||||||
|
target_link_libraries(hyperion flatbufserver)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_FORWARDER)
|
||||||
|
target_link_libraries(hyperion forwarder)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (ENABLE_AVAHI)
|
if (ENABLE_AVAHI)
|
||||||
target_link_libraries(hyperion bonjour)
|
target_link_libraries(hyperion bonjour)
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
#include <hyperion/Hyperion.h>
|
#include <hyperion/Hyperion.h>
|
||||||
|
|
||||||
|
#include <hyperion/GrabberWrapper.h>
|
||||||
|
|
||||||
using namespace hyperion;
|
using namespace hyperion;
|
||||||
|
|
||||||
ComponentRegister::ComponentRegister(Hyperion* hyperion)
|
ComponentRegister::ComponentRegister(Hyperion* hyperion)
|
||||||
@ -11,12 +13,45 @@ ComponentRegister::ComponentRegister(Hyperion* hyperion)
|
|||||||
{
|
{
|
||||||
// init all comps to false
|
// init all comps to false
|
||||||
QVector<hyperion::Components> vect;
|
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;
|
vect << COMP_BOBLIGHTSERVER;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(ENABLE_FORWARDER)
|
||||||
|
vect << COMP_FORWARDER;
|
||||||
|
#endif
|
||||||
|
|
||||||
for(auto e : vect)
|
for(auto e : vect)
|
||||||
{
|
{
|
||||||
_componentStates.emplace(e, (e == COMP_ALL));
|
_componentStates.emplace(e, (e == COMP_ALL));
|
||||||
@ -36,13 +71,17 @@ int ComponentRegister::isComponentEnabled(hyperion::Components comp) const
|
|||||||
|
|
||||||
void ComponentRegister::setNewComponentState(hyperion::Components comp, bool activated)
|
void ComponentRegister::setNewComponentState(hyperion::Components comp, bool activated)
|
||||||
{
|
{
|
||||||
if(_componentStates[comp] != activated)
|
|
||||||
|
if (_componentStates.count(comp) > 0)
|
||||||
{
|
{
|
||||||
Debug( _log, "%s: %s", componentToString(comp), (activated? "enabled" : "disabled"));
|
if (_componentStates[comp] != activated)
|
||||||
|
{
|
||||||
|
Debug(_log, "%s: %s", componentToString(comp), (activated ? "enabled" : "disabled"));
|
||||||
_componentStates[comp] = activated;
|
_componentStates[comp] = activated;
|
||||||
// emit component has changed state
|
// emit component has changed state
|
||||||
emit updatedComponentState(comp, activated);
|
emit updatedComponentState(comp, activated);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ComponentRegister::handleCompStateChangeRequest(hyperion::Components comps, bool activated)
|
void ComponentRegister::handleCompStateChangeRequest(hyperion::Components comps, bool activated)
|
||||||
|
@ -83,58 +83,70 @@ bool GrabberWrapper::isActive() const
|
|||||||
return _timer->isActive();
|
return _timer->isActive();
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList GrabberWrapper::getActive(int inst) const
|
QStringList GrabberWrapper::getActive(int inst, GrabberTypeFilter type) const
|
||||||
{
|
{
|
||||||
QStringList result = QStringList();
|
QStringList result = QStringList();
|
||||||
|
|
||||||
if(GRABBER_V4L_CLIENTS.contains(inst))
|
if (type == GrabberTypeFilter::SCREEN || type == GrabberTypeFilter::ALL)
|
||||||
result << GRABBER_V4L_CLIENTS.value(inst);
|
{
|
||||||
|
if (GRABBER_SYS_CLIENTS.contains(inst))
|
||||||
if(GRABBER_SYS_CLIENTS.contains(inst))
|
|
||||||
result << GRABBER_SYS_CLIENTS.value(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;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList GrabberWrapper::availableGrabbers()
|
QStringList GrabberWrapper::availableGrabbers(GrabberTypeFilter type)
|
||||||
{
|
{
|
||||||
QStringList grabbers;
|
QStringList grabbers;
|
||||||
|
|
||||||
#ifdef ENABLE_DISPMANX
|
if (type == GrabberTypeFilter::SCREEN || type == GrabberTypeFilter::ALL)
|
||||||
|
{
|
||||||
|
#ifdef ENABLE_DISPMANX
|
||||||
grabbers << "dispmanx";
|
grabbers << "dispmanx";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(ENABLE_V4L2) || defined(ENABLE_MF)
|
#ifdef ENABLE_FB
|
||||||
grabbers << "v4l2";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef ENABLE_FB
|
|
||||||
grabbers << "framebuffer";
|
grabbers << "framebuffer";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_AMLOGIC
|
#ifdef ENABLE_AMLOGIC
|
||||||
grabbers << "amlogic";
|
grabbers << "amlogic";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_OSX
|
#ifdef ENABLE_OSX
|
||||||
grabbers << "osx";
|
grabbers << "osx";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_X11
|
#ifdef ENABLE_X11
|
||||||
grabbers << "x11";
|
grabbers << "x11";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_XCB
|
#ifdef ENABLE_XCB
|
||||||
grabbers << "xcb";
|
grabbers << "xcb";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_QT
|
#ifdef ENABLE_QT
|
||||||
grabbers << "qt";
|
grabbers << "qt";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_DX
|
#ifdef ENABLE_DX
|
||||||
grabbers << "dx";
|
grabbers << "dx";
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
if (type == GrabberTypeFilter::VIDEO || type == GrabberTypeFilter::ALL)
|
||||||
|
{
|
||||||
|
#if defined(ENABLE_V4L2) || defined(ENABLE_MF)
|
||||||
|
grabbers << "v4l2";
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
return grabbers;
|
return grabbers;
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,11 @@
|
|||||||
|
|
||||||
// hyperion include
|
// hyperion include
|
||||||
#include <hyperion/Hyperion.h>
|
#include <hyperion/Hyperion.h>
|
||||||
#include <hyperion/MessageForwarder.h>
|
|
||||||
|
#if defined(ENABLE_FORWARDER)
|
||||||
|
#include <forwarder/MessageForwarder.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <hyperion/ImageProcessor.h>
|
#include <hyperion/ImageProcessor.h>
|
||||||
#include <hyperion/ColorAdjustment.h>
|
#include <hyperion/ColorAdjustment.h>
|
||||||
|
|
||||||
@ -37,7 +41,7 @@
|
|||||||
#include <hyperion/CaptureCont.h>
|
#include <hyperion/CaptureCont.h>
|
||||||
|
|
||||||
// Boblight
|
// Boblight
|
||||||
#if defined(ENABLE_BOBLIGHT)
|
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||||
#include <boblightserver/BoblightServer.h>
|
#include <boblightserver/BoblightServer.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -53,14 +57,16 @@ Hyperion::Hyperion(quint8 instance, bool readonlyMode)
|
|||||||
, _ledDeviceWrapper(nullptr)
|
, _ledDeviceWrapper(nullptr)
|
||||||
, _deviceSmooth(nullptr)
|
, _deviceSmooth(nullptr)
|
||||||
, _effectEngine(nullptr)
|
, _effectEngine(nullptr)
|
||||||
|
#if defined(ENABLE_FORWARDER)
|
||||||
, _messageForwarder(nullptr)
|
, _messageForwarder(nullptr)
|
||||||
|
#endif
|
||||||
, _log(Logger::getInstance("HYPERION"))
|
, _log(Logger::getInstance("HYPERION"))
|
||||||
, _hwLedCount()
|
, _hwLedCount()
|
||||||
, _ledGridSize(hyperion::getLedLayoutGridSize(getSetting(settings::LEDS).array()))
|
, _ledGridSize(hyperion::getLedLayoutGridSize(getSetting(settings::LEDS).array()))
|
||||||
, _BGEffectHandler(nullptr)
|
, _BGEffectHandler(nullptr)
|
||||||
, _captureCont(nullptr)
|
, _captureCont(nullptr)
|
||||||
, _ledBuffer(_ledString.leds().size(), ColorRgb::BLACK)
|
, _ledBuffer(_ledString.leds().size(), ColorRgb::BLACK)
|
||||||
#if defined(ENABLE_BOBLIGHT)
|
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||||
, _boblightServer(nullptr)
|
, _boblightServer(nullptr)
|
||||||
#endif
|
#endif
|
||||||
, _readOnlyMode(readonlyMode)
|
, _readOnlyMode(readonlyMode)
|
||||||
@ -127,11 +133,13 @@ void Hyperion::start()
|
|||||||
//Start in pause mode, a new priority will activate smoothing (either start-effect or grabber)
|
//Start in pause mode, a new priority will activate smoothing (either start-effect or grabber)
|
||||||
_deviceSmooth->setPause(true);
|
_deviceSmooth->setPause(true);
|
||||||
|
|
||||||
|
#if defined(ENABLE_FORWARDER)
|
||||||
// create the message forwarder only on main instance
|
// create the message forwarder only on main instance
|
||||||
if (_instIndex == 0)
|
if (_instIndex == 0)
|
||||||
{
|
{
|
||||||
_messageForwarder = new MessageForwarder(this);
|
_messageForwarder = new MessageForwarder(this);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// create the effect engine; needs to be initialized after smoothing!
|
// create the effect engine; needs to be initialized after smoothing!
|
||||||
_effectEngine = new EffectEngine(this);
|
_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)
|
// 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();
|
update();
|
||||||
|
|
||||||
#if defined(ENABLE_BOBLIGHT)
|
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||||
// boblight, can't live in global scope as it depends on layout
|
// boblight, can't live in global scope as it depends on layout
|
||||||
_boblightServer = new BoblightServer(this, getSetting(settings::BOBLSERVER));
|
_boblightServer = new BoblightServer(this, getSetting(settings::BOBLSERVER));
|
||||||
connect(this, &Hyperion::settingsChanged, _boblightServer, &BoblightServer::handleSettingsUpdate);
|
connect(this, &Hyperion::settingsChanged, _boblightServer, &BoblightServer::handleSettingsUpdate);
|
||||||
@ -177,13 +185,18 @@ void Hyperion::freeObjects()
|
|||||||
clear(-1,true);
|
clear(-1,true);
|
||||||
|
|
||||||
// delete components on exit of hyperion core
|
// delete components on exit of hyperion core
|
||||||
#if defined(ENABLE_BOBLIGHT)
|
#if defined(ENABLE_BOBLIGHT_SERVER)
|
||||||
delete _boblightServer;
|
delete _boblightServer;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
delete _captureCont;
|
delete _captureCont;
|
||||||
delete _effectEngine;
|
delete _effectEngine;
|
||||||
delete _raw2ledAdjustment;
|
delete _raw2ledAdjustment;
|
||||||
|
|
||||||
|
#if defined(ENABLE_FORWARDER)
|
||||||
delete _messageForwarder;
|
delete _messageForwarder;
|
||||||
|
#endif
|
||||||
|
|
||||||
delete _settingsManager;
|
delete _settingsManager;
|
||||||
delete _ledDeviceWrapper;
|
delete _ledDeviceWrapper;
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
LedDeviceRegistry LedDeviceWrapper::_ledDeviceMap {};
|
LedDeviceRegistry LedDeviceWrapper::_ledDeviceMap {};
|
||||||
|
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
|
||||||
QRecursiveMutex LedDeviceWrapper::_ledDeviceMapLock;
|
QRecursiveMutex LedDeviceWrapper::_ledDeviceMapLock;
|
||||||
#else
|
#else
|
||||||
QMutex LedDeviceWrapper::_ledDeviceMapLock{ QMutex::Recursive };
|
QMutex LedDeviceWrapper::_ledDeviceMapLock{ QMutex::Recursive };
|
||||||
|
@ -11,7 +11,6 @@ include_directories(
|
|||||||
set(ProtoServer_PROTOS ${CURRENT_SOURCE_DIR}/message.proto )
|
set(ProtoServer_PROTOS ${CURRENT_SOURCE_DIR}/message.proto )
|
||||||
|
|
||||||
protobuf_generate_cpp(ProtoServer_PROTO_SRCS ProtoServer_PROTO_HDRS ${ProtoServer_PROTOS} )
|
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
|
### Split protoclient from protoserver as protoserver relates to HyperionDaemon and standalone capture binarys can't link to it
|
||||||
|
|
||||||
add_library(protoclient
|
add_library(protoclient
|
||||||
@ -27,12 +26,16 @@ add_library(protoserver
|
|||||||
)
|
)
|
||||||
|
|
||||||
# disable warnings for auto generated proto files, we can't change the files ....
|
# 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
|
target_link_libraries(protoclient
|
||||||
hyperion
|
hyperion
|
||||||
hyperion-utils
|
hyperion-utils
|
||||||
protobuf
|
libprotobuf
|
||||||
Qt${QT_VERSION_MAJOR}::Gui
|
Qt${QT_VERSION_MAJOR}::Gui
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
syntax = "proto2";
|
||||||
package proto;
|
package proto;
|
||||||
|
|
||||||
message HyperionRequest {
|
message HyperionRequest {
|
||||||
|
@ -31,7 +31,8 @@ PythonInit::PythonInit()
|
|||||||
|
|
||||||
#if defined(ENABLE_DEPLOY_DEPENDENCIES)
|
#if defined(ENABLE_DEPLOY_DEPENDENCIES)
|
||||||
// Set Program name
|
// Set Program name
|
||||||
Py_SetProgramName(L"Hyperion");
|
wchar_t programName[] = L"Hyperion";
|
||||||
|
Py_SetProgramName(programName);
|
||||||
|
|
||||||
// set Python module path when exists
|
// set Python module path when exists
|
||||||
QString py_path = QDir::cleanPath(qApp->applicationDirPath() + "/../lib/python" + STRINGIFY(PYTHON_VERSION_MAJOR) + "." + STRINGIFY(PYTHON_VERSION_MINOR));
|
QString py_path = QDir::cleanPath(qApp->applicationDirPath() + "/../lib/python" + STRINGIFY(PYTHON_VERSION_MAJOR) + "." + STRINGIFY(PYTHON_VERSION_MINOR));
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
static const QString SSDP_IDENTIFIER("urn:hyperion-project.org:device:basic:1");
|
static const QString SSDP_IDENTIFIER("urn:hyperion-project.org:device:basic:1");
|
||||||
|
|
||||||
SSDPHandler::SSDPHandler(WebServer* webserver, quint16 flatBufPort, quint16 protoBufPort, quint16 jsonServerPort, quint16 sslPort, const QString& name, QObject * parent)
|
SSDPHandler::SSDPHandler(WebServer* webserver, quint16 flatBufPort, quint16 protoBufPort, quint16 jsonServerPort, quint16 sslPort, const QString& name, QObject* parent)
|
||||||
: SSDPServer(parent)
|
: SSDPServer(parent)
|
||||||
, _webserver(webserver)
|
, _webserver(webserver)
|
||||||
, _localAddress()
|
, _localAddress()
|
||||||
@ -44,22 +44,31 @@ void SSDPHandler::initServer()
|
|||||||
|
|
||||||
// announce targets
|
// announce targets
|
||||||
_deviceList.push_back("upnp:rootdevice");
|
_deviceList.push_back("upnp:rootdevice");
|
||||||
_deviceList.push_back("uuid:"+_uuid);
|
_deviceList.push_back("uuid:" + _uuid);
|
||||||
_deviceList.push_back(SSDP_IDENTIFIER);
|
_deviceList.push_back(SSDP_IDENTIFIER);
|
||||||
|
|
||||||
// prep server
|
// prep server
|
||||||
SSDPServer::initServer();
|
SSDPServer::initServer();
|
||||||
|
|
||||||
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
|
#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);
|
_NCA = new QNetworkConfigurationManager(this);
|
||||||
connect(_NCA, &QNetworkConfigurationManager::configurationChanged, this, &SSDPHandler::handleNetworkConfigurationChanged);
|
connect(_NCA, &QNetworkConfigurationManager::configurationChanged, this, &SSDPHandler::handleNetworkConfigurationChanged);
|
||||||
|
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
||||||
|
QT_WARNING_POP
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// listen for mSearchRequestes
|
// listen for mSearchRequestes
|
||||||
connect(this, &SSDPServer::msearchRequestReceived, this, &SSDPHandler::handleMSearchRequest);
|
connect(this, &SSDPServer::msearchRequestReceived, this, &SSDPHandler::handleMSearchRequest);
|
||||||
|
|
||||||
// get localAddress from interface
|
// get localAddress from interface
|
||||||
if(!getLocalAddress().isEmpty())
|
if (!getLocalAddress().isEmpty())
|
||||||
{
|
{
|
||||||
_localAddress = getLocalAddress();
|
_localAddress = getLocalAddress();
|
||||||
}
|
}
|
||||||
@ -68,7 +77,7 @@ void SSDPHandler::initServer()
|
|||||||
bool isInited = false;
|
bool isInited = false;
|
||||||
QMetaObject::invokeMethod(_webserver, "isInited", Qt::BlockingQueuedConnection, Q_RETURN_ARG(bool, isInited));
|
QMetaObject::invokeMethod(_webserver, "isInited", Qt::BlockingQueuedConnection, Q_RETURN_ARG(bool, isInited));
|
||||||
|
|
||||||
if(!_localAddress.isEmpty() && isInited)
|
if (!_localAddress.isEmpty() && isInited)
|
||||||
{
|
{
|
||||||
handleWebServerStateChange(true);
|
handleWebServerStateChange(true);
|
||||||
}
|
}
|
||||||
@ -84,33 +93,33 @@ void SSDPHandler::handleSettingsUpdate(settings::type type, const QJsonDocument&
|
|||||||
{
|
{
|
||||||
const QJsonObject& obj = config.object();
|
const QJsonObject& obj = config.object();
|
||||||
|
|
||||||
if(type == settings::FLATBUFSERVER)
|
if (type == settings::FLATBUFSERVER)
|
||||||
{
|
{
|
||||||
if(obj["port"].toInt() != SSDPServer::getFlatBufPort())
|
if (obj["port"].toInt() != SSDPServer::getFlatBufPort())
|
||||||
{
|
{
|
||||||
SSDPServer::setFlatBufPort(obj["port"].toInt());
|
SSDPServer::setFlatBufPort(obj["port"].toInt());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(type == settings::PROTOSERVER)
|
if (type == settings::PROTOSERVER)
|
||||||
{
|
{
|
||||||
if(obj["port"].toInt() != SSDPServer::getProtoBufPort())
|
if (obj["port"].toInt() != SSDPServer::getProtoBufPort())
|
||||||
{
|
{
|
||||||
SSDPServer::setProtoBufPort(obj["port"].toInt());
|
SSDPServer::setProtoBufPort(obj["port"].toInt());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(type == settings::JSONSERVER)
|
if (type == settings::JSONSERVER)
|
||||||
{
|
{
|
||||||
if(obj["port"].toInt() != SSDPServer::getJsonServerPort())
|
if (obj["port"].toInt() != SSDPServer::getJsonServerPort())
|
||||||
{
|
{
|
||||||
SSDPServer::setJsonServerPort(obj["port"].toInt());
|
SSDPServer::setJsonServerPort(obj["port"].toInt());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(type == settings::WEBSERVER)
|
if (type == settings::WEBSERVER)
|
||||||
{
|
{
|
||||||
if(obj["sslPort"].toInt() != SSDPServer::getSSLServerPort())
|
if (obj["sslPort"].toInt() != SSDPServer::getSSLServerPort())
|
||||||
{
|
{
|
||||||
SSDPServer::setSSLServerPort(obj["sslPort"].toInt());
|
SSDPServer::setSSLServerPort(obj["sslPort"].toInt());
|
||||||
}
|
}
|
||||||
@ -127,12 +136,12 @@ void SSDPHandler::handleSettingsUpdate(settings::type type, const QJsonDocument&
|
|||||||
|
|
||||||
void SSDPHandler::handleWebServerStateChange(bool newState)
|
void SSDPHandler::handleWebServerStateChange(bool newState)
|
||||||
{
|
{
|
||||||
if(newState)
|
if (newState)
|
||||||
{
|
{
|
||||||
// refresh info
|
// refresh info
|
||||||
QMetaObject::invokeMethod(_webserver, "setSSDPDescription", Qt::BlockingQueuedConnection, Q_ARG(QString, buildDesc()));
|
QMetaObject::invokeMethod(_webserver, "setSSDPDescription", Qt::BlockingQueuedConnection, Q_ARG(QString, buildDesc()));
|
||||||
setDescriptionAddress(getDescAddress());
|
setDescriptionAddress(getDescAddress());
|
||||||
if(start())
|
if (start())
|
||||||
sendAnnounceList(true);
|
sendAnnounceList(true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -144,11 +153,15 @@ void SSDPHandler::handleWebServerStateChange(bool newState)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
|
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
|
||||||
void SSDPHandler::handleNetworkConfigurationChanged(const QNetworkConfiguration &config)
|
#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
|
// get localAddress from interface
|
||||||
QString localAddress = getLocalAddress();
|
QString localAddress = getLocalAddress();
|
||||||
if(!localAddress.isEmpty() && _localAddress != localAddress)
|
if (!localAddress.isEmpty() && _localAddress != localAddress)
|
||||||
{
|
{
|
||||||
// revoke old ip
|
// revoke old ip
|
||||||
sendAnnounceList(false);
|
sendAnnounceList(false);
|
||||||
@ -160,12 +173,15 @@ void SSDPHandler::handleNetworkConfigurationChanged(const QNetworkConfiguration
|
|||||||
sendAnnounceList(true);
|
sendAnnounceList(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
||||||
|
QT_WARNING_POP
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QString SSDPHandler::getLocalAddress() const
|
QString SSDPHandler::getLocalAddress() const
|
||||||
{
|
{
|
||||||
// get the first valid IPv4 address. This is probably not that one we actually want to announce
|
// get the first valid IPv4 address. This is probably not that one we actually want to announce
|
||||||
for(const auto & address : QNetworkInterface::allAddresses())
|
for (const auto& address : QNetworkInterface::allAddresses())
|
||||||
{
|
{
|
||||||
// is valid when, no loopback, IPv4
|
// is valid when, no loopback, IPv4
|
||||||
if (!address.isLoopback() && address.protocol() == QAbstractSocket::IPv4Protocol)
|
if (!address.isLoopback() && address.protocol() == QAbstractSocket::IPv4Protocol)
|
||||||
@ -178,11 +194,11 @@ QString SSDPHandler::getLocalAddress() const
|
|||||||
|
|
||||||
void SSDPHandler::handleMSearchRequest(const QString& target, const QString& mx, const QString address, quint16 port)
|
void SSDPHandler::handleMSearchRequest(const QString& target, const QString& mx, const QString address, quint16 port)
|
||||||
{
|
{
|
||||||
const auto respond = [=] () {
|
const auto respond = [=]() {
|
||||||
// when searched for all devices / root devices / basic device
|
// when searched for all devices / root devices / basic device
|
||||||
if(target == "ssdp:all")
|
if (target == "ssdp:all")
|
||||||
sendMSearchResponse(SSDP_IDENTIFIER, address, port);
|
sendMSearchResponse(SSDP_IDENTIFIER, address, port);
|
||||||
else if(target == "upnp:rootdevice" || target == "urn:schemas-upnp-org:device:basic:1" || target == SSDP_IDENTIFIER)
|
else if (target == "upnp:rootdevice" || target == "urn:schemas-upnp-org:device:basic:1" || target == SSDP_IDENTIFIER)
|
||||||
sendMSearchResponse(target, address, port);
|
sendMSearchResponse(target, address, port);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -208,7 +224,7 @@ void SSDPHandler::handleMSearchRequest(const QString& target, const QString& mx,
|
|||||||
|
|
||||||
QString SSDPHandler::getDescAddress() const
|
QString SSDPHandler::getDescAddress() const
|
||||||
{
|
{
|
||||||
return getBaseAddress()+"description.xml";
|
return getBaseAddress() + "description.xml";
|
||||||
}
|
}
|
||||||
|
|
||||||
QString SSDPHandler::getBaseAddress() const
|
QString SSDPHandler::getBaseAddress() const
|
||||||
@ -243,7 +259,7 @@ QString SSDPHandler::buildDesc() const
|
|||||||
|
|
||||||
void SSDPHandler::sendAnnounceList(bool alive)
|
void SSDPHandler::sendAnnounceList(bool alive)
|
||||||
{
|
{
|
||||||
for(const auto & entry : _deviceList){
|
for (const auto& entry : _deviceList) {
|
||||||
alive ? SSDPServer::sendAlive(entry) : SSDPServer::sendByeBye(entry);
|
alive ? SSDPServer::sendAlive(entry) : SSDPServer::sendByeBye(entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,9 @@ static const QString UPNP_ALIVE_MESSAGE = "NOTIFY * HTTP/1.1\r\n"
|
|||||||
"NTS: ssdp:alive\r\n"
|
"NTS: ssdp:alive\r\n"
|
||||||
"SERVER: %4\r\n"
|
"SERVER: %4\r\n"
|
||||||
"USN: uuid:%5\r\n"
|
"USN: uuid:%5\r\n"
|
||||||
|
#if defined(ENABLE_FLATBUF_SERVER)
|
||||||
"HYPERION-FBS-PORT: %6\r\n"
|
"HYPERION-FBS-PORT: %6\r\n"
|
||||||
|
#endif
|
||||||
"HYPERION-JSS-PORT: %7\r\n"
|
"HYPERION-JSS-PORT: %7\r\n"
|
||||||
"HYPERION-NAME: %8\r\n"
|
"HYPERION-NAME: %8\r\n"
|
||||||
"\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"
|
"SERVER: %4\r\n"
|
||||||
"ST: %5\r\n"
|
"ST: %5\r\n"
|
||||||
"USN: uuid:%6\r\n"
|
"USN: uuid:%6\r\n"
|
||||||
|
#if defined(ENABLE_FLATBUF_SERVER)
|
||||||
"HYPERION-FBS-PORT: %7\r\n"
|
"HYPERION-FBS-PORT: %7\r\n"
|
||||||
|
#endif
|
||||||
"HYPERION-JSS-PORT: %8\r\n"
|
"HYPERION-JSS-PORT: %8\r\n"
|
||||||
"HYPERION-NAME: %9\r\n"
|
"HYPERION-NAME: %9\r\n"
|
||||||
"\r\n";
|
"\r\n";
|
||||||
@ -175,7 +179,9 @@ void SSDPServer::sendMSearchResponse(const QString& st, const QString& senderIp,
|
|||||||
, _serverHeader
|
, _serverHeader
|
||||||
, st
|
, st
|
||||||
, _uuid
|
, _uuid
|
||||||
|
#if defined(ENABLE_FLATBUF_SERVER)
|
||||||
, _fbsPort
|
, _fbsPort
|
||||||
|
#endif
|
||||||
, _jssPort
|
, _jssPort
|
||||||
, _name );
|
, _name );
|
||||||
|
|
||||||
@ -202,7 +208,9 @@ void SSDPServer::sendAlive(const QString& st)
|
|||||||
, st
|
, st
|
||||||
, _serverHeader
|
, _serverHeader
|
||||||
, tempUSN
|
, tempUSN
|
||||||
|
#if defined(ENABLE_FLATBUF_SERVER)
|
||||||
, _fbsPort
|
, _fbsPort
|
||||||
|
#endif
|
||||||
, _jssPort
|
, _jssPort
|
||||||
, _name );
|
, _name );
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
#include <QThreadStorage>
|
#include <QThreadStorage>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
|
||||||
QRecursiveMutex Logger::MapLock;
|
QRecursiveMutex Logger::MapLock;
|
||||||
#else
|
#else
|
||||||
QMutex Logger::MapLock{ QMutex::Recursive };
|
QMutex Logger::MapLock{ QMutex::Recursive };
|
||||||
|
@ -1,10 +1,25 @@
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
#include <QCoreApplication>
|
||||||
|
#include <QProcess>
|
||||||
#include <utils/Logger.h>
|
#include <utils/Logger.h>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
|
|
||||||
namespace Process {
|
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*/)
|
QByteArray command_exec(const QString& /*cmd*/, const QByteArray& /*data*/)
|
||||||
{
|
{
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
#include <shlobj_core.h>
|
#include <shlobj_core.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SysInfo* SysInfo::_instance = nullptr;
|
std::unique_ptr<SysInfo> SysInfo::_instance = nullptr;
|
||||||
|
|
||||||
SysInfo::SysInfo()
|
SysInfo::SysInfo()
|
||||||
: QObject()
|
: QObject()
|
||||||
@ -38,7 +38,7 @@ SysInfo::SysInfo()
|
|||||||
SysInfo::HyperionSysInfo SysInfo::get()
|
SysInfo::HyperionSysInfo SysInfo::get()
|
||||||
{
|
{
|
||||||
if (SysInfo::_instance == nullptr)
|
if (SysInfo::_instance == nullptr)
|
||||||
SysInfo::_instance = new SysInfo();
|
SysInfo::_instance = std::unique_ptr<SysInfo>(new SysInfo());
|
||||||
|
|
||||||
return SysInfo::_instance->_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
|
- libavahi-compat-libdnssd-dev
|
||||||
- libturbojpeg0-dev
|
- libturbojpeg0-dev
|
||||||
- libssl-dev
|
- libssl-dev
|
||||||
- zlib1g-dev
|
|
||||||
stage-packages:
|
stage-packages:
|
||||||
- libfontconfig1
|
- libfontconfig1
|
||||||
- libfreetype6
|
- libfreetype6
|
||||||
|
@ -2,34 +2,34 @@ add_subdirectory(hyperiond)
|
|||||||
add_subdirectory(hyperion-remote)
|
add_subdirectory(hyperion-remote)
|
||||||
|
|
||||||
# The following binaries are just compiled if requested
|
# The following binaries are just compiled if requested
|
||||||
if (ENABLE_AMLOGIC)
|
if (ENABLE_AMLOGIC AND ENABLE_FLATBUF_CONNECT)
|
||||||
add_subdirectory(hyperion-aml)
|
add_subdirectory(hyperion-aml)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_V4L2)
|
if(ENABLE_V4L2 AND ENABLE_FLATBUF_CONNECT)
|
||||||
add_subdirectory(hyperion-v4l2)
|
add_subdirectory(hyperion-v4l2)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_X11)
|
if(ENABLE_X11 AND ENABLE_FLATBUF_CONNECT)
|
||||||
add_subdirectory(hyperion-x11)
|
add_subdirectory(hyperion-x11)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_XCB)
|
if(ENABLE_XCB AND ENABLE_FLATBUF_CONNECT)
|
||||||
add_subdirectory(hyperion-xcb)
|
add_subdirectory(hyperion-xcb)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_DISPMANX)
|
if(ENABLE_DISPMANX AND ENABLE_FLATBUF_CONNECT)
|
||||||
add_subdirectory(hyperion-dispmanx)
|
add_subdirectory(hyperion-dispmanx)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_FB)
|
if(ENABLE_FB AND ENABLE_FLATBUF_CONNECT)
|
||||||
add_subdirectory(hyperion-framebuffer)
|
add_subdirectory(hyperion-framebuffer)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_QT)
|
if(ENABLE_QT AND ENABLE_FLATBUF_CONNECT)
|
||||||
add_subdirectory(hyperion-qt)
|
add_subdirectory(hyperion-qt)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_OSX)
|
if(ENABLE_OSX AND ENABLE_FLATBUF_CONNECT)
|
||||||
add_subdirectory(hyperion-osx)
|
add_subdirectory(hyperion-osx)
|
||||||
endif()
|
endif()
|
||||||
|
@ -25,7 +25,7 @@ add_executable(${PROJECT_NAME}
|
|||||||
target_link_libraries(${PROJECT_NAME}
|
target_link_libraries(${PROJECT_NAME}
|
||||||
commandline
|
commandline
|
||||||
hyperion-utils
|
hyperion-utils
|
||||||
flatbufserver
|
flatbufconnect
|
||||||
flatbuffers
|
flatbuffers
|
||||||
amlogic-grabber
|
amlogic-grabber
|
||||||
framebuffer-grabber
|
framebuffer-grabber
|
||||||
|
@ -44,7 +44,7 @@ int main(int argc, char ** argv)
|
|||||||
// create the option parser and initialize all parser
|
// 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.");
|
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 & 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");
|
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}
|
target_link_libraries( ${PROJECT_NAME}
|
||||||
commandline
|
commandline
|
||||||
hyperion-utils
|
hyperion-utils
|
||||||
flatbufserver
|
flatbufconnect
|
||||||
flatbuffers
|
flatbuffers
|
||||||
dispmanx-grabber
|
dispmanx-grabber
|
||||||
${Dispmanx_LIBRARIES}
|
${Dispmanx_LIBRARIES}
|
||||||
|
@ -45,7 +45,7 @@ int main(int argc, char ** argv)
|
|||||||
// create the option parser and initialize all parameters
|
// 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.");
|
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 & 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");
|
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}
|
target_link_libraries( ${PROJECT_NAME}
|
||||||
commandline
|
commandline
|
||||||
hyperion-utils
|
hyperion-utils
|
||||||
flatbufserver
|
flatbufconnect
|
||||||
flatbuffers
|
flatbuffers
|
||||||
framebuffer-grabber
|
framebuffer-grabber
|
||||||
ssdp
|
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");
|
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 & 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");
|
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}
|
target_link_libraries( ${PROJECT_NAME}
|
||||||
commandline
|
commandline
|
||||||
hyperion-utils
|
hyperion-utils
|
||||||
flatbufserver
|
flatbufconnect
|
||||||
flatbuffers
|
flatbuffers
|
||||||
osx-grabber
|
osx-grabber
|
||||||
ssdp
|
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 & 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 & 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");
|
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}
|
target_link_libraries(${PROJECT_NAME}
|
||||||
commandline
|
commandline
|
||||||
qt-grabber
|
qt-grabber
|
||||||
flatbufserver
|
flatbufconnect
|
||||||
flatbuffers
|
flatbuffers
|
||||||
ssdp
|
ssdp
|
||||||
Qt${QT_VERSION_MAJOR}::Core
|
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 & 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 & 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");
|
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 //
|
// 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 & 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");
|
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");
|
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
|
// server searching by ssdp
|
||||||
QString address = argAddress.value(parser);
|
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;
|
SSDPDiscover discover;
|
||||||
address = discover.getFirstService(searchType::STY_JSONSERVER);
|
address = discover.getFirstService(searchType::STY_JSONSERVER);
|
||||||
|
@ -26,7 +26,7 @@ target_link_libraries(${PROJECT_NAME}
|
|||||||
v4l2-grabber
|
v4l2-grabber
|
||||||
commandline
|
commandline
|
||||||
hyperion-utils
|
hyperion-utils
|
||||||
flatbufserver
|
flatbufconnect
|
||||||
flatbuffers
|
flatbuffers
|
||||||
ssdp
|
ssdp
|
||||||
Qt${QT_VERSION_MAJOR}::Core
|
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");
|
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<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");
|
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");
|
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 & 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);
|
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}
|
target_link_libraries(${PROJECT_NAME}
|
||||||
commandline
|
commandline
|
||||||
hyperion-utils
|
hyperion-utils
|
||||||
flatbufserver
|
flatbufconnect
|
||||||
flatbuffers
|
flatbuffers
|
||||||
x11-grabber
|
x11-grabber
|
||||||
ssdp
|
ssdp
|
||||||
|
@ -41,7 +41,7 @@ int main(int argc, char ** argv)
|
|||||||
// create the option parser and initialize all parameters
|
// 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.");
|
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 & 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");
|
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}
|
target_link_libraries(${PROJECT_NAME}
|
||||||
commandline
|
commandline
|
||||||
hyperion-utils
|
hyperion-utils
|
||||||
flatbufserver
|
flatbufconnect
|
||||||
flatbuffers
|
flatbuffers
|
||||||
xcb-grabber
|
xcb-grabber
|
||||||
ssdp
|
ssdp
|
||||||
|
@ -41,7 +41,7 @@ int main(int argc, char ** argv)
|
|||||||
// create the option parser and initialize all parameters
|
// 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.");
|
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 & 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");
|
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
|
hyperion
|
||||||
effectengine
|
effectengine
|
||||||
jsonserver
|
jsonserver
|
||||||
flatbufserver
|
|
||||||
protoserver
|
|
||||||
webserver
|
webserver
|
||||||
ssdp
|
ssdp
|
||||||
database
|
database
|
||||||
@ -68,6 +66,15 @@ else()
|
|||||||
target_link_libraries( ${PROJECT_NAME} ${PYTHON_LIBRARIES} )
|
target_link_libraries( ${PROJECT_NAME} ${PYTHON_LIBRARIES} )
|
||||||
endif()
|
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)
|
if (ENABLE_AVAHI)
|
||||||
target_link_libraries(${PROJECT_NAME} bonjour)
|
target_link_libraries(${PROJECT_NAME} bonjour)
|
||||||
endif (ENABLE_AVAHI)
|
endif (ENABLE_AVAHI)
|
||||||
@ -137,13 +144,13 @@ endif (ENABLE_CEC)
|
|||||||
if (APPLE)
|
if (APPLE)
|
||||||
set_target_properties( ${PROJECT_NAME} PROPERTIES
|
set_target_properties( ${PROJECT_NAME} PROPERTIES
|
||||||
MACOSX_BUNDLE TRUE
|
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_NAME "Hyperion"
|
||||||
MACOSX_BUNDLE_BUNDLE_VERSION ${HYPERION_VERSION}
|
MACOSX_BUNDLE_BUNDLE_VERSION ${HYPERION_VERSION}
|
||||||
MACOSX_BUNDLE_COPYRIGHT "Copyright (c) 2014-2021 Hyperion Project"
|
MACOSX_BUNDLE_COPYRIGHT "Copyright (c) 2014-2021 Hyperion Project"
|
||||||
MACOSX_BUNDLE_GUI_IDENTIFIER "com.hyperion-project.${PROJECT_NAME}"
|
MACOSX_BUNDLE_GUI_IDENTIFIER "com.hyperion-project.${PROJECT_NAME}"
|
||||||
MACOSX_BUNDLE_ICON_FILE "Hyperion.icns"
|
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_LONG_VERSION_STRING ${HYPERION_VERSION}
|
||||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${HYPERION_VERSION}
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${HYPERION_VERSION}
|
||||||
)
|
)
|
||||||
|
@ -29,10 +29,14 @@
|
|||||||
#include "hyperiond.h"
|
#include "hyperiond.h"
|
||||||
|
|
||||||
// Flatbuffer Server
|
// Flatbuffer Server
|
||||||
|
#ifdef ENABLE_FLATBUF_SERVER
|
||||||
#include <flatbufserver/FlatBufferServer.h>
|
#include <flatbufserver/FlatBufferServer.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
// Protobuffer Server
|
// Protobuffer Server
|
||||||
|
#ifdef ENABLE_PROTOBUF_SERVER
|
||||||
#include <protoserver/ProtoServer.h>
|
#include <protoserver/ProtoServer.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
// ssdp
|
// ssdp
|
||||||
#include <ssdp/SSDPHandler.h>
|
#include <ssdp/SSDPHandler.h>
|
||||||
@ -83,7 +87,9 @@ HyperionDaemon::HyperionDaemon(const QString& rootPath, QObject* parent, bool lo
|
|||||||
, _qtGrabber(nullptr)
|
, _qtGrabber(nullptr)
|
||||||
, _dxGrabber(nullptr)
|
, _dxGrabber(nullptr)
|
||||||
, _ssdp(nullptr)
|
, _ssdp(nullptr)
|
||||||
|
#ifdef ENABLE_CEC
|
||||||
, _cecHandler(nullptr)
|
, _cecHandler(nullptr)
|
||||||
|
#endif
|
||||||
, _currVideoMode(VideoMode::VIDEO_2D)
|
, _currVideoMode(VideoMode::VIDEO_2D)
|
||||||
{
|
{
|
||||||
HyperionDaemon::daemon = this;
|
HyperionDaemon::daemon = this;
|
||||||
@ -179,6 +185,7 @@ void HyperionDaemon::freeObjects()
|
|||||||
delete _jsonServer;
|
delete _jsonServer;
|
||||||
_jsonServer = nullptr;
|
_jsonServer = nullptr;
|
||||||
|
|
||||||
|
#if defined(ENABLE_FLATBUF_SERVER)
|
||||||
if (_flatBufferServer != nullptr)
|
if (_flatBufferServer != nullptr)
|
||||||
{
|
{
|
||||||
auto flatBufferServerThread = _flatBufferServer->thread();
|
auto flatBufferServerThread = _flatBufferServer->thread();
|
||||||
@ -187,7 +194,9 @@ void HyperionDaemon::freeObjects()
|
|||||||
delete flatBufferServerThread;
|
delete flatBufferServerThread;
|
||||||
_flatBufferServer = nullptr;
|
_flatBufferServer = nullptr;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(ENABLE_PROTOBUF_SERVER)
|
||||||
if (_protoServer != nullptr)
|
if (_protoServer != nullptr)
|
||||||
{
|
{
|
||||||
auto protoServerThread = _protoServer->thread();
|
auto protoServerThread = _protoServer->thread();
|
||||||
@ -196,6 +205,7 @@ void HyperionDaemon::freeObjects()
|
|||||||
delete protoServerThread;
|
delete protoServerThread;
|
||||||
_protoServer = nullptr;
|
_protoServer = nullptr;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
//ssdp before webserver
|
//ssdp before webserver
|
||||||
if (_ssdp != nullptr)
|
if (_ssdp != nullptr)
|
||||||
@ -268,6 +278,7 @@ void HyperionDaemon::startNetworkServices()
|
|||||||
_jsonServer = new JsonServer(getSetting(settings::JSONSERVER));
|
_jsonServer = new JsonServer(getSetting(settings::JSONSERVER));
|
||||||
connect(this, &HyperionDaemon::settingsChanged, _jsonServer, &JsonServer::handleSettingsUpdate);
|
connect(this, &HyperionDaemon::settingsChanged, _jsonServer, &JsonServer::handleSettingsUpdate);
|
||||||
|
|
||||||
|
#if defined(ENABLE_FLATBUF_SERVER)
|
||||||
// Create FlatBuffer server in thread
|
// Create FlatBuffer server in thread
|
||||||
_flatBufferServer = new FlatBufferServer(getSetting(settings::FLATBUFSERVER));
|
_flatBufferServer = new FlatBufferServer(getSetting(settings::FLATBUFSERVER));
|
||||||
QThread* fbThread = new QThread(this);
|
QThread* fbThread = new QThread(this);
|
||||||
@ -277,7 +288,9 @@ void HyperionDaemon::startNetworkServices()
|
|||||||
connect(fbThread, &QThread::finished, _flatBufferServer, &FlatBufferServer::deleteLater);
|
connect(fbThread, &QThread::finished, _flatBufferServer, &FlatBufferServer::deleteLater);
|
||||||
connect(this, &HyperionDaemon::settingsChanged, _flatBufferServer, &FlatBufferServer::handleSettingsUpdate);
|
connect(this, &HyperionDaemon::settingsChanged, _flatBufferServer, &FlatBufferServer::handleSettingsUpdate);
|
||||||
fbThread->start();
|
fbThread->start();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(ENABLE_PROTOBUF_SERVER)
|
||||||
// Create Proto server in thread
|
// Create Proto server in thread
|
||||||
_protoServer = new ProtoServer(getSetting(settings::PROTOSERVER));
|
_protoServer = new ProtoServer(getSetting(settings::PROTOSERVER));
|
||||||
QThread* pThread = new QThread(this);
|
QThread* pThread = new QThread(this);
|
||||||
@ -287,6 +300,7 @@ void HyperionDaemon::startNetworkServices()
|
|||||||
connect(pThread, &QThread::finished, _protoServer, &ProtoServer::deleteLater);
|
connect(pThread, &QThread::finished, _protoServer, &ProtoServer::deleteLater);
|
||||||
connect(this, &HyperionDaemon::settingsChanged, _protoServer, &ProtoServer::handleSettingsUpdate);
|
connect(this, &HyperionDaemon::settingsChanged, _protoServer, &ProtoServer::handleSettingsUpdate);
|
||||||
pThread->start();
|
pThread->start();
|
||||||
|
#endif
|
||||||
|
|
||||||
// Create Webserver in thread
|
// Create Webserver in thread
|
||||||
_webserver = new WebServer(getSetting(settings::WEBSERVER), false);
|
_webserver = new WebServer(getSetting(settings::WEBSERVER), false);
|
||||||
@ -416,8 +430,6 @@ void HyperionDaemon::handleSettingsUpdate(settings::type settingsType, const QJs
|
|||||||
|
|
||||||
if (_prevType != type)
|
if (_prevType != type)
|
||||||
{
|
{
|
||||||
Info(_log, "set screen capture device to '%s'", QSTRING_CSTR(type));
|
|
||||||
|
|
||||||
// stop all capture interfaces
|
// stop all capture interfaces
|
||||||
#ifdef ENABLE_FB
|
#ifdef ENABLE_FB
|
||||||
if (_fbGrabber != nullptr)
|
if (_fbGrabber != nullptr)
|
||||||
|
@ -58,6 +58,8 @@
|
|||||||
typedef QObject DirectXWrapper;
|
typedef QObject DirectXWrapper;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <hyperion/GrabberWrapper.h>
|
||||||
|
|
||||||
#include <utils/Logger.h>
|
#include <utils/Logger.h>
|
||||||
#include <utils/VideoMode.h>
|
#include <utils/VideoMode.h>
|
||||||
|
|
||||||
@ -180,10 +182,16 @@ private:
|
|||||||
QtWrapper* _qtGrabber;
|
QtWrapper* _qtGrabber;
|
||||||
DirectXWrapper* _dxGrabber;
|
DirectXWrapper* _dxGrabber;
|
||||||
SSDPHandler* _ssdp;
|
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_width;
|
||||||
int _grabber_height;
|
int _grabber_height;
|
||||||
int _grabber_pixelDecimation;
|
int _grabber_pixelDecimation;
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
|
|
||||||
#include <utils/ColorRgb.h>
|
#include <utils/ColorRgb.h>
|
||||||
|
#include <utils/Process.h>
|
||||||
#include <effectengine/EffectDefinition.h>
|
#include <effectengine/EffectDefinition.h>
|
||||||
#include <effectengine/Effect.h>
|
#include <effectengine/Effect.h>
|
||||||
#include <webserver/WebServer.h>
|
#include <webserver/WebServer.h>
|
||||||
@ -72,19 +73,23 @@ void SysTray::createTrayIcon()
|
|||||||
|
|
||||||
quitAction = new QAction(tr("&Quit"), this);
|
quitAction = new QAction(tr("&Quit"), this);
|
||||||
quitAction->setIcon(QPixmap(":/quit.svg"));
|
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 = new QAction(tr("&Color"), this);
|
||||||
colorAction->setIcon(QPixmap(":/color.svg"));
|
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 = new QAction(tr("&Settings"), this);
|
||||||
settingsAction->setIcon(QPixmap(":/settings.svg"));
|
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 = new QAction(tr("&Clear"), this);
|
||||||
clearAction->setIcon(QPixmap(":/clear.svg"));
|
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();
|
const std::list<EffectDefinition> efxs = _hyperion->getEffects();
|
||||||
_trayIconMenu = new QMenu(this);
|
_trayIconMenu = new QMenu(this);
|
||||||
@ -98,7 +103,7 @@ void SysTray::createTrayIcon()
|
|||||||
if (efx.file.mid(0, 1) != ":")
|
if (efx.file.mid(0, 1) != ":")
|
||||||
{
|
{
|
||||||
QAction *efxAction = new QAction(efx.name, this);
|
QAction *efxAction = new QAction(efx.name, this);
|
||||||
connect(efxAction, SIGNAL(triggered()), this, SLOT(setEffect()));
|
connect(efxAction, &QAction::triggered, this, &SysTray::setEffect);
|
||||||
_trayIconEfxMenu->addAction(efxAction);
|
_trayIconEfxMenu->addAction(efxAction);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -113,7 +118,7 @@ void SysTray::createTrayIcon()
|
|||||||
if (efx.file.mid(0, 1) == ":")
|
if (efx.file.mid(0, 1) == ":")
|
||||||
{
|
{
|
||||||
QAction *efxAction = new QAction(efx.name, this);
|
QAction *efxAction = new QAction(efx.name, this);
|
||||||
connect(efxAction, SIGNAL(triggered()), this, SLOT(setEffect()));
|
connect(efxAction, &QAction::triggered, this, &SysTray::setEffect);
|
||||||
_trayIconEfxMenu->addAction(efxAction);
|
_trayIconEfxMenu->addAction(efxAction);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -121,7 +126,7 @@ void SysTray::createTrayIcon()
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
autorunAction = new QAction(tr("&Disable autostart"), this);
|
autorunAction = new QAction(tr("&Disable autostart"), this);
|
||||||
autorunAction->setIcon(QPixmap(":/autorun.svg"));
|
autorunAction->setIcon(QPixmap(":/autorun.svg"));
|
||||||
connect(autorunAction, SIGNAL(triggered()), this, SLOT(setAutorunState()));
|
connect(autorunAction, &QAction::triggered, this, &SysTray::setAutorunState);
|
||||||
|
|
||||||
_trayIconMenu->addAction(autorunAction);
|
_trayIconMenu->addAction(autorunAction);
|
||||||
_trayIconMenu->addSeparator();
|
_trayIconMenu->addSeparator();
|
||||||
@ -133,6 +138,7 @@ void SysTray::createTrayIcon()
|
|||||||
_trayIconMenu->addMenu(_trayIconEfxMenu);
|
_trayIconMenu->addMenu(_trayIconEfxMenu);
|
||||||
_trayIconMenu->addAction(clearAction);
|
_trayIconMenu->addAction(clearAction);
|
||||||
_trayIconMenu->addSeparator();
|
_trayIconMenu->addSeparator();
|
||||||
|
_trayIconMenu->addAction(restartAction);
|
||||||
_trayIconMenu->addAction(quitAction);
|
_trayIconMenu->addAction(quitAction);
|
||||||
|
|
||||||
_trayIcon = new QSystemTrayIcon(this);
|
_trayIcon = new QSystemTrayIcon(this);
|
||||||
@ -242,12 +248,10 @@ void SysTray::handleInstanceStateChange(InstanceState state, quint8 instance, co
|
|||||||
_hyperion = _instanceManager->getHyperionInstance(0);
|
_hyperion = _instanceManager->getHyperionInstance(0);
|
||||||
|
|
||||||
createTrayIcon();
|
createTrayIcon();
|
||||||
connect(_trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
|
connect(_trayIcon, &QSystemTrayIcon::activated, this, &SysTray::iconActivated);
|
||||||
this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
|
|
||||||
|
|
||||||
connect(quitAction, &QAction::triggered, _trayIcon, &QSystemTrayIcon::hide, Qt::DirectConnection);
|
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");
|
QIcon icon(":/hyperion-icon-32px.png");
|
||||||
_trayIcon->setIcon(icon);
|
_trayIcon->setIcon(icon);
|
||||||
_trayIcon->show();
|
_trayIcon->show();
|
||||||
|
@ -54,6 +54,7 @@ private:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
QAction *quitAction;
|
QAction *quitAction;
|
||||||
|
QAction *restartAction;
|
||||||
QAction *startAction;
|
QAction *startAction;
|
||||||
QAction *stopAction;
|
QAction *stopAction;
|
||||||
QAction *colorAction;
|
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