Merge branch 'master' into Razer_Chroma_Support

This commit is contained in:
LordGrey 2020-12-09 14:32:05 +01:00 committed by GitHub
commit 772945b505
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
250 changed files with 5153 additions and 2857 deletions

20
.devcontainer.json Normal file
View File

@ -0,0 +1,20 @@
{
"name": "Hyperion.ng Linux",
"extensions": [
"twxs.cmake",
"ms-vscode.cpptools",
"ms-vscode.cmake-tools",
"spmeesseman.vscode-taskexplorer",
"yzhang.markdown-all-in-one",
"CoenraadS.bracket-pair-colorizer",
"vscode-icons-team.vscode-icons",
"editorconfig.editorconfig"
],
"settings": {
"editor.formatOnSave": false,
"cmake.environment": {
},
},
"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"
}

1
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1 @@
blank_issues_enabled: false

12
.github/issues.yml vendored Normal file
View File

@ -0,0 +1,12 @@
Issues:
opened: |
Hello @$AUTHOR
We make use of an **[ISSUE TEMPLATE](https://github.com/$REPO_FULL_NAME/issues/new/choose)** to capture relevant information to support you best. Unfortunately, **you ignored or deleted** the given sections. Please take care that all information requested is provided.
This issue will be automatically closed by our bot, please do not take it personally. We would like asking you to open a new issue following the **[ISSUE TEMPLATE](https://github.com/$REPO_FULL_NAME/issues/new/choose)**.
Thanks for your continuous support!
Best regards,
Hyperion-Project

View File

@ -124,6 +124,7 @@ jobs:
runs-on: windows-latest runs-on: windows-latest
env: env:
VCINSTALLDIR: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC' VCINSTALLDIR: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC'
QT_VERSION: 5.15.0
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v1 uses: actions/checkout@v1
@ -137,25 +138,37 @@ jobs:
tr -d '\n' < version > temp && mv temp version tr -d '\n' < version > temp && mv temp version
echo -n "-PR#${{ github.event.pull_request.number }}" >> version echo -n "-PR#${{ github.event.pull_request.number }}" >> version
- name: Cache Qt
uses: actions/cache@v2
id: cache-qt-windows
with:
path: ${{ runner.workspace }}/Qt
key: ${{ runner.os }}-Qt.${{ env.QT_VERSION }}
- name: Install Qt - name: Install Qt
uses: jurplel/install-qt-action@v2 uses: jurplel/install-qt-action@v2
with: with:
version: '5.15.0' version: ${{env.QT_VERSION}}
target: 'desktop' target: 'desktop'
arch: 'win64_msvc2019_64' arch: 'win64_msvc2019_64'
cached: ${{ steps.cache-qt-windows.outputs.cache-hit }}
- name: Install Python - name: Cache Chocolatey downloads
uses: actions/setup-python@v1 uses: actions/cache@v2
with: with:
python-version: '3.x' path: C:\Users\runneradmin\AppData\Local\Temp\chocolatey
key: ${{ runner.os }}-chocolatey
- name: Install NSIS & copy plugins - name: "Remove Redistributable"
shell: cmd
run: | run: |
choco install --no-progress nsis -y MsiExec.exe /passive /X{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}
copy "cmake\nsis\template\*.dll" "C:\Program Files (x86)\NSIS\Plugins\x86-ansi\" MsiExec.exe /passive /X{1D8E6291-B0D5-35EC-8441-6616F567A0F7}
- name: Install OpenSSL - name: Install Python, NSIS, OpenSSL, DirectX SDK
run: choco install --no-progress openssl -y shell: powershell
run: |
choco install --no-progress python nsis openssl directx-sdk -y
- name: Set up x64 build architecture environment - name: Set up x64 build architecture environment
shell: cmd shell: cmd

View File

@ -95,31 +95,44 @@ jobs:
runs-on: windows-latest runs-on: windows-latest
env: env:
VCINSTALLDIR: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC' VCINSTALLDIR: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC'
QT_VERSION: 5.15.0
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v1 uses: actions/checkout@v1
with: with:
submodules: true submodules: true
- name: Cache Qt
uses: actions/cache@v2
id: cache-qt-windows
with:
path: ${{ runner.workspace }}/Qt
key: ${{ runner.os }}-Qt.${{ env.QT_VERSION }}
- name: Install Qt - name: Install Qt
uses: jurplel/install-qt-action@v2 uses: jurplel/install-qt-action@v2
with: with:
version: '5.15.0' version: ${{ env.QT_VERSION }}
target: 'desktop' target: 'desktop'
arch: 'win64_msvc2019_64' arch: 'win64_msvc2019_64'
cached: ${{ steps.cache-qt-windows.outputs.cache-hit }}
- name: Install Python - name: Cache Chocolatey downloads
uses: actions/setup-python@v1 uses: actions/cache@v2
with: with:
python-version: '3.x' path: C:\Users\runneradmin\AppData\Local\Temp\chocolatey
key: ${{ runner.os }}-chocolatey
- name: Install NSIS & copy plugins - name: "Remove Redistributable"
shell: cmd
run: | run: |
choco install --no-progress nsis -y MsiExec.exe /passive /X{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}
copy "cmake\nsis\template\*.dll" "C:\Program Files (x86)\NSIS\Plugins\x86-ansi\" MsiExec.exe /passive /X{1D8E6291-B0D5-35EC-8441-6616F567A0F7}
- name: Install OpenSSL - name: Install Python, NSIS, OpenSSL, DirectX SDK
run: choco install --no-progress openssl -y shell: powershell
run: |
choco install --no-progress python nsis openssl directx-sdk -y
- name: Set up x64 build architecture environment - name: Set up x64 build architecture environment
shell: cmd shell: cmd
@ -192,14 +205,14 @@ jobs:
# generate environment variables # generate environment variables
- name: Generate environment variables from version and tag - name: Generate environment variables from version and tag
run: | run: |
echo ::set-env name=TAG::${GITHUB_REF/refs\/tags\//} echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
echo ::set-env name=VERSION::$(tr -d '\n' < version) echo "VERSION=$(tr -d '\n' < version)" >> $GITHUB_ENV
echo ::set-env name=preRelease::false echo "preRelease=false" >> $GITHUB_ENV
# If version contains alpha or beta, mark draft release as pre-release # If version contains alpha or beta, mark draft release as pre-release
- name: Mark release as pre-release - name: Mark release as pre-release
if: contains(env.VERSION, 'alpha') || contains(env.VERSION, 'beta') if: contains(env.VERSION, 'alpha') || contains(env.VERSION, 'beta')
run: echo ::set-env name=preRelease::true run: echo "preRelease=true" >> $GITHUB_ENV
# Download artifacts from previous build process # Download artifacts from previous build process
- name: Download artifacts - name: Download artifacts

4
.gitignore vendored
View File

@ -25,3 +25,7 @@ libsrc/flatbufserver/hyperion_request_generated.h
# Kdevelop project files # Kdevelop project files
*.kdev* *.kdev*
# Visual Studio 2015/2017/2019 cache/options directory
.vs/
CMakeSettings.json

View File

@ -16,9 +16,7 @@
"ms-vscode.cmake-tools", "ms-vscode.cmake-tools",
"spmeesseman.vscode-taskexplorer", "spmeesseman.vscode-taskexplorer",
"yzhang.markdown-all-in-one", "yzhang.markdown-all-in-one",
"formulahendry.auto-rename-tag",
"CoenraadS.bracket-pair-colorizer", "CoenraadS.bracket-pair-colorizer",
"eamodio.gitlens",
"vscode-icons-team.vscode-icons", "vscode-icons-team.vscode-icons",
"editorconfig.editorconfig" "editorconfig.editorconfig"
] ]

4
.vscode/launch.json vendored
View File

@ -9,7 +9,7 @@
"type": "cppdbg", "type": "cppdbg",
"request": "launch", "request": "launch",
"program": "${workspaceFolder}/build/bin/hyperiond", "program": "${workspaceFolder}/build/bin/hyperiond",
"args": [], "args": ["-d"],
"stopAtEntry": false, "stopAtEntry": false,
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",
"environment": [], "environment": [],
@ -28,7 +28,7 @@
"type": "cppvsdbg", "type": "cppvsdbg",
"request": "launch", "request": "launch",
"program": "${workspaceFolder}/build/bin/Debug/hyperiond.exe", "program": "${workspaceFolder}/build/bin/Debug/hyperiond.exe",
"args": [], "args": ["-d"],
"stopAtEntry": false, "stopAtEntry": false,
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",
"environment": [], "environment": [],

4
.vscode/tasks.json vendored
View File

@ -11,7 +11,7 @@
"windows": { "windows": {
"command": "cmake -G \"Visual Studio 16 2019\" -A x64 -B ${workspaceFolder}/build" "command": "cmake -G \"Visual Studio 16 2019\" -A x64 -B ${workspaceFolder}/build"
}, },
"group": "build", "group": "build"
}, },
{ {
"label": "cmake:conf Debug", "label": "cmake:conf Debug",
@ -21,7 +21,7 @@
"windows": { "windows": {
"command": "cmake -G \"Visual Studio 16 2019\" -A x64 -B ${workspaceFolder}/build" "command": "cmake -G \"Visual Studio 16 2019\" -A x64 -B ${workspaceFolder}/build"
}, },
"group": "build", "group": "build"
}, },
{ {
"label": "build:debug hyperiond", "label": "build:debug hyperiond",

View File

@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased](https://github.com/hyperion-project/hyperion.ng/compare/2.0.0-alpha.8...HEAD) ## [Unreleased](https://github.com/hyperion-project/hyperion.ng/compare/2.0.0-alpha.9...HEAD)
### Breaking ### Breaking
@ -13,15 +13,54 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed ### Changed
### Fixed ### Fixed
- Also allow an 8-LED configuration when using Karatelight
- Fix Lightpack issue (#1015)
- Fix color calibration for Kodi 18 (Fixes #771)
### Removed ### Removed
- Replace Multi-Lightpack by multi-instance Lightpack configuration ## [2.0.0-alpha.9](https://github.com/hyperion-project/hyperion.ng/releases/tag/2.0.0-alpha.9) - 2020-11-18
### Added
- Grabber: DirectX9 support (#1039)
- New blackbar detection mode "Letterbox", that considers only bars at the top and bottom of picture
- LED-Devices: Cololight support (Cololight Plus & Strip) incl. configuration wizard
- LED-Devices: SK9822 support (#1005,#1017)
- UX: New language support: Russian and Chinese (simplified) (#1005)
- UX: Additional details on Hardware/CPU information (#1045)
- UX: Systray icons added - Issue #925 (#1040)
- Read-Only configuration database support
- Hide Window Systray icon on Hyperion exit & Install DirectX Redistributable
- Read-Only configuration database support
### Changed
- boblight: reduce cpu time spent on memcopy and parsing rgb values (#1016)
- Windows Installer/Uninstaller notification when Hyperion is running (#1033)
- Updated Windows Dependencies
- Documentation: Optimized images (#1058)
- UX: Default LED-layout is now one LED only to avoid errors as in #673
- UX: Change links from http to https (#1067)
- Change links from http to https (#1067)
- Cleanup packages.cmake & extend NSIS plugin directory
- Optimize images (#1058)
- Docs: Refreshed EN JSON API documentation
### Fixed
- Color calibration for Kodi 18 (#1044)
- LED-Devices: Karatelight, allow an 8-LED configuration (#1037)
- LED-Devices: Save Hue light state between sessions (#1014)
- LED-Devices: LED's retain last state after clearing a source (#1008)
- LED-Devices: Lightpack issue #1015 (#1049)
- Fix various JSON API issues (#1036)
- Fix issue #909, Have ratio correction first and then scale (#1047)
- Fix display argument in hyperion-qt (#1027)
- Fix Python reset thread state
- AVAHI included in Webserver (#996)
- Fix add libcec to deb/rpm dependency list
- Fix Hyperion configuration is corrected during start-up, if required
- Fix color comparison / Signal detection (#1087)
### Removed
- Replace Multi-Lightpack by multi-instance Lightpack configuration (#1049)
## [2.0.0-alpha.8](https://github.com/hyperion-project/hyperion.ng/releases/tag/2.0.0-alpha.8) - 2020-09-14 ## [2.0.0-alpha.8](https://github.com/hyperion-project/hyperion.ng/releases/tag/2.0.0-alpha.8) - 2020-09-14
### Added ### Added

View File

@ -39,9 +39,9 @@ endif()
SET ( DEFAULT_AMLOGIC OFF ) SET ( DEFAULT_AMLOGIC OFF )
SET ( DEFAULT_DISPMANX OFF ) SET ( DEFAULT_DISPMANX OFF )
SET ( DEFAULT_OSX OFF ) SET ( DEFAULT_OSX OFF )
SET ( DEFAULT_QT ON )
SET ( DEFAULT_X11 OFF ) SET ( DEFAULT_X11 OFF )
SET ( DEFAULT_XCB OFF ) SET ( DEFAULT_XCB OFF )
SET ( DEFAULT_QT ON )
SET ( DEFAULT_WS281XPWM OFF ) SET ( DEFAULT_WS281XPWM OFF )
SET ( DEFAULT_AVAHI ON ) SET ( DEFAULT_AVAHI ON )
SET ( DEFAULT_USE_SHARED_AVAHI_LIBS ON ) SET ( DEFAULT_USE_SHARED_AVAHI_LIBS ON )
@ -58,6 +58,8 @@ IF ( ${CMAKE_SYSTEM} MATCHES "Linux" )
SET ( DEFAULT_FB 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 )
SET ( DEFAULT_DX ON )
ELSE() ELSE()
SET ( DEFAULT_V4L2 OFF ) SET ( DEFAULT_V4L2 OFF )
SET ( DEFAULT_FB OFF ) SET ( DEFAULT_FB OFF )
@ -190,6 +192,9 @@ message(STATUS "ENABLE_XCB = ${ENABLE_XCB}")
option(ENABLE_QT "Enable the qt grabber" ${DEFAULT_QT}) option(ENABLE_QT "Enable the qt grabber" ${DEFAULT_QT})
message(STATUS "ENABLE_QT = ${ENABLE_QT}") message(STATUS "ENABLE_QT = ${ENABLE_QT}")
option(ENABLE_DX "Enable the DirectX grabber" ${DEFAULT_DX})
message(STATUS "ENABLE_DX = ${ENABLE_DX}")
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}")
@ -297,12 +302,46 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
# Qt5 default install path with msvc2017 64bit component # Qt5 default install path with msvc2017 64bit component
# The Qt5_DIR should point to Qt5Config.cmake -> C:/Qt/5.xx/msvc2017_64/lib/cmake/Qt5 # The Qt5_DIR should point to Qt5Config.cmake -> C:/Qt/5.xx/msvc2017_64/lib/cmake/Qt5
# The CMAKE_PREFIX_PATH should point to the install directory -> C:/Qt/5.xx/msvc2017_64 # The CMAKE_PREFIX_PATH should point to the install directory -> C:/Qt/5.xx/msvc2017_64
FIRSTSUBDIR(SUBDIRQT "C:/Qt") #
SET(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "${SUBDIRQT}/msvc2019_64") # Alternatively, use Qt5_BASE_DIR environment variable to point to Qt version to be used
if (NOT DEFINED ENV{Qt5_DIR}) # In MSVC19 add into CMakeSettings.json
message(STATUS "Set Qt5 module path: ${SUBDIRQT}") #
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${SUBDIRQT}/msvc2019_64/lib/cmake/Qt5") # "environments": [
# {
# "Qt5_BASE_DIR": "D:/Qt/5.15.1/msvc2019_64"
# }
# ]
if (NOT DEFINED ENV{Qt5_BASE_DIR})
FIRSTSUBDIR(SUBDIRQT "C:/Qt")
SET(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "${SUBDIRQT}/msvc2019_64")
else()
message(STATUS "Qt5_BASE_DIR: $ENV{Qt5_BASE_DIR}")
message(STATUS "Add Qt5_BASE_DIR: $ENV{Qt5_BASE_DIR} to CMAKE_PREFIX_PATH")
SET(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "$ENV{Qt5_BASE_DIR}")
endif() endif()
if (NOT DEFINED ENV{Qt5_DIR})
if (NOT DEFINED ENV{Qt5_BASE_DIR})
SET (qt_module_path "${SUBDIRQT}/msvc2019_64/lib/cmake/Qt5")
else ()
SET (qt_module_path "$ENV{Qt5_BASE_DIR}/lib/cmake/Qt5")
endif()
else()
SET (qt_module_path "$ENV{Qt5_DIR}")
endif()
message(STATUS "Add ${qt_module_path} to CMAKE_MODULE_PATH")
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${qt_module_path}")
#message(STATUS "CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}")
#message(STATUS "CMAKE_MODULE_PATH: ${CMAKE_MODULE_PATH}")
# Search for DirectX9
if (ENABLE_DX)
find_package(DirectX9 REQUIRED)
endif()
endif() endif()
# Use GNU gold linker if available # Use GNU gold linker if available

View File

@ -48,7 +48,7 @@ wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/
``` ```
sudo apt-get update sudo apt-get update
sudo apt-get install git cmake build-essential qtbase5-dev libqt5serialport5-dev libqt5sql5-sqlite 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 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 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
``` ```
**on RPI you need the videocore IV headers** **on RPI you need the videocore IV headers**
@ -84,16 +84,19 @@ brew install zlib
``` ```
## Windows (WIP) ## Windows (WIP)
We assume a 64bit Windows 7 or higher. Install the following We assume a 64bit Windows 7 or higher. Install the following;
- [Git](https://git-scm.com/downloads) (Check: Add to PATH) - [Git](https://git-scm.com/downloads) (Check: Add to PATH)
- [Python 3 (Windows x86-64 executable installer)](https://www.python.org/downloads/windows/) (Check: Add to PATH and Debug Symbols)
- Open a console window and execute `pip install aqtinstall`.
- Now we can download Qt to _C:\Qt_ `mkdir c:\Qt && aqt install -O c:\Qt 5.15.0 windows desktop win64_msvc2019_64`
- [CMake (Windows win64-x64 Installer)](https://cmake.org/download/) (Check: Add to PATH) - [CMake (Windows win64-x64 Installer)](https://cmake.org/download/) (Check: Add to PATH)
- [Win64 OpenSSL v1.1.1g](https://slproweb.com/products/Win32OpenSSL.html) ([direct link](https://slproweb.com/download/Win64OpenSSL-1_1_1g.exe))
- [Visual Studio 2019 Build Tools](https://go.microsoft.com/fwlink/?linkid=840931) ([direct link](https://aka.ms/vs/16/release/vs_buildtools.exe)) - [Visual Studio 2019 Build Tools](https://go.microsoft.com/fwlink/?linkid=840931) ([direct link](https://aka.ms/vs/16/release/vs_buildtools.exe))
- Select C++ Buildtools - Select C++ Buildtools
- On the right, just select `MSVC v142 VS 2019 C++ x64/x86-Buildtools` and latest `Windows 10 SDK`. Everything else is not needed. - On the right, just select `MSVC v142 VS 2019 C++ x64/x86-Buildtools` and latest `Windows 10 SDK`. Everything else is not needed.
- [Win64 OpenSSL v1.1.1h](https://slproweb.com/products/Win32OpenSSL.html) ([direct link](https://slproweb.com/download/Win64OpenSSL-1_1_1h.exe))
- [Python 3 (Windows x86-64 executable installer)](https://www.python.org/downloads/windows/) (Check: Add to PATH and Debug Symbols)
- Open a console window and execute `pip install aqtinstall`.
- Now we can download Qt to _C:\Qt_ `mkdir c:\Qt && aqt install -O c:\Qt 5.15.0 windows desktop win64_msvc2019_64`
- [DirectX Software Development Kit](https://www.microsoft.com/en-us/download/details.aspx?id=6812) ([direct link](https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe))
- Optional for package creation: [NSIS 3.x](https://sourceforge.net/projects/nsis/files/NSIS%203/) ([direct link](https://sourceforge.net/projects/nsis/files/latest/download))
# Compiling and installing Hyperion # Compiling and installing Hyperion

View File

@ -4,14 +4,14 @@ Use a clean Raspbian Stretch Lite (on target) and Ubuntu 18/19 (on host) to exec
## On the Target system (here Raspberry Pi) ## On the Target system (here Raspberry Pi)
Install required additional packages. Install required additional packages.
``` ```
sudo apt-get install qtbase5-dev libqt5serialport5-dev libusb-1.0-0-dev python3-dev libcec-dev libxcb-util0-dev libxcb-randr0-dev libxrandr-dev libxrender-dev libavahi-core-dev libavahi-compat-libdnssd-dev libjpeg-dev libturbojpeg0-dev libqt5sql5-sqlite aptitude qt5-default rsync libssl-dev zlib1g-dev sudo apt-get install qtbase5-dev libqt5serialport5-dev libqt5svg5-dev libusb-1.0-0-dev python3-dev libcec-dev libxcb-util0-dev libxcb-randr0-dev libxrandr-dev libxrender-dev libavahi-core-dev libavahi-compat-libdnssd-dev libjpeg-dev libturbojpeg0-dev libqt5sql5-sqlite aptitude qt5-default rsync libssl-dev zlib1g-dev
``` ```
## On the Host system (here Ubuntu) ## On the Host system (here Ubuntu)
Update the Ubuntu environment to the latest stage and install required additional packages. Update the Ubuntu environment to the latest stage and install required additional packages.
``` ```
sudo apt-get update sudo apt-get update
sudo apt-get upgrade sudo apt-get upgrade
sudo apt-get -qq -y install git rsync cmake build-essential qtbase5-dev libqt5serialport5-dev libqt5sql5-sqlite 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 sudo apt-get -qq -y install git rsync cmake build-essential qtbase5-dev libqt5serialport5-dev libqt5svg5-dev libqt5sql5-sqlite 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
``` ```
Refine the target IP or hostname, plus userID as required and set-up cross-compilation environment: Refine the target IP or hostname, plus userID as required and set-up cross-compilation environment:

View File

@ -24,6 +24,9 @@
// Define to enable the qt grabber // Define to enable the qt grabber
#cmakedefine ENABLE_QT #cmakedefine ENABLE_QT
// Define to enable the DirectX grabber
#cmakedefine ENABLE_DX
// Define to enable the spi-device // Define to enable the spi-device
#cmakedefine ENABLE_SPIDEV #cmakedefine ENABLE_SPIDEV

View File

@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2014 hyperion team Copyright (c) 2014-2020 Hyperion Project
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -56,6 +56,6 @@ See [CompileHowto](CompileHowto.md) and [CrossCompileHowto](CrossCompileHowto.md
Alpha releases available from the [Hyperion release page](https://github.com/hyperion-project/hyperion.ng/releases) Alpha releases available from the [Hyperion release page](https://github.com/hyperion-project/hyperion.ng/releases)
## License ## License
The source is released under MIT-License (see http://opensource.org/licenses/MIT).<br> The source is released under MIT-License (see https://opensource.org/licenses/MIT).<br>
[![GitHub license](https://img.shields.io/badge/License-MIT-yellow.svg)](https://raw.githubusercontent.com/hyperion-project/hyperion.ng/master/LICENSE) [![GitHub license](https://img.shields.io/badge/License-MIT-yellow.svg)](https://raw.githubusercontent.com/hyperion-project/hyperion.ng/master/LICENSE)

View File

@ -21,6 +21,7 @@ import socket
import serial import serial
import serial.threaded import serial.threaded
from __future__ import division
class SerialToNet(serial.threaded.Protocol): class SerialToNet(serial.threaded.Protocol):
"""serial->socket""" """serial->socket"""
@ -152,7 +153,7 @@ to this service over the network.
srv = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) srv = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
srv.bind(('', args.localport)) srv.bind(('0.0.0.0', args.localport))
try: try:
intentional_exit = False intentional_exit = False

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -18,7 +18,7 @@
performTranslation(); performTranslation();
var si = sysInfo.hyperion; var si = sysInfo.hyperion;
var libs = { "Bootstrap 3": "http://getbootstrap.com/", "JQuery": "https://jquery.com/", "Bootstrap Colorpicker": "https://itsjavi.com/bootstrap-colorpicker/", "Bootstrap Toggle": "https://www.bootstraptoggle.com/", "Bootstrap Select": "https://developer.snapappointments.com/bootstrap-select/", "JSON-Editor": "http://jeremydorn.com/json-editor/", "jQuery.i18n": "https://github.com/wikimedia/jquery.i18n", "metisMenu": "http://mm.onokumus.com/index.html", "download.js": "http://danml.com/download.html", "gijgo": "http://gijgo.com/" }; var libs = { "Bootstrap 3": "https://getbootstrap.com/", "JQuery": "https://jquery.com/", "Bootstrap Colorpicker": "https://itsjavi.com/bootstrap-colorpicker/", "Bootstrap Toggle": "https://www.bootstraptoggle.com/", "Bootstrap Select": "https://developer.snapappointments.com/bootstrap-select/", "JSON-Editor": "https://www.jeremydorn.com/json-editor", "jQuery.i18n": "https://github.com/wikimedia/jquery.i18n", "metisMenu": "https://mm.onokumus.com/index.html", "download.js": "https://github.com/rndme/download", "gijgo": "https://gijgo.com/" };
var libh = ""; var libh = "";
var lang = []; var lang = [];
var dcount = 0; var dcount = 0;
@ -35,19 +35,35 @@
var sys = window.sysInfo.system; var sys = window.sysInfo.system;
var shy = window.sysInfo.hyperion; var shy = window.sysInfo.hyperion;
var info = "<pre>Hyperion Server: \n"; var info = "<pre>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';
info += '- Version: ' + shy.version + '\n'; info += '- Version: ' + shy.version + '\n';
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\n'; info += '- Avail Capt: ' + window.serverInfo.grabbers.available + '\n';
info += '- Database: ' + (shy.readOnlyMode ? "ready-only" : "read/write") + '\n';
info += '\n';
info += 'Hyperion Server OS: \n'; info += 'Hyperion Server OS: \n';
info += '- Distribution: ' + sys.prettyName + '\n'; info += '- Distribution: ' + sys.prettyName + '\n';
info += '- Arch: ' + sys.architecture + '\n'; info += '- Architecture: ' + sys.architecture + '\n';
info += '- Kernel: ' + sys.kernelType + ' (' + sys.kernelVersion + ' (WS: ' + sys.wordSize + '))\n';
info += '- Browser: ' + navigator.userAgent + ' </pre>'; if (sys.cpuModelName)
info += '- CPU Model: ' + sys.cpuModelName + '\n';
if (sys.cpuModelType)
info += '- CPU Type: ' + sys.cpuModelType + '\n';
if (sys.cpuRevision)
info += '- CPU Revision: ' + sys.cpuRevision + '\n';
if (sys.cpuHardware)
info += '- CPU Hardware: ' + sys.cpuHardware + '\n';
info += '- Kernel: ' + sys.kernelType + ' (' + sys.kernelVersion + ' (WS: ' + sys.wordSize + '))\n';
info += '- Qt Version: ' + sys.qtVersion + '\n';
info += '- Python Version: ' + sys.pyVersion + '\n';
info += '- Browser: ' + navigator.userAgent + ' </pre>';
var fc = ['<span id="danger_trig">' + $.i18n("about_version") + '<span>', $.i18n("about_build"), $.i18n("about_builddate"), $.i18n("about_translations"), $.i18n("about_resources", $.i18n("general_webui_title")), "System info (Github Issue)", $.i18n("about_3rd_party_licenses")]; var fc = ['<span id="danger_trig">' + $.i18n("about_version") + '<span>', $.i18n("about_build"), $.i18n("about_builddate"), $.i18n("about_translations"), $.i18n("about_resources", $.i18n("general_webui_title")), "System info (Github Issue)", $.i18n("about_3rd_party_licenses")];
var sc = [currentVersion, si.build, si.time, '(' + availLang.length + ')<p>' + lang + '</p><p><a href="https://github.com/hyperion-project/hyperion.ng" target="_blank">' + $.i18n("about_contribute") + '</a></p>', libh, info, '<pre><div id="3rdpartylicenses" style="overflow:scroll;max-height:400px"></div></pre>']; var sc = [currentVersion, si.build, si.time, '(' + availLang.length + ')<p>' + lang + '</p><p><a href="https://github.com/hyperion-project/hyperion.ng" target="_blank">' + $.i18n("about_contribute") + '</a></p>', libh, info, '<pre><div id="3rdpartylicenses" style="overflow:scroll;max-height:400px"></div></pre>'];

View File

@ -50,7 +50,7 @@
<label class="ltdlabel" for="ip_cl_top" data-i18n="conf_leds_layout_cl_top">Top</label> <label class="ltdlabel" for="ip_cl_top" data-i18n="conf_leds_layout_cl_top">Top</label>
</td> </td>
<td class="itd input-group"> <td class="itd input-group">
<input class="form-control ledCLconstr " id="ip_cl_top" type="number" value="10" min="0" step="1"></input> <input class="form-control ledCLconstr " id="ip_cl_top" type="number" value="1" min="0" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div> <div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
</td> </td>
</tr> </tr>
@ -59,7 +59,7 @@
<label class="ltdlabel" for="ip_cl_bottom" data-i18n="conf_leds_layout_cl_bottom">Bottom</label> <label class="ltdlabel" for="ip_cl_bottom" data-i18n="conf_leds_layout_cl_bottom">Bottom</label>
</td> </td>
<td class="itd input-group"> <td class="itd input-group">
<input class="form-control ledCLconstr" id="ip_cl_bottom" type="number" value="10" min="0" step="1"></input> <input class="form-control ledCLconstr" id="ip_cl_bottom" type="number" value="0" min="0" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div> <div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
</td> </td>
</tr> </tr>
@ -68,7 +68,7 @@
<label class="ltdlabel" for="ip_cl_left" data-i18n="conf_leds_layout_cl_left">Left</label> <label class="ltdlabel" for="ip_cl_left" data-i18n="conf_leds_layout_cl_left">Left</label>
</td> </td>
<td class="itd input-group"> <td class="itd input-group">
<input class="form-control ledCLconstr" id="ip_cl_left" type="number" value="6" min="0" step="1"></input> <input class="form-control ledCLconstr" id="ip_cl_left" type="number" value="0" min="0" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div> <div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
</td> </td>
</tr> </tr>
@ -77,7 +77,7 @@
<label class="ltdlabel" for="ip_cl_right" data-i18n="conf_leds_layout_cl_right">Right</label> <label class="ltdlabel" for="ip_cl_right" data-i18n="conf_leds_layout_cl_right">Right</label>
</td> </td>
<td class="itd input-group"> <td class="itd input-group">
<input class="form-control ledCLconstr" id="ip_cl_right" type="number" value="6" min="0" step="1"></input> <input class="form-control ledCLconstr" id="ip_cl_right" type="number" value="0" min="0" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div> <div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
</td> </td>
</tr> </tr>
@ -266,7 +266,7 @@
<label class="ltdlabel" for="ip_ma_ledshoriz" data-i18n="conf_leds_layout_ma_horiz">Horizontal</label> <label class="ltdlabel" for="ip_ma_ledshoriz" data-i18n="conf_leds_layout_ma_horiz">Horizontal</label>
</td> </td>
<td class="itd input-group"> <td class="itd input-group">
<input class="form-control ledMAconstr" id="ip_ma_ledshoriz" type="number" value="10" min="1" step="1"></input> <input class="form-control ledMAconstr" id="ip_ma_ledshoriz" type="number" value="1" min="1" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div> <div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
</td> </td>
</tr> </tr>
@ -275,7 +275,7 @@
<label class="ltdlabel" for="ip_ma_ledsvert" data-i18n="conf_leds_layout_ma_vert">Vertical</label> <label class="ltdlabel" for="ip_ma_ledsvert" data-i18n="conf_leds_layout_ma_vert">Vertical</label>
</td> </td>
<td class="itd input-group"> <td class="itd input-group">
<input class="form-control ledMAconstr" id="ip_ma_ledsvert" type="number" value="10" min="1" step="1"></input> <input class="form-control ledMAconstr" id="ip_ma_ledsvert" type="number" value="1" min="1" step="1"></input>
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div> <div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
</td> </td>
</tr> </tr>

View File

@ -54,30 +54,30 @@
<i class="fa fa-amazon bg-color-am"></i> <i class="fa fa-amazon bg-color-am"></i>
<h4>Amazon</h4> <h4>Amazon</h4>
<ul> <ul>
<li><a href="http://www.amazon.de/?tag=hyperionproje-21" target="_blank" data-i18n="general_country_de">Germany</a></li> <li><a href="https://www.amazon.de/?tag=hyperionproje-21" target="_blank" data-i18n="general_country_de">Germany</a></li>
<li><a href="http://www.amazon.com/?tag=hyperionpro05-20" target="_blank" data-i18n="general_country_us">United States</a></li> <li><a href="https://www.amazon.com/?tag=hyperionpro05-20" target="_blank" data-i18n="general_country_us">United States</a></li>
<li><a href="http://www.amazon.co.uk/?tag=hyperionpro02-21" target="_blank" data-i18n="general_country_uk">United Kingdom</a></li> <li><a href="https://www.amazon.co.uk/?tag=hyperionpro02-21" target="_blank" data-i18n="general_country_uk">United Kingdom</a></li>
<li><a href="http://www.amazon.fr/?tag=hyperionpro0c-21" target="_blank" data-i18n="general_country_fr">France</a></li> <li><a href="https://www.amazon.fr/?tag=hyperionpro0c-21" target="_blank" data-i18n="general_country_fr">France</a></li>
<li><a href="http://www.amazon.es/?tag=hyperionpro07-21" target="_blank" data-i18n="general_country_es">Spain</a></li> <li><a href="https://www.amazon.es/?tag=hyperionpro07-21" target="_blank" data-i18n="general_country_es">Spain</a></li>
<li><a href="http://www.amazon.it/?tag=hyperionpro00-21" target="_blank" data-i18n="general_country_it">Italy</a></li> <li><a href="https://www.amazon.it/?tag=hyperionpro00-21" target="_blank" data-i18n="general_country_it">Italy</a></li>
</ul> </ul>
</div> </div>
<div class="col-xs-12 col-sm-6 col-lg-3 support-container"> <div class="col-xs-12 col-sm-6 col-lg-3 support-container">
<i class="fa fa-shopping-cart bg-color-am"></i> <i class="fa fa-shopping-cart bg-color-am"></i>
<h4>ebay</h4> <h4>eBay</h4>
<ul> <ul>
<li><a href="http://rover.ebay.com/rover/1/707-53477-19255-0/1?pub=5575174930&toolid=10001&campid=707-53477-19255-0&customid=&mpt=9592320&mpre=http%3A%2F%2Fwww.ebay.de" target="_blank" data-i18n="general_country_de">Germany</a></li> <li><a href="https://rover.ebay.com/rover/1/707-53477-19255-0/1?pub=5575174930&toolid=10001&campid=707-53477-19255-0&customid=&mpt=9592320&mpre=https%3A%2F%2Fwww.ebay.de" target="_blank" data-i18n="general_country_de">Germany</a></li>
<li><a href="http://rover.ebay.com/rover/1/711-53200-19255-0/1?pub=5575174930&toolid=10001&campid=711-53200-19255-0&customid=&mpt=8091563&mpre=http%3A%2F%2Fwww.ebay.com" target="_blank" data-i18n="general_country_us">United States</a></li> <li><a href="https://rover.ebay.com/rover/1/711-53200-19255-0/1?pub=5575174930&toolid=10001&campid=711-53200-19255-0&customid=&mpt=8091563&mpre=https%3A%2F%2Fwww.ebay.com" target="_blank" data-i18n="general_country_us">United States</a></li>
<li><a href="http://rover.ebay.com/rover/1/710-53481-19255-0/1?pub=5575174930&toolid=10001&campid=710-53481-19255-0&customid=&mpt=9837178&mpre=http%3A%2F%2Fwww.ebay.co.uk" target="_blank" data-i18n="general_country_uk">United Kingdom</a></li> <li><a href="https://rover.ebay.com/rover/1/710-53481-19255-0/1?pub=5575174930&toolid=10001&campid=710-53481-19255-0&customid=&mpt=9837178&mpre=https%3A%2F%2Fwww.ebay.co.uk" target="_blank" data-i18n="general_country_uk">United Kingdom</a></li>
<li><a href="http://rover.ebay.com/rover/1/1346-53482-19255-0/1?pub=5575174930&toolid=10001&campid=1346-53482-19255-0&customid=&mpt=9890408&mpre=http%3A%2F%2Fwww.ebay.nl" target="_blank" data-i18n="general_country_nl">Netherlands</a></li> <li><a href="https://rover.ebay.com/rover/1/1346-53482-19255-0/1?pub=5575174930&toolid=10001&campid=1346-53482-19255-0&customid=&mpt=9890408&mpre=https%3A%2F%2Fwww.ebay.nl" target="_blank" data-i18n="general_country_nl">Netherlands</a></li>
<li><a href="http://rover.ebay.com/rover/1/709-53476-19255-0/1?pub=5575174930&toolid=10001&campid=709-53476-19255-0&customid=&mpt=9865977&mpre=http%3A%2F%2Fwww.ebay.fr" target="_blank" data-i18n="general_country_fr">France</a></li> <li><a href="https://rover.ebay.com/rover/1/709-53476-19255-0/1?pub=5575174930&toolid=10001&campid=709-53476-19255-0&customid=&mpt=9865977&mpre=https%3A%2F%2Fwww.ebay.fr" target="_blank" data-i18n="general_country_fr">France</a></li>
<li><a href="http://rover.ebay.com/rover/1/1185-53479-19255-0/1?pub=5575174930&toolid=10001&campid=1185-53479-19255-0&customid=&mpt=1016300&mpre=http%3A%2F%2Fwww.ebay.es" target="_blank" data-i18n="general_country_es">Spain</a></li> <li><a href="https://rover.ebay.com/rover/1/1185-53479-19255-0/1?pub=5575174930&toolid=10001&campid=1185-53479-19255-0&customid=&mpt=1016300&mpre=https%3A%2F%2Fwww.ebay.es" target="_blank" data-i18n="general_country_es">Spain</a></li>
</ul> </ul>
</div> </div>
<div class="col-xs-12 col-sm-6 col-lg-3 support-container"> <div class="col-xs-12 col-sm-6 col-lg-3 support-container">
<i class="fa fa-paypal bg-color-pp"></i> <i class="fa fa-paypal bg-color-pp"></i>
<h4>Paypal</h4> <h4>PayPal</h4>
<p data-i18n="support_label_donationpp">Donation:</p><a href="https://www.paypal.me/hyperionproject/10" target="_blank">Paypal</a> <p data-i18n="support_label_donationpp">Donation:</p><a href="https://www.paypal.me/hyperionproject/10" target="_blank">Paypal</a>
</div> </div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 382 KiB

After

Width:  |  Height:  |  Size: 377 KiB

View File

@ -258,7 +258,6 @@
"edt_conf_fbs_heading_title": "Flatbuffers Server\n", "edt_conf_fbs_heading_title": "Flatbuffers Server\n",
"edt_conf_fbs_timeout_expl": "Pokud nebudou v daném časovém období přijata žádná data, bude komponenta (soft) deaktivována.", "edt_conf_fbs_timeout_expl": "Pokud nebudou v daném časovém období přijata žádná data, bude komponenta (soft) deaktivována.",
"edt_conf_fbs_timeout_title": "Časový limit", "edt_conf_fbs_timeout_title": "Časový limit",
"edt_conf_fg_device_title": "Zařízení",
"edt_conf_fg_display_expl": "Vyberte, která plocha by měla být zachycena (nastavení více monitorů)", "edt_conf_fg_display_expl": "Vyberte, která plocha by měla být zachycena (nastavení více monitorů)",
"edt_conf_fg_display_title": "Displej", "edt_conf_fg_display_title": "Displej",
"edt_conf_fg_frequency_Hz_expl": "Jak často se pořizují nové snímky", "edt_conf_fg_frequency_Hz_expl": "Jak často se pořizují nové snímky",

View File

@ -261,12 +261,14 @@
"edt_conf_enum_automatic": "Automatisch", "edt_conf_enum_automatic": "Automatisch",
"edt_conf_enum_bbclassic": "Klassisch", "edt_conf_enum_bbclassic": "Klassisch",
"edt_conf_enum_bbdefault": "Standard", "edt_conf_enum_bbdefault": "Standard",
"edt_conf_enum_bbletterbox": "Letterbox",
"edt_conf_enum_bbosd": "OSD", "edt_conf_enum_bbosd": "OSD",
"edt_conf_enum_bgr": "BGR", "edt_conf_enum_bgr": "BGR",
"edt_conf_enum_bottom_up": "von unten nach oben", "edt_conf_enum_bottom_up": "von unten nach oben",
"edt_conf_enum_brg": "BRG", "edt_conf_enum_brg": "BRG",
"edt_conf_enum_color": "Farbe", "edt_conf_enum_color": "Farbe",
"edt_conf_enum_custom": "Benutzerdefiniert", "edt_conf_enum_custom": "Benutzerdefiniert",
"edt_conf_enum_decay": "Dämpfung",
"edt_conf_enum_dl_error": "nur Fehler", "edt_conf_enum_dl_error": "nur Fehler",
"edt_conf_enum_dl_informational": "informativ", "edt_conf_enum_dl_informational": "informativ",
"edt_conf_enum_dl_nodebug": "keine Debugausgabe", "edt_conf_enum_dl_nodebug": "keine Debugausgabe",
@ -296,7 +298,6 @@
"edt_conf_fbs_heading_title": "Flatbuffers Server", "edt_conf_fbs_heading_title": "Flatbuffers Server",
"edt_conf_fbs_timeout_expl": "Wenn für die angegebene Zeit keine Daten empfangen werden, wird die Komponente (vorübergehend) deaktiviert", "edt_conf_fbs_timeout_expl": "Wenn für die angegebene Zeit keine Daten empfangen werden, wird die Komponente (vorübergehend) deaktiviert",
"edt_conf_fbs_timeout_title": "Zeitüberschreitung", "edt_conf_fbs_timeout_title": "Zeitüberschreitung",
"edt_conf_fg_device_title": "Device",
"edt_conf_fg_display_expl": "Gebe an, von welchem Desktop aufgenommen werden soll. (Multi Monitor Setup)", "edt_conf_fg_display_expl": "Gebe an, von welchem Desktop aufgenommen werden soll. (Multi Monitor Setup)",
"edt_conf_fg_display_title": "Display", "edt_conf_fg_display_title": "Display",
"edt_conf_fg_frequency_Hz_expl": "Wie schnell werden neue Bilder aufgenommen.", "edt_conf_fg_frequency_Hz_expl": "Wie schnell werden neue Bilder aufgenommen.",
@ -367,7 +368,15 @@
"edt_conf_pbs_timeout_title": "Zeitüberschreitung", "edt_conf_pbs_timeout_title": "Zeitüberschreitung",
"edt_conf_smooth_continuousOutput_expl": "Aktualisiere die LEDs, auch wenn das Bild sich nicht geändert hat.", "edt_conf_smooth_continuousOutput_expl": "Aktualisiere die LEDs, auch wenn das Bild sich nicht geändert hat.",
"edt_conf_smooth_continuousOutput_title": "Fortlaufende Ausgabe", "edt_conf_smooth_continuousOutput_title": "Fortlaufende Ausgabe",
"edt_conf_smooth_decay_expl": "Dämpfungsgrad. Linare Dämpfung = 1; Werte größer eins haben einen stärkeren effekt.",
"edt_conf_smooth_decay_title": "Dämpfungsgrad",
"edt_conf_smooth_dithering_expl": "Erhöhung des Farbgenauigkeitsgrad durch Berücksichtigung benachbarter Farbwerte.",
"edt_conf_smooth_dithering_title": "Dithering",
"edt_conf_smooth_heading_title": "Glättung", "edt_conf_smooth_heading_title": "Glättung",
"edt_conf_smooth_interpolationRate_expl": "Frequenz in der Zwischenschritte zur Glättung berechnet werden.",
"edt_conf_smooth_interpolationRate_title": "Interpolationsfrequenz",
"edt_conf_smooth_outputRate_expl": "Die Ausgangfrequnz zum LED-Device",
"edt_conf_smooth_outputRate_title": "Ausgabefrequenz",
"edt_conf_smooth_time_ms_expl": "Wie lange soll die Glättung Bilder sammeln?", "edt_conf_smooth_time_ms_expl": "Wie lange soll die Glättung Bilder sammeln?",
"edt_conf_smooth_time_ms_title": "Zeit", "edt_conf_smooth_time_ms_title": "Zeit",
"edt_conf_smooth_type_expl": "Algorithmus der Glättung.", "edt_conf_smooth_type_expl": "Algorithmus der Glättung.",
@ -457,6 +466,8 @@
"edt_dev_spec_dithering_title": "Dithering", "edt_dev_spec_dithering_title": "Dithering",
"edt_dev_spec_dmaNumber_title": "DMA Kanal", "edt_dev_spec_dmaNumber_title": "DMA Kanal",
"edt_dev_spec_gamma_title": "Gamma", "edt_dev_spec_gamma_title": "Gamma",
"edt_dev_spec_globalBrightnessControlMaxLevel_title": "Maximalstufe Stromstärke",
"edt_dev_spec_globalBrightnessControlThreshold_title": "Grenzwert für adaptive Stromstärke",
"edt_dev_spec_gpioBcm_title": "GPIO Pin", "edt_dev_spec_gpioBcm_title": "GPIO Pin",
"edt_dev_spec_gpioMap_title": "GPIO Zuweisung", "edt_dev_spec_gpioMap_title": "GPIO Zuweisung",
"edt_dev_spec_gpioNumber_title": "GPIO Nummer", "edt_dev_spec_gpioNumber_title": "GPIO Nummer",
@ -466,8 +477,6 @@
"edt_dev_spec_intervall_title": "Intervall", "edt_dev_spec_intervall_title": "Intervall",
"edt_dev_spec_invert_title": "Invertiere Signal", "edt_dev_spec_invert_title": "Invertiere Signal",
"edt_dev_spec_latchtime_title": "Sperrzeit", "edt_dev_spec_latchtime_title": "Sperrzeit",
"edt_dev_spec_globalBrightnessControlMaxLevel_title": "Maximalstufe Stromstärke",
"edt_dev_spec_globalBrightnessControlThreshold_title": "Grenzwert für adaptive Stromstärke",
"edt_dev_spec_ledIndex_title": "LED-Index", "edt_dev_spec_ledIndex_title": "LED-Index",
"edt_dev_spec_ledType_title": "LED-Typ", "edt_dev_spec_ledType_title": "LED-Typ",
"edt_dev_spec_lightid_itemtitle": "ID", "edt_dev_spec_lightid_itemtitle": "ID",
@ -711,11 +720,13 @@
"general_comp_PROTOSERVER": "Protocol Buffers Server", "general_comp_PROTOSERVER": "Protocol Buffers Server",
"general_comp_SMOOTHING": "Glättung", "general_comp_SMOOTHING": "Glättung",
"general_comp_V4L": "USB-Aufnahme", "general_comp_V4L": "USB-Aufnahme",
"general_country_cn": "China",
"general_country_de": "Deutschland", "general_country_de": "Deutschland",
"general_country_es": "Spanien", "general_country_es": "Spanien",
"general_country_fr": "Frankreich", "general_country_fr": "Frankreich",
"general_country_it": "Italien", "general_country_it": "Italien",
"general_country_nl": "Niederlande", "general_country_nl": "Niederlande",
"general_country_ru": "Russland",
"general_country_uk": "England", "general_country_uk": "England",
"general_country_us": "Amerika", "general_country_us": "Amerika",
"general_speech_cs": "Tschechisch", "general_speech_cs": "Tschechisch",
@ -727,9 +738,11 @@
"general_speech_nl": "Niederländisch", "general_speech_nl": "Niederländisch",
"general_speech_pl": "Polnisch", "general_speech_pl": "Polnisch",
"general_speech_ro": "Rumänisch", "general_speech_ro": "Rumänisch",
"general_speech_ru": "Russisch",
"general_speech_sv": "Schwedisch", "general_speech_sv": "Schwedisch",
"general_speech_tr": "Türkisch", "general_speech_tr": "Türkisch",
"general_speech_vi": "Vietnamesisch", "general_speech_vi": "Vietnamesisch",
"general_speech_zh-CN": "Chinesisch (vereinfacht)",
"general_webui_title": "Hyperion - Web Konfiguration", "general_webui_title": "Hyperion - Web Konfiguration",
"general_wiki_moreto": "Mehr Informationen zu \"$1\" findest du in unserem Wiki", "general_wiki_moreto": "Mehr Informationen zu \"$1\" findest du in unserem Wiki",
"infoDialog_checklist_title": "Checkliste!", "infoDialog_checklist_title": "Checkliste!",
@ -847,7 +860,6 @@
"update_versreminder": "Deine Version: $1", "update_versreminder": "Deine Version: $1",
"wiz_atmoorb_desc2": "Nun kannst du auswählen, welche der Orbs hinzugefügt werden sollen. Mit der Position wählst du aus, wo die jeweilige Lampe \"im Bild\" sitzen soll. Deaktivierte Lampen werden nicht hinzugefügt. Als Hilfe zur Identifizierung kannst du sie mit einem Klick auf den rechten Button kurz aufleuchten lassen.", "wiz_atmoorb_desc2": "Nun kannst du auswählen, welche der Orbs hinzugefügt werden sollen. Mit der Position wählst du aus, wo die jeweilige Lampe \"im Bild\" sitzen soll. Deaktivierte Lampen werden nicht hinzugefügt. Als Hilfe zur Identifizierung kannst du sie mit einem Klick auf den rechten Button kurz aufleuchten lassen.",
"wiz_atmoorb_intro1": "Dieser Assistent hilft dir bei der Konfiguration von Hyperion für AtmoOrb. Zu den Funktionen zählen ein automatisches Finden der AtmoOrbs, die einzelnen Lampen unterschiedlichen Bereichen im Bild zuzuordnen und weitere Einstellungen von Hyperion automatisch anzupassen. Kurz gesagt: Komplette Einrichtung mit ein paar Klicks.", "wiz_atmoorb_intro1": "Dieser Assistent hilft dir bei der Konfiguration von Hyperion für AtmoOrb. Zu den Funktionen zählen ein automatisches Finden der AtmoOrbs, die einzelnen Lampen unterschiedlichen Bereichen im Bild zuzuordnen und weitere Einstellungen von Hyperion automatisch anzupassen. Kurz gesagt: Komplette Einrichtung mit ein paar Klicks.",
"wiz_atmoorb_noLights": "Es wurden keine AtmoOrbs gefunden! Bitte verbinde die AtmoOrbs mit dem Netzwerk oder konfiguriere sie manuell.",
"wiz_atmoorb_title": "AtmoOrb Einrichtungsassistent", "wiz_atmoorb_title": "AtmoOrb Einrichtungsassistent",
"wiz_cc_adjustgamma": "Gamma: Was du jetzt tun musst ist, jeden Gamma-Kanal so einstellen, dass der \"Grauverlauf\" auf den LEDs nicht grünlich/rötlich/bläulich aussieht. Neutral ist übrigens 1.0. Beispiel: Sollte dein grau etwas rötlich sein bedeutet dies, dass du dein Gamma für Rot erhöhen musst, um den Rot-Anteil zu verringern (Je mehr Gamma, desto weniger Farbe).", "wiz_cc_adjustgamma": "Gamma: Was du jetzt tun musst ist, jeden Gamma-Kanal so einstellen, dass der \"Grauverlauf\" auf den LEDs nicht grünlich/rötlich/bläulich aussieht. Neutral ist übrigens 1.0. Beispiel: Sollte dein grau etwas rötlich sein bedeutet dies, dass du dein Gamma für Rot erhöhen musst, um den Rot-Anteil zu verringern (Je mehr Gamma, desto weniger Farbe).",
"wiz_cc_adjustit": "Verändere dein \"$1\", bis du zufrieden bist. Beachte: Je mehr du reduzierst bzw. von dem Standardwert abweichst, je mehr veränderst du den maximalen Farbraum. Das betrifft alle Farben, die daraus abgeleitet werden. Je nach TV/LED Farbspektrum sind die Ergebnisse unterschiedlich.", "wiz_cc_adjustit": "Verändere dein \"$1\", bis du zufrieden bist. Beachte: Je mehr du reduzierst bzw. von dem Standardwert abweichst, je mehr veränderst du den maximalen Farbraum. Das betrifft alle Farben, die daraus abgeleitet werden. Je nach TV/LED Farbspektrum sind die Ergebnisse unterschiedlich.",
@ -871,6 +883,10 @@
"wiz_cc_testintrok": "Klicke auf einen Button, um eines der Testvideos abzuspielen.", "wiz_cc_testintrok": "Klicke auf einen Button, um eines der Testvideos abzuspielen.",
"wiz_cc_testintrowok": "Unter folgendem Link findest du ein paar Testvideos zum Herunterladen und Abspielen:", "wiz_cc_testintrowok": "Unter folgendem Link findest du ein paar Testvideos zum Herunterladen und Abspielen:",
"wiz_cc_title": "Farbkalibrierungs Assistent", "wiz_cc_title": "Farbkalibrierungs Assistent",
"wiz_cololight_desc2": "Nun kannst du auswählen, welche der Lampen hinzugefügt werden sollen. Als Hilfe zur Identifizierung kannst du sie mit einem Klick auf den rechten Button kurz aufleuchten lassen.",
"wiz_cololight_intro1": "Dieser Assistent hilft dir bei der Konfiguration von Hyperion für Cololight. Zu den Funktionen zählen ein automatisches Finden der Cololights und weitere Einstellungen von Hyperion automatisch anzupassen. Kurz gesagt: Komplette Einrichtung mit ein paar Klicks.<br />Achtung: Wenn Du ein Cololight Strip benutzt, musst Du ggf. die Anzahl der LEDs und das Layout manuell anpassen.",
"wiz_cololight_noprops": "Auf die Device Eigenschaften kann nicht zugegriffen werden - Konfiguriere die Anzahl der LEDs manuell.",
"wiz_cololight_title": "Cololight Einrichtungsassistent",
"wiz_guideyou": "Der $1 wird dich durch die Konfiguration leiten, drücke dazu einfach den Button!", "wiz_guideyou": "Der $1 wird dich durch die Konfiguration leiten, drücke dazu einfach den Button!",
"wiz_hue_blinkblue": "Lasse ID $1 blau aufleuchten", "wiz_hue_blinkblue": "Lasse ID $1 blau aufleuchten",
"wiz_hue_clientkey": "Clientkey:", "wiz_hue_clientkey": "Clientkey:",
@ -904,6 +920,7 @@
"wiz_identify_light": "Identifiziere $1", "wiz_identify_light": "Identifiziere $1",
"wiz_ids_disabled": "Deaktiviert", "wiz_ids_disabled": "Deaktiviert",
"wiz_ids_entire": "Ganzes Bild", "wiz_ids_entire": "Ganzes Bild",
"wiz_noLights": "Es wurden keine $1s gefunden! Bitte verbinde die $1s mit dem Netzwerk oder konfiguriere sie manuell.",
"wiz_pos": "Position/Status", "wiz_pos": "Position/Status",
"wiz_rgb_expl": "Der Farbpunkt ändert alle x Sekunden die Farbe (rot, grün), zur selben Zeit ändern deine LEDs die Farbe ebenfalls. Beantworte die Fragen unten, um deine RGB Byte Reihenfolge zu überprüfen/korrigieren.", "wiz_rgb_expl": "Der Farbpunkt ändert alle x Sekunden die Farbe (rot, grün), zur selben Zeit ändern deine LEDs die Farbe ebenfalls. Beantworte die Fragen unten, um deine RGB Byte Reihenfolge zu überprüfen/korrigieren.",
"wiz_rgb_intro1": "Dieser Assistent wird dir dabei helfen die richtige Byte Reihenfolge für deine LEDs zu finden. Klicke auf Fortfahren, um zu beginnen.", "wiz_rgb_intro1": "Dieser Assistent wird dir dabei helfen die richtige Byte Reihenfolge für deine LEDs zu finden. Klicke auf Fortfahren, um zu beginnen.",
@ -916,7 +933,6 @@
"wiz_wizavail": "Assistent verfügbar", "wiz_wizavail": "Assistent verfügbar",
"wiz_yeelight_desc2": "Nun kannst du auswählen, welche der Lampen hinzugefügt werden sollen. Mit der Position wählst du aus, wo die jeweilige Lampe \"im Bild\" sitzen soll. Deaktivierte Lampen werden nicht hinzugefügt. Als Hilfe zur Identifizierung kannst du sie mit einem Klick auf den rechten Button kurz aufleuchten lassen.", "wiz_yeelight_desc2": "Nun kannst du auswählen, welche der Lampen hinzugefügt werden sollen. Mit der Position wählst du aus, wo die jeweilige Lampe \"im Bild\" sitzen soll. Deaktivierte Lampen werden nicht hinzugefügt. Als Hilfe zur Identifizierung kannst du sie mit einem Klick auf den rechten Button kurz aufleuchten lassen.",
"wiz_yeelight_intro1": "Dieser Assistent hilft dir bei der Konfiguration von Hyperion für Yeelight. Zu den Funktionen zählen ein automatisches Finden der Yeelights, die einzelnen Lampen unterschiedlichen Bereichen im Bild zuzuordnen und weitere Einstellungen von Hyperion automatisch anzupassen. Kurz gesagt: Komplette Einrichtung mit ein paar Klicks.", "wiz_yeelight_intro1": "Dieser Assistent hilft dir bei der Konfiguration von Hyperion für Yeelight. Zu den Funktionen zählen ein automatisches Finden der Yeelights, die einzelnen Lampen unterschiedlichen Bereichen im Bild zuzuordnen und weitere Einstellungen von Hyperion automatisch anzupassen. Kurz gesagt: Komplette Einrichtung mit ein paar Klicks.",
"wiz_yeelight_noLights": "Es wurden keine Yeelights gefunden! Bitte verbinde die Yeelights mit dem Netzwerk oder konfiguriere sie manuell.",
"wiz_yeelight_title": "Yeelight Einrichtungsassistent", "wiz_yeelight_title": "Yeelight Einrichtungsassistent",
"wiz_yeelight_unsupported": "Nicht unterstützt" "wiz_yeelight_unsupported": "Nicht unterstützt"
} }

View File

@ -261,12 +261,14 @@
"edt_conf_enum_automatic": "Automatic", "edt_conf_enum_automatic": "Automatic",
"edt_conf_enum_bbclassic": "Classic", "edt_conf_enum_bbclassic": "Classic",
"edt_conf_enum_bbdefault": "Default", "edt_conf_enum_bbdefault": "Default",
"edt_conf_enum_bbletterbox": "Letterbox",
"edt_conf_enum_bbosd": "OSD", "edt_conf_enum_bbosd": "OSD",
"edt_conf_enum_bgr": "BGR", "edt_conf_enum_bgr": "BGR",
"edt_conf_enum_bottom_up": "Bottom up", "edt_conf_enum_bottom_up": "Bottom up",
"edt_conf_enum_brg": "BRG", "edt_conf_enum_brg": "BRG",
"edt_conf_enum_color": "Color", "edt_conf_enum_color": "Color",
"edt_conf_enum_custom": "Custom", "edt_conf_enum_custom": "Custom",
"edt_conf_enum_decay": "Decay",
"edt_conf_enum_dl_error": "Error", "edt_conf_enum_dl_error": "Error",
"edt_conf_enum_dl_informational": "Informational", "edt_conf_enum_dl_informational": "Informational",
"edt_conf_enum_dl_nodebug": "No Debug output", "edt_conf_enum_dl_nodebug": "No Debug output",
@ -296,7 +298,6 @@
"edt_conf_fbs_heading_title": "Flatbuffers Server", "edt_conf_fbs_heading_title": "Flatbuffers Server",
"edt_conf_fbs_timeout_expl": "If no data are received for the given period, the component will be (soft) disabled.", "edt_conf_fbs_timeout_expl": "If no data are received for the given period, the component will be (soft) disabled.",
"edt_conf_fbs_timeout_title": "Timeout", "edt_conf_fbs_timeout_title": "Timeout",
"edt_conf_fg_device_title": "Device",
"edt_conf_fg_display_expl": "Select which desktop should be captured (multi monitor setup)", "edt_conf_fg_display_expl": "Select which desktop should be captured (multi monitor setup)",
"edt_conf_fg_display_title": "Display", "edt_conf_fg_display_title": "Display",
"edt_conf_fg_frequency_Hz_expl": "How fast new pictures are captured", "edt_conf_fg_frequency_Hz_expl": "How fast new pictures are captured",
@ -367,7 +368,15 @@
"edt_conf_pbs_timeout_title": "Timeout", "edt_conf_pbs_timeout_title": "Timeout",
"edt_conf_smooth_continuousOutput_expl": "Update the LEDs even there is no changed picture.", "edt_conf_smooth_continuousOutput_expl": "Update the LEDs even there is no changed picture.",
"edt_conf_smooth_continuousOutput_title": "Continuous output", "edt_conf_smooth_continuousOutput_title": "Continuous output",
"edt_conf_smooth_decay_expl": "The speed of decay. 1 is linear, greater values are have stronger effect.",
"edt_conf_smooth_decay_title": "Decay-Power",
"edt_conf_smooth_dithering_expl": "Improve color accuracy at high output speeds by alternating between adjacent colors.",
"edt_conf_smooth_dithering_title": "Dithering",
"edt_conf_smooth_heading_title": "Smoothing", "edt_conf_smooth_heading_title": "Smoothing",
"edt_conf_smooth_interpolationRate_expl": "Speed of the calculation of smooth intermediate frames.",
"edt_conf_smooth_interpolationRate_title": "Interpolation Rate",
"edt_conf_smooth_outputRate_expl": "The output speed to your led controller.",
"edt_conf_smooth_outputRate_title": "Output Rate",
"edt_conf_smooth_time_ms_expl": "How long should the smoothing gather pictures?", "edt_conf_smooth_time_ms_expl": "How long should the smoothing gather pictures?",
"edt_conf_smooth_time_ms_title": "Time", "edt_conf_smooth_time_ms_title": "Time",
"edt_conf_smooth_type_expl": "Type of smoothing.", "edt_conf_smooth_type_expl": "Type of smoothing.",
@ -457,6 +466,8 @@
"edt_dev_spec_dithering_title": "Dithering", "edt_dev_spec_dithering_title": "Dithering",
"edt_dev_spec_dmaNumber_title": "DMA channel", "edt_dev_spec_dmaNumber_title": "DMA channel",
"edt_dev_spec_gamma_title": "Gamma", "edt_dev_spec_gamma_title": "Gamma",
"edt_dev_spec_globalBrightnessControlMaxLevel_title": "Max Current Level",
"edt_dev_spec_globalBrightnessControlThreshold_title": "Adaptive Current Threshold",
"edt_dev_spec_gpioBcm_title": "GPIO Pin", "edt_dev_spec_gpioBcm_title": "GPIO Pin",
"edt_dev_spec_gpioMap_title": "GPIO mapping", "edt_dev_spec_gpioMap_title": "GPIO mapping",
"edt_dev_spec_gpioNumber_title": "GPIO number", "edt_dev_spec_gpioNumber_title": "GPIO number",
@ -466,8 +477,6 @@
"edt_dev_spec_intervall_title": "Interval", "edt_dev_spec_intervall_title": "Interval",
"edt_dev_spec_invert_title": "Invert signal", "edt_dev_spec_invert_title": "Invert signal",
"edt_dev_spec_latchtime_title": "Latch time", "edt_dev_spec_latchtime_title": "Latch time",
"edt_dev_spec_globalBrightnessControlMaxLevel_title": "Max Current Level",
"edt_dev_spec_globalBrightnessControlThreshold_title": "Adaptive Current Threshold",
"edt_dev_spec_ledIndex_title": "LED index", "edt_dev_spec_ledIndex_title": "LED index",
"edt_dev_spec_ledType_title": "LED Type", "edt_dev_spec_ledType_title": "LED Type",
"edt_dev_spec_lightid_itemtitle": "ID", "edt_dev_spec_lightid_itemtitle": "ID",
@ -735,9 +744,6 @@
"general_speech_tr": "Turkish", "general_speech_tr": "Turkish",
"general_speech_vi": "Vietnamese", "general_speech_vi": "Vietnamese",
"general_speech_zh-CN": "Chinese (simplified)", "general_speech_zh-CN": "Chinese (simplified)",
"general_speech_sv": "Swedish",
"general_speech_tr": "Turkish",
"general_speech_vi": "Vietnamese",
"general_webui_title": "Hyperion - Web Configuration", "general_webui_title": "Hyperion - Web Configuration",
"general_wiki_moreto": "More information to \"$1\" at our Wiki", "general_wiki_moreto": "More information to \"$1\" at our Wiki",
"infoDialog_checklist_title": "Checklist!", "infoDialog_checklist_title": "Checklist!",
@ -855,7 +861,6 @@
"update_versreminder": "Your version: $1", "update_versreminder": "Your version: $1",
"wiz_atmoorb_desc2": "Now choose which Orbs should be added. The position assigns the lamp to a specific position on your \"picture\". Disabled lamps won't be added. To identify single lamps press the button on the right.", "wiz_atmoorb_desc2": "Now choose which Orbs should be added. The position assigns the lamp to a specific position on your \"picture\". Disabled lamps won't be added. To identify single lamps press the button on the right.",
"wiz_atmoorb_intro1": "This wizards configures Hyperion for AtmoOrbs. Features are the AtmoOrb auto detection, setting each light to a specific position on your picture or disable it and optimise the Hyperion settings automatically! So in short: All you need are some clicks and you are done!", "wiz_atmoorb_intro1": "This wizards configures Hyperion for AtmoOrbs. Features are the AtmoOrb auto detection, setting each light to a specific position on your picture or disable it and optimise the Hyperion settings automatically! So in short: All you need are some clicks and you are done!",
"wiz_atmoorb_noLights": "No AtmoOrbs found! Please get the lights connected to the network or configure them manually.",
"wiz_atmoorb_title": "AtmoOrb Wizard", "wiz_atmoorb_title": "AtmoOrb Wizard",
"wiz_cc_adjustgamma": "Gamma: What you have to do is, adjust gamma levels of each channel until you have the same perceived amount of each channel. Hint: Neutral is 1.0! For example, if your Grey is a bit reddish it means that you have to increase red gamma to reduce the amount of red (the more gamma, the less amount of color).", "wiz_cc_adjustgamma": "Gamma: What you have to do is, adjust gamma levels of each channel until you have the same perceived amount of each channel. Hint: Neutral is 1.0! For example, if your Grey is a bit reddish it means that you have to increase red gamma to reduce the amount of red (the more gamma, the less amount of color).",
"wiz_cc_adjustit": "Adjust your \"$1\", until your are fine with it. Take notice: The more you adjust away from the default value the color spectrum will be limited (Also for all colors in between). Depending on TV/LED color spectrum the results will vary.", "wiz_cc_adjustit": "Adjust your \"$1\", until your are fine with it. Take notice: The more you adjust away from the default value the color spectrum will be limited (Also for all colors in between). Depending on TV/LED color spectrum the results will vary.",
@ -879,6 +884,10 @@
"wiz_cc_testintrok": "Push on a button below to start a test video.", "wiz_cc_testintrok": "Push on a button below to start a test video.",
"wiz_cc_testintrowok": "Check out the following link to download test videos:", "wiz_cc_testintrowok": "Check out the following link to download test videos:",
"wiz_cc_title": "Colour calibration wizard", "wiz_cc_title": "Colour calibration wizard",
"wiz_cololight_desc2": "Now choose which Cololights should be added. To identify single lights, press the button on the right.",
"wiz_cololight_intro1": "This wizards configures Hyperion for the Cololight system. Features are the Cololight auto detection and tune the Hyperion settings automatically! In short: All you need are some clicks and you are done!<br />Note: In case of Cololight Strip, you might need to manually correct the LED count and layout.",
"wiz_cololight_noprops": "Not able to get device properties - Define Hardware LED count manually",
"wiz_cololight_title": "Cololight Wizard",
"wiz_guideyou": "The $1 will guide you through the settings. Just press the button!", "wiz_guideyou": "The $1 will guide you through the settings. Just press the button!",
"wiz_hue_blinkblue": "Let ID $1 light up blue", "wiz_hue_blinkblue": "Let ID $1 light up blue",
"wiz_hue_clientkey": "Clientkey:", "wiz_hue_clientkey": "Clientkey:",
@ -912,6 +921,7 @@
"wiz_identify_light": "Identify $1", "wiz_identify_light": "Identify $1",
"wiz_ids_disabled": "Deactivated", "wiz_ids_disabled": "Deactivated",
"wiz_ids_entire": "Whole picture", "wiz_ids_entire": "Whole picture",
"wiz_noLights": "No $1 found! Please get the lights connected to the network or configure them manually.",
"wiz_pos": "Position/State", "wiz_pos": "Position/State",
"wiz_rgb_expl": "The color dot switches every x seconds the color (red, green), at the same time your LEDs switch the color too. Answer the questions at the bottom to check/correct your byte order.", "wiz_rgb_expl": "The color dot switches every x seconds the color (red, green), at the same time your LEDs switch the color too. Answer the questions at the bottom to check/correct your byte order.",
"wiz_rgb_intro1": "This wizard will guide you through the finding process of the correct color order for your leds. Click on continue to begin.", "wiz_rgb_intro1": "This wizard will guide you through the finding process of the correct color order for your leds. Click on continue to begin.",
@ -924,7 +934,6 @@
"wiz_wizavail": "Wizard available", "wiz_wizavail": "Wizard available",
"wiz_yeelight_desc2": "Now choose which lamps should be added. The position assigns the lamp to a specific position on your \"picture\". Disabled lamps won't be added. To identify single lamps press the button on the right.", "wiz_yeelight_desc2": "Now choose which lamps should be added. The position assigns the lamp to a specific position on your \"picture\". Disabled lamps won't be added. To identify single lamps press the button on the right.",
"wiz_yeelight_intro1": "This wizards configures Hyperion for the Yeelight system. Features are the Yeelighs' auto detection, setting each light to a specific position on your picture or disable it and tune the Hyperion settings automatically! So in short: All you need are some clicks and you are done!", "wiz_yeelight_intro1": "This wizards configures Hyperion for the Yeelight system. Features are the Yeelighs' auto detection, setting each light to a specific position on your picture or disable it and tune the Hyperion settings automatically! So in short: All you need are some clicks and you are done!",
"wiz_yeelight_noLights": "No Yeelights found! Please get the lights connected to the network or configure them manually.",
"wiz_yeelight_title": "Yeelight Wizard", "wiz_yeelight_title": "Yeelight Wizard",
"wiz_yeelight_unsupported": "Unsupported" "wiz_yeelight_unsupported": "Unsupported"
} }

View File

@ -13,18 +13,18 @@
"about_3rd_party_licenses": "Licencias de terceros", "about_3rd_party_licenses": "Licencias de terceros",
"about_3rd_party_licenses_error": "Tuvimos problemas para recopilar información de licencias de terceros a través de la Web. <br />Por favor, sigue este enlace para acceder al Recurso GitHub.", "about_3rd_party_licenses_error": "Tuvimos problemas para recopilar información de licencias de terceros a través de la Web. <br />Por favor, sigue este enlace para acceder al Recurso GitHub.",
"about_build": "Build", "about_build": "Build",
"about_builddate": "la fecha de creación", "about_builddate": "Fecha de creación",
"about_contribute": "¡Añade más idiomas a Hyperion!", "about_contribute": "¡Añade más idiomas a Hyperion!",
"about_credits": "¡Créditos a todos estos desarrolladores!", "about_credits": "¡Créditos a todos estos desarrolladores!",
"about_resources": "$1 librerías", "about_resources": "$1 librerías",
"about_translations": "Traducciones", "about_translations": "Traducciones",
"about_version": "Versión", "about_version": "Versión",
"conf_colors_blackborder_intro": "Omite bordes negros dondequiera que estén. Cada modo usa otro algoritmo de detección que está ajustado para situaciones especiales. Sube el umbral si no percibes funcionamiento.", "conf_colors_blackborder_intro": "Omite bordes negros dondequiera que estén. Cada modo usa otro algoritmo de detección que está ajustado para situaciones especiales. Sube el umbral si no percibes funcionamiento.",
"conf_colors_color_intro": "Cree uno o más perfiles de calibración, ajuste cada color, brillo, linealización y más.", "conf_colors_color_intro": "Crea uno o más perfiles de calibración, ajusta cada color, brillo, linealización y más.",
"conf_colors_smoothing_intro": "El suavizado aplana los cambios de color/brillo para reducir la distracción molesta.", "conf_colors_smoothing_intro": "El suavizado aplana los cambios de color/brillo para reducir la distracción molesta.",
"conf_effect_bgeff_intro": "Definir un efecto de fondo, que se muestra durante \"inactivo\". (También temporalmente a través de Observador Kodi)", "conf_effect_bgeff_intro": "Definir un efecto/color de fondo, que se muestra durante Hyperion \"inactivo\". Comienza siempre con el canal prioritario 255.",
"conf_effect_fgeff_intro": "Define un efecto de arranque o color, que se muestra durante el inicio de Hyperion durante una duración definida.", "conf_effect_fgeff_intro": "Define un efecto de arranque o color, que se muestra durante el inicio de Hyperion durante la duración definida.",
"conf_effect_path_intro": "Define más rutas de efectos si es necesario.", "conf_effect_path_intro": "Cargar los efectos de las rutas definidas. Además, puedes desactivar los efectos individuales por nombre para ocultarlos de todas las listas de efectos.",
"conf_general_createInst_btn": "Crear Instalaciñón", "conf_general_createInst_btn": "Crear Instalaciñón",
"conf_general_impexp_expbtn": "Exportar", "conf_general_impexp_expbtn": "Exportar",
"conf_general_impexp_impbtn": "Importar", "conf_general_impexp_impbtn": "Importar",
@ -34,15 +34,15 @@
"conf_general_inst_actionhead": "Acción", "conf_general_inst_actionhead": "Acción",
"conf_general_inst_delreq_h": "Eliminar la instalación de hardware LED", "conf_general_inst_delreq_h": "Eliminar la instalación de hardware LED",
"conf_general_inst_delreq_t": "¿Está seguro de que desea borrar la instalación \"$1\"? También se borrarán todos los ajustes.", "conf_general_inst_delreq_t": "¿Está seguro de que desea borrar la instalación \"$1\"? También se borrarán todos los ajustes.",
"conf_general_inst_desc": "Utilice hardware LED diferente al mismo tiempo. Cada instalación se ejecuta de forma independiente, lo que permite diferentes diseños de LEDs y configuraciones de calibración. Las instalaciones en ejecución están disponibles en la barra de iconos superior", "conf_general_inst_desc": "Utiliza hardware LED diferente al mismo tiempo. Cada instalación se ejecuta de forma independiente, lo que permite diferentes diseños de LEDs y configuraciones de calibración. Las instalaciones en ejecución están disponibles en la barra de iconos superior",
"conf_general_inst_name_title": "Nombre de la nueva instalación", "conf_general_inst_name_title": "Nombre de la nueva instalación",
"conf_general_inst_namehead": "Nombre de la instalación", "conf_general_inst_namehead": "Nombre de la instalación",
"conf_general_inst_renreq_t": "Introduce un nuevo nombre para tu instalación en el campo de abajo.", "conf_general_inst_renreq_t": "Introduce un nuevo nombre para tu instalación en el campo de abajo.",
"conf_general_inst_title": "Gestión de instalaciones de hardware LED", "conf_general_inst_title": "Gestión de instalaciones de hardware LED",
"conf_general_intro": "Ajustes básicos de Hyperion y WebUI que no encajan en otra categoría.", "conf_general_intro": "Ajustes básicos de Hyperion y WebUI que no encajan en otra categoría.",
"conf_general_label_title": "Configuración General", "conf_general_label_title": "Configuración General",
"conf_grabber_fg_intro": "La captura de la plataforma es la captura del sistema local como fuente de entrada, en la que Hyperion está instalado.", "conf_grabber_fg_intro": "La plataforma de captura es la captura del sistema local como fuente de entrada, en la que Hyperion está instalado.",
"conf_grabber_v4l_intro": "La captura USB es un dispositivo (de captura) conectado a través de USB que se utiliza para introducir imágenes de origen para su procesamiento.", "conf_grabber_v4l_intro": "La captura USB es un dispositivo (de captura) conectado a través de USB que se utiliza para introducir imágenes de origen para su procesado.",
"conf_helptable_expl": "Explicación", "conf_helptable_expl": "Explicación",
"conf_helptable_option": "Opción", "conf_helptable_option": "Opción",
"conf_leds_contr_label_contrtype": "Tipo de controladora:", "conf_leds_contr_label_contrtype": "Tipo de controladora:",
@ -54,7 +54,7 @@
"conf_leds_layout_checkp1": "El led negro es tu primer led, el primer led es el punto donde introduces tu señal de datos.", "conf_leds_layout_checkp1": "El led negro es tu primer led, el primer led es el punto donde introduces tu señal de datos.",
"conf_leds_layout_checkp2": "La disposición es siempre la vista delantera de tu TV, nunca la visión posterior.", "conf_leds_layout_checkp2": "La disposición es siempre la vista delantera de tu TV, nunca la visión posterior.",
"conf_leds_layout_checkp3": "Asegúrate de que la dirección es correcta. Los leds grises indican los led número 2 y 3 para visualizar la dirección de los datos.", "conf_leds_layout_checkp3": "Asegúrate de que la dirección es correcta. Los leds grises indican los led número 2 y 3 para visualizar la dirección de los datos.",
"conf_leds_layout_checkp4": "Hueco: Para crear un hueco, ignóralo primero cuando defina Superior/Inferior/Izquierda/Derecha y ajusta después la longitud del hueco para eliminar una cantidad de leds. Modifica la posición del hueco hasta que coincida.", "conf_leds_layout_checkp4": "Hueco: Para crear un hueco, ignóralo primero cuando definas Superior/Inferior/Izquierda/Derecha y ajusta después la longitud del hueco para eliminar una cantidad de leds. Modifica la posición del hueco hasta que coincida.",
"conf_leds_layout_cl_bottom": "Inferior", "conf_leds_layout_cl_bottom": "Inferior",
"conf_leds_layout_cl_bottomleft": "Inferior Izquierda (Esquina)", "conf_leds_layout_cl_bottomleft": "Inferior Izquierda (Esquina)",
"conf_leds_layout_cl_bottomright": "Inferior Derecha (Esquina)", "conf_leds_layout_cl_bottomright": "Inferior Derecha (Esquina)",
@ -80,7 +80,7 @@
"conf_leds_layout_cl_vleddepth": "Profundidad LED vertical", "conf_leds_layout_cl_vleddepth": "Profundidad LED vertical",
"conf_leds_layout_frame": "Disposición Clásica (Marco LED)", "conf_leds_layout_frame": "Disposición Clásica (Marco LED)",
"conf_leds_layout_generatedconf": "Configuración LED Generada/Actual", "conf_leds_layout_generatedconf": "Configuración LED Generada/Actual",
"conf_leds_layout_intro": "Necesitas también un diseño led, que refleje tus posiciones led. La disposición clásica es el marco generalmente usado de la TV, pero también apoyamos la creación de matriz led (paredes led). La vista en esta disposición es SIEMPRE del FRENTE de su TV.", "conf_leds_layout_intro": "Necesitas también un diseño led, que refleje tus posiciones led. La disposición clásica es el marco generalmente usado de la TV, pero también apoyamos la creación de matriz led (paredes led). La vista en esta disposición es SIEMPRE del FRENTE de tu TV.",
"conf_leds_layout_ma_cabling": "Cableado", "conf_leds_layout_ma_cabling": "Cableado",
"conf_leds_layout_ma_horiz": "Horizontal", "conf_leds_layout_ma_horiz": "Horizontal",
"conf_leds_layout_ma_optbottomleft": "Inferior Izquierda", "conf_leds_layout_ma_optbottomleft": "Inferior Izquierda",
@ -104,13 +104,13 @@
"conf_leds_layout_preview_originCL": "Creado a partir de: Disposición Clásica (Marco LED)", "conf_leds_layout_preview_originCL": "Creado a partir de: Disposición Clásica (Marco LED)",
"conf_leds_layout_preview_originMA": "Creado a partir de: Disposición en Matriz (Pared LED)", "conf_leds_layout_preview_originMA": "Creado a partir de: Disposición en Matriz (Pared LED)",
"conf_leds_layout_preview_originTEXT": "Creado a partir de: Cuadro de texto", "conf_leds_layout_preview_originTEXT": "Creado a partir de: Cuadro de texto",
"conf_leds_layout_preview_totalleds": "Total de LEDs:$1", "conf_leds_layout_preview_totalleds": "Total de LEDs: $1",
"conf_leds_layout_ptl": "Apunta arriba a la izquierda", "conf_leds_layout_ptl": "Apunta arriba a la izquierda",
"conf_leds_layout_ptlh": "Horizontal", "conf_leds_layout_ptlh": "Horizontal",
"conf_leds_layout_ptln": "Trapezpuntos", "conf_leds_layout_ptln": "Triplepuntos",
"conf_leds_layout_ptlv": "Vertical", "conf_leds_layout_ptlv": "Vertical",
"conf_leds_layout_ptr": "Apunta arriba a la derecha", "conf_leds_layout_ptr": "Apunta arriba a la derecha",
"conf_leds_layout_textf1": "Este campo de texto muestra de forma predeterminada el diseño cargado actual y se sobrescribirá si genera uno nuevo con las opciones siguientes. Opcional, puede realizar más ediciones.", "conf_leds_layout_textf1": "Este campo de texto muestra de forma predeterminada el diseño cargado actual y se sobrescribirá si generas uno nuevo con las opciones siguientes. Opcional, puedes realizar más ediciones.",
"conf_leds_nav_label_ledcontroller": "Controlador LED", "conf_leds_nav_label_ledcontroller": "Controlador LED",
"conf_leds_nav_label_ledlayout": "Disposición LED", "conf_leds_nav_label_ledlayout": "Disposición LED",
"conf_leds_optgroup_RPiGPIO": "GPIO RPi", "conf_leds_optgroup_RPiGPIO": "GPIO RPi",
@ -118,7 +118,7 @@
"conf_leds_optgroup_RPiSPI": "SPI RPi", "conf_leds_optgroup_RPiSPI": "SPI RPi",
"conf_leds_optgroup_debug": "Depurar", "conf_leds_optgroup_debug": "Depurar",
"conf_leds_optgroup_network": "Red", "conf_leds_optgroup_network": "Red",
"conf_leds_optgroup_usb": "USB", "conf_leds_optgroup_usb": "USB/Serial",
"conf_logging_btn_autoscroll": "Desplazamiento automático", "conf_logging_btn_autoscroll": "Desplazamiento automático",
"conf_logging_btn_pbupload": "Crear informe para solicitud de soporte", "conf_logging_btn_pbupload": "Crear informe para solicitud de soporte",
"conf_logging_contpolicy": "Informe de la Política de Privacidad", "conf_logging_contpolicy": "Informe de la Política de Privacidad",
@ -143,11 +143,11 @@
"conf_network_tok_diaMsg": "Aquí está tu nuevo Token que puede ser utilizado para conceder a una aplicación acceso a la API de Hyperion. Por razones de seguridad no puedes volver a verla, así que úsala/anótala ahora.", "conf_network_tok_diaMsg": "Aquí está tu nuevo Token que puede ser utilizado para conceder a una aplicación acceso a la API de Hyperion. Por razones de seguridad no puedes volver a verla, así que úsala/anótala ahora.",
"conf_network_tok_diaTitle": "¡Nuevo Token creado!", "conf_network_tok_diaTitle": "¡Nuevo Token creado!",
"conf_network_tok_grantMsg": "Una aplicación solicitó un token para acceder a la API de Hyperion. ¿Quiere conceder el acceso? Por favor, ¡verifique la información proporcionada!", "conf_network_tok_grantMsg": "Una aplicación solicitó un token para acceder a la API de Hyperion. ¿Quiere conceder el acceso? Por favor, ¡verifique la información proporcionada!",
"conf_network_tok_grantT": "Aplicación solicita Token", "conf_network_tok_grantT": "Solicitudes de aplicación Token",
"conf_network_tok_intro": "Aquí puedes crear y eliminar Tokens para la autenticación de la API. Los Tokens creados sólo se mostrarán una vez.", "conf_network_tok_intro": "Aquí puedes crear y eliminar Tokens para la autenticación de la API. Los Tokens creados sólo se mostrarán una vez.",
"conf_network_tok_lastuse": "Último uso", "conf_network_tok_lastuse": "Último uso",
"conf_network_tok_title": "Gestión de Tokens", "conf_network_tok_title": "Gestión de Tokens",
"conf_webconfig_label_intro": "Ajustes de configuración web. Editar con sabiduría.", "conf_webconfig_label_intro": "Ajustes de configuración web. Editar sabiamente.",
"dashboard_active_instance": "Instalación seleccionada", "dashboard_active_instance": "Instalación seleccionada",
"dashboard_alert_message_confedit": "Se ha modificado la configuración de Hyperion. Para aplicarlo, reinicia Hyperion.", "dashboard_alert_message_confedit": "Se ha modificado la configuración de Hyperion. Para aplicarlo, reinicia Hyperion.",
"dashboard_alert_message_confedit_t": "Configuración modificada", "dashboard_alert_message_confedit_t": "Configuración modificada",
@ -171,7 +171,7 @@
"dashboard_infobox_label_watchedversionbranch": "Rama de la versión visualizada:", "dashboard_infobox_label_watchedversionbranch": "Rama de la versión visualizada:",
"dashboard_infobox_message_updatesuccess": "Ejecutas la última versión de Hyperion.", "dashboard_infobox_message_updatesuccess": "Ejecutas la última versión de Hyperion.",
"dashboard_infobox_message_updatewarning": "¡Una versión más nueva de Hyperion está disponible! ($1)", "dashboard_infobox_message_updatewarning": "¡Una versión más nueva de Hyperion está disponible! ($1)",
"dashboard_label_intro": "El cuadro de mandos te ofrece una visión general sobre el estado de Hyperion y te mostrará las últimas noticias del Blog de Hyperion.", "dashboard_label_intro": "El cuadro de mandos te ofrece una visión general sobre el estado de Hyperion y te muestra las últimas noticias del Blog de Hyperion.",
"dashboard_message_default_password": "Establecida la contraseña predeterminada para la WebUi. Recomendamos encarecidamente cambiar esto.", "dashboard_message_default_password": "Establecida la contraseña predeterminada para la WebUi. Recomendamos encarecidamente cambiar esto.",
"dashboard_message_default_password_t": "Establecida la contraseña predeterminada de WebUi", "dashboard_message_default_password_t": "Establecida la contraseña predeterminada de WebUi",
"dashboard_message_do_not_show_again": "No mostrar este mensaje de nuevo", "dashboard_message_do_not_show_again": "No mostrar este mensaje de nuevo",
@ -201,34 +201,34 @@
"edt_conf_bb_maxInconsistentCnt_title": "maxInconsistentCn", "edt_conf_bb_maxInconsistentCnt_title": "maxInconsistentCn",
"edt_conf_bb_mode_expl": "Algoritmo para procesamiento. (Ver Wiki)", "edt_conf_bb_mode_expl": "Algoritmo para procesamiento. (Ver Wiki)",
"edt_conf_bb_mode_title": "Modo", "edt_conf_bb_mode_title": "Modo",
"edt_conf_bb_threshold_expl": "Si la detección no funciona, Sube el umbral para ajustar en negro \"grisáceo\"", "edt_conf_bb_threshold_expl": "Si la detección no funciona, sube el umbral para ajustar en negro \"grisáceo\"",
"edt_conf_bb_threshold_title": "Umbral", "edt_conf_bb_threshold_title": "Umbral",
"edt_conf_bb_unknownFrameCnt_expl": "Número de fotogramas sin detección antes de que el borde se establezca en 0.", "edt_conf_bb_unknownFrameCnt_expl": "Número de fotogramas sin detección antes de que el borde se establezca en 0.",
"edt_conf_bb_unknownFrameCnt_title": "unknownFrameCnt", "edt_conf_bb_unknownFrameCnt_title": "unknownFrameCnt",
"edt_conf_bge_heading_title": "Efecto de fondo/Color", "edt_conf_bge_heading_title": "Efecto/color de fondo",
"edt_conf_bobls_heading_title": "Servidor Boblight", "edt_conf_bobls_heading_title": "Servidor Boblight",
"edt_conf_color_backlightColored_expl": "Añada un poco de color a su retroiluminación.", "edt_conf_color_backlightColored_expl": "Añade un poco de color a tu retroiluminación.",
"edt_conf_color_backlightColored_title": "Retroiluminación colorida", "edt_conf_color_backlightColored_title": "Retroiluminación colorida",
"edt_conf_color_backlightThreshold_expl": "La cantidad mínima de brillo (retroiluminación). Desactivado durante los efectos, colores y en estado \"Off\"", "edt_conf_color_backlightThreshold_expl": "La cantidad mínima de brillo (retroiluminación). Desactivado durante los efectos, colores y en estado \"Apagado\"",
"edt_conf_color_backlightThreshold_title": "Umbral de retroiluminación", "edt_conf_color_backlightThreshold_title": "Umbral de retroiluminación",
"edt_conf_color_black_expl": "El valor negro calibrado.", "edt_conf_color_black_expl": "El valor negro calibrado.",
"edt_conf_color_black_title": "negro", "edt_conf_color_black_title": "negro",
"edt_conf_color_blue_expl": "El valor azulcalibrado.", "edt_conf_color_blue_expl": "El valor azulcalibrado.",
"edt_conf_color_blue_title": "azul", "edt_conf_color_blue_title": "azul",
"edt_conf_color_brightnessComp_expl": "Compensa las diferencias de brillo entre RGB, CMY y blanco. 100 significa compensación completa, 0 sin compensación", "edt_conf_color_brightnessComp_expl": "Compensa las diferencias de brillo entre el rojo, verde, azul, amarillo y blanco. 100 significa compensación total, 0 sin compensación",
"edt_conf_color_brightnessComp_title": "Compensación de brillo", "edt_conf_color_brightnessComp_title": "Compensación de brillo",
"edt_conf_color_brightness_expl": "De 0,0 a 0,5 el brillo se lineariza, de 0,5 a 1,0 cian, magenta, amarillo es hasta 2x más brillante y blanco 3x.", "edt_conf_color_brightness_expl": "De 0,0 a 0,5 el brillo se lineariza, de 0,5 a 1,0 cian, magenta, amarillo es hasta 2x más brillante y blanco 3x.",
"edt_conf_color_brightness_title": "Brillo máximo", "edt_conf_color_brightness_title": "Brillo máximo",
"edt_conf_color_channelAdjustment_header_expl": "Ajustes para color, brillo, linealización y más.", "edt_conf_color_channelAdjustment_header_expl": "Crear perfiles de color que puedan ser asignados a un componente específico. Ajustar el color, la gama, el brillo, la compensación y más.",
"edt_conf_color_channelAdjustment_header_itemtitle": "Perfil", "edt_conf_color_channelAdjustment_header_itemtitle": "Perfil",
"edt_conf_color_channelAdjustment_header_title": "Ajustes del canal de color", "edt_conf_color_channelAdjustment_header_title": "Ajustes del canal de color",
"edt_conf_color_cyan_expl": "El valor cian calibrado.", "edt_conf_color_cyan_expl": "El valor cian calibrado.",
"edt_conf_color_cyan_title": "cyan", "edt_conf_color_cyan_title": "cyan",
"edt_conf_color_gammaBlue_expl": "El gamma del azul.", "edt_conf_color_gammaBlue_expl": "La gamma del azul. 1.0 es neutral. Por encima de 1,0 reduce el azul, por debajo de 1,0 añade azul.",
"edt_conf_color_gammaBlue_title": "azul gamma", "edt_conf_color_gammaBlue_title": "azul gamma",
"edt_conf_color_gammaGreen_expl": "El gamma del verde.", "edt_conf_color_gammaGreen_expl": "El gamma de verde. 1.0 es neutral. Por encima de 1.0 reduce el verde, por debajo de 1.0 añade verde.",
"edt_conf_color_gammaGreen_title": "verde gamma", "edt_conf_color_gammaGreen_title": "verde gamma",
"edt_conf_color_gammaRed_expl": "El gamma de rojo.", "edt_conf_color_gammaRed_expl": "La gamma de rojo. 1.0 es neutral. Por encima de 1.0 reduce el rojo, por debajo de 1.0 añade rojo.",
"edt_conf_color_gammaRed_title": "Rojo gamma", "edt_conf_color_gammaRed_title": "Rojo gamma",
"edt_conf_color_green_expl": "El valor verde calibrado.", "edt_conf_color_green_expl": "El valor verde calibrado.",
"edt_conf_color_green_title": "verde", "edt_conf_color_green_title": "verde",
@ -247,31 +247,33 @@
"edt_conf_color_white_title": "blanco", "edt_conf_color_white_title": "blanco",
"edt_conf_color_yellow_expl": "El valor amarillo calibrado.", "edt_conf_color_yellow_expl": "El valor amarillo calibrado.",
"edt_conf_color_yellow_title": "amarillo", "edt_conf_color_yellow_title": "amarillo",
"edt_conf_effp_disable_expl": "Añada nombres de efectos aquí para deshabilitar/ocultarlos de todas las listas de efectos.", "edt_conf_effp_disable_expl": "Añade nombres de efectos aquí para deshabilitar/ocultarlos de todas las listas de efectos.",
"edt_conf_effp_disable_itemtitle": "Efecto", "edt_conf_effp_disable_itemtitle": "Efecto",
"edt_conf_effp_disable_title": "Efectos Deshabilitados", "edt_conf_effp_disable_title": "Efectos Deshabilitados",
"edt_conf_effp_heading_title": "Rutas del efecto", "edt_conf_effp_heading_title": "Rutas del efecto",
"edt_conf_effp_paths_expl": "Puedes definir más carpetas que contengan efectos. El configurador de efectos siempre guardará en la primera carpeta.", "edt_conf_effp_paths_expl": "Puedes definir más carpetas que contengan efectos. El configurador de efectos siempre guardará en la primera carpeta.",
"edt_conf_effp_paths_itemtitle": "Ruta", "edt_conf_effp_paths_itemtitle": "Ruta",
"edt_conf_effp_paths_title": "Ruta(s) del efecto", "edt_conf_effp_paths_title": "Ruta(s) del efecto",
"edt_conf_enum_NO_CHANGE": "Auto", "edt_conf_enum_NO_CHANGE": "Automático",
"edt_conf_enum_NTSC": "NTSC", "edt_conf_enum_NTSC": "NTSC",
"edt_conf_enum_PAL": "PAL", "edt_conf_enum_PAL": "PAL",
"edt_conf_enum_SECAM": "SECAM", "edt_conf_enum_SECAM": "SECAM",
"edt_conf_enum_automatic": "Automático", "edt_conf_enum_automatic": "Automático",
"edt_conf_enum_bbclassic": "Clásico", "edt_conf_enum_bbclassic": "Clásico",
"edt_conf_enum_bbdefault": "Predeterminado", "edt_conf_enum_bbdefault": "Predeterminado",
"edt_conf_enum_bbletterbox": "Letterbox",
"edt_conf_enum_bbosd": "OSD", "edt_conf_enum_bbosd": "OSD",
"edt_conf_enum_bgr": "BGR", "edt_conf_enum_bgr": "BGR",
"edt_conf_enum_bottom_up": "De abajo a arriba", "edt_conf_enum_bottom_up": "De abajo a arriba",
"edt_conf_enum_brg": "BRG", "edt_conf_enum_brg": "BRG",
"edt_conf_enum_color": "Color", "edt_conf_enum_color": "Color",
"edt_conf_enum_custom": "Personalizado", "edt_conf_enum_custom": "Personalizado",
"edt_conf_enum_decay": "Degradación",
"edt_conf_enum_dl_error": "Error", "edt_conf_enum_dl_error": "Error",
"edt_conf_enum_dl_informational": "Informacional", "edt_conf_enum_dl_informational": "Informativo",
"edt_conf_enum_dl_nodebug": "No hay depuración", "edt_conf_enum_dl_nodebug": "No hay depuración",
"edt_conf_enum_dl_statechange": "Cambio de estado", "edt_conf_enum_dl_statechange": "Cambio de estado",
"edt_conf_enum_dl_verbose": "Verborrea", "edt_conf_enum_dl_verbose": "Verboso",
"edt_conf_enum_dl_verbose1": "Verbosidad nivel 1", "edt_conf_enum_dl_verbose1": "Verbosidad nivel 1",
"edt_conf_enum_dl_verbose2": "Verbosidad nivel 2", "edt_conf_enum_dl_verbose2": "Verbosidad nivel 2",
"edt_conf_enum_dl_verbose3": "Verbosidad nivel 3", "edt_conf_enum_dl_verbose3": "Verbosidad nivel 3",
@ -282,7 +284,7 @@
"edt_conf_enum_left_right": "De izquierda a derecha", "edt_conf_enum_left_right": "De izquierda a derecha",
"edt_conf_enum_linear": "Lineal", "edt_conf_enum_linear": "Lineal",
"edt_conf_enum_logdebug": "Depurar", "edt_conf_enum_logdebug": "Depurar",
"edt_conf_enum_logsilent": "Silencio", "edt_conf_enum_logsilent": "Silenciado",
"edt_conf_enum_logverbose": "Detallado", "edt_conf_enum_logverbose": "Detallado",
"edt_conf_enum_logwarn": "Advertencia", "edt_conf_enum_logwarn": "Advertencia",
"edt_conf_enum_multicolor_mean": "Multicolor", "edt_conf_enum_multicolor_mean": "Multicolor",
@ -296,19 +298,18 @@
"edt_conf_fbs_heading_title": "Servidor de Flatbuffers", "edt_conf_fbs_heading_title": "Servidor de Flatbuffers",
"edt_conf_fbs_timeout_expl": "Si no se reciben datos para el período dado, el componente se desactivará (suavemente).", "edt_conf_fbs_timeout_expl": "Si no se reciben datos para el período dado, el componente se desactivará (suavemente).",
"edt_conf_fbs_timeout_title": "Tiempo de espera", "edt_conf_fbs_timeout_title": "Tiempo de espera",
"edt_conf_fg_device_title": "Dispositivo",
"edt_conf_fg_display_expl": "Selecciona qué escritorio debe ser capturado (configuración de varios monitores)", "edt_conf_fg_display_expl": "Selecciona qué escritorio debe ser capturado (configuración de varios monitores)",
"edt_conf_fg_display_title": "Visualización", "edt_conf_fg_display_title": "Visualización",
"edt_conf_fg_frequency_Hz_expl": "Cómo de rápido se capturan las nuevas imágenes", "edt_conf_fg_frequency_Hz_expl": "Cómo de rápido se capturan las nuevas imágenes",
"edt_conf_fg_frequency_Hz_title": "Frecuencia de captura", "edt_conf_fg_frequency_Hz_title": "Frecuencia de captura",
"edt_conf_fg_heading_title": "Captura de Plataforma", "edt_conf_fg_heading_title": "Captura de Plataforma",
"edt_conf_fg_height_expl": "Reducir la imagen a esta altura, como material raw necesita un montón de tiempo de CPU.", "edt_conf_fg_height_expl": "Reducir la imagen a este alto, ya que la imagen en bruto necesita mucho tiempo de CPU.",
"edt_conf_fg_height_title": "Altura", "edt_conf_fg_height_title": "Altura",
"edt_conf_fg_pixelDecimation_expl": "Reduce el tamaño de la imagen (factor) en función del tamaño original. Un factor de 1 significa que no hay cambios", "edt_conf_fg_pixelDecimation_expl": "Reducir el tamaño de la imagen (factor) basado en el tamaño original. Un factor de 1 significa que no hay cambios",
"edt_conf_fg_pixelDecimation_title": "Diezmado de la imagen", "edt_conf_fg_pixelDecimation_title": "Diezmado de la imagen",
"edt_conf_fg_type_expl": "Tipo de captura de plataforma, por defecto es 'auto'", "edt_conf_fg_type_expl": "Tipo de captura de plataforma, por defecto es 'auto'",
"edt_conf_fg_type_title": "Tipo", "edt_conf_fg_type_title": "Tipo",
"edt_conf_fg_width_expl": "Encoge la imagen a este ancho, como imagen raw necesita un montón de tiempo de CPU.", "edt_conf_fg_width_expl": "Reducir la imagen a este ancho, ya que la imagen en bruto necesita mucho tiempo de CPU.",
"edt_conf_fg_width_title": "Anchura", "edt_conf_fg_width_title": "Anchura",
"edt_conf_fge_color_expl": "Si el tipo es \"Color\", selecciona un color de tu elección.", "edt_conf_fge_color_expl": "Si el tipo es \"Color\", selecciona un color de tu elección.",
"edt_conf_fge_color_title": "Color", "edt_conf_fge_color_title": "Color",
@ -345,29 +346,37 @@
"edt_conf_instC_v4lEnable_title": "Habilitar captura USB", "edt_conf_instC_v4lEnable_title": "Habilitar captura USB",
"edt_conf_instCapture_heading_title": "Captura de instancias", "edt_conf_instCapture_heading_title": "Captura de instancias",
"edt_conf_js_heading_title": "Servidor JSON", "edt_conf_js_heading_title": "Servidor JSON",
"edt_conf_log_heading_title": "Registrando", "edt_conf_log_heading_title": "Registro",
"edt_conf_log_level_expl": "Dependiendo del nivel de registro verás menos o más mensajes en tu registro.", "edt_conf_log_level_expl": "Dependiendo del nivel de registro verás menos o más mensajes en tu registro.",
"edt_conf_log_level_title": "Nivel de registro", "edt_conf_log_level_title": "Nivel de registro",
"edt_conf_net_apiAuth_expl": "Imponer a todas las aplicaciones que utilizan la API de Hyperion a autenticarse contra Hyperion (Excepción ver \"Autenticación de la API local\"). Mayor seguridad, ya que tú controlas el acceso y lo revocas en cualquier momento.", "edt_conf_net_apiAuth_expl": "Imponer a todas las aplicaciones que utilizan la API de Hyperion a autenticarse contra Hyperion (Excepción: \"Autenticación de la API local\"). Mayor seguridad, ya que se controla el acceso y se revoca en cualquier momento.",
"edt_conf_net_apiAuth_title": "Autenticación de API", "edt_conf_net_apiAuth_title": "Autenticación de API",
"edt_conf_net_heading_title": "Red", "edt_conf_net_heading_title": "Red",
"edt_conf_net_internetAccessAPI_expl": "Permite el acceso a la API/interfaz web de Hyperion desde Internet, desactivado para mayor seguridad.", "edt_conf_net_internetAccessAPI_expl": "Permite el acceso a la API/interfaz web de Hyperion desde Internet, desactivado para mayor seguridad.",
"edt_conf_net_internetAccessAPI_title": "Acceso a la API de Internet", "edt_conf_net_internetAccessAPI_title": "Acceso a la API de Internet",
"edt_conf_net_ipWhitelist_expl": "En su lugar, puedes hacer una lista blanca de direcciones IP permitiendo que todas las conexiones de Internet se conectan a la API/interfaz web de Hyperion.", "edt_conf_net_ipWhitelist_expl": "Puedes hacer una lista blanca de direcciones IP en vez de permitir que todas las conexiones de internet se conecten a la API/Webinterface de Hyperion.",
"edt_conf_net_ipWhitelist_title": "IPs de la lista blanca", "edt_conf_net_ipWhitelist_title": "IPs de la lista blanca",
"edt_conf_net_ip_itemtitle": "IP", "edt_conf_net_ip_itemtitle": "IP",
"edt_conf_net_localAdminAuth_expl": "Cuando está habilitado, el acceso de administración desde tu red doméstica necesita una contraseña.", "edt_conf_net_localAdminAuth_expl": "Cuando está habilitado, el acceso de administración desde tu red local necesita una contraseña.",
"edt_conf_net_localAdminAuth_title": "Autenticación de la API de administración local", "edt_conf_net_localAdminAuth_title": "Autenticación de la API de administración local",
"edt_conf_net_localApiAuth_expl": "Cuando está habilitado, las conexiones de tu red doméstica también necesitan autenticarse contra Hyperion.", "edt_conf_net_localApiAuth_expl": "Cuando está habilitado, las conexiones de tu red doméstica también necesitan autenticarse contra Hyperion.",
"edt_conf_net_localApiAuth_title": "Autenticación de API local", "edt_conf_net_localApiAuth_title": "Autenticación de API local",
"edt_conf_net_restirctedInternetAccessAPI_expl": "Puede restringir el acceso a la API a través de Internet a determinadas IP.", "edt_conf_net_restirctedInternetAccessAPI_expl": "Puedes restringir el acceso a la API a través de Internet a determinadas IP.",
"edt_conf_net_restirctedInternetAccessAPI_title": "Restringir a las IP", "edt_conf_net_restirctedInternetAccessAPI_title": "Restringir a las IP",
"edt_conf_pbs_heading_title": "Servidor de Buffers de Protocolo", "edt_conf_pbs_heading_title": "Servidor de Buffers de Protocolo",
"edt_conf_pbs_timeout_expl": "Si no se reciben datos para el período dado, el componente se desactivará (suavemente).", "edt_conf_pbs_timeout_expl": "Si no se reciben datos para el período dado, el componente se desactivará (suavemente).",
"edt_conf_pbs_timeout_title": "Tiempo de espera", "edt_conf_pbs_timeout_title": "Tiempo de espera",
"edt_conf_smooth_continuousOutput_expl": "Actualizar los leds incluso si no hay cambio de imagen.", "edt_conf_smooth_continuousOutput_expl": "Actualizar los LED incluso si no hay cambio de imagen.",
"edt_conf_smooth_continuousOutput_title": "Salida continua", "edt_conf_smooth_continuousOutput_title": "Salida continua",
"edt_conf_smooth_decay_expl": "La velocidad de degradación. 1 es lineal, los valores mayores tienen un efecto más fuerte.",
"edt_conf_smooth_decay_title": "Potencia de degradación",
"edt_conf_smooth_dithering_expl": "Mejorar la precisión del color a altas velocidades de salida alternando entre colores adyacentes.",
"edt_conf_smooth_dithering_title": "Tramado/Dithering",
"edt_conf_smooth_heading_title": "Suavizado", "edt_conf_smooth_heading_title": "Suavizado",
"edt_conf_smooth_interpolationRate_expl": "Velocidad de cálculo de los fotogramas intermedios suaves.",
"edt_conf_smooth_interpolationRate_title": "Tasa de interpolación",
"edt_conf_smooth_outputRate_expl": "La velocidad de salida a tu controlador de leds.",
"edt_conf_smooth_outputRate_title": "Tasa de salida",
"edt_conf_smooth_time_ms_expl": "¿Cuánto tiempo debe recoger las imágenes el suavizado?", "edt_conf_smooth_time_ms_expl": "¿Cuánto tiempo debe recoger las imágenes el suavizado?",
"edt_conf_smooth_time_ms_title": "Tiempo", "edt_conf_smooth_time_ms_title": "Tiempo",
"edt_conf_smooth_type_expl": "Tipo de suavizado", "edt_conf_smooth_type_expl": "Tipo de suavizado",
@ -388,7 +397,7 @@
"edt_conf_v4l2_cropRight_title": "Cortar derecha", "edt_conf_v4l2_cropRight_title": "Cortar derecha",
"edt_conf_v4l2_cropTop_expl": "Cuenta de píxeles en la parte superior que se quitan de la imagen.", "edt_conf_v4l2_cropTop_expl": "Cuenta de píxeles en la parte superior que se quitan de la imagen.",
"edt_conf_v4l2_cropTop_title": "Cortar arriba", "edt_conf_v4l2_cropTop_title": "Cortar arriba",
"edt_conf_v4l2_device_expl": "La ruta a la captura USB.", "edt_conf_v4l2_device_expl": "La ruta a la interfaz de captura USB. Ajustado en 'Automático' para la detección automática. Ejemplo: '/dev/video0'",
"edt_conf_v4l2_device_title": "Dispositivo", "edt_conf_v4l2_device_title": "Dispositivo",
"edt_conf_v4l2_framerate_expl": "Los fotogramas soportados por segundo del dispositivo activo", "edt_conf_v4l2_framerate_expl": "Los fotogramas soportados por segundo del dispositivo activo",
"edt_conf_v4l2_framerate_title": "Fotogramas por segundo", "edt_conf_v4l2_framerate_title": "Fotogramas por segundo",
@ -413,11 +422,11 @@
"edt_conf_v4l2_signalDetection_title": "Habilitar detección de señal", "edt_conf_v4l2_signalDetection_title": "Habilitar detección de señal",
"edt_conf_v4l2_sizeDecimation_expl": "El factor de diezmación del tamaño", "edt_conf_v4l2_sizeDecimation_expl": "El factor de diezmación del tamaño",
"edt_conf_v4l2_sizeDecimation_title": "Diezmación de tamaño", "edt_conf_v4l2_sizeDecimation_title": "Diezmación de tamaño",
"edt_conf_v4l2_standard_expl": "Selecciona el estándar de vídeo para tu región.", "edt_conf_v4l2_standard_expl": "Selecciona el estándar de vídeo de tu región. \"Automático\" mantiene el valor elegido por la interfaz v4l2.",
"edt_conf_v4l2_standard_title": "Estándar de vídeo", "edt_conf_v4l2_standard_title": "Estándar de vídeo",
"edt_conf_webc_crtPath_expl": "Ruta al archivo de certificación (el formato debe ser PEM)", "edt_conf_webc_crtPath_expl": "Ruta al archivo de certificación (el formato debe ser PEM)",
"edt_conf_webc_crtPath_title": "Ruta del certificado", "edt_conf_webc_crtPath_title": "Ruta del certificado",
"edt_conf_webc_docroot_expl": "Ruta raíz de la interfaz web local (sólo para desarrolladores webui)", "edt_conf_webc_docroot_expl": "Ruta de la raíz de la interfaz web local (sólo para desarrolladores de webui)",
"edt_conf_webc_docroot_title": "Documento raíz", "edt_conf_webc_docroot_title": "Documento raíz",
"edt_conf_webc_heading_title": "Configuración web", "edt_conf_webc_heading_title": "Configuración web",
"edt_conf_webc_keyPassPhrase_expl": "Opcional: La clave puede estar protegida con una contraseña", "edt_conf_webc_keyPassPhrase_expl": "Opcional: La clave puede estar protegida con una contraseña",
@ -429,7 +438,7 @@
"edt_dev_auth_key_title": "Token de autenticación", "edt_dev_auth_key_title": "Token de autenticación",
"edt_dev_enum_sub_min_cool_adjust": "Min. Ajuste fresco", "edt_dev_enum_sub_min_cool_adjust": "Min. Ajuste fresco",
"edt_dev_enum_sub_min_warm_adjust": "Min. Ajuste caliente", "edt_dev_enum_sub_min_warm_adjust": "Min. Ajuste caliente",
"edt_dev_enum_subtract_minimum": "Restar mínimo", "edt_dev_enum_subtract_minimum": "Restar el mínimo",
"edt_dev_enum_white_off": "Blanco apagado", "edt_dev_enum_white_off": "Blanco apagado",
"edt_dev_general_colorOrder_title": "Orden de bytes RGB", "edt_dev_general_colorOrder_title": "Orden de bytes RGB",
"edt_dev_general_hardwareLedCount_title": "Recuento de LEDs de hardware", "edt_dev_general_hardwareLedCount_title": "Recuento de LEDs de hardware",
@ -457,10 +466,12 @@
"edt_dev_spec_dithering_title": "Tintineo", "edt_dev_spec_dithering_title": "Tintineo",
"edt_dev_spec_dmaNumber_title": "Canal DMA", "edt_dev_spec_dmaNumber_title": "Canal DMA",
"edt_dev_spec_gamma_title": "Gamma", "edt_dev_spec_gamma_title": "Gamma",
"edt_dev_spec_globalBrightnessControlMaxLevel_title": "Nivel máximo actual",
"edt_dev_spec_globalBrightnessControlThreshold_title": "Umbral de adaptación actual",
"edt_dev_spec_gpioBcm_title": "Pin GPIO", "edt_dev_spec_gpioBcm_title": "Pin GPIO",
"edt_dev_spec_gpioMap_title": "Mapeo GPIO", "edt_dev_spec_gpioMap_title": "Mapeo GPIO",
"edt_dev_spec_gpioNumber_title": "Número GPIO", "edt_dev_spec_gpioNumber_title": "Número GPIO",
"edt_dev_spec_groupId_title": "Id de grupo", "edt_dev_spec_groupId_title": "ID de grupo",
"edt_dev_spec_header_title": "Ajustes Específicos", "edt_dev_spec_header_title": "Ajustes Específicos",
"edt_dev_spec_interpolation_title": "Interpolación", "edt_dev_spec_interpolation_title": "Interpolación",
"edt_dev_spec_intervall_title": "Intervalo", "edt_dev_spec_intervall_title": "Intervalo",
@ -483,13 +494,13 @@
"edt_dev_spec_order_left_right_title": "2.", "edt_dev_spec_order_left_right_title": "2.",
"edt_dev_spec_order_top_down_title": "1.", "edt_dev_spec_order_top_down_title": "1.",
"edt_dev_spec_outputPath_title": "Ruta de salida", "edt_dev_spec_outputPath_title": "Ruta de salida",
"edt_dev_spec_panel_start_position": "Panel de inicio [paneles 0-max]", "edt_dev_spec_panel_start_position": "Panel de inicio [0-paneles max]",
"edt_dev_spec_panelorganisation_title": "Secuencia de numeración del panel", "edt_dev_spec_panelorganisation_title": "Secuencia de numeración del panel",
"edt_dev_spec_pid_title": "PID", "edt_dev_spec_pid_title": "PID",
"edt_dev_spec_port_title": "Puerto", "edt_dev_spec_port_title": "Puerto",
"edt_dev_spec_printTimeStamp_title": "Añadir marca de tiempo", "edt_dev_spec_printTimeStamp_title": "Añadir marca de tiempo",
"edt_dev_spec_pwmChannel_title": "Canal PWM", "edt_dev_spec_pwmChannel_title": "Canal PWM",
"edt_dev_spec_restoreOriginalState_title": "Restaurar el estado original de las luces", "edt_dev_spec_restoreOriginalState_title": "Restaurar el estado original de las luces cuando se desactivan",
"edt_dev_spec_serial_title": "Número de serie", "edt_dev_spec_serial_title": "Número de serie",
"edt_dev_spec_spipath_title": "Ruta SPI", "edt_dev_spec_spipath_title": "Ruta SPI",
"edt_dev_spec_sslHSTimeoutMax_title": "Máximo tiempo de espera para el contacto con el Streamer", "edt_dev_spec_sslHSTimeoutMax_title": "Máximo tiempo de espera para el contacto con el Streamer",
@ -537,7 +548,7 @@
"edt_eff_colorevel": "Nivel de color", "edt_eff_colorevel": "Nivel de color",
"edt_eff_colorone": "Color uno", "edt_eff_colorone": "Color uno",
"edt_eff_colorrandom": "Color aleatório", "edt_eff_colorrandom": "Color aleatório",
"edt_eff_colorshift": "Cambio de Color", "edt_eff_colorshift": "Turno de Color",
"edt_eff_colorstart": "Color de inicio", "edt_eff_colorstart": "Color de inicio",
"edt_eff_colorstarttime": "Tiempo para mantener el color de fin", "edt_eff_colorstarttime": "Tiempo para mantener el color de fin",
"edt_eff_colortwo": "Color dos", "edt_eff_colortwo": "Color dos",
@ -556,24 +567,24 @@
"edt_eff_fadeintime": "Tiempo de fundido", "edt_eff_fadeintime": "Tiempo de fundido",
"edt_eff_fadeouttime": "Tiempo de desvanecimiento", "edt_eff_fadeouttime": "Tiempo de desvanecimiento",
"edt_eff_flag_header": "Banderas", "edt_eff_flag_header": "Banderas",
"edt_eff_flag_header_desc": "Deja que tus leds brillen en los colores de tu país. Puedes seleccionar más de una bandera, que cambiará en función del tiempo de intervalo.", "edt_eff_flag_header_desc": "Deja que tus LEDs brillen con los colores de tu país. Puedes seleccionar más de una bandera y cambiarán según el tiempo del intervalo.",
"edt_eff_fps": "Fotogramas por segundo", "edt_eff_fps": "Fotogramas por segundo",
"edt_eff_frequency": "Frecuencia", "edt_eff_frequency": "Frecuencia",
"edt_eff_gif_header": "Sobre GIF", "edt_eff_gif_header": "GIFs",
"edt_eff_gif_header_desc": "Este efecto reproduce archivos.gif, proporciona un vídeo simple tipo bucle como efecto.", "edt_eff_gif_header_desc": "Este efecto reproduce archivos.gif, proporciona un vídeo simple tipo bucle como efecto.",
"edt_eff_height": "Altura", "edt_eff_height": "Altura",
"edt_eff_huechange": "Cambio de color", "edt_eff_huechange": "Cambio de color",
"edt_eff_image": "Archivo de imagen", "edt_eff_image": "Archivo de imagen",
"edt_eff_interval": "Intervalo", "edt_eff_interval": "Intervalo",
"edt_eff_knightrider_header": "Coche Fantástico", "edt_eff_knightrider_header": "Coche Fantástico",
"edt_eff_knightrider_header_desc": "¡K.I.T.T ha vuelto! El escáner frontal del muy conocidocoche, esta vez no sólo en rojo.", "edt_eff_knightrider_header_desc": "¡K.I.T.T ha vuelto! El escáner frontal del muy conocido coche, esta vez no sólo en rojo.",
"edt_eff_ledlist": "Lista Led", "edt_eff_ledlist": "Lista Led",
"edt_eff_ledtest_header": "Prueba de Led", "edt_eff_ledtest_header": "Prueba de Led",
"edt_eff_ledtest_header_desc": "Salida giratoria: Rojo, Azul, Verde, Blanco, Negro", "edt_eff_ledtest_header_desc": "Salida giratoria: Rojo, Azul, Verde, Blanco, Negro",
"edt_eff_length": "Longitud", "edt_eff_length": "Longitud",
"edt_eff_lightclock_header": "Reloj", "edt_eff_lightclock_header": "Reloj de luz",
"edt_eff_lightclock_header_desc": "¡Un reloj real como la luz! Ajusta los colores de las horas, minutos, segundos. También está disponible un marcador de 3/6/9/12 en punto opcional. En caso de que el reloj esté mal, debes comprobar el reloj del sistema.", "edt_eff_lightclock_header_desc": "¡Un verdadero reloj como la luz! Ajustar los colores de las horas, los minutos, los segundos. También hay disponible un marcador opcional de 3/6/9/12 en punto. En caso de que el reloj esté equivocado, debes revisar el reloj de tu sistema.",
"edt_eff_maintain_end_color": "Mantener color de fin", "edt_eff_maintain_end_color": "Mantener color final",
"edt_eff_margin": "Margen", "edt_eff_margin": "Margen",
"edt_eff_markerDepth": "Profundidad del marcador", "edt_eff_markerDepth": "Profundidad del marcador",
"edt_eff_markerEnable": "Mostrar marcador", "edt_eff_markerEnable": "Mostrar marcador",
@ -590,8 +601,8 @@
"edt_eff_police_header": "Policía", "edt_eff_police_header": "Policía",
"edt_eff_police_header_desc": "Luces como un coche de policía en acción", "edt_eff_police_header_desc": "Luces como un coche de policía en acción",
"edt_eff_postcolor": "Post color", "edt_eff_postcolor": "Post color",
"edt_eff_rainbowmood_header": "Ánimo Arcoiris", "edt_eff_rainbowmood_header": "Atmósfera de arco iris",
"edt_eff_rainbowmood_header_desc": "Todos los leds estado arco iris", "edt_eff_rainbowmood_header_desc": "Todos los LEDs de atmósfera de arco iris",
"edt_eff_randomCenter": "Centro aleatorio", "edt_eff_randomCenter": "Centro aleatorio",
"edt_eff_random_header": "Aleatorio", "edt_eff_random_header": "Aleatorio",
"edt_eff_random_header_desc": "Pixel Punto, punto, punto...", "edt_eff_random_header_desc": "Pixel Punto, punto, punto...",
@ -609,18 +620,18 @@
"edt_eff_snake_header": "Serpiente", "edt_eff_snake_header": "Serpiente",
"edt_eff_snake_header_desc": "¿Dónde hay algo para comer?", "edt_eff_snake_header_desc": "¿Dónde hay algo para comer?",
"edt_eff_sparks_header": "Chispas", "edt_eff_sparks_header": "Chispas",
"edt_eff_sparks_header_desc": "Estrella-Burbujeante, elege entre un color estático o aleatorio. También puedes ajustar el brillo, la saturación y la velocidad.", "edt_eff_sparks_header_desc": "Estrella-Burbujeante, elige entre un color estático o aleatorio. También puedes ajustar el brillo, la saturación y la velocidad.",
"edt_eff_speed": "Velocidad", "edt_eff_speed": "Velocidad",
"edt_eff_swirl_header": "Remolino del color", "edt_eff_swirl_header": "Remolino del color",
"edt_eff_swirl_header_desc": "Un remolino con colores personalizado. Los colores se extienden hasta 360°, entre colores se calcularán turnos. Adicionalmente puedes añadir un segundo remolino en la parte superior, ¡ten en cuenta que necesita transparencia parcial! Sugerencia: Una reapertura del mismo color da como resultado un área de color mas \"matizada\" y un área de cambio de color reducida.", "edt_eff_swirl_header_desc": "Un remolino con colores personalizados. Los colores se extienden incluso a 360°, entre los colores se calcularán los cambios. Adicionalmente puedes añadir un segundo remolino en la parte superior, ten en cuenta que necesitas una transparencia parcial! Sugerencia: Una repetición del mismo color resulta en un área de color \"más alta\" y un área de cambio de color reducido.",
"edt_eff_systemshutdown_header": "Apagado del Sistema", "edt_eff_systemshutdown_header": "Apagado del Sistema",
"edt_eff_systemshutdown_header_desc": "Una animación corta con probablemente un apagado real del sistema", "edt_eff_systemshutdown_header_desc": "Una animación corta con probablemente un apagado real del sistema",
"edt_eff_traces_header": "Rastros de Color", "edt_eff_traces_header": "Trazas de Color",
"edt_eff_traces_header_desc": "Requiere rediseño", "edt_eff_traces_header_desc": "Requiere rediseño",
"edt_eff_trails_header": "Caminos", "edt_eff_trails_header": "Caminos",
"edt_eff_trails_header_desc": "Estrellas de colores que caen de arriba a abajo", "edt_eff_trails_header_desc": "Estrellas de colores que caen de arriba a abajo",
"edt_eff_waves_header": "Ondas", "edt_eff_waves_header": "Ondas",
"edt_eff_waves_header_desc": "¡Ondas de color! Elije tus colores, el tiempo de rotación, la dirección de inversión y mucho más.", "edt_eff_waves_header_desc": "¡Ondas de color! Elije tus colores, el tiempo de rotación, dirección inversa y más.",
"edt_eff_whichleds": "Qué Leds", "edt_eff_whichleds": "Qué Leds",
"edt_eff_whitelevel": "Nivel de blanco", "edt_eff_whitelevel": "Nivel de blanco",
"edt_eff_x-mas_header": "Navidad", "edt_eff_x-mas_header": "Navidad",
@ -709,11 +720,13 @@
"general_comp_PROTOSERVER": "Servidor de Buffers de Protocolo", "general_comp_PROTOSERVER": "Servidor de Buffers de Protocolo",
"general_comp_SMOOTHING": "Suavizado", "general_comp_SMOOTHING": "Suavizado",
"general_comp_V4L": "Captura USB", "general_comp_V4L": "Captura USB",
"general_country_cn": "China",
"general_country_de": "Alemania", "general_country_de": "Alemania",
"general_country_es": "España", "general_country_es": "España",
"general_country_fr": "Francia", "general_country_fr": "Francia",
"general_country_it": "Italia", "general_country_it": "Italia",
"general_country_nl": "Holanda", "general_country_nl": "Holanda",
"general_country_ru": "Rusia",
"general_country_uk": "Reino Unido", "general_country_uk": "Reino Unido",
"general_country_us": "Estados Unidos", "general_country_us": "Estados Unidos",
"general_speech_cs": "Czech", "general_speech_cs": "Czech",
@ -725,9 +738,11 @@
"general_speech_nl": "Holandés", "general_speech_nl": "Holandés",
"general_speech_pl": "Polaco", "general_speech_pl": "Polaco",
"general_speech_ro": "Rumano", "general_speech_ro": "Rumano",
"general_speech_ru": "Ruso",
"general_speech_sv": "Sueco", "general_speech_sv": "Sueco",
"general_speech_tr": "Turco", "general_speech_tr": "Turco",
"general_speech_vi": "Vietnamita", "general_speech_vi": "Vietnamita",
"general_speech_zh-CN": "Chino (simplificado)",
"general_webui_title": "Hyperion - Configuración Web", "general_webui_title": "Hyperion - Configuración Web",
"general_wiki_moreto": "Más información sobre \"$1\" en nuestra Wiki", "general_wiki_moreto": "Más información sobre \"$1\" en nuestra Wiki",
"infoDialog_checklist_title": "¡Lista!", "infoDialog_checklist_title": "¡Lista!",
@ -736,14 +751,14 @@
"infoDialog_general_error_title": "Error", "infoDialog_general_error_title": "Error",
"infoDialog_general_success_title": "Éxito", "infoDialog_general_success_title": "Éxito",
"infoDialog_general_warning_title": "Advertencia", "infoDialog_general_warning_title": "Advertencia",
"infoDialog_import_comperror_text": ":( Tu navegador no admite una importación. Inténtalo de nuevo con otro navegador.", "infoDialog_import_comperror_text": "¡Lástima! Tu navegador no admite una importación. Inténtalo de nuevo con otro navegador.",
"infoDialog_import_confirm_text": "¿Estás seguro de importar \"$1\"? ¡Este proceso no puede revertirse!", "infoDialog_import_confirm_text": "¿Estás seguro de importar \"$1\"? ¡Este proceso no puede revertirse!",
"infoDialog_import_confirm_title": "Confirmar importación", "infoDialog_import_confirm_title": "Confirmar importación",
"infoDialog_import_hyperror_text": "No se puede importar el archivo de configuración seleccionado \"$1\". ¡No es compatible con Hyperion 2.0 y superior!", "infoDialog_import_hyperror_text": "No se puede importar el archivo de configuración seleccionado \"$1\". ¡No es compatible con Hyperion 2.0 y superior!",
"infoDialog_import_jsonerror_text": "El archivo de configuración seleccionado \"$1\" no es un archivo .json o está dañado. Mensaje de error: ($2)", "infoDialog_import_jsonerror_text": "El archivo de configuración seleccionado \"$1\" no es un archivo .json o está dañado. Mensaje de error: ($2)",
"infoDialog_wizrgb_text": "Tu Orden de Bytes RGB ya está bien ajustado.", "infoDialog_wizrgb_text": "Tu Orden de Bytes RGB ya está bien ajustado.",
"infoDialog_writeconf_error_text": "Error al guardar la configuración.", "infoDialog_writeconf_error_text": "Error al guardar tu configuración.",
"infoDialog_writeimage_error_text": "¡El archivo seleccionado \"$1\" no es un archivo de imagen o está dañado! Por favor, seleccione otro archivo de imagen.", "infoDialog_writeimage_error_text": "¡El archivo seleccionado \"$1\" no es un archivo de imagen o está dañado! Por favor, selecciona otro archivo de imagen.",
"info_404": "¡La pagina que buscas no está disponible!", "info_404": "¡La pagina que buscas no está disponible!",
"info_conlost_label_autorecon": "Nos volvemos a conectar después de que Hyperion esté disponible.", "info_conlost_label_autorecon": "Nos volvemos a conectar después de que Hyperion esté disponible.",
"info_conlost_label_autorefresh": "Esta página se actualizará automáticamente.", "info_conlost_label_autorefresh": "Esta página se actualizará automáticamente.",
@ -756,7 +771,7 @@
"info_restart_contus": "Si todavía te quedas por aquí después de 20 segundos y no tienes idea de por qué, abre un nuevo tema en nuestro foro de soporte ...", "info_restart_contus": "Si todavía te quedas por aquí después de 20 segundos y no tienes idea de por qué, abre un nuevo tema en nuestro foro de soporte ...",
"info_restart_contusa": "... con tus últimos pasos. ¡Gracias!", "info_restart_contusa": "... con tus últimos pasos. ¡Gracias!",
"info_restart_rightback": "¡Hyperion regresará inmediatamente!", "info_restart_rightback": "¡Hyperion regresará inmediatamente!",
"info_restart_title": "Reinicia actualmente...", "info_restart_title": "Reinicia ahora...",
"main_ledsim_btn_togglelednumber": "Números LED", "main_ledsim_btn_togglelednumber": "Números LED",
"main_ledsim_btn_toggleleds": "Mostrar LEDs", "main_ledsim_btn_toggleleds": "Mostrar LEDs",
"main_ledsim_btn_togglelivevideo": "video en vivo", "main_ledsim_btn_togglelivevideo": "video en vivo",
@ -779,7 +794,7 @@
"main_menu_system_token": "Sistema", "main_menu_system_token": "Sistema",
"main_menu_update_token": "Actualizar", "main_menu_update_token": "Actualizar",
"main_menu_webconfig_token": "Configuración web", "main_menu_webconfig_token": "Configuración web",
"remote_adjustment_intro": "Modifica el color/brillo/linealización durante el tiempo de ejecución. $1", "remote_adjustment_intro": "Modifica el color/brillo/compensación durante el tiempo de ejecución. $1",
"remote_adjustment_label": "Ajustes de color", "remote_adjustment_label": "Ajustes de color",
"remote_color_button_reset": "Restablecer Color/Efecto", "remote_color_button_reset": "Restablecer Color/Efecto",
"remote_color_intro": "Establecer un efecto o color. También se enumeran los efectos creados uno mismo (si están disponibles). $1", "remote_color_intro": "Establecer un efecto o color. También se enumeran los efectos creados uno mismo (si están disponibles). $1",
@ -802,7 +817,7 @@
"remote_input_sourceactiv_btn": "Entrada activa", "remote_input_sourceactiv_btn": "Entrada activa",
"remote_input_status": "Estado/Acción", "remote_input_status": "Estado/Acción",
"remote_losthint": "Nota: Todos los cambios se pierden después de un reinicio.", "remote_losthint": "Nota: Todos los cambios se pierden después de un reinicio.",
"remote_maptype_intro": "Cambie el tipo de mapeo durante el tiempo de ejecución. $1", "remote_maptype_intro": "Normalmente la disposición de los leds define qué leds cubren un área específica de la imagen, puedes cambiarlo aquí: $1.",
"remote_maptype_label": "Tipo de Mapeo", "remote_maptype_label": "Tipo de Mapeo",
"remote_maptype_label_multicolor_mean": "Multicolor", "remote_maptype_label_multicolor_mean": "Multicolor",
"remote_maptype_label_unicolor_mean": "Unicolor", "remote_maptype_label_unicolor_mean": "Unicolor",
@ -820,7 +835,7 @@
"support_label_donate": "Dona o utiliza nuestros enlaces de afiliados", "support_label_donate": "Dona o utiliza nuestros enlaces de afiliados",
"support_label_donationpp": "Donación:", "support_label_donationpp": "Donación:",
"support_label_fbtext": "Comparte nuestra página de Hyperion en Facebook y obten un aviso cuando se publiquen nuevas actualizaciones", "support_label_fbtext": "Comparte nuestra página de Hyperion en Facebook y obten un aviso cuando se publiquen nuevas actualizaciones",
"support_label_forumtext": "Casos de muestra, discusiones, ayuda y mucho más", "support_label_forumtext": "Casos de ejemplo, discusiones, ayuda y mucho más",
"support_label_forumtitle": "Foro", "support_label_forumtitle": "Foro",
"support_label_ggtext": "¡Haznos un círculo en Google+!", "support_label_ggtext": "¡Haznos un círculo en Google+!",
"support_label_ghtext": "Visitanos en Github", "support_label_ghtext": "Visitanos en Github",
@ -837,34 +852,41 @@
"support_label_yttext": "¿Aburrido de las fotos? ¡Comprueba nuestro canal de Youtube!", "support_label_yttext": "¿Aburrido de las fotos? ¡Comprueba nuestro canal de Youtube!",
"update_button_changelog": "Registro completo de cambios", "update_button_changelog": "Registro completo de cambios",
"update_button_install": "Instalar", "update_button_install": "Instalar",
"update_error_getting_versions": "Tuvimos problemas para determinar las versiones disponibles.", "update_error_getting_versions": "Tuvimos problemas para determinar la última versión disponible.",
"update_label_description": "Descripción:", "update_label_description": "Descripción:",
"update_label_intro": "Descripción general de todas las versiones disponibles de Hyperion. En la parte superior puedes actualizar o degradar tu versión de Hyperion siempre que lo desees. Ordenado de nuevo a más antiguo", "update_label_intro": "Descripción general de todas las versiones disponibles de Hyperion. En la parte superior puedes actualizar o degradar tu versión de Hyperion siempre que lo desees. Ordenado de nuevo a más antiguo",
"update_label_type": "Tipo:", "update_label_type": "Tipo:",
"update_no_updates_for_branch": "No hay actualizaciones para el canal de versión seleccionado.", "update_no_updates_for_branch": "No hay actualizaciones para el canal de versión seleccionado.",
"update_versreminder": "Tu versión: $1", "update_versreminder": "Tu versión: $1",
"wiz_cc_adjustgamma": "Gamma: Lo que tienes que hacer es ajustar los niveles gamma de cada canal hasta que tengas la misma cantidad percibida de cada canal. Por ejemplo, si su Gris es un poco rojizo, significa que tiene que aumentar el gamma rojo para reducir la cantidad de rojo (más gamma, menos cantidad de color).", "wiz_atmoorb_desc2": "Ahora elige qué Orbes deben ser añadidos. La posición asigna la lámpara a una posición específica en tu \"imagen\". No se añadirán las lámparas desactivadas. Para identificar las lámparas individuales, pulsa el botón de la derecha.",
"wiz_atmoorb_intro1": "Este asistente configura Hyperion para AtmoOrbs. Las características son la detección automática de AtmoOrb, ajustando cada luz a una posición específica en su imagen o desactivarla y ¡optimizar la configuración de Hyperion automáticamente! En resumen: ¡Todo lo que necesitas son algunos clics y listo!",
"wiz_atmoorb_title": "Asistente AtmoOrb",
"wiz_cc_adjustgamma": "Gamma: Lo que tienes que hacer es ajustar los niveles de gamma de cada canal hasta que tengas la misma cantidad percibida de cada canal. Pista: ¡Neutral es 1.0! Por ejemplo, si tu gris es un poco rojizo significa que tienes que aumentar la gamma del rojo para reducir la cantidad de rojo (a mayor gamma, menor cantidad de color).",
"wiz_cc_adjustit": "Ajusta tu \"$1\", hasta que estés agusto con él. Ten en cuenta: Cuanto más lo ajustes fuera del valor predeterminado, el espectro de color será limitado (también para todos los colores intermedios). Dependiendo del espectro de color de TV/LED, los resultados variarán.", "wiz_cc_adjustit": "Ajusta tu \"$1\", hasta que estés agusto con él. Ten en cuenta: Cuanto más lo ajustes fuera del valor predeterminado, el espectro de color será limitado (también para todos los colores intermedios). Dependiendo del espectro de color de TV/LED, los resultados variarán.",
"wiz_cc_backlight": "Adicionalmente podrías definir una retroiluminación para solucionar \"malos colores\" en áreas casi oscuras o si no te gusta el cambio entre color y apagado durante la observación. Adicionalmente se podría definir si debe haber algún color en ella o simplemente blanco. Esto se desactiva durante el estado \"Off\", \"Color\" y \"Efecto\".", "wiz_cc_backlight": "Además, puedes definir una luz de fondo para distinguir los \"colores malos\" en las zonas casi oscuras o si no te gusta el cambio entre el color y el apagado durante el visionado. Además podrías definir si debería haber algún color en él o sólo blanco. Esto se desactiva durante el estado \"Apagado\", \"Color\" y \"Efecto\".",
"wiz_cc_btn_stop": "Parar vídeo", "wiz_cc_btn_stop": "Parar vídeo",
"wiz_cc_btn_switchpic": "Cambiar imagen", "wiz_cc_btn_switchpic": "Cambiar imagen",
"wiz_cc_chooseid": "Define un nombre para éste perfil.", "wiz_cc_chooseid": "Define un nombre para éste perfil.",
"wiz_cc_intro1": "Este asistente te guiará a través de la calibración led. Si estás utilizando Kodi, las imágenes de calibración y los videos se pueden enviar directamente a kodi sin más tareas de tu lado. Si no, necesitas descargar estos archivos tú mismo y aplicarlos, si el asistente lo desea.", "wiz_cc_intro1": "Este asistente te guiará a través de la calibración led. Si estás usando Kodi, las fotos y videos de la calibración pueden ser enviados directamente a él. Prerrequisito: Necesitas habilitar \"Permitir el control remoto desde aplicaciones en otros sistemas\" en Kodi.<br />O bien, puede que quieras descargar estos archivos tú mismo y mostrarlos cuando el asistente te pida que ajustes la configuración.",
"wiz_cc_kodicon": "Servidor web Kodi encontrado, proceder con el soporte de Kodi.", "wiz_cc_kodicon": "Kodi encontrado, proceder con el soporte de Kodi.",
"wiz_cc_kodidiscon": "No se encuentra el servidor web de Kodi, procede sin el soporte de Kodi.", "wiz_cc_kodidiscon": "No se encuentra Kodi, proceder sin el soporte de Kodi.",
"wiz_cc_kodidisconlink": "Descarga enlaces de imagenes:", "wiz_cc_kodidisconlink": "Descarga enlaces de imagenes:",
"wiz_cc_kodimsg_start": "Prueba con éxito - ¡tiempo de continuar!", "wiz_cc_kodimsg_start": "Prueba con éxito - ¡tiempo de continuar!",
"wiz_cc_kodishould": "Kodi debería mostrar la siguiente imagen: $1", "wiz_cc_kodishould": "Kodi debería mostrar la siguiente imagen: $1",
"wiz_cc_kwebs": "Servidor web Kodi (IP:PUERTO)", "wiz_cc_kwebs": "Servidor web Kodi (Nombre de Host o IP)",
"wiz_cc_lettvshow": "Deja que tu TV muestre la siguiente imagen: $1", "wiz_cc_lettvshow": "Deja que tu TV muestre la siguiente imagen: $1",
"wiz_cc_lettvshowm": "Comprueba esto con las siguientes imágenes: $1", "wiz_cc_lettvshowm": "Comprueba esto con las siguientes imágenes: $1",
"wiz_cc_link": "¡Haz click en mi!", "wiz_cc_link": "¡Haz click en mi!",
"wiz_cc_morethanone": "Tienes más de un perfil, elije el perfil que deseas calibrar.", "wiz_cc_morethanone": "Tienes más de un perfil, elije el perfil que deseas calibrar.",
"wiz_cc_summary": "Una conclusión de su configuración. Durante la reproducción de vídeo, puede cambiar o probar valores de nuevo. Si está hecho, haga clic en guardar.", "wiz_cc_summary": "Una conclusión de tu configuración. Durante la reproducción de vídeo, puedes cambiar o probar valores de nuevo. Si has terminado, haz clic en guardar.",
"wiz_cc_testintro": "¡Tiempo para una prueba real!", "wiz_cc_testintro": "¡Tiempo para una prueba real!",
"wiz_cc_testintrok": "Pulsa un botón de abajo para iniciar un vídeo de prueba.", "wiz_cc_testintrok": "Pulsa un botón de abajo para iniciar un vídeo de prueba.",
"wiz_cc_testintrowok": "Haz el siguiente enlace para descargar videos de prueba:", "wiz_cc_testintrowok": "Haz el siguiente enlace para descargar videos de prueba:",
"wiz_cc_title": "Asistente de calibración de color", "wiz_cc_title": "Asistente de calibración de color",
"wiz_cololight_desc2": "Ahora elige qué Cololights deben ser añadidos. Para identificar las luces individuales, pulsa el botón de la derecha.",
"wiz_cololight_intro1": "Este asistente configura Hyperion para el sistema Cololight. ¡Las características son la detección automática de Cololight y el ajuste automático de la configuración de Hyperion! En resumen: Todo lo que necesitas son algunos clics y listo!<br />Nota: En el caso de Cololight Strip, puede que necesites corregir manualmente el recuento y la disposición de los LEDs.",
"wiz_cololight_noprops": "Imposible obtener las propiedades del dispositivo - Define el conteo de LEDs de hardware manualmente",
"wiz_cololight_title": "Asistente Cololight",
"wiz_guideyou": "El $1 te guiará a través de los ajustes. Simplemente ¡presiona el botón!", "wiz_guideyou": "El $1 te guiará a través de los ajustes. Simplemente ¡presiona el botón!",
"wiz_hue_blinkblue": "Permite a ID $1 encender el azul", "wiz_hue_blinkblue": "Permite a ID $1 encender el azul",
"wiz_hue_clientkey": "Llave de cliente:", "wiz_hue_clientkey": "Llave de cliente:",
@ -876,7 +898,7 @@
"wiz_hue_e_desc1": "Busca automáticamente un puente Hue, en caso de que no pueda encontrar uno, debes proporcionar la dirección IP y pulsar el botón de recarga a la derecha. Ahora necesitas un ID de usuario y la clave de cliente, si no tienes ambas, crea una nueva.", "wiz_hue_e_desc1": "Busca automáticamente un puente Hue, en caso de que no pueda encontrar uno, debes proporcionar la dirección IP y pulsar el botón de recarga a la derecha. Ahora necesitas un ID de usuario y la clave de cliente, si no tienes ambas, crea una nueva.",
"wiz_hue_e_desc2": "Ahora elige tu grupo de entretenimiento, que tiene todas tus luces dentro para usarlas con Hyperion.", "wiz_hue_e_desc2": "Ahora elige tu grupo de entretenimiento, que tiene todas tus luces dentro para usarlas con Hyperion.",
"wiz_hue_e_desc3": "Ahora puedes elegir en qué posición la respectiva lámpara debe estar \"en la foto\". Se hizo una preselección de la posición basada en las posiciones configuradas de las luces del grupo de entretenimiento. Esto es sólo una recomendación y puede ser personalizada como se desee. Por lo tanto, puede resaltarlas brevemente haciendo clic en el botón derecho para mejorar la selección.", "wiz_hue_e_desc3": "Ahora puedes elegir en qué posición la respectiva lámpara debe estar \"en la foto\". Se hizo una preselección de la posición basada en las posiciones configuradas de las luces del grupo de entretenimiento. Esto es sólo una recomendación y puede ser personalizada como se desee. Por lo tanto, puede resaltarlas brevemente haciendo clic en el botón derecho para mejorar la selección.",
"wiz_hue_e_intro1": "Este asistente configura Hyperion para el conocido sistema de entretenimiento Philips Hue. Las características son la detección automática de Hue Bridge, la creación de teclas de usuario y cliente, la selección de grupos de entretenimiento y la configuración de las luces de grupo en una posición específica en la imagen y la sintonización de la configuración de Hyperion de forma automática! En resumen: ¡Sólo necesitas algunos clics y listo!", "wiz_hue_e_intro1": "Este asistente configura Hyperion para el conocido sistema de entretenimiento Philips Hue. Las características son: Detección automática de Hue Bridge, creación de teclas de usuario y cliente, selección de grupos de entretenimiento, ajuste de luces de grupo a una posición específica en la imagen y optimización de la configuración de Hyperion de forma automática! En resumen: ¡Sólo necesitas algunos clics y listo!",
"wiz_hue_e_noapisupport": "El Asistente ha desactivado el soporte de la API de entretenimiento y continuará en el modo clásico.", "wiz_hue_e_noapisupport": "El Asistente ha desactivado el soporte de la API de entretenimiento y continuará en el modo clásico.",
"wiz_hue_e_noapisupport_hint": "La opción \"<b>Usar API de Entretenimiento Hue</b>\" estaba desmarcada.", "wiz_hue_e_noapisupport_hint": "La opción \"<b>Usar API de Entretenimiento Hue</b>\" estaba desmarcada.",
"wiz_hue_e_noegrpids": "No se han definido grupos de entretenimiento en este puente de Hue.", "wiz_hue_e_noegrpids": "No se han definido grupos de entretenimiento en este puente de Hue.",
@ -886,7 +908,7 @@
"wiz_hue_e_use_groupid": "Usar ID de grupo $1", "wiz_hue_e_use_groupid": "Usar ID de grupo $1",
"wiz_hue_failure_connection": "El tiempo de conexión expiró. Por favor, pulsa el botón a tiempo.", "wiz_hue_failure_connection": "El tiempo de conexión expiró. Por favor, pulsa el botón a tiempo.",
"wiz_hue_failure_ip": "Comprueba tu dirección IP.", "wiz_hue_failure_ip": "Comprueba tu dirección IP.",
"wiz_hue_failure_user": "Usuario no encontrado, crea uno nuevo debajo o introduce un ID de usuario válido", "wiz_hue_failure_user": "Usuario no encontrado, crea uno nuevo con el botón de abajo o introduce una identificación de usuario válida y pulsa el símbolo de \"recargar\".\n",
"wiz_hue_intro1": "Con este ayudante de configuración puedes obtener un nuevo usuario para tu Puente de Matiz y puedes ver tus luces con las ID para la Configuración de Hyperion.", "wiz_hue_intro1": "Con este ayudante de configuración puedes obtener un nuevo usuario para tu Puente de Matiz y puedes ver tus luces con las ID para la Configuración de Hyperion.",
"wiz_hue_ip": "IP Puente de Matiz:", "wiz_hue_ip": "IP Puente de Matiz:",
"wiz_hue_noids": "Este puente de Matiz no tiene bombillas/tiras, por favor, emparéjalos antes con las aplicaciones de Hue", "wiz_hue_noids": "Este puente de Matiz no tiene bombillas/tiras, por favor, emparéjalos antes con las aplicaciones de Hue",
@ -898,6 +920,7 @@
"wiz_identify_light": "Identificar $1", "wiz_identify_light": "Identificar $1",
"wiz_ids_disabled": "Desactivado", "wiz_ids_disabled": "Desactivado",
"wiz_ids_entire": "Toda la imagen", "wiz_ids_entire": "Toda la imagen",
"wiz_noLights": "¡No se encontró $1! Por favor, conecta las luces a la red o configúralas manualmente.",
"wiz_pos": "Posición/Estado", "wiz_pos": "Posición/Estado",
"wiz_rgb_expl": "El punto de color cambia cada x segundos el color (rojo, verde), al mismo tiempo que tus leds cambian el color también. Responde las preguntas en la parte inferior para verificar/corregir tu orden de bytes.", "wiz_rgb_expl": "El punto de color cambia cada x segundos el color (rojo, verde), al mismo tiempo que tus leds cambian el color también. Responde las preguntas en la parte inferior para verificar/corregir tu orden de bytes.",
"wiz_rgb_intro1": "Este asistente te guiará a través del proceso de búsqueda del orden de color correcto para tus leds. Haz clic en continuar para comenzar.", "wiz_rgb_intro1": "Este asistente te guiará a través del proceso de búsqueda del orden de color correcto para tus leds. Haz clic en continuar para comenzar.",
@ -910,7 +933,6 @@
"wiz_wizavail": "Asistente disponible", "wiz_wizavail": "Asistente disponible",
"wiz_yeelight_desc2": "Ahora elige qué lámparas deben añadirse. La posición asigna la lámpara a una posición específica en su \"imagen\". Las lámparas desactivadas no se añadirán. Para identificar las lámparas individuales, pulsa el botón de la derecha.", "wiz_yeelight_desc2": "Ahora elige qué lámparas deben añadirse. La posición asigna la lámpara a una posición específica en su \"imagen\". Las lámparas desactivadas no se añadirán. Para identificar las lámparas individuales, pulsa el botón de la derecha.",
"wiz_yeelight_intro1": "Este asistente configura el Hyperion para el sistema Yeelight. Las características son la detección automática de los Yeelights, ajustando cada luz a una posición específica en su imagen o desactivarla y ¡ajustar la configuración de Hyperion automáticamente! En resumen: ¡Todo lo que necesitas son algunos clics y listo!", "wiz_yeelight_intro1": "Este asistente configura el Hyperion para el sistema Yeelight. Las características son la detección automática de los Yeelights, ajustando cada luz a una posición específica en su imagen o desactivarla y ¡ajustar la configuración de Hyperion automáticamente! En resumen: ¡Todo lo que necesitas son algunos clics y listo!",
"wiz_yeelight_noLights": "¡No se encontraron Yeelights! Por favor, conecta las luces a la red o configúralas manualmente.",
"wiz_yeelight_title": "Asistente Yeelight", "wiz_yeelight_title": "Asistente Yeelight",
"wiz_yeelight_unsupported": "Sin soporte" "wiz_yeelight_unsupported": "Sin soporte"
} }

View File

@ -252,7 +252,6 @@
"edt_conf_fbs_heading_title": "Serveur Flatbuffers", "edt_conf_fbs_heading_title": "Serveur Flatbuffers",
"edt_conf_fbs_timeout_expl": "Si aucune donnée n'est reçue dans la période de temps donnée, le composant sera désactivé.", "edt_conf_fbs_timeout_expl": "Si aucune donnée n'est reçue dans la période de temps donnée, le composant sera désactivé.",
"edt_conf_fbs_timeout_title": "Temps écoulé", "edt_conf_fbs_timeout_title": "Temps écoulé",
"edt_conf_fg_device_title": "Appareil",
"edt_conf_fg_frequency_Hz_title": "Fréquence de capture", "edt_conf_fg_frequency_Hz_title": "Fréquence de capture",
"edt_conf_fg_heading_title": "Platform de capture", "edt_conf_fg_heading_title": "Platform de capture",
"edt_conf_fg_height_title": "Hauteur", "edt_conf_fg_height_title": "Hauteur",

View File

@ -295,7 +295,6 @@
"edt_conf_fbs_heading_title": "Server Flatbuffers", "edt_conf_fbs_heading_title": "Server Flatbuffers",
"edt_conf_fbs_timeout_expl": "Se nessuna informazione viene ricevuta per un dato periodo, il componente verrà disabilitato (soft).", "edt_conf_fbs_timeout_expl": "Se nessuna informazione viene ricevuta per un dato periodo, il componente verrà disabilitato (soft).",
"edt_conf_fbs_timeout_title": "Timeout", "edt_conf_fbs_timeout_title": "Timeout",
"edt_conf_fg_device_title": "Dispositivo",
"edt_conf_fg_display_expl": "Seleziona quale desktop dovrebbe essere catturato (setup multi monitor)", "edt_conf_fg_display_expl": "Seleziona quale desktop dovrebbe essere catturato (setup multi monitor)",
"edt_conf_fg_display_title": "Display", "edt_conf_fg_display_title": "Display",
"edt_conf_fg_frequency_Hz_expl": "Quanto velocemente vengono catturare le immagini", "edt_conf_fg_frequency_Hz_expl": "Quanto velocemente vengono catturare le immagini",
@ -705,11 +704,13 @@
"general_comp_PROTOSERVER": "Server Protocol Buffers", "general_comp_PROTOSERVER": "Server Protocol Buffers",
"general_comp_SMOOTHING": "Sfumatura", "general_comp_SMOOTHING": "Sfumatura",
"general_comp_V4L": "Cattura USB", "general_comp_V4L": "Cattura USB",
"general_country_cn": "Cina",
"general_country_de": "Germania", "general_country_de": "Germania",
"general_country_es": "Spagna", "general_country_es": "Spagna",
"general_country_fr": "Francia", "general_country_fr": "Francia",
"general_country_it": "Italia", "general_country_it": "Italia",
"general_country_nl": "Olanda", "general_country_nl": "Olanda",
"general_country_ru": "Russia",
"general_country_uk": "Regno Unito", "general_country_uk": "Regno Unito",
"general_country_us": "Stati Uniti", "general_country_us": "Stati Uniti",
"general_speech_cs": "Czech", "general_speech_cs": "Czech",
@ -721,9 +722,11 @@
"general_speech_nl": "Olandese", "general_speech_nl": "Olandese",
"general_speech_pl": "Polacco", "general_speech_pl": "Polacco",
"general_speech_ro": "Rumeno", "general_speech_ro": "Rumeno",
"general_speech_ru": "Russo",
"general_speech_sv": "Svedese", "general_speech_sv": "Svedese",
"general_speech_tr": "Turco", "general_speech_tr": "Turco",
"general_speech_vi": "Vietnamita", "general_speech_vi": "Vietnamita",
"general_speech_zh-CN": "Cinese (semplificanto)",
"general_webui_title": "Hyperion - Configurazione Web", "general_webui_title": "Hyperion - Configurazione Web",
"general_wiki_moreto": "Più informazioni su '$1' sulla nostra Wiki", "general_wiki_moreto": "Più informazioni su '$1' sulla nostra Wiki",
"infoDialog_checklist_title": "Lista!", "infoDialog_checklist_title": "Lista!",
@ -903,7 +906,6 @@
"wiz_wizavail": "Assistente disponibile", "wiz_wizavail": "Assistente disponibile",
"wiz_yeelight_desc2": "Scegli quale lampade devono essere aggiunte. La posizione assegna la lampada a una specifica posizione nella tua \"immagine\". Lampade disabilitate non saranno aggiunte. Per identificare una singola lampada premi il bottone sulla destra.", "wiz_yeelight_desc2": "Scegli quale lampade devono essere aggiunte. La posizione assegna la lampada a una specifica posizione nella tua \"immagine\". Lampade disabilitate non saranno aggiunte. Per identificare una singola lampada premi il bottone sulla destra.",
"wiz_yeelight_intro1": "Questi assistenti Configurano Hyperion per il sistema Yeelight. Le funzionalità sono: rilevamento automatico Yeelights, assegnazione di ciascuna luce a una specifica posizione nella tua immagine, disabilitazione luci, regolazione automatica delle impostazioni di Hyperion! In breve: tutto ciò che ti serve sono un paio di click e sei pronto!", "wiz_yeelight_intro1": "Questi assistenti Configurano Hyperion per il sistema Yeelight. Le funzionalità sono: rilevamento automatico Yeelights, assegnazione di ciascuna luce a una specifica posizione nella tua immagine, disabilitazione luci, regolazione automatica delle impostazioni di Hyperion! In breve: tutto ciò che ti serve sono un paio di click e sei pronto!",
"wiz_yeelight_noLights": "Nessuna Yeelight trovata! Connetti le luci alla rete o configurale manualmente.",
"wiz_yeelight_title": "Assistente Yeelight", "wiz_yeelight_title": "Assistente Yeelight",
"wiz_yeelight_unsupported": "Non supportato" "wiz_yeelight_unsupported": "Non supportato"
} }

View File

@ -296,7 +296,6 @@
"edt_conf_fbs_heading_title": "Flatbuffers Server", "edt_conf_fbs_heading_title": "Flatbuffers Server",
"edt_conf_fbs_timeout_expl": "Als er voor een bepaalde tijd geen data binnenkomt, zal de component worden uitgeschakeld.", "edt_conf_fbs_timeout_expl": "Als er voor een bepaalde tijd geen data binnenkomt, zal de component worden uitgeschakeld.",
"edt_conf_fbs_timeout_title": "Timeout", "edt_conf_fbs_timeout_title": "Timeout",
"edt_conf_fg_device_title": "Apparaat",
"edt_conf_fg_display_expl": "Selecteer welk scherm moet worden opgenomen (multi-scherm setup)", "edt_conf_fg_display_expl": "Selecteer welk scherm moet worden opgenomen (multi-scherm setup)",
"edt_conf_fg_display_title": "Scherm", "edt_conf_fg_display_title": "Scherm",
"edt_conf_fg_frequency_Hz_expl": "Hoe snel nieuw beeld wordt opgenomen", "edt_conf_fg_frequency_Hz_expl": "Hoe snel nieuw beeld wordt opgenomen",
@ -910,7 +909,6 @@
"wiz_wizavail": "Wizard beschikbaar", "wiz_wizavail": "Wizard beschikbaar",
"wiz_yeelight_desc2": "Kies nu welke lampen moeten worden toegevoegd. De positie wijst de lamp toe aan een specifieke positie op uw \"foto\". Uitgeschakelde lampen worden niet toegevoegd. Druk op de knop aan de rechterkant om afzonderlijke lampen te identificeren.", "wiz_yeelight_desc2": "Kies nu welke lampen moeten worden toegevoegd. De positie wijst de lamp toe aan een specifieke positie op uw \"foto\". Uitgeschakelde lampen worden niet toegevoegd. Druk op de knop aan de rechterkant om afzonderlijke lampen te identificeren.",
"wiz_yeelight_intro1": "Deze wizards configureren Hyperion voor het Yeelight-systeem. Functies zijn de automatische detectie van de Yeelighs, waarbij elk licht op een specifieke positie op uw foto wordt ingesteld of uitgeschakeld en de Hyperion-instellingen automatisch worden afgestemd! Kortom: u heeft slechts enkele klikken nodig en u bent klaar!", "wiz_yeelight_intro1": "Deze wizards configureren Hyperion voor het Yeelight-systeem. Functies zijn de automatische detectie van de Yeelighs, waarbij elk licht op een specifieke positie op uw foto wordt ingesteld of uitgeschakeld en de Hyperion-instellingen automatisch worden afgestemd! Kortom: u heeft slechts enkele klikken nodig en u bent klaar!",
"wiz_yeelight_noLights": "Geen Yeelights gevonden! Zorg ervoor dat de lampen op het netwerk zijn aangesloten of configureer ze mannelijk.",
"wiz_yeelight_title": "Yeelight Wizard", "wiz_yeelight_title": "Yeelight Wizard",
"wiz_yeelight_unsupported": "Niet ondersteund" "wiz_yeelight_unsupported": "Niet ondersteund"
} }

View File

@ -159,7 +159,7 @@
"dashboard_componentbox_label_status": "Status", "dashboard_componentbox_label_status": "Status",
"dashboard_componentbox_label_title": "Status komponentów", "dashboard_componentbox_label_title": "Status komponentów",
"dashboard_infobox_label_currenthyp": "Twoja wersja Hyperion:", "dashboard_infobox_label_currenthyp": "Twoja wersja Hyperion:",
"dashboard_infobox_label_disableh": "Wyłącz instancję: 1 $", "dashboard_infobox_label_disableh": "Wyłącz instancję: $1",
"dashboard_infobox_label_enableh": "Uruchom Hyperion", "dashboard_infobox_label_enableh": "Uruchom Hyperion",
"dashboard_infobox_label_instance": "Instancja:", "dashboard_infobox_label_instance": "Instancja:",
"dashboard_infobox_label_latesthyp": "Najnowsza wersja Hyperion:", "dashboard_infobox_label_latesthyp": "Najnowsza wersja Hyperion:",
@ -296,7 +296,6 @@
"edt_conf_fbs_heading_title": "Server Flatbuffers", "edt_conf_fbs_heading_title": "Server Flatbuffers",
"edt_conf_fbs_timeout_expl": "Jeśli w danym okresie nie zostaną odebrane żadne dane, komponent zostanie (miękko) wyłączony.", "edt_conf_fbs_timeout_expl": "Jeśli w danym okresie nie zostaną odebrane żadne dane, komponent zostanie (miękko) wyłączony.",
"edt_conf_fbs_timeout_title": "Timeout", "edt_conf_fbs_timeout_title": "Timeout",
"edt_conf_fg_device_title": "Urządzenie",
"edt_conf_fg_display_expl": "Wybierz pulpit, który ma zostać przechwycony (konfiguracja wielu monitorów)", "edt_conf_fg_display_expl": "Wybierz pulpit, który ma zostać przechwycony (konfiguracja wielu monitorów)",
"edt_conf_fg_display_title": "Pulpit", "edt_conf_fg_display_title": "Pulpit",
"edt_conf_fg_frequency_Hz_expl": "Jak często rejestrowane są nowe zdjęcia", "edt_conf_fg_frequency_Hz_expl": "Jak często rejestrowane są nowe zdjęcia",
@ -703,12 +702,12 @@
"general_comp_BLACKBORDER": "Usuń czarne pasy", "general_comp_BLACKBORDER": "Usuń czarne pasy",
"general_comp_BOBLIGHTSERVER": "Serwer Boblight", "general_comp_BOBLIGHTSERVER": "Serwer Boblight",
"general_comp_FLATBUFSERVER": "Serwer FlatBuffers", "general_comp_FLATBUFSERVER": "Serwer FlatBuffers",
"general_comp_FORWARDER": "Przekazywanie wejścia", "general_comp_FORWARDER": "Przekazyw. wejścia",
"general_comp_GRABBER": "Przechwytywanie pulpitu", "general_comp_GRABBER": "Przechwytyw. pulpitu",
"general_comp_LEDDEVICE": "Urządzenie LED", "general_comp_LEDDEVICE": "Urządzenie LED",
"general_comp_PROTOSERVER": "Serwer protokołu buforowania", "general_comp_PROTOSERVER": "Serwer protokołu buforowania",
"general_comp_SMOOTHING": "Wygładzanie animacji", "general_comp_SMOOTHING": "Wygładzanie animacji",
"general_comp_V4L": "Przechwytywanie USB", "general_comp_V4L": "Przechwytyw. USB",
"general_country_de": "Niemcy (Germany)", "general_country_de": "Niemcy (Germany)",
"general_country_es": "Hiszpania (Spain)", "general_country_es": "Hiszpania (Spain)",
"general_country_fr": "Francja (France)", "general_country_fr": "Francja (France)",
@ -843,6 +842,9 @@
"update_label_type": "Typ:", "update_label_type": "Typ:",
"update_no_updates_for_branch": "Brak aktualizacji dla wybranej wersji kanału.", "update_no_updates_for_branch": "Brak aktualizacji dla wybranej wersji kanału.",
"update_versreminder": "Twoja wersja: $1", "update_versreminder": "Twoja wersja: $1",
"wiz_atmoorb_desc2": "Teraz wybierz, które kule mają zostać dodane. Pozycja przypisuje lampę do określonej pozycji na twoim \"obrazie\". Wyłączone lampy nie zostaną dodane. Aby zidentyfikować pojedyncze lampy, naciśnij przycisk po prawej stronie.",
"wiz_atmoorb_intro1": "Ten kreator konfiguruje Hyperion dla AtmoOrbs. Funkcje obejmują automatyczne wykrywanie AtmoOrb, ustawianie każdego światła w określonej pozycji w obrazie lub wyłączanie go i automatyczne dostrajanie ustawień Hyperion! Krótko mówiąc: wystarczy kilka kliknięć i gotowe!",
"wiz_atmoorb_title": "Kreator AtmoOrb",
"wiz_cc_adjustgamma": "Gamma: Musisz dostosować poziomy gamma każdego kanału, aż uzyskasz taką samą postrzeganą ilość dla każdego kanału. Wskazówka: Neutralny to 1.0! Na przykład, jeśli twoja szarość jest nieco czerwonawa, oznacza to, że musisz zwiększyć czerwoną gamma, aby zmniejszyć ilość czerwieni (im więcej gamma, tym mniej koloru).", "wiz_cc_adjustgamma": "Gamma: Musisz dostosować poziomy gamma każdego kanału, aż uzyskasz taką samą postrzeganą ilość dla każdego kanału. Wskazówka: Neutralny to 1.0! Na przykład, jeśli twoja szarość jest nieco czerwonawa, oznacza to, że musisz zwiększyć czerwoną gamma, aby zmniejszyć ilość czerwieni (im więcej gamma, tym mniej koloru).",
"wiz_cc_adjustit": "Dostosuj swoje „$1”, aż będziesz z niego zadowolony. Zwróć uwagę: Im więcej zmienisz od wartości domyślnej, tym bardziej zmniejszy się dostępne spektrum kolorów (wpływa to również na kolory pomiędzy). W zależności od spektrum kolorów telewizora / LED wyniki mogą się różnić.", "wiz_cc_adjustit": "Dostosuj swoje „$1”, aż będziesz z niego zadowolony. Zwróć uwagę: Im więcej zmienisz od wartości domyślnej, tym bardziej zmniejszy się dostępne spektrum kolorów (wpływa to również na kolory pomiędzy). W zależności od spektrum kolorów telewizora / LED wyniki mogą się różnić.",
"wiz_cc_backlight": "Dodatkowo możesz zdefiniować podświetlenie, aby uporządkować „złe kolory” w prawie ciemnych obszarach lub jeśli nie lubisz przełączać między kolorem a wyłączaniem podczas oglądania. Możesz również zdefiniować konkretny kolor, który będzie używany jako podświetlenie. Jest to wyłączone w stanach „Wył.”, „Kolor” i „Efekt”.", "wiz_cc_backlight": "Dodatkowo możesz zdefiniować podświetlenie, aby uporządkować „złe kolory” w prawie ciemnych obszarach lub jeśli nie lubisz przełączać między kolorem a wyłączaniem podczas oglądania. Możesz również zdefiniować konkretny kolor, który będzie używany jako podświetlenie. Jest to wyłączone w stanach „Wył.”, „Kolor” i „Efekt”.",
@ -910,7 +912,6 @@
"wiz_wizavail": "Kreator dostępny", "wiz_wizavail": "Kreator dostępny",
"wiz_yeelight_desc2": "Teraz wybierz, które lampy chcesz dodać. Pozycja przypisuje lampę do określonej pozycji na twoim \"obrazie\". Wyłączone lampy nie zostaną dodane. Aby zidentyfikować pojedyncze lampy, naciśnij przycisk po prawej stronie.", "wiz_yeelight_desc2": "Teraz wybierz, które lampy chcesz dodać. Pozycja przypisuje lampę do określonej pozycji na twoim \"obrazie\". Wyłączone lampy nie zostaną dodane. Aby zidentyfikować pojedyncze lampy, naciśnij przycisk po prawej stronie.",
"wiz_yeelight_intro1": "Ten kreator konfiguruje Hyperion dla systemu Yeelight. Funkcje obejmują automatyczne wykrywanie Yeelighów, ustawianie każdego światła w określonej pozycji na zdjęciu lub wyłączanie go i automatyczne dostrajanie ustawień Hyperiona! Krótko mówiąc: wystarczy kilka kliknięć i gotowe!", "wiz_yeelight_intro1": "Ten kreator konfiguruje Hyperion dla systemu Yeelight. Funkcje obejmują automatyczne wykrywanie Yeelighów, ustawianie każdego światła w określonej pozycji na zdjęciu lub wyłączanie go i automatyczne dostrajanie ustawień Hyperiona! Krótko mówiąc: wystarczy kilka kliknięć i gotowe!",
"wiz_yeelight_noLights": "Nie znaleziono Yeelights! Podłącz światła do sieci lub skonfiguruj je ręcznie.",
"wiz_yeelight_title": "Kreator Yeelight", "wiz_yeelight_title": "Kreator Yeelight",
"wiz_yeelight_unsupported": "Niewspierane" "wiz_yeelight_unsupported": "Niewspierane"
} }

View File

@ -95,6 +95,8 @@
"conf_leds_layout_ma_position": "Inmatning", "conf_leds_layout_ma_position": "Inmatning",
"conf_leds_layout_ma_vert": "Vertikal", "conf_leds_layout_ma_vert": "Vertikal",
"conf_leds_layout_matrix": "Matrislayout (LED-vägg)", "conf_leds_layout_matrix": "Matrislayout (LED-vägg)",
"conf_leds_layout_pbl": "Punkt, vänster botten",
"conf_leds_layout_pbr": "Punkt, höger botten",
"conf_leds_layout_peview": "Förhandsvisning av LED-layout", "conf_leds_layout_peview": "Förhandsvisning av LED-layout",
"conf_leds_layout_preview_l1": "Detta är din första LED (ingångsposition)", "conf_leds_layout_preview_l1": "Detta är din första LED (ingångsposition)",
"conf_leds_layout_preview_l2": "Detta visualiserar datariktningen (andra/tredje led)", "conf_leds_layout_preview_l2": "Detta visualiserar datariktningen (andra/tredje led)",
@ -103,8 +105,11 @@
"conf_leds_layout_preview_originMA": "Skapad från Matrislayout (LED-vägg)", "conf_leds_layout_preview_originMA": "Skapad från Matrislayout (LED-vägg)",
"conf_leds_layout_preview_originTEXT": "Skapad från: Textfält", "conf_leds_layout_preview_originTEXT": "Skapad från: Textfält",
"conf_leds_layout_preview_totalleds": "Totalt antal LEDs: $1", "conf_leds_layout_preview_totalleds": "Totalt antal LEDs: $1",
"conf_leds_layout_ptl": "Punkt, vänster toppen",
"conf_leds_layout_ptlh": "Horisontell", "conf_leds_layout_ptlh": "Horisontell",
"conf_leds_layout_ptln": "Trapespunkter",
"conf_leds_layout_ptlv": "Vertikal", "conf_leds_layout_ptlv": "Vertikal",
"conf_leds_layout_ptr": "Punkt, höger toppen",
"conf_leds_layout_textf1": "Detta textfält visar (som standard) din nuvarande laddade layout och skrivs över om du genererar en ny med alternativen ovan. Valfritt kan du utföra ytterligare redigeringar.", "conf_leds_layout_textf1": "Detta textfält visar (som standard) din nuvarande laddade layout och skrivs över om du genererar en ny med alternativen ovan. Valfritt kan du utföra ytterligare redigeringar.",
"conf_leds_nav_label_ledcontroller": "LED-styrenhet", "conf_leds_nav_label_ledcontroller": "LED-styrenhet",
"conf_leds_nav_label_ledlayout": "LED layout", "conf_leds_nav_label_ledlayout": "LED layout",
@ -169,6 +174,7 @@
"dashboard_label_intro": "Denna sida ger dig en snabb överblick över din Hyperion-installation och visar dig de senaste nyheterna från Hyperion-bloggen.", "dashboard_label_intro": "Denna sida ger dig en snabb överblick över din Hyperion-installation och visar dig de senaste nyheterna från Hyperion-bloggen.",
"dashboard_message_default_password": "Standardlösenordet för webbanvändargränssnittet är inställt. Vi rekommenderar starkt att ändra detta.", "dashboard_message_default_password": "Standardlösenordet för webbanvändargränssnittet är inställt. Vi rekommenderar starkt att ändra detta.",
"dashboard_message_default_password_t": "Webbanvändargränssnittets standardlösenord är inställt", "dashboard_message_default_password_t": "Webbanvändargränssnittets standardlösenord är inställt",
"dashboard_message_do_not_show_again": "Visa inte detta meddelande igen",
"dashboard_message_global_setting": "Inställningarna på den här sidan beror inte på en specifik instans. Ändringar lagras globalt för alla instanser.", "dashboard_message_global_setting": "Inställningarna på den här sidan beror inte på en specifik instans. Ändringar lagras globalt för alla instanser.",
"dashboard_message_global_setting_t": "Instansoberoende inställning", "dashboard_message_global_setting_t": "Instansoberoende inställning",
"dashboard_newsbox_label_title": "Hyperion-Blog", "dashboard_newsbox_label_title": "Hyperion-Blog",
@ -230,7 +236,7 @@
"edt_conf_color_id_expl": "Tilldelat användarnamn", "edt_conf_color_id_expl": "Tilldelat användarnamn",
"edt_conf_color_id_title": "ID", "edt_conf_color_id_title": "ID",
"edt_conf_color_imageToLedMappingType_expl": "Om inte \"flerfärgad\" kommer din LED-layout att skrivas över med en annan bildtilldelning", "edt_conf_color_imageToLedMappingType_expl": "Om inte \"flerfärgad\" kommer din LED-layout att skrivas över med en annan bildtilldelning",
"edt_conf_color_imageToLedMappingType_title": "LED-tilldelningstyp", "edt_conf_color_imageToLedMappingType_title": "LED-områdestilldelning",
"edt_conf_color_leds_expl": "Tilldelas alla (*) lysdioder eller endast till vissa LED-nummer (0-17).", "edt_conf_color_leds_expl": "Tilldelas alla (*) lysdioder eller endast till vissa LED-nummer (0-17).",
"edt_conf_color_leds_title": "LED index", "edt_conf_color_leds_title": "LED index",
"edt_conf_color_magenta_expl": "Det kalibrerade magentavärdet.", "edt_conf_color_magenta_expl": "Det kalibrerade magentavärdet.",
@ -257,8 +263,18 @@
"edt_conf_enum_bbdefault": "Standard", "edt_conf_enum_bbdefault": "Standard",
"edt_conf_enum_bbosd": "OSD", "edt_conf_enum_bbosd": "OSD",
"edt_conf_enum_bgr": "BGR", "edt_conf_enum_bgr": "BGR",
"edt_conf_enum_bottom_up": "Botten upp",
"edt_conf_enum_brg": "BRG", "edt_conf_enum_brg": "BRG",
"edt_conf_enum_color": "Färg", "edt_conf_enum_color": "Färg",
"edt_conf_enum_custom": "Anpassad",
"edt_conf_enum_dl_error": "Fel",
"edt_conf_enum_dl_informational": "Informativ",
"edt_conf_enum_dl_nodebug": "Ingen felsökning",
"edt_conf_enum_dl_statechange": "Tillståndsförändring",
"edt_conf_enum_dl_verbose": "Omfattande",
"edt_conf_enum_dl_verbose1": "Riklighetsnivå 1",
"edt_conf_enum_dl_verbose2": "Riklighetsnivå 2",
"edt_conf_enum_dl_verbose3": "Riklighetsnivå 3",
"edt_conf_enum_effect": "Effekt", "edt_conf_enum_effect": "Effekt",
"edt_conf_enum_gbr": "GBR", "edt_conf_enum_gbr": "GBR",
"edt_conf_enum_grb": "GRB", "edt_conf_enum_grb": "GRB",
@ -273,13 +289,13 @@
"edt_conf_enum_rbg": "RBG", "edt_conf_enum_rbg": "RBG",
"edt_conf_enum_rgb": "RGB", "edt_conf_enum_rgb": "RGB",
"edt_conf_enum_right_left": "Höger till vänster", "edt_conf_enum_right_left": "Höger till vänster",
"edt_conf_enum_top_down": "Top ner",
"edt_conf_enum_transeffect_smooth": "Mjuk", "edt_conf_enum_transeffect_smooth": "Mjuk",
"edt_conf_enum_transeffect_sudden": "Plötslig", "edt_conf_enum_transeffect_sudden": "Plötslig",
"edt_conf_enum_unicolor_mean": "Enfärg", "edt_conf_enum_unicolor_mean": "Enfärg",
"edt_conf_fbs_heading_title": "Flatbuffers-server", "edt_conf_fbs_heading_title": "Flatbuffers-server",
"edt_conf_fbs_timeout_expl": "Om ingen data tas emot under den angivna tiden inaktiveras komponenten (tillfälligt)", "edt_conf_fbs_timeout_expl": "Om ingen data tas emot under den angivna tiden inaktiveras komponenten (tillfälligt)",
"edt_conf_fbs_timeout_title": "Timeout", "edt_conf_fbs_timeout_title": "Timeout",
"edt_conf_fg_device_title": "Enhet",
"edt_conf_fg_display_expl": "Ange vilket skrivbord du vill spela in från. (Multi Monitor Setup)", "edt_conf_fg_display_expl": "Ange vilket skrivbord du vill spela in från. (Multi Monitor Setup)",
"edt_conf_fg_display_title": "Visa", "edt_conf_fg_display_title": "Visa",
"edt_conf_fg_frequency_Hz_expl": "Hur ofta nya bilder tas", "edt_conf_fg_frequency_Hz_expl": "Hur ofta nya bilder tas",
@ -430,8 +446,12 @@
"edt_dev_spec_brightnessMax_title": "Högsta ljusstyrka", "edt_dev_spec_brightnessMax_title": "Högsta ljusstyrka",
"edt_dev_spec_brightnessMin_title": "Minsta ljusstyrka", "edt_dev_spec_brightnessMin_title": "Minsta ljusstyrka",
"edt_dev_spec_brightnessThreshold_title": "Minsta signalstyrka för ljusstyrka", "edt_dev_spec_brightnessThreshold_title": "Minsta signalstyrka för ljusstyrka",
"edt_dev_spec_chanperfixture_title": "Kanaler per fixtur",
"edt_dev_spec_cid_title": "CID", "edt_dev_spec_cid_title": "CID",
"edt_dev_spec_clientKey_title": "Klientnyckel",
"edt_dev_spec_colorComponent_title": "Färgkomponent", "edt_dev_spec_colorComponent_title": "Färgkomponent",
"edt_dev_spec_debugLevel_title": "Felsökningsnivå för Streameranslutning",
"edt_dev_spec_debugStreamer_title": "Streamerfelsökning",
"edt_dev_spec_delayAfterConnect_title": "Försening efter anslutning", "edt_dev_spec_delayAfterConnect_title": "Försening efter anslutning",
"edt_dev_spec_dithering_title": "Ditrering", "edt_dev_spec_dithering_title": "Ditrering",
"edt_dev_spec_dmaNumber_title": "DMA-kanal", "edt_dev_spec_dmaNumber_title": "DMA-kanal",
@ -439,6 +459,7 @@
"edt_dev_spec_gpioBcm_title": "GPIO-stift", "edt_dev_spec_gpioBcm_title": "GPIO-stift",
"edt_dev_spec_gpioMap_title": "GPIO-kartläggning", "edt_dev_spec_gpioMap_title": "GPIO-kartläggning",
"edt_dev_spec_gpioNumber_title": "GPIO-nummer", "edt_dev_spec_gpioNumber_title": "GPIO-nummer",
"edt_dev_spec_groupId_title": "Grupp-ID",
"edt_dev_spec_header_title": "Specifika inställningar", "edt_dev_spec_header_title": "Specifika inställningar",
"edt_dev_spec_interpolation_title": "Interpolation", "edt_dev_spec_interpolation_title": "Interpolation",
"edt_dev_spec_intervall_title": "Intervall", "edt_dev_spec_intervall_title": "Intervall",
@ -458,7 +479,11 @@
"edt_dev_spec_networkDevicePort_title": "Port", "edt_dev_spec_networkDevicePort_title": "Port",
"edt_dev_spec_numberOfLeds_title": "Antal LEDs", "edt_dev_spec_numberOfLeds_title": "Antal LEDs",
"edt_dev_spec_orbIds_title": "Sfär-ID(n)", "edt_dev_spec_orbIds_title": "Sfär-ID(n)",
"edt_dev_spec_order_left_right_title": "2.",
"edt_dev_spec_order_top_down_title": "1.",
"edt_dev_spec_outputPath_title": "Sökväg", "edt_dev_spec_outputPath_title": "Sökväg",
"edt_dev_spec_panel_start_position": "Startpanel [0-max-panel]",
"edt_dev_spec_panelorganisation_title": "Panelnumreringssekvens",
"edt_dev_spec_pid_title": "PID", "edt_dev_spec_pid_title": "PID",
"edt_dev_spec_port_title": "Port", "edt_dev_spec_port_title": "Port",
"edt_dev_spec_printTimeStamp_title": "Lägg till tidsstämpel", "edt_dev_spec_printTimeStamp_title": "Lägg till tidsstämpel",
@ -466,13 +491,19 @@
"edt_dev_spec_restoreOriginalState_title": "Återställ lampans ursprungliga tillstånd när den inaktiveras", "edt_dev_spec_restoreOriginalState_title": "Återställ lampans ursprungliga tillstånd när den inaktiveras",
"edt_dev_spec_serial_title": "Serienummer", "edt_dev_spec_serial_title": "Serienummer",
"edt_dev_spec_spipath_title": "SPI-väg", "edt_dev_spec_spipath_title": "SPI-väg",
"edt_dev_spec_sslHSTimeoutMax_title": "Maximal Streamer-handskakningstimeout",
"edt_dev_spec_sslHSTimeoutMin_title": "Streamer-handskakningstimeout minimum",
"edt_dev_spec_sslReadTimeout_title": "Streamer-avläsningstimeout",
"edt_dev_spec_switchOffOnBlack_title": "Stäng av när svart", "edt_dev_spec_switchOffOnBlack_title": "Stäng av när svart",
"edt_dev_spec_switchOffOnbelowMinBrightness_title": "Stäng av, under minimum",
"edt_dev_spec_targetIpHost_title": "Mål IP/värdnamn", "edt_dev_spec_targetIpHost_title": "Mål IP/värdnamn",
"edt_dev_spec_targetIp_title": "Mål-IP", "edt_dev_spec_targetIp_title": "Mål-IP",
"edt_dev_spec_transeffect_title": "Övergångseffekt", "edt_dev_spec_transeffect_title": "Övergångseffekt",
"edt_dev_spec_transistionTimeExtra_title": "Extra mörkertid",
"edt_dev_spec_transistionTime_title": "Övergångstid", "edt_dev_spec_transistionTime_title": "Övergångstid",
"edt_dev_spec_uid_title": "UID", "edt_dev_spec_uid_title": "UID",
"edt_dev_spec_universe_title": "Universal", "edt_dev_spec_universe_title": "Universal",
"edt_dev_spec_useEntertainmentAPI_title": "Använd Hue Entertainment API\n",
"edt_dev_spec_useOrbSmoothing_title": "Sfärisk utjämning", "edt_dev_spec_useOrbSmoothing_title": "Sfärisk utjämning",
"edt_dev_spec_useRgbwProtocol_title": "Använd RGBW-protokoll", "edt_dev_spec_useRgbwProtocol_title": "Använd RGBW-protokoll",
"edt_dev_spec_username_title": "Användarnamn", "edt_dev_spec_username_title": "Användarnamn",
@ -688,11 +719,14 @@
"general_speech_de": "Tyska", "general_speech_de": "Tyska",
"general_speech_en": "Engelska", "general_speech_en": "Engelska",
"general_speech_es": "Spanska", "general_speech_es": "Spanska",
"general_speech_fr": "Franska",
"general_speech_it": "Italienska", "general_speech_it": "Italienska",
"general_speech_nl": "Holländska", "general_speech_nl": "Holländska",
"general_speech_pl": "Polska", "general_speech_pl": "Polska",
"general_speech_ro": "Rumänska", "general_speech_ro": "Rumänska",
"general_speech_sv": "Svenska", "general_speech_sv": "Svenska",
"general_speech_tr": "Turkiska",
"general_speech_vi": "Vietnamesiska",
"general_webui_title": "Hyperion - Webbkonfiguration", "general_webui_title": "Hyperion - Webbkonfiguration",
"general_wiki_moreto": "Mer information om \"$1\" finns i vår", "general_wiki_moreto": "Mer information om \"$1\" finns i vår",
"infoDialog_checklist_title": "Checklista!", "infoDialog_checklist_title": "Checklista!",
@ -808,6 +842,9 @@
"update_label_type": "Typ:", "update_label_type": "Typ:",
"update_no_updates_for_branch": "Inga uppdateringar för vald versionskanal.", "update_no_updates_for_branch": "Inga uppdateringar för vald versionskanal.",
"update_versreminder": "Din version: $1", "update_versreminder": "Din version: $1",
"wiz_atmoorb_desc2": "Välj vilka kulor som ska läggas till. Positionen tilldelar lampan till en specifik position på din \"bild\". Inaktiverade lampor kommer inte att läggas till. För att identifiera enstaka lampor, tryck på knappen till höger.",
"wiz_atmoorb_intro1": "Den här guiden konfigurerar Hyperion för AtmoOrbs. Funktionerna är den automatiska detekteringen av AtmoOrb, genom att ställa in varje ljus till en specifik position på din bild eller inaktivera den och ställ in Hyperion-inställningarna automatiskt! Kort sagt: Några klick och du är klar!",
"wiz_atmoorb_title": "AtmoOrb-Guide",
"wiz_cc_adjustgamma": "Gamma: Du ställer in varje gammakanal så att den \"gråa lutningen\" på lysdioderna inte ser grön-/röd-/blåaktig ut. Tips: Neutral är 1,0! T.ex.: Om grå är lite rödaktig betyder det att du måste öka din gamma för röd för att minska mängden röd (mer gamma ger mindre färg).", "wiz_cc_adjustgamma": "Gamma: Du ställer in varje gammakanal så att den \"gråa lutningen\" på lysdioderna inte ser grön-/röd-/blåaktig ut. Tips: Neutral är 1,0! T.ex.: Om grå är lite rödaktig betyder det att du måste öka din gamma för röd för att minska mängden röd (mer gamma ger mindre färg).",
"wiz_cc_adjustit": "Justera din \"$1\" tills du är nöjd med det. Observera: Ju mer du justerar bort från standardvärdet minskar det tillgängliga färgspektrumet (Detta påverkar också färgerna däremellan). Beroende på din TV/LED-färgspektrum kan dina resultat variera.", "wiz_cc_adjustit": "Justera din \"$1\" tills du är nöjd med det. Observera: Ju mer du justerar bort från standardvärdet minskar det tillgängliga färgspektrumet (Detta påverkar också färgerna däremellan). Beroende på din TV/LED-färgspektrum kan dina resultat variera.",
"wiz_cc_backlight": "Dessutom kan du ställa in en bakgrundsbelysning för att undvika \"irriterande färger\" i en nästan svart bild eller att du tycker att ändringen mellan färg och av för ansträngande. Dessutom kan det avgöras om detta ska vara färgat eller bara vitt. Inaktiveras automatiskt i läget \"Av\" såväl som \"Färg\" och \"Effekt\".", "wiz_cc_backlight": "Dessutom kan du ställa in en bakgrundsbelysning för att undvika \"irriterande färger\" i en nästan svart bild eller att du tycker att ändringen mellan färg och av för ansträngande. Dessutom kan det avgöras om detta ska vara färgat eller bara vitt. Inaktiveras automatiskt i läget \"Av\" såväl som \"Färg\" och \"Effekt\".",
@ -859,6 +896,11 @@
"wiz_hue_searchb": "Letar efter brygga...", "wiz_hue_searchb": "Letar efter brygga...",
"wiz_hue_title": "Philips Hue Guide", "wiz_hue_title": "Philips Hue Guide",
"wiz_hue_username": "Användar-ID", "wiz_hue_username": "Användar-ID",
"wiz_identify": "Identifiera",
"wiz_identify_light": "Identifiera $1",
"wiz_ids_disabled": "Inaktiverad",
"wiz_ids_entire": "Hela bilden",
"wiz_pos": "Position/läge",
"wiz_rgb_expl": "Den färgade punkten kommer att ändra färg (röd, grön) varje x sekund, samtidigt som dina lysdioder byter till den färgen. Svara på frågorna längst ner för att kontrollera/korrigera din byte-order.", "wiz_rgb_expl": "Den färgade punkten kommer att ändra färg (röd, grön) varje x sekund, samtidigt som dina lysdioder byter till den färgen. Svara på frågorna längst ner för att kontrollera/korrigera din byte-order.",
"wiz_rgb_intro1": "Den här guiden leder dig genom processen för att hitta rätt färgordning för dina lysdioder. Klicka på Fortsätt för att börja.", "wiz_rgb_intro1": "Den här guiden leder dig genom processen för att hitta rätt färgordning för dina lysdioder. Klicka på Fortsätt för att börja.",
"wiz_rgb_intro2": "När behöver du den här guiden? Exempel: Du ställer in färgen röd, men får istället grön eller blå. Men du kan också använda den som första-gången-konfiguration.", "wiz_rgb_intro2": "När behöver du den här guiden? Exempel: Du ställer in färgen röd, men får istället grön eller blå. Men du kan också använda den som första-gången-konfiguration.",
@ -867,5 +909,9 @@
"wiz_rgb_qrend": "...röd?", "wiz_rgb_qrend": "...röd?",
"wiz_rgb_switchevery": "Byt färg varje...", "wiz_rgb_switchevery": "Byt färg varje...",
"wiz_rgb_title": "RGB-byte-ordningsguide", "wiz_rgb_title": "RGB-byte-ordningsguide",
"wiz_wizavail": "Guiden tillgänglig" "wiz_wizavail": "Guiden tillgänglig",
"wiz_yeelight_desc2": "Välj nu vilka lampor som ska läggas till. Positionen tilldelar lampan en specifik position på din \"bild\". Inaktiverade lampor läggs inte till. För att identifiera enstaka lampor, tryck på knappen till höger.",
"wiz_yeelight_intro1": "De här guiderna konfigurerar Hyperion för Yeelight-systemet. Funktionerna är Yeelights automatiska detektering, ställ in varje ljus till en specifik position på din bild eller inaktivera den och ställ in Hyperion-inställningarna automatiskt! Kort sagt: Några klick och du är klar!",
"wiz_yeelight_title": "Yeelight-Guide",
"wiz_yeelight_unsupported": "Utan stöd"
} }

View File

@ -184,7 +184,6 @@
"edt_conf_enum_unicolor_mean": "Tek renkli", "edt_conf_enum_unicolor_mean": "Tek renkli",
"edt_conf_fbs_heading_title": "Flatbuffers Sunucusu", "edt_conf_fbs_heading_title": "Flatbuffers Sunucusu",
"edt_conf_fbs_timeout_title": "Zaman aşımı", "edt_conf_fbs_timeout_title": "Zaman aşımı",
"edt_conf_fg_device_title": "Aygıt",
"edt_conf_fg_display_title": "Ekran", "edt_conf_fg_display_title": "Ekran",
"edt_conf_fg_frequency_Hz_title": "Yakalama frekansı", "edt_conf_fg_frequency_Hz_title": "Yakalama frekansı",
"edt_conf_fg_height_title": "Yükseklik", "edt_conf_fg_height_title": "Yükseklik",

View File

@ -257,7 +257,6 @@
"edt_conf_fbs_heading_title": "Máy chủ Flatbuffers", "edt_conf_fbs_heading_title": "Máy chủ Flatbuffers",
"edt_conf_fbs_timeout_expl": "Nếu không có dữ liệu nào được nhận trong khoảng thời gian nhất định, thành phần sẽ bị tắt (mềm).", "edt_conf_fbs_timeout_expl": "Nếu không có dữ liệu nào được nhận trong khoảng thời gian nhất định, thành phần sẽ bị tắt (mềm).",
"edt_conf_fbs_timeout_title": "Hết giờ", "edt_conf_fbs_timeout_title": "Hết giờ",
"edt_conf_fg_device_title": "Thiết bị",
"edt_conf_fg_display_expl": "Chọn máy tính để bàn nào sẽ được chụp (thiết lập nhiều màn hình)", "edt_conf_fg_display_expl": "Chọn máy tính để bàn nào sẽ được chụp (thiết lập nhiều màn hình)",
"edt_conf_fg_display_title": "Trưng bày", "edt_conf_fg_display_title": "Trưng bày",
"edt_conf_fg_frequency_Hz_expl": "Tần suất chụp ảnh mới", "edt_conf_fg_frequency_Hz_expl": "Tần suất chụp ảnh mới",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -35,7 +35,7 @@ $(document).ready( function() {
}, true, true); }, true, true);
editor_color.on('change',function() { editor_color.on('change',function() {
editor_color.validate().length ? $('#btn_submit_color').attr('disabled', true) : $('#btn_submit_color').attr('disabled', false); editor_color.validate().length || window.readOnlyMode ? $('#btn_submit_color').attr('disabled', true) : $('#btn_submit_color').attr('disabled', false);
}); });
$('#btn_submit_color').off().on('click',function() { $('#btn_submit_color').off().on('click',function() {
@ -48,7 +48,8 @@ $(document).ready( function() {
}, true, true); }, true, true);
editor_smoothing.on('change',function() { editor_smoothing.on('change',function() {
editor_smoothing.validate().length ? $('#btn_submit_smoothing').attr('disabled', true) : $('#btn_submit_smoothing').attr('disabled', false); editor_smoothing.validate().length || window.readOnlyMode ? $('#btn_submit_smoothing').attr('disabled', true) : $('#btn_submit_smoothing').attr('disabled', false);
}); });
$('#btn_submit_smoothing').off().on('click',function() { $('#btn_submit_smoothing').off().on('click',function() {
@ -61,7 +62,7 @@ $(document).ready( function() {
}, true, true); }, true, true);
editor_blackborder.on('change',function() { editor_blackborder.on('change',function() {
editor_blackborder.validate().length ? $('#btn_submit_blackborder').attr('disabled', true) : $('#btn_submit_blackborder').attr('disabled', false); editor_blackborder.validate().length || window.readOnlyMode ? $('#btn_submit_blackborder').attr('disabled', true) : $('#btn_submit_blackborder').attr('disabled', false);
}); });
$('#btn_submit_blackborder').off().on('click',function() { $('#btn_submit_blackborder').off().on('click',function() {

View File

@ -70,7 +70,6 @@ $(document).ready( function() {
}); });
var instancename = window.currentHyperionInstanceName; var instancename = window.currentHyperionInstanceName;
console.log ("instancename: ",instancename);
$('#dash_statush').html(hyperion_enabled ? '<span style="color:green">'+$.i18n('general_btn_on')+'</span>' : '<span style="color:red">'+$.i18n('general_btn_off')+'</span>'); $('#dash_statush').html(hyperion_enabled ? '<span style="color:green">'+$.i18n('general_btn_on')+'</span>' : '<span style="color:red">'+$.i18n('general_btn_off')+'</span>');
$('#btn_hsc').html(hyperion_enabled ? '<button class="btn btn-sm btn-danger" onClick="requestSetComponentState(\'ALL\',false)">'+$.i18n('dashboard_infobox_label_disableh', instancename)+'</button>' : '<button class="btn btn-sm btn-success" onClick="requestSetComponentState(\'ALL\',true)">'+$.i18n('dashboard_infobox_label_enableh', instancename)+'</button>'); $('#btn_hsc').html(hyperion_enabled ? '<button class="btn btn-sm btn-danger" onClick="requestSetComponentState(\'ALL\',false)">'+$.i18n('dashboard_infobox_label_disableh', instancename)+'</button>' : '<button class="btn btn-sm btn-success" onClick="requestSetComponentState(\'ALL\',true)">'+$.i18n('dashboard_infobox_label_enableh', instancename)+'</button>');

View File

@ -43,7 +43,7 @@ $(document).ready( function() {
}, true, true); }, true, true);
effects_editor.on('change',function() { effects_editor.on('change',function() {
effects_editor.validate().length ? $('#btn_submit_effects').attr('disabled', true) : $('#btn_submit_effects').attr('disabled', false); effects_editor.validate().length || window.readOnlyMode ? $('#btn_submit_effects').attr('disabled', true) : $('#btn_submit_effects').attr('disabled', false);
}); });
$('#btn_submit_effects').off().on('click',function() { $('#btn_submit_effects').off().on('click',function() {
@ -65,11 +65,11 @@ $(document).ready( function() {
}); });
foregroundEffect_editor.on('change',function() { foregroundEffect_editor.on('change',function() {
foregroundEffect_editor.validate().length ? $('#btn_submit_foregroundEffect').attr('disabled', true) : $('#btn_submit_foregroundEffect').attr('disabled', false); foregroundEffect_editor.validate().length || window.readOnlyMode ? $('#btn_submit_foregroundEffect').attr('disabled', true) : $('#btn_submit_foregroundEffect').attr('disabled', false);
}); });
backgroundEffect_editor.on('change',function() { backgroundEffect_editor.on('change',function() {
backgroundEffect_editor.validate().length ? $('#btn_submit_backgroundEffect').attr('disabled', true) : $('#btn_submit_backgroundEffect').attr('disabled', false); backgroundEffect_editor.validate().length || window.readOnlyMode ? $('#btn_submit_backgroundEffect').attr('disabled', true) : $('#btn_submit_backgroundEffect').attr('disabled', false);
}); });
$('#btn_submit_foregroundEffect').off().on('click',function() { $('#btn_submit_foregroundEffect').off().on('click',function() {

View File

@ -83,7 +83,8 @@ $(document).ready( function() {
} }
if( effects_editor.validate().length == 0 && effectName != "") if( effects_editor.validate().length == 0 && effectName != "")
{ {
$('#btn_start_test, #btn_write').attr('disabled', false); $('#btn_start_test').attr('disabled', false);
!window.readOnlyMode ? $('#btn_write').attr('disabled', false) : $('#btn_write').attr('disabled', true);
} }
else else
{ {
@ -101,6 +102,7 @@ $(document).ready( function() {
} else { } else {
effects_editor.enable(); effects_editor.enable();
$("#eff_footer").children().attr('disabled',false); $("#eff_footer").children().attr('disabled',false);
!window.readOnlyMode ? $('#btn_write').attr('disabled', false) : $('#btn_write').attr('disabled', true);
} }
}); });

View File

@ -18,7 +18,7 @@ $(document).ready( function() {
}, true, true); }, true, true);
conf_editor.on('change',function() { conf_editor.on('change',function() {
conf_editor.validate().length ? $('#btn_submit').attr('disabled', true) : $('#btn_submit').attr('disabled', false); conf_editor.validate().length || window.readOnlyMode ? $('#btn_submit').attr('disabled', true) : $('#btn_submit').attr('disabled', false);
}); });
$('#btn_submit').off().on('click',function() { $('#btn_submit').off().on('click',function() {
@ -28,6 +28,12 @@ $(document).ready( function() {
// Instance handling // Instance handling
function handleInstanceRename(e) function handleInstanceRename(e)
{ {
conf_editor.on('change',function() {
window.readOnlyMode ? $('#btn_cl_save').attr('disabled', true) : $('#btn_submit').attr('disabled', false);
window.readOnlyMode ? $('#btn_ma_save').attr('disabled', true) : $('#btn_submit').attr('disabled', false);
});
var inst = e.currentTarget.id.split("_")[1]; var inst = e.currentTarget.id.split("_")[1];
showInfoDialog('renInst', $.i18n('conf_general_inst_renreq_t'), getInstanceNameByIndex(inst)); showInfoDialog('renInst', $.i18n('conf_general_inst_renreq_t'), getInstanceNameByIndex(inst));
@ -77,6 +83,10 @@ $(document).ready( function() {
$('#instren_'+inst[key].instance).off().on('click', handleInstanceRename); $('#instren_'+inst[key].instance).off().on('click', handleInstanceRename);
$('#inst_'+inst[key].instance).off().on('click', handleInstanceStartStop); $('#inst_'+inst[key].instance).off().on('click', handleInstanceStartStop);
$('#instdel_'+inst[key].instance).off().on('click', handleInstanceDelete); $('#instdel_'+inst[key].instance).off().on('click', handleInstanceDelete);
window.readOnlyMode ? $('#instren_'+inst[key].instance).attr('disabled', true) : $('#btn_submit').attr('disabled', false);
window.readOnlyMode ? $('#inst_'+inst[key].instance).attr('disabled', true) : $('#btn_submit').attr('disabled', false);
window.readOnlyMode ? $('#instdel_'+inst[key].instance).attr('disabled', true) : $('#btn_submit').attr('disabled', false);
} }
} }
@ -85,7 +95,7 @@ $(document).ready( function() {
buildInstanceList(); buildInstanceList();
$('#inst_name').off().on('input',function(e) { $('#inst_name').off().on('input',function(e) {
(e.currentTarget.value.length >= 5) ? $('#btn_create_inst').attr('disabled', false) : $('#btn_create_inst').attr('disabled', true); (e.currentTarget.value.length >= 5) && !window.readOnlyMode ? $('#btn_create_inst').attr('disabled', false) : $('#btn_create_inst').attr('disabled', true);
if(5-e.currentTarget.value.length >= 1 && 5-e.currentTarget.value.length <= 4) if(5-e.currentTarget.value.length >= 1 && 5-e.currentTarget.value.length <= 4)
$('#inst_chars_needed').html(5-e.currentTarget.value.length + " " + $.i18n('general_chars_needed')) $('#inst_chars_needed').html(5-e.currentTarget.value.length + " " + $.i18n('general_chars_needed'))
else else
@ -105,7 +115,7 @@ $(document).ready( function() {
//import //import
function dis_imp_btn(state) function dis_imp_btn(state)
{ {
state ? $('#btn_import_conf').attr('disabled', true) : $('#btn_import_conf').attr('disabled', false); state || window.readOnlyMode ? $('#btn_import_conf').attr('disabled', true) : $('#btn_import_conf').attr('disabled', false);
} }
function readFile(evt) function readFile(evt)

View File

@ -1,45 +1,45 @@
$(document).ready( function() { $(document).ready(function () {
performTranslation(); performTranslation();
var conf_editor_v4l2 = null; var conf_editor_v4l2 = null;
var conf_editor_fg = null; var conf_editor_fg = null;
var conf_editor_instCapt = null; var conf_editor_instCapt = null;
var V4L2_AVAIL = window.serverInfo.grabbers.available.includes("v4l2"); var V4L2_AVAIL = window.serverInfo.grabbers.available.includes("v4l2");
if(V4L2_AVAIL) { if (V4L2_AVAIL) {
// Dynamic v4l2 enum schema // Dynamic v4l2 enum schema
var v4l2_dynamic_enum_schema = { var v4l2_dynamic_enum_schema = {
"available_devices": "available_devices":
{ {
"type": "string", "type": "string",
"title": "edt_conf_v4l2_device_title", "title": "edt_conf_v4l2_device_title",
"propertyOrder" : 1, "propertyOrder": 1,
"required" : true "required": true
}, },
"device_inputs": "device_inputs":
{ {
"type": "string", "type": "string",
"title": "edt_conf_v4l2_input_title", "title": "edt_conf_v4l2_input_title",
"propertyOrder" : 3, "propertyOrder": 3,
"required" : true "required": true
}, },
"resolutions": "resolutions":
{ {
"type": "string", "type": "string",
"title": "edt_conf_v4l2_resolution_title", "title": "edt_conf_v4l2_resolution_title",
"propertyOrder" : 6, "propertyOrder": 6,
"required" : true "required": true
}, },
"framerates": "framerates":
{ {
"type": "string", "type": "string",
"title": "edt_conf_v4l2_framerate_title", "title": "edt_conf_v4l2_framerate_title",
"propertyOrder" : 9, "propertyOrder": 9,
"required" : true "required": true
} }
}; };
// Build dynamic v4l2 enum schema parts // Build dynamic v4l2 enum schema parts
var buildSchemaPart = function(key, schema, device) { var buildSchemaPart = function (key, schema, device) {
if (schema[key]) { if (schema[key]) {
var enumVals = []; var enumVals = [];
var enumTitelVals = []; var enumTitelVals = [];
@ -76,31 +76,31 @@ $(document).ready( function() {
"type": schema[key].type, "type": schema[key].type,
"title": schema[key].title, "title": schema[key].title,
"enum": [].concat(["auto"], enumVals, ["custom"]), "enum": [].concat(["auto"], enumVals, ["custom"]),
"options" : "options":
{ {
"enum_titles" : [].concat(["edt_conf_enum_automatic"], enumTitelVals, ["edt_conf_enum_custom"]), "enum_titles": [].concat(["edt_conf_enum_automatic"], enumTitelVals, ["edt_conf_enum_custom"]),
}, },
"propertyOrder" : schema[key].propertyOrder, "propertyOrder": schema[key].propertyOrder,
"required" : schema[key].required "required": schema[key].required
}; };
} }
}; };
// Switch between visible states // Switch between visible states
function toggleOption(option, state) { function toggleOption(option, state) {
$('[data-schemapath="root.grabberV4L2.'+option+'"]').toggle(state); $('[data-schemapath="root.grabberV4L2.' + option + '"]').toggle(state);
if (state) ( if (state) (
$('[data-schemapath="root.grabberV4L2.'+option+'"]').addClass('col-md-12'), $('[data-schemapath="root.grabberV4L2.' + option + '"]').addClass('col-md-12'),
$('label[for="root_grabberV4L2_'+option+'"]').css('left','10px'), $('label[for="root_grabberV4L2_' + option + '"]').css('left', '10px'),
$('[id="root_grabberV4L2_'+option+'"]').css('left','10px') $('[id="root_grabberV4L2_' + option + '"]').css('left', '10px')
); );
} }
// Watch all v4l2 dynamic fields // Watch all v4l2 dynamic fields
var setWatchers = function(schema) { var setWatchers = function (schema) {
var path = 'root.grabberV4L2.'; var path = 'root.grabberV4L2.';
Object.keys(schema).forEach(function(key) { Object.keys(schema).forEach(function (key) {
conf_editor_v4l2.watch(path + key, function() { conf_editor_v4l2.watch(path + key, function () {
var ed = conf_editor_v4l2.getEditor(path + key); var ed = conf_editor_v4l2.getEditor(path + key);
var val = ed.getValue(); var val = ed.getValue();
@ -108,7 +108,7 @@ $(document).ready( function() {
var V4L2properties = ['device_inputs', 'resolutions', 'framerates']; var V4L2properties = ['device_inputs', 'resolutions', 'framerates'];
if (val == 'custom') { if (val == 'custom') {
var grabberV4L2 = ed.parent; var grabberV4L2 = ed.parent;
V4L2properties.forEach(function(item) { V4L2properties.forEach(function (item) {
buildSchemaPart(item, v4l2_dynamic_enum_schema, 'none'); buildSchemaPart(item, v4l2_dynamic_enum_schema, 'none');
grabberV4L2.original_schema.properties[item] = window.schema.grabberV4L2.properties[item]; grabberV4L2.original_schema.properties[item] = window.schema.grabberV4L2.properties[item];
grabberV4L2.schema.properties[item] = window.schema.grabberV4L2.properties[item]; grabberV4L2.schema.properties[item] = window.schema.grabberV4L2.properties[item];
@ -123,9 +123,8 @@ $(document).ready( function() {
conf_editor_v4l2.getEditor(path + 'standard').enable(); conf_editor_v4l2.getEditor(path + 'standard').enable();
toggleOption('device', true); toggleOption('device', true);
} else if (val == 'auto') { } else if (val == 'auto') {
V4L2properties.forEach(function(item) { V4L2properties.forEach(function (item) {
conf_editor_v4l2.getEditor(path + item).setValue('auto'); conf_editor_v4l2.getEditor(path + item).setValue('auto');
conf_editor_v4l2.getEditor(path + item).disable(); conf_editor_v4l2.getEditor(path + item).disable();
}); });
@ -134,12 +133,11 @@ $(document).ready( function() {
conf_editor_v4l2.getEditor(path + 'standard').disable(); conf_editor_v4l2.getEditor(path + 'standard').disable();
(toggleOption('device', false), toggleOption('input', false), (toggleOption('device', false), toggleOption('input', false),
toggleOption('width', false), toggleOption('height', false), toggleOption('width', false), toggleOption('height', false),
toggleOption('fps', false)); toggleOption('fps', false));
} else { } else {
var grabberV4L2 = ed.parent; var grabberV4L2 = ed.parent;
V4L2properties.forEach(function(item) { V4L2properties.forEach(function (item) {
buildSchemaPart(item, v4l2_dynamic_enum_schema, val); buildSchemaPart(item, v4l2_dynamic_enum_schema, val);
grabberV4L2.original_schema.properties[item] = window.schema.grabberV4L2.properties[item]; grabberV4L2.original_schema.properties[item] = window.schema.grabberV4L2.properties[item];
grabberV4L2.schema.properties[item] = window.schema.grabberV4L2.properties[item]; grabberV4L2.schema.properties[item] = window.schema.grabberV4L2.properties[item];
@ -176,12 +174,12 @@ $(document).ready( function() {
}; };
// Insert dynamic v4l2 enum schema parts // Insert dynamic v4l2 enum schema parts
Object.keys(v4l2_dynamic_enum_schema).forEach(function(key) { Object.keys(v4l2_dynamic_enum_schema).forEach(function (key) {
buildSchemaPart(key, v4l2_dynamic_enum_schema, window.serverConfig.grabberV4L2.device); buildSchemaPart(key, v4l2_dynamic_enum_schema, window.serverConfig.grabberV4L2.device);
}); });
} }
if(window.showOptHelp) { if (window.showOptHelp) {
// Instance Capture // Instance Capture
$('#conf_cont').append(createRow('conf_cont_instCapt')); $('#conf_cont').append(createRow('conf_cont_instCapt'));
$('#conf_cont_instCapt').append(createOptPanel('fa-camera', $.i18n("edt_conf_instCapture_heading_title"), 'editor_container_instCapt', 'btn_submit_instCapt')); $('#conf_cont_instCapt').append(createOptPanel('fa-camera', $.i18n("edt_conf_instCapture_heading_title"), 'editor_container_instCapt', 'btn_submit_instCapt'));
@ -193,7 +191,7 @@ $(document).ready( function() {
$('#conf_cont_fg').append(createHelpTable(window.schema.framegrabber.properties, $.i18n("edt_conf_fg_heading_title"))); $('#conf_cont_fg').append(createHelpTable(window.schema.framegrabber.properties, $.i18n("edt_conf_fg_heading_title")));
// V4L2 - hide if not available // V4L2 - hide if not available
if(V4L2_AVAIL) { if (V4L2_AVAIL) {
$('#conf_cont').append(createRow('conf_cont_v4l')); $('#conf_cont').append(createRow('conf_cont_v4l'));
$('#conf_cont_v4l').append(createOptPanel('fa-camera', $.i18n("edt_conf_v4l2_heading_title"), 'editor_container_v4l2', 'btn_submit_v4l2')); $('#conf_cont_v4l').append(createOptPanel('fa-camera', $.i18n("edt_conf_v4l2_heading_title"), 'editor_container_v4l2', 'btn_submit_v4l2'));
$('#conf_cont_v4l').append(createHelpTable(window.schema.grabberV4L2.properties, $.i18n("edt_conf_v4l2_heading_title"))); $('#conf_cont_v4l').append(createHelpTable(window.schema.grabberV4L2.properties, $.i18n("edt_conf_v4l2_heading_title")));
@ -202,7 +200,7 @@ $(document).ready( function() {
$('#conf_cont').addClass('row'); $('#conf_cont').addClass('row');
$('#conf_cont').append(createOptPanel('fa-camera', $.i18n("edt_conf_instCapture_heading_title"), 'editor_container_instCapt', 'btn_submit_instCapt')); $('#conf_cont').append(createOptPanel('fa-camera', $.i18n("edt_conf_instCapture_heading_title"), 'editor_container_instCapt', 'btn_submit_instCapt'));
$('#conf_cont').append(createOptPanel('fa-camera', $.i18n("edt_conf_fg_heading_title"), 'editor_container_fg', 'btn_submit_fg')); $('#conf_cont').append(createOptPanel('fa-camera', $.i18n("edt_conf_fg_heading_title"), 'editor_container_fg', 'btn_submit_fg'));
if(V4L2_AVAIL) { if (V4L2_AVAIL) {
$('#conf_cont').append(createOptPanel('fa-camera', $.i18n("edt_conf_v4l2_heading_title"), 'editor_container_v4l2', 'btn_submit_v4l2')); $('#conf_cont').append(createOptPanel('fa-camera', $.i18n("edt_conf_v4l2_heading_title"), 'editor_container_v4l2', 'btn_submit_v4l2'));
} }
} }
@ -212,11 +210,11 @@ $(document).ready( function() {
instCapture: window.schema.instCapture instCapture: window.schema.instCapture
}, true, true); }, true, true);
conf_editor_instCapt.on('change',function() { conf_editor_instCapt.on('change', function () {
conf_editor_instCapt.validate().length ? $('#btn_submit_instCapt').attr('disabled', true) : $('#btn_submit_instCapt').attr('disabled', false); conf_editor_instCapt.validate().length || window.readOnlyMode ? $('#btn_submit_instCapt').attr('disabled', true) : $('#btn_submit_instCapt').attr('disabled', false);
}); });
$('#btn_submit_instCapt').off().on('click',function() { $('#btn_submit_instCapt').off().on('click', function () {
requestWriteConfig(conf_editor_instCapt.getValue()); requestWriteConfig(conf_editor_instCapt.getValue());
}); });
@ -225,24 +223,46 @@ $(document).ready( function() {
framegrabber: window.schema.framegrabber framegrabber: window.schema.framegrabber
}, true, true); }, true, true);
conf_editor_fg.on('change',function() { conf_editor_fg.on('change', function () {
conf_editor_fg.validate().length ? $('#btn_submit_fg').attr('disabled', true) : $('#btn_submit_fg').attr('disabled', false); //Remove Grabbers which are not supported
var grabbers = window.serverInfo.grabbers.available;
var selector = "root_framegrabber_type";
var options = $("#" + selector + " option");
for (var i = 0; i < options.length; i++) {
var type = options[i].value;
if (grabbers.indexOf(type) === -1) {
$("#" + selector + " option[value='" + type + "']").remove();
}
}
if (window.serverInfo.grabbers.active)
{
var activegrabber = window.serverInfo.grabbers.active.toLowerCase();
$("#" + selector + " option[value='" + activegrabber + "']").attr('selected', 'selected');
}
var selectedType = $("#root_framegrabber_type").val();
filerFgGrabberOptions(selectedType);
conf_editor_fg.validate().length || window.readOnlyMode ? $('#btn_submit_fg').attr('disabled', true) : $('#btn_submit_fg').attr('disabled', false);
}); });
$('#btn_submit_fg').off().on('click',function() { $('#btn_submit_fg').off().on('click', function () {
requestWriteConfig(conf_editor_fg.getValue()); requestWriteConfig(conf_editor_fg.getValue());
}); });
if(V4L2_AVAIL) { if (V4L2_AVAIL) {
conf_editor_v4l2 = createJsonEditor('editor_container_v4l2', { conf_editor_v4l2 = createJsonEditor('editor_container_v4l2', {
grabberV4L2 : window.schema.grabberV4L2 grabberV4L2: window.schema.grabberV4L2
}, true, true); }, true, true);
conf_editor_v4l2.on('change',function() { conf_editor_v4l2.on('change', function () {
conf_editor_v4l2.validate().length ? $('#btn_submit_v4l2').attr('disabled', true) : $('#btn_submit_v4l2').attr('disabled', false); conf_editor_v4l2.validate().length || window.readOnlyMode ? $('#btn_submit_v4l2').attr('disabled', true) : $('#btn_submit_v4l2').attr('disabled', false);
}); });
conf_editor_v4l2.on('ready', function() { conf_editor_v4l2.on('ready', function () {
setWatchers(v4l2_dynamic_enum_schema); setWatchers(v4l2_dynamic_enum_schema);
if (window.serverConfig.grabberV4L2.available_devices == 'custom' && window.serverConfig.grabberV4L2.device != 'auto') if (window.serverConfig.grabberV4L2.available_devices == 'custom' && window.serverConfig.grabberV4L2.device != 'auto')
@ -252,7 +272,7 @@ $(document).ready( function() {
conf_editor_v4l2.getEditor('root.grabberV4L2.available_devices').setValue('auto'); conf_editor_v4l2.getEditor('root.grabberV4L2.available_devices').setValue('auto');
if (window.serverConfig.grabberV4L2.available_devices == 'auto') { if (window.serverConfig.grabberV4L2.available_devices == 'auto') {
['device_inputs', 'standard', 'resolutions', 'framerates'].forEach(function(item) { ['device_inputs', 'standard', 'resolutions', 'framerates'].forEach(function (item) {
conf_editor_v4l2.getEditor('root.grabberV4L2.' + item).setValue('auto'); conf_editor_v4l2.getEditor('root.grabberV4L2.' + item).setValue('auto');
conf_editor_v4l2.getEditor('root.grabberV4L2.' + item).disable(); conf_editor_v4l2.getEditor('root.grabberV4L2.' + item).disable();
}); });
@ -266,10 +286,9 @@ $(document).ready( function() {
if (window.serverConfig.grabberV4L2.framerates == 'custom' && window.serverConfig.grabberV4L2.device != 'auto') if (window.serverConfig.grabberV4L2.framerates == 'custom' && window.serverConfig.grabberV4L2.device != 'auto')
toggleOption('fps', true); toggleOption('fps', true);
}); });
$('#btn_submit_v4l2').off().on('click',function() { $('#btn_submit_v4l2').off().on('click', function () {
var v4l2Options = conf_editor_v4l2.getValue(); var v4l2Options = conf_editor_v4l2.getValue();
if (v4l2Options.grabberV4L2.available_devices != 'custom' && v4l2Options.grabberV4L2.available_devices != 'auto') if (v4l2Options.grabberV4L2.available_devices != 'custom' && v4l2Options.grabberV4L2.available_devices != 'auto')
@ -304,31 +323,54 @@ $(document).ready( function() {
////////////////////////////////////////////////// //////////////////////////////////////////////////
//create introduction //create introduction
if(window.showOptHelp) { if (window.showOptHelp) {
createHint("intro", $.i18n('conf_grabber_fg_intro'), "editor_container_fg"); createHint("intro", $.i18n('conf_grabber_fg_intro'), "editor_container_fg");
if(V4L2_AVAIL){ if (V4L2_AVAIL) {
createHint("intro", $.i18n('conf_grabber_v4l_intro'), "editor_container_v4l2"); createHint("intro", $.i18n('conf_grabber_v4l_intro'), "editor_container_v4l2");
} }
} }
function hideEl(el) { function toggleFgOptions(el, state) {
for(var i = 0; i<el.length; i++) { for (var i = 0; i < el.length; i++) {
$('[data-schemapath*="root.framegrabber.'+el[i]+'"]').toggle(false); $('[data-schemapath*="root.framegrabber.' + el[i] + '"]').toggle(state);
} }
} }
//hide specific options function filerFgGrabberOptions(type) {
conf_editor_fg.on('ready',function() { //hide specific options for grabbers found
var grabbers = window.serverInfo.grabbers.available;
if (grabbers.indexOf('dispmanx') > -1) var grabbers = window.serverInfo.grabbers.available;
hideEl(["device","pixelDecimation"]); if (grabbers.indexOf(type) > -1) {
else if (grabbers.indexOf('x11') > -1 || grabbers.indexOf('xcb') > -1) toggleFgOptions(["width", "height", "pixelDecimation", "display"], true);
hideEl(["device","width","height"]);
else if (grabbers.indexOf('osx') > -1 ) switch (type) {
hideEl(["device","pixelDecimation"]); case "dispmanx":
else if (grabbers.indexOf('amlogic') > -1) toggleFgOptions(["pixelDecimation", "display"], false);
hideEl(["pixelDecimation"]); break;
case "x11":
case "xcb":
toggleFgOptions(["width", "height", "display"], false);
break;
case "framebuffer":
toggleFgOptions(["display"], false);
break;
case "amlogic":
toggleFgOptions(["pixelDecimation", "display"], false);
break;
case "qt":
break;
case "dx":
break;
case "osx":
break;
default:
}
}
};
$('#root_framegrabber_type').change(function () {
var selectedType = $("#root_framegrabber_type").val();
filerFgGrabberOptions(selectedType);
}); });
removeOverlay(); removeOverlay();

View File

@ -26,6 +26,9 @@ $(document).ready(function () {
$(window.hyperion).on("cmd-serverinfo", function (event) { $(window.hyperion).on("cmd-serverinfo", function (event) {
window.serverInfo = event.response.info; window.serverInfo = event.response.info;
window.readOnlyMode = window.sysInfo.hyperion.readOnlyMode;
// comps // comps
window.comps = event.response.info.components window.comps = event.response.info.components

View File

@ -59,40 +59,36 @@ function createLedPreview(leds, origin){
} }
function createClassicLeds(){ function createClassicLedLayoutSimple( ledstop,ledsleft,ledsright,ledsbottom,position,reverse ){
//get values
var ledstop = parseInt($("#ip_cl_top").val());
var ledsbottom = parseInt($("#ip_cl_bottom").val());
var ledsleft = parseInt($("#ip_cl_left").val());
var ledsright = parseInt($("#ip_cl_right").val());
var ledsglength = parseInt($("#ip_cl_glength").val());
var ledsgpos = parseInt($("#ip_cl_gpos").val());
var position = parseInt($("#ip_cl_position").val());
var reverse = $("#ip_cl_reverse").is(":checked");
//advanced values let params = {
var ledsVDepth = parseInt($("#ip_cl_vdepth").val())/100; ledstop: 0, ledsleft: 0, ledsright: 0, ledsbottom: 0,
var ledsHDepth = parseInt($("#ip_cl_hdepth").val())/100; ledsglength: 0, ledsgpos: 0, position: 0,
var edgeVGap = parseInt($("#ip_cl_edgegap").val())/100/2; ledsHDepth: 0.08, ledsVDepth: 0.05, overlap: 0,
//var cornerVGap = parseInt($("#ip_cl_cornergap").val())/100/2; edgeVGap: 0,
var overlap = $("#ip_cl_overlap").val()/100; ptblh: 0, ptblv: 1, ptbrh: 1, ptbrv: 1,
pttlh: 0, pttlv: 0, pttrh: 1, pttrv: 0,
reverse:false
};
//trapezoid values % -> float params.ledstop = ledstop;
var ptblh = parseInt($("#ip_cl_pblh").val())/100; params.ledsleft = ledsleft;
var ptblv = parseInt($("#ip_cl_pblv").val())/100; params.ledsright = ledsright;
var ptbrh = parseInt($("#ip_cl_pbrh").val())/100; params.ledsbottom = ledsbottom;
var ptbrv = parseInt($("#ip_cl_pbrv").val())/100; params.position = position;
var pttlh = parseInt($("#ip_cl_ptlh").val())/100; params.reverse = reverse;
var pttlv = parseInt($("#ip_cl_ptlv").val())/100;
var pttrh = parseInt($("#ip_cl_ptrh").val())/100; return createClassicLedLayout( params );
var pttrv = parseInt($("#ip_cl_ptrv").val())/100; }
function createClassicLedLayout( params ){
//helper //helper
var edgeHGap = edgeVGap/(16/9); var edgeHGap = params.edgeVGap/(16/9);
var ledArray = []; var ledArray = [];
function createFinalArray(array){ function createFinalArray(array){
finalLedArray = []; var finalLedArray = [];
for(var i = 0; i<array.length; i++){ for(var i = 0; i<array.length; i++){
var hmin = array[i].hmin; var hmin = array[i].hmin;
var hmax = array[i].hmax; var hmax = array[i].hmax;
@ -100,7 +96,7 @@ function createClassicLeds(){
var vmax = array[i].vmax; var vmax = array[i].vmax;
finalLedArray[i] = { "hmax": hmax, "hmin": hmin, "vmax": vmax, "vmin": vmin } finalLedArray[i] = { "hmax": hmax, "hmin": hmin, "vmax": vmax, "vmin": vmin }
} }
createLedPreview(finalLedArray, 'classic'); return finalLedArray;
} }
function rotateArray(array, times){ function rotateArray(array, times){
@ -131,9 +127,9 @@ function createClassicLeds(){
function ovl(scan,val) function ovl(scan,val)
{ {
if(scan == "+") if(scan == "+")
return valScan(val += overlap); return valScan(val += params.overlap);
else else
return valScan(val -= overlap); return valScan(val -= params.overlap);
} }
function createLedArray(hmin, hmax, vmin, vmax){ function createLedArray(hmin, hmax, vmin, vmax){
@ -145,53 +141,53 @@ function createClassicLeds(){
} }
function createTopLeds(){ function createTopLeds(){
var steph = (pttrh - pttlh - (2*edgeHGap))/ledstop; var steph = (params.pttrh - params.pttlh - (2*edgeHGap))/params.ledstop;
var stepv = (pttrv - pttlv)/ledstop; var stepv = (params.pttrv - params.pttlv)/params.ledstop;
for (var i = 0; i<ledstop; i++){ for (var i = 0; i<params.ledstop; i++){
var hmin = ovl("-",pttlh+(steph*Number([i]))+edgeHGap); var hmin = ovl("-",params.pttlh+(steph*Number([i]))+edgeHGap);
var hmax = ovl("+",pttlh+(steph*Number([i+1]))+edgeHGap); var hmax = ovl("+",params.pttlh+(steph*Number([i+1]))+edgeHGap);
var vmin = pttlv+(stepv*Number([i])); var vmin = params.pttlv+(stepv*Number([i]));
var vmax = vmin + ledsHDepth; var vmax = vmin + params.ledsHDepth;
createLedArray(hmin, hmax, vmin, vmax); createLedArray(hmin, hmax, vmin, vmax);
} }
} }
function createRightLeds(){ function createRightLeds(){
var steph = (ptbrh - pttrh)/ledsright; var steph = (params.ptbrh - params.pttrh)/params.ledsright;
var stepv = (ptbrv - pttrv - (2*edgeVGap))/ledsright; var stepv = (params.ptbrv - params.pttrv - (2*params.edgeVGap))/params.ledsright;
for (var i = 0; i<ledsright; i++){ for (var i = 0; i<params.ledsright; i++){
var hmax = pttrh+(steph*Number([i+1])); var hmax = params.pttrh+(steph*Number([i+1]));
var hmin = hmax-ledsVDepth; var hmin = hmax-params.ledsVDepth;
var vmin = ovl("-",pttrv+(stepv*Number([i]))+edgeVGap); var vmin = ovl("-",params.pttrv+(stepv*Number([i]))+params.edgeVGap);
var vmax = ovl("+",pttrv+(stepv*Number([i+1]))+edgeVGap); var vmax = ovl("+",params.pttrv+(stepv*Number([i+1]))+params.edgeVGap);
createLedArray(hmin, hmax, vmin, vmax); createLedArray(hmin, hmax, vmin, vmax);
} }
} }
function createBottomLeds(){ function createBottomLeds(){
var steph = (ptbrh - ptblh - (2*edgeHGap))/ledsbottom; var steph = (params.ptbrh - params.ptblh - (2*edgeHGap))/params.ledsbottom;
var stepv = (ptbrv - ptblv)/ledsbottom; var stepv = (params.ptbrv - params.ptblv)/params.ledsbottom;
for (var i = ledsbottom-1; i>-1; i--){ for (var i = params.ledsbottom-1; i>-1; i--){
var hmin = ovl("-",ptblh+(steph*Number([i]))+edgeHGap); var hmin = ovl("-",params.ptblh+(steph*Number([i]))+edgeHGap);
var hmax = ovl("+",ptblh+(steph*Number([i+1]))+edgeHGap); var hmax = ovl("+",params.ptblh+(steph*Number([i+1]))+edgeHGap);
var vmax= ptblv+(stepv*Number([i])); var vmax= params.ptblv+(stepv*Number([i]));
var vmin = vmax-ledsHDepth; var vmin = vmax-params.ledsHDepth;
createLedArray(hmin, hmax, vmin, vmax); createLedArray(hmin, hmax, vmin, vmax);
} }
} }
function createLeftLeds(){ function createLeftLeds(){
var steph = (ptblh - pttlh)/ledsleft; var steph = (params.ptblh - params.pttlh)/params.ledsleft;
var stepv = (ptblv - pttlv - (2*edgeVGap))/ledsleft; var stepv = (params.ptblv - params.pttlv - (2*params.edgeVGap))/params.ledsleft;
for (var i = ledsleft-1; i>-1; i--){ for (var i = params.ledsleft-1; i>-1; i--){
var hmin = pttlh+(steph*Number([i])); var hmin = params.pttlh+(steph*Number([i]));
var hmax = hmin+ledsVDepth; var hmax = hmin+params.ledsVDepth;
var vmin = ovl("-",pttlv+(stepv*Number([i]))+edgeVGap); var vmin = ovl("-",params.pttlv+(stepv*Number([i]))+params.edgeVGap);
var vmax = ovl("+",pttlv+(stepv*Number([i+1]))+edgeVGap); var vmax = ovl("+",params.pttlv+(stepv*Number([i+1]))+params.edgeVGap);
createLedArray(hmin, hmax, vmin, vmax); createLedArray(hmin, hmax, vmin, vmax);
} }
@ -204,44 +200,84 @@ function createClassicLeds(){
createLeftLeds(); createLeftLeds();
//check led gap pos //check led gap pos
if (ledsgpos+ledsglength > ledArray.length) if (params.ledsgpos+params.ledsglength > ledArray.length)
{ {
var mpos = Math.max(0,ledArray.length-ledsglength); var mpos = Math.max(0,ledArray.length-params.ledsglength);
$('#ip_cl_ledsgpos').val(mpos); //$('#ip_cl_ledsgpos').val(mpos);
ledsgpos = mpos; ledsgpos = mpos;
} }
//check led gap length //check led gap length
if(ledsglength >= ledArray.length) if(params.ledsglength >= ledArray.length)
{ {
$('#ip_cl_ledsglength').val(ledArray.length-1); //$('#ip_cl_ledsglength').val(ledArray.length-1);
ledsglength = ledArray.length-ledsglength-1; params.ledsglength = ledArray.length-params.ledsglength-1;
} }
if(ledsglength != 0){ if(params.ledsglength != 0){
ledArray.splice(ledsgpos, ledsglength); ledArray.splice(params.ledsgpos, params.ledsglength);
} }
if (position != 0){ if (params.position != 0){
rotateArray(ledArray, position); rotateArray(ledArray, params.position);
} }
if (reverse) if (params.reverse)
ledArray.reverse(); ledArray.reverse();
createFinalArray(ledArray); return createFinalArray(ledArray);
} }
function createMatrixLeds(){ function createClassicLeds(){
// Big thank you to RanzQ (Juha Rantanen) from Github for this script
// https://raw.githubusercontent.com/RanzQ/hyperion-audio-effects/master/matrix-config.js
//get values //get values
var ledshoriz = parseInt($("#ip_ma_ledshoriz").val()); let params = {
var ledsvert = parseInt($("#ip_ma_ledsvert").val()); ledstop : parseInt($("#ip_cl_top").val()),
var cabling = $("#ip_ma_cabling").val(); ledsbottom : parseInt($("#ip_cl_bottom").val()),
//var order = $("#ip_ma_order").val(); ledsleft : parseInt($("#ip_cl_left").val()),
var start = $("#ip_ma_start").val(); ledsright : parseInt($("#ip_cl_right").val()),
ledsglength : parseInt($("#ip_cl_glength").val()),
ledsgpos : parseInt($("#ip_cl_gpos").val()),
position : parseInt($("#ip_cl_position").val()),
reverse : $("#ip_cl_reverse").is(":checked"),
//advanced values
ledsVDepth : parseInt($("#ip_cl_vdepth").val())/100,
ledsHDepth : parseInt($("#ip_cl_hdepth").val())/100,
edgeVGap : parseInt($("#ip_cl_edgegap").val())/100/2,
//cornerVGap : parseInt($("#ip_cl_cornergap").val())/100/2,
overlap : $("#ip_cl_overlap").val()/100,
//trapezoid values % -> float
ptblh : parseInt($("#ip_cl_pblh").val())/100,
ptblv : parseInt($("#ip_cl_pblv").val())/100,
ptbrh : parseInt($("#ip_cl_pbrh").val())/100,
ptbrv : parseInt($("#ip_cl_pbrv").val())/100,
pttlh : parseInt($("#ip_cl_ptlh").val())/100,
pttlv : parseInt($("#ip_cl_ptlv").val())/100,
pttrh : parseInt($("#ip_cl_ptrh").val())/100,
pttrv : parseInt($("#ip_cl_ptrv").val())/100,
}
finalLedArray = createClassicLedLayout( params );
//check led gap pos
if (params.ledsgpos+params.ledsglength > finalLedArray.length) {
var mpos = Math.max(0,finalLedArray.length-params.ledsglength);
$('#ip_cl_ledsgpos').val(mpos);
}
//check led gap length
if(params.ledsglength >= finalLedArray.length) {
$('#ip_cl_ledsglength').val(finalLedArray.length-1);
}
createLedPreview(finalLedArray, 'classic');
}
function createMatrixLayout( ledshoriz, ledsvert, cabling, start){
// Big thank you to RanzQ (Juha Rantanen) from Github for this script
// https://raw.githubusercontent.com/RanzQ/hyperion-audio-effects/master/matrix-config.js
var parallel = false var parallel = false
var leds = [] var leds = []
@ -298,9 +334,23 @@ function createMatrixLeds(){
endX = tmp endX = tmp
} }
} }
finalLedArray =[];
finalLedArray = leds return leds;
createLedPreview(leds, 'matrix'); }
function createMatrixLeds(){
// Big thank you to RanzQ (Juha Rantanen) from Github for this script
// https://raw.githubusercontent.com/RanzQ/hyperion-audio-effects/master/matrix-config.js
//get values
var ledshoriz = parseInt($("#ip_ma_ledshoriz").val());
var ledsvert = parseInt($("#ip_ma_ledsvert").val());
var cabling = $("#ip_ma_cabling").val();
var start = $("#ip_ma_start").val();
finalLedArray = createMatrixLayout(ledshoriz,ledsvert,cabling,start);
createLedPreview(finalLedArray, 'matrix');
} }
function migrateLedConfig(slConfig){ function migrateLedConfig(slConfig){
@ -309,10 +359,10 @@ function migrateLedConfig(slConfig){
//Default Classic layout //Default Classic layout
newLedConfig.classic = { newLedConfig.classic = {
"top" : 8, "top" : 1,
"bottom" : 8, "bottom" : 0,
"left" : 5, "left" : 0,
"right" : 5, "right" : 0,
"glength" : 0, "glength" : 0,
"gpos" : 0, "gpos" : 0,
"position" : 0, "position" : 0,
@ -336,8 +386,8 @@ function migrateLedConfig(slConfig){
newLedConfig.classic.overlap = slConfig.overlap; newLedConfig.classic.overlap = slConfig.overlap;
//Default Matrix layout //Default Matrix layout
newLedConfig["matrix"] = { "ledshoriz": 10, newLedConfig["matrix"] = { "ledshoriz": 1,
"ledsvert" : 10, "ledsvert" : 1,
"cabling" : "snake", "cabling" : "snake",
"start" : "top-left" "start" : "top-left"
} }
@ -468,6 +518,11 @@ $(document).ready(function() {
$('#leds_custom_updsim').attr("disabled", true); $('#leds_custom_updsim').attr("disabled", true);
$('#leds_custom_save').attr("disabled", true); $('#leds_custom_save').attr("disabled", true);
} }
if ( window.readOnlyMode )
{
$('#leds_custom_save').attr('disabled', true);
}
} }
}, window.serverConfig.leds); }, window.serverConfig.leds);
@ -520,7 +575,13 @@ $(document).ready(function() {
}; };
// change save button state based on validation result // change save button state based on validation result
conf_editor.validate().length ? $('#btn_submit_controller').attr('disabled', true) : $('#btn_submit_controller').attr('disabled', false); conf_editor.validate().length || window.readOnlyMode ? $('#btn_submit_controller').attr('disabled', true) : $('#btn_submit_controller').attr('disabled', false);
conf_editor.on('change',function() {
window.readOnlyMode ? $('#btn_cl_save').attr('disabled', true) : $('#btn_submit').attr('disabled', false);
window.readOnlyMode ? $('#btn_ma_save').attr('disabled', true) : $('#btn_submit').attr('disabled', false);
window.readOnlyMode ? $('#leds_custom_save').attr('disabled', true) : $('#btn_submit').attr('disabled', false);
});
// led controller sepecific wizards // led controller sepecific wizards
$('#btn_wiz_holder').html(""); $('#btn_wiz_holder').html("");
@ -549,6 +610,12 @@ $(document).ready(function() {
var atmoorb_title = 'wiz_atmoorb_title'; var atmoorb_title = 'wiz_atmoorb_title';
changeWizard(data, atmoorb_title, startWizardAtmoOrb); changeWizard(data, atmoorb_title, startWizardAtmoOrb);
} }
else if(ledType == "cololight") {
var ledWizardType = (this.checked) ? "cololight" : ledType;
var data = { type: ledWizardType };
var cololight_title = 'wiz_cololight_title';
changeWizard(data, cololight_title, startWizardCololight);
}
else if(ledType == "yeelight") { else if(ledType == "yeelight") {
var ledWizardType = (this.checked) ? "yeelight" : ledType; var ledWizardType = (this.checked) ? "yeelight" : ledType;
var data = { type: ledWizardType }; var data = { type: ledWizardType };
@ -572,10 +639,10 @@ $(document).ready(function() {
var devRPiPWM = ['ws281x']; var devRPiPWM = ['ws281x'];
var devRPiGPIO = ['piblaster']; var devRPiGPIO = ['piblaster'];
var devNET = ['atmoorb', 'fadecandy', 'philipshue', 'nanoleaf', 'razer', 'tinkerforge', 'tpm2net', 'udpe131', 'udpartnet', 'udph801', 'udpraw', 'wled', 'yeelight']; var devNET = ['atmoorb', 'cololight', 'fadecandy', 'philipshue', 'nanoleaf', 'razer', 'tinkerforge', 'tpm2net', 'udpe131', 'udpartnet', 'udph801', 'udpraw', 'wled', 'yeelight'];
var devUSB = ['adalight', 'dmx', 'atmo', 'hyperionusbasp', 'lightpack', 'paintpack', 'rawhid', 'sedu', 'tpm2', 'karate']; var devUSB = ['adalight', 'dmx', 'atmo', 'hyperionusbasp', 'lightpack', 'paintpack', 'rawhid', 'sedu', 'tpm2', 'karate'];
var optArr = [[]]; var optArr = [[]];
optArr[1]=[]; optArr[1]=[];
optArr[2]=[]; optArr[2]=[];
optArr[3]=[]; optArr[3]=[];

View File

@ -22,7 +22,7 @@ $(document).ready(function() {
}, true, true); }, true, true);
conf_editor.on('change',function() { conf_editor.on('change',function() {
conf_editor.validate().length ? $('#btn_submit').attr('disabled', true) : $('#btn_submit').attr('disabled', false); conf_editor.validate().length || window.readOnlyMode ? $('#btn_submit').attr('disabled', true) : $('#btn_submit').attr('disabled', false);
}); });
$('#btn_submit').off().on('click',function() { $('#btn_submit').off().on('click',function() {
@ -73,17 +73,32 @@ $(document).ready(function() {
//create general info //create general info
info = "### GENERAL ### \n"; info = "### GENERAL ### \n";
info += 'Build: '+shy.build+'\n'; info += 'Build: '+shy.build+'\n';
info += 'Build time: '+shy.time+'\n'; info += 'Build time: '+shy.time+'\n';
info += 'Version: '+shy.version+'\n'; info += 'Version: '+shy.version+'\n';
info += 'UI Lang: '+storedLang+' (BrowserL: '+navigator.language+')\n'; info += 'UI Lang: '+storedLang+' (BrowserL: '+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\n'; info += 'Avail Capt: '+window.serverInfo.grabbers.available+'\n';
info += 'Distribution:'+sys.prettyName+'\n'; info += 'Database: '+(shy.readOnlyMode ? "ready-only" : "read/write")+'\n';
info += 'Arch: '+sys.architecture+'\n'; info += '\n';
info += 'Kernel: '+sys.kernelType+' ('+sys.kernelVersion+' (WS: '+sys.wordSize+'))\n';
info += 'Browser/OS: '+navigator.userAgent+'\n\n'; info += 'Distribution: '+sys.prettyName+'\n';
info += 'Architecture: '+sys.architecture+'\n';
if (sys.cpuModelName)
info += 'CPU Model: ' + sys.cpuModelName + '\n';
if (sys.cpuModelType)
info += 'CPU Type: ' + sys.cpuModelType + '\n';
if (sys.cpuRevision)
info += 'CPU Revision: ' + sys.cpuRevision + '\n';
if (sys.cpuHardware)
info += 'CPU Hardware: ' + sys.cpuHardware + '\n';
info += 'Kernel: ' + sys.kernelType+' ('+sys.kernelVersion+' (WS: '+sys.wordSize+'))' + '\n';
info += 'Qt Version: ' + sys.qtVersion + '\n';
info += 'Python Version: ' + sys.pyVersion + '\n';
info += 'Browser/OS: ' + navigator.userAgent + '\n\n';
//create prios //create prios
info += "### PRIORITIES ### \n"; info += "### PRIORITIES ### \n";

View File

@ -62,7 +62,7 @@ $(document).ready( function() {
}, true, true); }, true, true);
conf_editor_net.on('change',function() { conf_editor_net.on('change',function() {
conf_editor_net.validate().length ? $('#btn_submit_net').attr('disabled', true) : $('#btn_submit_net').attr('disabled', false); conf_editor_net.validate().length || window.readOnlyMode ? $('#btn_submit_net').attr('disabled', true) : $('#btn_submit_net').attr('disabled', false);
}); });
$('#btn_submit_net').off().on('click',function() { $('#btn_submit_net').off().on('click',function() {
@ -75,7 +75,7 @@ $(document).ready( function() {
}, true, true); }, true, true);
conf_editor_json.on('change',function() { conf_editor_json.on('change',function() {
conf_editor_json.validate().length ? $('#btn_submit_jsonserver').attr('disabled', true) : $('#btn_submit_jsonserver').attr('disabled', false); conf_editor_json.validate().length || window.readOnlyMode ? $('#btn_submit_jsonserver').attr('disabled', true) : $('#btn_submit_jsonserver').attr('disabled', false);
}); });
$('#btn_submit_jsonserver').off().on('click',function() { $('#btn_submit_jsonserver').off().on('click',function() {
@ -88,7 +88,7 @@ $(document).ready( function() {
}, true, true); }, true, true);
conf_editor_fbs.on('change',function() { conf_editor_fbs.on('change',function() {
conf_editor_fbs.validate().length ? $('#btn_submit_fbserver').attr('disabled', true) : $('#btn_submit_fbserver').attr('disabled', false); conf_editor_fbs.validate().length || window.readOnlyMode ? $('#btn_submit_fbserver').attr('disabled', true) : $('#btn_submit_fbserver').attr('disabled', false);
}); });
$('#btn_submit_fbserver').off().on('click',function() { $('#btn_submit_fbserver').off().on('click',function() {
@ -101,7 +101,7 @@ $(document).ready( function() {
}, true, true); }, true, true);
conf_editor_proto.on('change',function() { conf_editor_proto.on('change',function() {
conf_editor_proto.validate().length ? $('#btn_submit_protoserver').attr('disabled', true) : $('#btn_submit_protoserver').attr('disabled', false); conf_editor_proto.validate().length || window.readOnlyMode ? $('#btn_submit_protoserver').attr('disabled', true) : $('#btn_submit_protoserver').attr('disabled', false);
}); });
$('#btn_submit_protoserver').off().on('click',function() { $('#btn_submit_protoserver').off().on('click',function() {
@ -114,7 +114,7 @@ $(document).ready( function() {
}, true, true); }, true, true);
conf_editor_bobl.on('change',function() { conf_editor_bobl.on('change',function() {
conf_editor_bobl.validate().length ? $('#btn_submit_boblightserver').attr('disabled', true) : $('#btn_submit_boblightserver').attr('disabled', false); conf_editor_bobl.validate().length || window.readOnlyMode ? $('#btn_submit_boblightserver').attr('disabled', true) : $('#btn_submit_boblightserver').attr('disabled', false);
}); });
$('#btn_submit_boblightserver').off().on('click',function() { $('#btn_submit_boblightserver').off().on('click',function() {
@ -129,7 +129,7 @@ $(document).ready( function() {
}, true, true); }, true, true);
conf_editor_forw.on('change',function() { conf_editor_forw.on('change',function() {
conf_editor_forw.validate().length ? $('#btn_submit_forwarder').attr('disabled', true) : $('#btn_submit_forwarder').attr('disabled', false); conf_editor_forw.validate().length || window.readOnlyMode ? $('#btn_submit_forwarder').attr('disabled', true) : $('#btn_submit_forwarder').attr('disabled', false);
}); });
$('#btn_submit_forwarder').off().on('click',function() { $('#btn_submit_forwarder').off().on('click',function() {

View File

@ -14,7 +14,7 @@
}, true, true); }, true, true);
conf_editor.on('change',function() { conf_editor.on('change',function() {
conf_editor.validate().length ? $('#btn_submit').attr('disabled', true) : $('#btn_submit').attr('disabled', false); conf_editor.validate().length || window.readOnlyMode ? $('#btn_submit').attr('disabled', true) : $('#btn_submit').attr('disabled', false);
}); });
$('#btn_submit').off().on('click',function() { $('#btn_submit').off().on('click',function() {

View File

@ -454,9 +454,9 @@ function requestAdjustment(type, value, complete)
sendToHyperion("adjustment", "", '"adjustment": {"'+type+'": '+value+'}'); sendToHyperion("adjustment", "", '"adjustment": {"'+type+'": '+value+'}');
} }
async function requestLedDeviceDiscovery(type) async function requestLedDeviceDiscovery(type, params)
{ {
let data = { ledDeviceType: type }; let data = { ledDeviceType: type, params: params };
return sendAsyncToHyperion("leddevice", "discover", data, Math.floor(Math.random() * 1000) ); return sendAsyncToHyperion("leddevice", "discover", data, Math.floor(Math.random() * 1000) );
} }
@ -471,8 +471,5 @@ async function requestLedDeviceProperties(type, params)
function requestLedDeviceIdentification(type, params) function requestLedDeviceIdentification(type, params)
{ {
sendToHyperion("leddevice", "identify", '"ledDeviceType": "'+type+'","params": '+JSON.stringify(params)+''); sendToHyperion("leddevice", "identify", '"ledDeviceType": "'+type+'","params": '+JSON.stringify(params)+'');
//let data = {ledDeviceType: type, params: params};
//sendToHyperion("leddevice", "identify", data );
} }

View File

@ -21,7 +21,7 @@ function changePassword(){
}); });
$('#newPw, #oldPw').off().on('input',function(e) { $('#newPw, #oldPw').off().on('input',function(e) {
($('#oldPw').val().length >= 8 && $('#newPw').val().length >= 8) ? $('#id_btn_ok').attr('disabled', false) : $('#id_btn_ok').attr('disabled', true); ($('#oldPw').val().length >= 8 && $('#newPw').val().length >= 8) && !window.readOnlyMode ? $('#id_btn_ok').attr('disabled', false) : $('#id_btn_ok').attr('disabled', true);
}); });
} }

View File

@ -389,7 +389,7 @@ function showInfoDialog(type,header,message)
$(document).on('click', '[data-dismiss-modal]', function () { $(document).on('click', '[data-dismiss-modal]', function () {
var target = $(this).attr('data-dismiss-modal'); var target = $(this).attr('data-dismiss-modal');
$(target).modal('hide'); $.find(target).modal.hide();
}); });
} }
@ -533,7 +533,7 @@ function createJsonEditor(container,schema,setconfig,usePanel,arrayre)
{ {
for(var key in editor.root.editors) for(var key in editor.root.editors)
{ {
editor.getEditor("root."+key).setValue( window.serverConfig[key] ); editor.getEditor("root."+key).setValue(Object.assign({}, editor.getEditor("root."+key).value, window.serverConfig[key] ));
} }
} }

View File

@ -109,9 +109,13 @@ function beginWizardRGB() {
if (redS == "r" && greenS == "g") { if (redS == "r" && greenS == "g") {
$('#btn_wiz_save').toggle(false); $('#btn_wiz_save').toggle(false);
$('#btn_wiz_checkok').toggle(true); $('#btn_wiz_checkok').toggle(true);
window.readOnlyMode ? $('#btn_wiz_checkok').attr('disabled', true) : $('#btn_wiz_checkok').attr('disabled', false);
} }
else { else {
$('#btn_wiz_save').toggle(true); $('#btn_wiz_save').toggle(true);
window.readOnlyMode ? $('#btn_wiz_save').attr('disabled', true) : $('#btn_wiz_save').attr('disabled', false);
$('#btn_wiz_checkok').toggle(false); $('#btn_wiz_checkok').toggle(false);
} }
new_rgb_order = rgb_order; new_rgb_order = rgb_order;
@ -148,9 +152,11 @@ function beginWizardRGB() {
$('#btn_wizard_byteorder').off().on('click', startWizardRGB); $('#btn_wizard_byteorder').off().on('click', startWizardRGB);
//color calibration wizard //color calibration wizard
var kodiHost = document.location.hostname; var kodiHost = document.location.hostname;
var kodiPort = 9090; var kodiPort = 9090;
var kodiAddress = kodiHost; var kodiAddress = kodiHost;
var wiz_editor; var wiz_editor;
var colorLength; var colorLength;
var cobj; var cobj;
@ -164,6 +170,7 @@ var picnr = 0;
var availVideos = ["Sweet_Cocoon", "Caminandes_2_GranDillama", "Caminandes_3_Llamigos"]; var availVideos = ["Sweet_Cocoon", "Caminandes_2_GranDillama", "Caminandes_3_Llamigos"];
if (getStorage("kodiAddress") != null) { if (getStorage("kodiAddress") != null) {
kodiAddress = getStorage("kodiAddress"); kodiAddress = getStorage("kodiAddress");
[kodiHost, kodiPort] = kodiAddress.split(":", 2); [kodiHost, kodiPort] = kodiAddress.split(":", 2);
@ -390,6 +397,7 @@ function performAction() {
$('#btn_wiz_next').attr("disabled", true); $('#btn_wiz_next').attr("disabled", true);
$('#btn_wiz_save').toggle(true); $('#btn_wiz_save').toggle(true);
window.readOnlyMode ? $('#btn_wiz_save').attr('disabled', true) : $('#btn_wiz_save').attr('disabled', false);
} }
else { else {
$('#btn_wiz_next').attr("disabled", false); $('#btn_wiz_next').attr("disabled", false);
@ -407,16 +415,16 @@ function updateWEditor(el, all) {
} }
function startWizardCC() { function startWizardCC() {
// Ensure that Kodi's default REST-API port is not used, as now the Web-Socket port is used // Ensure that Kodi's default REST-API port is not used, as now the Web-Socket port is used
[kodiHost, kodiPort] = kodiAddress.split(":", 2); [kodiHost, kodiPort] = kodiAddress.split(":", 2);
if (kodiPort === "8080") { if (kodiPort === "8080") {
kodiAddress = kodiHost; kodiAddress = kodiHost;
kodiPort = undefined; kodiPort = undefined;
} }
//create html //create html
$('#wiz_header').html('<i class="fa fa-magic fa-fw"></i>' + $.i18n('wiz_cc_title')); $('#wiz_header').html('<i class="fa fa-magic fa-fw"></i>' + $.i18n('wiz_cc_title'));
$('#wizp1_body').html('<h4 style="font-weight:bold;text-transform:uppercase;">' + $.i18n('wiz_cc_title') + '</h4><p>' + $.i18n('wiz_cc_intro1') + '</p><label>' + $.i18n('wiz_cc_kwebs') + '</label><input class="form-control" style="width:170px;margin:auto" id="wiz_cc_kodiip" type="text" placeholder="' + kodiAddress + '" value="' + kodiAddress + '" /><span id="kodi_status"></span><span id="multi_cali"></span>'); $('#wizp1_body').html('<h4 style="font-weight:bold;text-transform:uppercase;">' + $.i18n('wiz_cc_title') + '</h4><p>' + $.i18n('wiz_cc_intro1') + '</p><label>' + $.i18n('wiz_cc_kwebs') + '</label><input class="form-control" style="width:170px;margin:auto" id="wiz_cc_kodiip" type="text" placeholder="' + kodiAddress + '" value="' + kodiAddress + '" /><span id="kodi_status"></span><span id="multi_cali"></span>');
$('#wizp1_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_cont" disabled="disabled"><i class="fa fa-fw fa-check"></i>' + $.i18n('general_btn_continue') + '</button><button type="button" class="btn btn-danger" data-dismiss="modal"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>'); $('#wizp1_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_cont" disabled="disabled"><i class="fa fa-fw fa-check"></i>' + $.i18n('general_btn_continue') + '</button><button type="button" class="btn btn-danger" data-dismiss="modal"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
$('#wizp2_body').html('<div id="wiz_cc_desc" style="font-weight:bold"></div><div id="editor_container_wiz"></div>'); $('#wizp2_body').html('<div id="wiz_cc_desc" style="font-weight:bold"></div><div id="editor_container_wiz"></div>');
$('#wizp2_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_back"><i class="fa fa-fw fa-chevron-left"></i>' + $.i18n('general_btn_back') + '</button><button type="button" class="btn btn-primary" id="btn_wiz_next">' + $.i18n('general_btn_next') + '<i style="margin-left:4px;"class="fa fa-fw fa-chevron-right"></i></button><button type="button" class="btn btn-warning" id="btn_wiz_save" style="display:none"><i class="fa fa-fw fa-save"></i>' + $.i18n('general_btn_save') + '</button><button type="button" class="btn btn-danger" id="btn_wiz_abort"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>'); $('#wizp2_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_back"><i class="fa fa-fw fa-chevron-left"></i>' + $.i18n('general_btn_back') + '</button><button type="button" class="btn btn-primary" id="btn_wiz_next">' + $.i18n('general_btn_next') + '<i style="margin-left:4px;"class="fa fa-fw fa-chevron-right"></i></button><button type="button" class="btn btn-warning" id="btn_wiz_save" style="display:none"><i class="fa fa-fw fa-save"></i>' + $.i18n('general_btn_save') + '</button><button type="button" class="btn btn-danger" id="btn_wiz_abort"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
@ -429,7 +437,10 @@ function startWizardCC() {
}); });
$('#wiz_cc_kodiip').off().on('change', function () { $('#wiz_cc_kodiip').off().on('change', function () {
kodiAddress = $(this).val().trim(); kodiAddress = $(this).val().trim();
$('#wizp1_body').find("kodiAddress").val(kodiAddress);
$('#kodi_status').html(''); $('#kodi_status').html('');
// Remove Kodi's default Web-Socket port (9090) from display and ensure Kodi's default REST-API port (8080) is mapped to web-socket port to ease migration // Remove Kodi's default Web-Socket port (9090) from display and ensure Kodi's default REST-API port (8080) is mapped to web-socket port to ease migration
@ -579,6 +590,30 @@ function assignLightPos(id, pos, name) {
return i; return i;
} }
function getHostInLights(hostname) {
return lights.filter(
function (lights) {
return lights.host === hostname
}
);
}
function getIpInLights(ip) {
return lights.filter(
function (lights) {
return lights.ip === ip
}
);
}
function getIdInLights(id) {
return lights.filter(
function (lights) {
return lights.id === id
}
);
}
//**************************** //****************************
// Wizard Philips Hue // Wizard Philips Hue
//**************************** //****************************
@ -792,17 +827,8 @@ async function getProperties_hue_bridge(hostAddress, username, resourceFilter) {
} }
function identify_hue_device(hostAddress, username, id) { function identify_hue_device(hostAddress, username, id) {
console.log("identify_hue_device");
let params = { host: hostAddress, user: username, lightId: id }; let params = { host: hostAddress, user: username, lightId: id };
requestLedDeviceIdentification("philipshue", params);
const res = requestLedDeviceIdentification("philipshue", params);
// TODO: error case unhandled
// res can be: false (timeout) or res.error (not found)
if (res && !res.error) {
const r = res.info
console.log(r);
}
} }
function getHueIPs() { function getHueIPs() {
@ -1151,7 +1177,9 @@ function get_hue_lights() {
cC++; cC++;
} }
} }
(cC == 0) ? $('#btn_wiz_save').attr("disabled", true) : $('#btn_wiz_save').attr("disabled", false);
(cC == 0 || window.readOnlyMode) ? $('#btn_wiz_save').attr("disabled", true) : $('#btn_wiz_save').attr("disabled", false);
}); });
} }
$('.hue_sel_watch').trigger('change'); $('.hue_sel_watch').trigger('change');
@ -1263,14 +1291,7 @@ async function getProperties_wled(hostAddress, resourceFilter) {
function identify_wled(hostAddress) { function identify_wled(hostAddress) {
let params = { host: hostAddress }; let params = { host: hostAddress };
requestLedDeviceIdentification("wled", params);
const res = requestLedDeviceIdentification("wled", params);
// TODO: error case unhandled
// res can be: false (timeout) or res.error (not found)
if (res && !res.error) {
const r = res.info
console.log(r);
}
} }
//**************************** //****************************
@ -1382,14 +1403,6 @@ function beginWizardYeelight() {
$('#btn_wiz_abort').off().on('click', resetWizard); $('#btn_wiz_abort').off().on('click', resetWizard);
} }
function getHostInLights(hostname) {
return lights.filter(
function (lights) {
return lights.host === hostname
}
);
}
async function discover_yeelight_lights() { async function discover_yeelight_lights() {
var light = {}; var light = {};
// Get discovered lights // Get discovered lights
@ -1406,10 +1419,9 @@ async function discover_yeelight_lights() {
if (device.hostname !== "") { if (device.hostname !== "") {
if (getHostInLights(device.hostname).length === 0) { if (getHostInLights(device.hostname).length === 0) {
light = {}; var light = {};
light.host = device.hostname; light.host = device.hostname;
light.port = device.port; light.port = device.port;
light.name = device.other.name; light.name = device.other.name;
light.model = device.other.model; light.model = device.other.model;
lights.push(light); lights.push(light);
@ -1427,7 +1439,7 @@ async function discover_yeelight_lights() {
if (host !== "") if (host !== "")
if (getHostInLights(host).length === 0) { if (getHostInLights(host).length === 0) {
light = {}; var light = {};
light.host = host; light.host = host;
light.port = port; light.port = port;
light.name = configuredLights[keyConfig].name; light.name = configuredLights[keyConfig].name;
@ -1446,7 +1458,7 @@ function assign_yeelight_lights() {
// If records are left for configuration // If records are left for configuration
if (Object.keys(lights).length > 0) { if (Object.keys(lights).length > 0) {
$('#wh_topcontainer').toggle(false); $('#wh_topcontainer').toggle(false);
$('#yee_ids_t,#btn_wiz_save').toggle(true); $('#yee_ids_t, #btn_wiz_save').toggle(true);
var lightOptions = [ var lightOptions = [
"top", "topleft", "topright", "top", "topleft", "topright",
@ -1478,7 +1490,7 @@ function assign_yeelight_lights() {
options += '>' + $.i18n(txt + val) + '</option>'; options += '>' + $.i18n(txt + val) + '</option>';
} }
var enabled = 'enabled' var enabled = 'enabled';
if (!models.includes(lights[lightid].model)) { if (!models.includes(lights[lightid].model)) {
var enabled = 'disabled'; var enabled = 'disabled';
options = '<option value=disabled>' + $.i18n('wiz_yeelight_unsupported') + '</option>'; options = '<option value=disabled>' + $.i18n('wiz_yeelight_unsupported') + '</option>';
@ -1497,7 +1509,8 @@ function assign_yeelight_lights() {
cC++; cC++;
} }
} }
if (cC === 0)
if (cC === 0 || window.readOnlyMode)
$('#btn_wiz_save').attr("disabled", true); $('#btn_wiz_save').attr("disabled", true);
else else
$('#btn_wiz_save').attr("disabled", false); $('#btn_wiz_save').attr("disabled", false);
@ -1505,7 +1518,7 @@ function assign_yeelight_lights() {
$('.yee_sel_watch').trigger('change'); $('.yee_sel_watch').trigger('change');
} }
else { else {
var noLightsTxt = '<p style="font-weight:bold;color:red;">' + $.i18n('wiz_yeelight_noLights') + '</p>'; var noLightsTxt = '<p style="font-weight:bold;color:red;">' + $.i18n('wiz_noLights','Yeelights') + '</p>';
$('#wizp2_body').append(noLightsTxt); $('#wizp2_body').append(noLightsTxt);
} }
} }
@ -1527,13 +1540,7 @@ async function getProperties_yeelight(hostname, port) {
function identify_yeelight_device(hostname, port) { function identify_yeelight_device(hostname, port) {
let params = { hostname: hostname, port: port }; let params = { hostname: hostname, port: port };
requestLedDeviceIdentification("yeelight", params);
const res = requestLedDeviceIdentification("yeelight", params);
// TODO: error case unhandled
// res can be: false (timeout) or res.error (not found)
if (res && !res.error) {
//const r = res.info;
}
} }
//**************************** //****************************
@ -1580,7 +1587,7 @@ function beginWizardAtmoOrb() {
lights = []; lights = [];
configuredLights = []; configuredLights = [];
configruedOrbIds = conf_editor.getEditor("root.specificOptions.orbIds").getValue().trim(); var configruedOrbIds = conf_editor.getEditor("root.specificOptions.orbIds").getValue().trim();
if (configruedOrbIds.length !== 0) { if (configruedOrbIds.length !== 0) {
configuredLights = configruedOrbIds.split(",").map(Number); configuredLights = configruedOrbIds.split(",").map(Number);
} }
@ -1640,24 +1647,19 @@ function beginWizardAtmoOrb() {
$('#btn_wiz_abort').off().on('click', resetWizard); $('#btn_wiz_abort').off().on('click', resetWizard);
} }
function getIdInLights(id) {
return lights.filter(
function (lights) {
return lights.id === id
}
);
}
async function discover_atmoorb_lights(multiCastGroup, multiCastPort) { async function discover_atmoorb_lights(multiCastGroup, multiCastPort) {
var light = {}; var light = {};
if (multiCastGroup === "") var params = {};
multiCastGroup = "239.255.255.250"; if (multiCastGroup !== "")
{
params.multiCastGroup = multiCastGroup;
}
if (multiCastPort === "") if (multiCastPort !== 0)
multiCastPort = 49692; {
params.multiCastPort = multiCastPort;
let params = { multiCastGroup: multiCastGroup, multiCastPort: multiCastPort }; }
// Get discovered lights // Get discovered lights
const res = await requestLedDeviceDiscovery('atmoorb', params); const res = await requestLedDeviceDiscovery('atmoorb', params);
@ -1665,13 +1667,13 @@ async function discover_atmoorb_lights(multiCastGroup, multiCastPort) {
// TODO: error case unhandled // TODO: error case unhandled
// res can be: false (timeout) or res.error (not found) // res can be: false (timeout) or res.error (not found)
if (res && !res.error) { if (res && !res.error) {
const r = res.info const r = res.info;
// Process devices returned by discovery // Process devices returned by discovery
for (const device of r.devices) { for (const device of r.devices) {
if (device.id !== "") { if (device.id !== "") {
if (getIdInLights(device.id).length === 0) { if (getIdInLights(device.id).length === 0) {
light = {}; var light = {};
light.id = device.id; light.id = device.id;
light.ip = device.ip; light.ip = device.ip;
light.host = device.hostname; light.host = device.hostname;
@ -1684,7 +1686,7 @@ async function discover_atmoorb_lights(multiCastGroup, multiCastPort) {
for (const keyConfig in configuredLights) { for (const keyConfig in configuredLights) {
if (configuredLights[keyConfig] !== "" && !isNaN(configuredLights[keyConfig])) { if (configuredLights[keyConfig] !== "" && !isNaN(configuredLights[keyConfig])) {
if (getIdInLights(configuredLights[keyConfig]).length === 0) { if (getIdInLights(configuredLights[keyConfig]).length === 0) {
light = {}; var light = {};
light.id = configuredLights[keyConfig]; light.id = configuredLights[keyConfig];
light.ip = ""; light.ip = "";
light.host = ""; light.host = "";
@ -1735,9 +1737,9 @@ function assign_atmoorb_lights() {
options += '>' + $.i18n(txt + val) + '</option>'; options += '>' + $.i18n(txt + val) + '</option>';
} }
var enabled = 'enabled' var enabled = 'enabled';
if (orbId < 1 || orbId > 255) { if (orbId < 1 || orbId > 255) {
enabled = 'disabled' enabled = 'disabled';
options = '<option value=disabled>' + $.i18n('wiz_atmoorb_unsupported') + '</option>'; options = '<option value=disabled>' + $.i18n('wiz_atmoorb_unsupported') + '</option>';
} }
@ -1759,7 +1761,7 @@ function assign_atmoorb_lights() {
cC++; cC++;
} }
} }
if (cC === 0) if (cC === 0 || window.readOnlyMode)
$('#btn_wiz_save').attr("disabled", true); $('#btn_wiz_save').attr("disabled", true);
else else
$('#btn_wiz_save').attr("disabled", false); $('#btn_wiz_save').attr("disabled", false);
@ -1767,20 +1769,14 @@ function assign_atmoorb_lights() {
$('.orb_sel_watch').trigger('change'); $('.orb_sel_watch').trigger('change');
} }
else { else {
var noLightsTxt = '<p style="font-weight:bold;color:red;">' + $.i18n('wiz_atmoorb_noLights') + '</p>'; var noLightsTxt = '<p style="font-weight:bold;color:red;">' + $.i18n('wiz_noLights','AtmoOrbs') + '</p>';
$('#wizp2_body').append(noLightsTxt); $('#wizp2_body').append(noLightsTxt);
} }
} }
function identify_atmoorb_device(orbId) { function identify_atmoorb_device(orbId) {
let params = { id: orbId }; let params = { id: orbId };
requestLedDeviceIdentification("atmoorb", params);
const res = requestLedDeviceIdentification("atmoorb", params);
// TODO: error case unhandled
// res can be: false (timeout) or res.error (not found)
if (res && !res.error) {
const r = res.info
}
} }
//**************************** //****************************
@ -1829,16 +1825,197 @@ async function getProperties_nanoleaf(hostAddress, authToken, resourceFilter) {
function identify_nanoleaf(hostAddress, authToken) { function identify_nanoleaf(hostAddress, authToken) {
let params = { host: hostAddress, token: authToken }; let params = { host: hostAddress, token: authToken };
requestLedDeviceIdentification("nanoleaf", params);
}
//****************************
// Wizard Cololight
//****************************
var lights = null;
var selectedLightId = null;
function startWizardCololight(e) {
//create html
var cololight_title = 'wiz_cololight_title';
var cololight_intro1 = 'wiz_cololight_intro1';
$('#wiz_header').html('<i class="fa fa-magic fa-fw"></i>' + $.i18n(cololight_title));
$('#wizp1_body').html('<h4 style="font-weight:bold;text-transform:uppercase;">' + $.i18n(cololight_title) + '</h4><p>' + $.i18n(cololight_intro1) + '</p>');
$('#wizp1_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_cont"><i class="fa fa-fw fa-check"></i>' + $.i18n('general_btn_continue') + '</button><button type="button" class="btn btn-danger" data-dismiss="modal"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
$('#wizp2_body').html('<div id="wh_topcontainer"></div>');
$('#wh_topcontainer').append('<div class="form-group" id="usrcont" style="display:none"></div>');
$('#wizp2_body').append('<div id="colo_ids_t" style="display:none"><p style="font-weight:bold" id="colo_id_headline">' + $.i18n('wiz_cololight_desc2') + '</p></div>');
createTable("lidsh", "lidsb", "colo_ids_t");
$('.lidsh').append(createTableRow([$.i18n('edt_dev_spec_lights_title'), $.i18n('wiz_identify')], true));
$('#wizp2_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_save" style="display:none"><i class="fa fa-fw fa-save"></i>'
+ $.i18n('general_btn_save') + '</button><buttowindow.serverConfig.device = d;n type="button" class="btn btn-danger" id="btn_wiz_abort"><i class="fa fa-fw fa-close"></i>'
+ $.i18n('general_btn_cancel') + '</button>');
//open modal
$("#wizard_modal").modal({
backdrop: "static",
keyboard: false,
show: true
});
//listen for continue
$('#btn_wiz_cont').off().on('click', function () {
beginWizardCololight();
$('#wizp1').toggle(false);
$('#wizp2').toggle(true);
});
}
function beginWizardCololight() {
lights = [];
discover_cololights();
$('#btn_wiz_save').off().on("click", function () {
//LED device config
//Start with a clean configuration
var d = {};
d.type = 'cololight';
//Cololight does not resolve into stable hostnames (as devices named the same), therefore use IP
if (!lights[selectedLightId].ip) {
d.host = lights[selectedLightId].host;
} else {
d.host = lights[selectedLightId].ip;
}
var coloLightProperties = lights[selectedLightId].props;
if (Object.keys(coloLightProperties).length === 0) {
alert($.i18n('wiz_cololight_noprops'));
d.hardwareLedCount = 1;
} else {
if (coloLightProperties.ledCount > 0) {
d.hardwareLedCount = coloLightProperties.ledCount;
} else if (coloLightProperties.modelType === "Strip")
d.hardwareLedCount = 120;
}
d.colorOrder = conf_editor.getEditor("root.generalOptions.colorOrder").getValue();
d.latchTime = parseInt(conf_editor.getEditor("root.specificOptions.latchTime").getValue());;
window.serverConfig.device = d;
//LED layout - have initial layout prepared matching the LED-count
var coloLightLedConfig = [];
if (coloLightProperties.modelType === "Strip") {
coloLightLedConfig = createClassicLedLayoutSimple(d.hardwareLedCount / 2, d.hardwareLedCount / 4, d.hardwareLedCount / 4, 0, d.hardwareLedCount / 4 * 3, false);
} else {
coloLightLedConfig = createClassicLedLayoutSimple(0, 0, 0, d.hardwareLedCount, 0, true);
}
window.serverConfig.leds = coloLightLedConfig;
//smoothing off
window.serverConfig.smoothing.enable = false;
requestWriteConfig(window.serverConfig, true);
resetWizard();
});
$('#btn_wiz_abort').off().on('click', resetWizard);
}
async function discover_cololights() {
const res = await requestLedDeviceDiscovery('cololight');
const res = requestLedDeviceIdentification("nanoleaf", params);
// TODO: error case unhandled
// res can be: false (timeout) or res.error (not found)
if (res && !res.error) { if (res && !res.error) {
const r = res.info const r = res.info;
console.log(r);
// Process devices returned by discovery
for (const device of r.devices) {
if (device.ip !== "") {
if (getIpInLights(device.ip).length === 0) {
var light = {};
light.ip = device.ip;
light.host = device.hostname;
light.name = device.name;
light.type = device.type;
lights.push(light);
}
}
}
assign_cololight_lights();
} }
} }
function assign_cololight_lights() {
// If records are left for configuration
if (Object.keys(lights).length > 0) {
$('#wh_topcontainer').toggle(false);
$('#colo_ids_t, #btn_wiz_save').toggle(true);
$('.lidsb').html("");
var options = "";
for (var lightid in lights) {
lights[lightid].id = lightid;
var lightHostname = lights[lightid].host;
var lightIP = lights[lightid].ip;
var val = lightHostname + " (" + lightIP + ")";
options += '<option value="' + lightid + '">' + val + '</option>';
}
var enabled = 'enabled';
$('.lidsb').append(createTableRow(['<select id="colo_select_id" ' + enabled + ' class="colo_sel_watch form-control">'
+ options
+ '</select>', '<button id="wiz_identify_btn" class="btn btn-sm btn-primary">'
+ $.i18n('wiz_identify') + '</button>']));
$('.colo_sel_watch').bind("change", function () {
selectedLightId = $('#colo_select_id').val();
var lightIP = lights[selectedLightId].ip;
$('#wiz_identify_btn').unbind().bind('click', function (event) { identify_cololight_device(lightIP); });
if (!lights[selectedLightId].props) {
getProperties_cololight(lightIP);
}
});
$('.colo_sel_watch').trigger('change');
}
else {
var noLightsTxt = '<p style="font-weight:bold;color:red;">' + $.i18n('wiz_noLights','Cololights') + '</p>';
$('#wizp2_body').append(noLightsTxt);
}
}
async function getProperties_cololight(ip) {
let params = { host: ip };
const res = await requestLedDeviceProperties('cololight', params);
if (res && !res.error) {
var coloLightProperties = res.info;
//Store properties along light with given IP-address
var id = getIpInLights(ip)[0].id;
lights[id].props = coloLightProperties;
}
}
function identify_cololight_device(hostAddress) {
let params = { host: hostAddress };
requestLedDeviceIdentification("cololight", params);
}
//**************************** //****************************
// Wizard/Routines RS232-Devices // Wizard/Routines RS232-Devices
//**************************** //****************************
@ -1860,7 +2037,6 @@ async function discover_providerRs232(rs232Type) {
//**************************** //****************************
async function discover_providerHid(hidType) { async function discover_providerHid(hidType) {
const res = await requestLedDeviceDiscovery(hidType); const res = await requestLedDeviceDiscovery(hidType);
console.log("discover_providerHid", res);
// TODO: error case unhandled // TODO: error case unhandled
// res can be: false (timeout) or res.error (not found) // res can be: false (timeout) or res.error (not found)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -27,6 +27,7 @@ sudo apt-get install \
libssl-dev \ libssl-dev \
libjpeg-dev \ libjpeg-dev \
libqt5sql5-sqlite \ libqt5sql5-sqlite \
libqt5svg5-dev \
zlib1g-dev \ zlib1g-dev \
if [ -e /dev/vc-cma -a -e /dev/vc-mem ] if [ -e /dev/vc-cma -a -e /dev/vc-mem ]

View File

@ -1,16 +0,0 @@
[Unit]
Description=Hyperion ambient light systemd service for OpenELEC/LibreELEC/RasPlex
After=graphical.target
After=network.target
[Service]
WorkingDirectory=/storage/hyperion/bin/
Environment=LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
ExecStart=./hyperiond /storage/.config/hyperion/hyperion.config.json
TimeoutStopSec=5
KillMode=mixed
Restart=on-failure
RestartSec=2
[Install]
WantedBy=default.target

View File

@ -311,6 +311,28 @@ macro(DeployWindows TARGET)
) )
endforeach() endforeach()
# Download DirectX End-User Runtimes (June 2010)
set(url "https://download.microsoft.com/download/8/4/A/84A35BF1-DAFE-4AE8-82AF-AD2AE20B6B14/directx_Jun2010_redist.exe")
if(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/dx_redist.exe")
file(DOWNLOAD "${url}" "${CMAKE_CURRENT_BINARY_DIR}/dx_redist.exe"
STATUS result
)
# Check if the download is successful
list(GET result 0 result_code)
if(NOT result_code EQUAL 0)
list(GET result 1 reason)
message(FATAL_ERROR "Could not download DirectX End-User Runtimes: ${reason}")
endif()
endif()
# Copy DirectX End-User Runtimes to 'hyperion'
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/dx_redist.exe
DESTINATION "bin"
COMPONENT "Hyperion"
)
else() else()
# Run CMake after target was built # Run CMake after target was built
add_custom_command( add_custom_command(

32
cmake/FindDirectX9.cmake Normal file
View File

@ -0,0 +1,32 @@
# Find the DirectX 9 includes and library
# This module defines:
# DIRECTX9_INCLUDE_DIRS, where to find d3d9.h, etc.
# DIRECTX9_LIBRARIES, libraries to link against to use DirectX.
# DIRECTX9_FOUND, If false, do not try to use DirectX.
# DIRECTX9_ROOT_DIR, directory where DirectX was installed.
set(DIRECTX9_INCLUDE_PATHS
"$ENV{DXSDK_DIR}/Include"
"$ENV{DIRECTX_ROOT}/Include"
"C:/Program Files (x86)/Microsoft DirectX SDK (June 2010)/Include"
"C:/Program Files/Microsoft DirectX SDK (June 2010)/Include"
)
find_path(DIRECTX9_INCLUDE_DIRS d3dx9.h ${DIRECTX9_INCLUDE_PATHS} NO_DEFAULT_PATH)
get_filename_component(DIRECTX9_ROOT_DIR "${DIRECTX9_INCLUDE_DIRS}/.." ABSOLUTE)
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
set(DIRECTX9_LIBRARY_PATHS "${DIRECTX9_ROOT_DIR}/Lib/x64")
else ()
set(DIRECTX9_LIBRARY_PATHS "${DIRECTX9_ROOT_DIR}/Lib/x86" "${DIRECTX9_ROOT_DIR}/Lib")
endif ()
find_library(DIRECTX9_D3D9_LIBRARY d3d9 ${DIRECTX9_LIBRARY_PATHS} NO_DEFAULT_PATH)
find_library(DIRECTX9_D3DX9_LIBRARY d3dx9 ${DIRECTX9_LIBRARY_PATHS} NO_DEFAULT_PATH)
find_library(DIRECTX9_DXERR_LIBRARY DxErr ${DIRECTX9_LIBRARY_PATHS} NO_DEFAULT_PATH)
set(DIRECTX9_LIBRARIES ${DIRECTX9_D3D9_LIBRARY} ${DIRECTX9_D3DX9_LIBRARY} ${DIRECTX9_DXERR_LIBRARY})
# handle the QUIETLY and REQUIRED arguments and set DIRECTX9_FOUND to TRUE if all listed variables are TRUE
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(DirectX9 DEFAULT_MSG DIRECTX9_ROOT_DIR DIRECTX9_LIBRARIES DIRECTX9_INCLUDE_DIRS)
mark_as_advanced(DIRECTX9_INCLUDE_DIRS DIRECTX9_D3D9_LIBRARY DIRECTX9_D3DX9_LIBRARY DIRECTX9_DXERR_LIBRARY)

View File

@ -21,6 +21,7 @@ echo "---Hyperion ambient light postinstall ---"
#check system #check system
CPU_RPI=`grep -m1 -c 'BCM2708\|BCM2709\|BCM2710\|BCM2835\|BCM2836\|BCM2837\|BCM2711' /proc/cpuinfo` CPU_RPI=`grep -m1 -c 'BCM2708\|BCM2709\|BCM2710\|BCM2835\|BCM2836\|BCM2837\|BCM2711' /proc/cpuinfo`
CPU_X32X64=`uname -m | grep 'x86_32\|i686\|x86_64' | wc -l` CPU_X32X64=`uname -m | grep 'x86_32\|i686\|x86_64' | wc -l`
OS_HYPERBIAN=`grep ID /etc/os-release | grep -m1 -c HyperBian`
#Check for a bootloader as Berryboot #Check for a bootloader as Berryboot
BOOT_BERRYBOOT=$(grep -m1 -c '\(/var/media\|/media/pi\)/berryboot' /etc/mtab) BOOT_BERRYBOOT=$(grep -m1 -c '\(/var/media\|/media/pi\)/berryboot' /etc/mtab)
@ -47,12 +48,19 @@ if grep -m1 systemd /proc/1/comm > /dev/null
then then
echo "---> init deamon: systemd" echo "---> init deamon: systemd"
# systemd # systemd
install_file /usr/share/hyperion/service/hyperion.systemd /etc/systemd/system/hyperiond@.service if [ $OS_HYPERBIAN -eq 1 ]; then
# service registration just on Raspberry Pi, probably need to ask the user how we should use the service. TODO service start in user login scope eg for x11?! # start service only
if [ $ENABLE_SERVICE -eq 1 ]; then echo "--> Service file already exists, skip creation"
systemctl enable hyperiond"@${FOUND_USR}".service start_msg="--> systemctl start hyperion"
start_msg="--> systemctl start hyperiond for user ${FOUND_USR}" systemctl start hyperion
systemctl start hyperiond"@${FOUND_USR}" else
install_file /usr/share/hyperion/service/hyperion.systemd /etc/systemd/system/hyperiond@.service
# service registration just on Raspberry Pi, probably need to ask the user how we should use the service. TODO service start in user login scope eg for x11?!
if [ $ENABLE_SERVICE -eq 1 ]; then
systemctl enable hyperiond"@${FOUND_USR}".service
start_msg="--> systemctl start hyperiond for user ${FOUND_USR}"
systemctl start hyperiond"@${FOUND_USR}"
fi
fi fi
elif [ -e /sbin/initctl ] elif [ -e /sbin/initctl ]
@ -92,11 +100,13 @@ ln -fs $BINSP/hyperion-xcb $BINTP/hyperion-xcb 2>/dev/null
ln -fs $BINSP/hyperion-aml $BINTP/hyperion-aml 2>/dev/null ln -fs $BINSP/hyperion-aml $BINTP/hyperion-aml 2>/dev/null
ln -fs $BINSP/hyperion-qt $BINTP/hyperion-qt 2>/dev/null ln -fs $BINSP/hyperion-qt $BINTP/hyperion-qt 2>/dev/null
# install desktop icons # install desktop icons / not on HyperBian
echo "---> Install Hyperion desktop icons" if [ $OS_HYPERBIAN -ne 1 ]; then
mkdir /usr/share/pixmaps/hyperion 2>/dev/null echo "---> Install Hyperion desktop icons"
cp /usr/share/hyperion/desktop/*.png /usr/share/pixmaps/hyperion 2>/dev/null mkdir /usr/share/pixmaps/hyperion 2>/dev/null
desktop-file-install /usr/share/hyperion/desktop/hyperiond.desktop 2>/dev/null cp /usr/share/hyperion/desktop/*.png /usr/share/pixmaps/hyperion 2>/dev/null
desktop-file-install /usr/share/hyperion/desktop/hyperiond.desktop 2>/dev/null
fi
# cleanup desktop icons # cleanup desktop icons
rm -r /usr/share/hyperion/desktop 2>/dev/null rm -r /usr/share/hyperion/desktop 2>/dev/null

View File

@ -12,7 +12,7 @@ then
then then
echo "--> stop init deamon: systemd" echo "--> stop init deamon: systemd"
# systemd # systemd
systemctl stop hyperiond"@${FOUND_USR}" 2> /dev/null systemctl stop hyperion hyperiond"@${FOUND_USR}" 2> /dev/null
elif [ -e /sbin/initctl ] elif [ -e /sbin/initctl ]
then then

View File

@ -13,10 +13,10 @@ if grep -m1 systemd /proc/1/comm > /dev/null
then then
echo "---> stop init deamon: systemd" echo "---> stop init deamon: systemd"
# systemd # systemd
$HYPERION_RUNNING && systemctl stop hyperiond"@${FOUND_USR}" 2> /dev/null $HYPERION_RUNNING && systemctl stop hyperion hyperiond"@${FOUND_USR}" 2> /dev/null
# disable user specific symlink # disable user specific symlink / not on HyperBian
echo "---> Disable service and remove entry" echo "---> Disable service and remove entry"
systemctl -q disable hyperiond"@${FOUND_USR}" systemctl -q disable hyperiond"@${FOUND_USR}" 2> /dev/null
rm -v /etc/systemd/system/hyperiond@.service 2>/dev/null rm -v /etc/systemd/system/hyperiond@.service 2>/dev/null
elif [ -e /sbin/initctl ] elif [ -e /sbin/initctl ]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -43,6 +43,8 @@
;Tnstaller window branding text ;Tnstaller window branding text
BrandingText /TRIMLEFT "@CPACK_NSIS_BRANDING_TEXT@" BrandingText /TRIMLEFT "@CPACK_NSIS_BRANDING_TEXT@"
@CPACK_NSIS_EXTRA_DEFS@
@CPACK_NSIS_DEFINES@ @CPACK_NSIS_DEFINES@
!include Sections.nsh !include Sections.nsh
@ -787,8 +789,15 @@ Section "-Core installation"
; Goto End ; Goto End
;End: ;End:
; Install Visual c++ Redistributable
ExecWait '"$INSTDIR\bin\vc_redist.x64.exe" /install /quiet' ExecWait '"$INSTDIR\bin\vc_redist.x64.exe" /install /quiet'
; Install DirectX 9 Redistributable
ExecWait '"$INSTDIR\bin\dx_redist.exe" /q /t:"$INSTDIR\tmp"'
ExecWait '"$INSTDIR\tmp\DXSETUP.exe" /silent'
Delete '$INSTDIR\tmp\*.*'
RMDir '$INSTDIR\tmp'
SectionEnd SectionEnd
Section "-Add to path" Section "-Add to path"

View File

@ -58,7 +58,7 @@ ENDIF()
# https://cmake.org/Wiki/CMake:CPackPackageGenerators # https://cmake.org/Wiki/CMake:CPackPackageGenerators
# .deb files for apt # .deb files for apt
SET ( CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/cmake/debian/preinst;${CMAKE_CURRENT_SOURCE_DIR}/cmake/debian/postinst;${CMAKE_CURRENT_SOURCE_DIR}/cmake/debian/prerm" ) SET ( CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/cmake/debian/preinst;${CMAKE_CURRENT_SOURCE_DIR}/cmake/debian/postinst;${CMAKE_CURRENT_SOURCE_DIR}/cmake/debian/prerm" )
SET ( CPACK_DEBIAN_PACKAGE_DEPENDS "libcec4" ) SET ( CPACK_DEBIAN_PACKAGE_DEPENDS "libcec6 | libcec4" )
SET ( CPACK_DEBIAN_PACKAGE_SECTION "Miscellaneous" ) SET ( CPACK_DEBIAN_PACKAGE_SECTION "Miscellaneous" )
# .rpm for rpm # .rpm for rpm
@ -105,19 +105,12 @@ SET ( CPACK_NSIS_HELP_LINK "https://www.hyperion-project.org")
SET ( CPACK_NSIS_URL_INFO_ABOUT "https://www.hyperion-project.org") SET ( CPACK_NSIS_URL_INFO_ABOUT "https://www.hyperion-project.org")
SET ( CPACK_NSIS_MUI_FINISHPAGE_RUN "hyperiond.exe") SET ( CPACK_NSIS_MUI_FINISHPAGE_RUN "hyperiond.exe")
SET ( CPACK_NSIS_BRANDING_TEXT "Hyperion-${HYPERION_VERSION}") SET ( CPACK_NSIS_BRANDING_TEXT "Hyperion-${HYPERION_VERSION}")
# custom nsis plugin directory
SET ( CPACK_NSIS_EXTRA_DEFS "!addplugindir ${CMAKE_SOURCE_DIR}/cmake/nsis/plugins")
# additional hyperiond startmenu link, won't be created if the user disables startmenu links # additional hyperiond startmenu link, won't be created if the user disables startmenu links
SET ( CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Hyperion (Console).lnk' '$INSTDIR\\\\bin\\\\hyperiond.exe' '-d -c'") SET ( CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Hyperion (Console).lnk' '$INSTDIR\\\\bin\\\\hyperiond.exe' '-d -c'")
SET ( CPACK_NSIS_DELETE_ICONS_EXTRA "Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Hyperion (Console).lnk'") SET ( CPACK_NSIS_DELETE_ICONS_EXTRA "Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Hyperion (Console).lnk'")
#SET ( CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Hyperion.lnk' '$INSTDIR\\\\bin\\\\hyperiond.exe'")
#SET ( CPACK_NSIS_DELETE_ICONS_EXTRA "Delete '$SMPROGRAMS\\\\$START_MENU\\\\Hyperion.lnk'")
# hyperiond desktop link
#SET ( CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut '$DESKTOP\\\\Hyperion.lnk' '$INSTDIR\\\\bin\\\\hyperiond.exe' ")
#SET ( CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "Delete '$DESKTOP\\\\Hyperion.lnk' ")
#SET ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "CreateShortCut \\\"$DESKTOP\\\\Hyperion.lnk\\\" \\\"$INSTDIR\\\\bin\\\\hyperiond.exe\\\" ")
#SET ( CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "Delete \\\"$DESKTOP\\\\Hyperion.lnk\\\" ")
# define the install components # define the install components
# See also https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/Component-Install-With-CPack # See also https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/Component-Install-With-CPack
# and https://cmake.org/cmake/help/latest/module/CPackComponent.html # and https://cmake.org/cmake/help/latest/module/CPackComponent.html

View File

@ -165,10 +165,7 @@
"pixelDecimation" : 8, "pixelDecimation" : 8,
// valid for qt // valid for qt
"display" 0, "display" 0
// valid for framebuffer
"device" : "/dev/fb0"
}, },
/// The black border configuration, contains the following items: /// The black border configuration, contains the following items:
@ -178,7 +175,7 @@
/// * borderFrameCnt : Number of frames before a consistent detected border gets set (default 50) /// * borderFrameCnt : Number of frames before a consistent detected border gets set (default 50)
/// * maxInconsistentCnt : Number of inconsistent frames that are ignored before a new border gets a chance to proof consistency /// * maxInconsistentCnt : Number of inconsistent frames that are ignored before a new border gets a chance to proof consistency
/// * blurRemoveCnt : Number of pixels that get removed from the detected border to cut away blur (default 1) /// * blurRemoveCnt : Number of pixels that get removed from the detected border to cut away blur (default 1)
/// * mode : Border detection mode (values=default,classic,osd) /// * mode : Border detection mode (values=default,classic,osd,letterbox)
"blackborderdetector" : "blackborderdetector" :
{ {
"enable" : true, "enable" : true,

View File

@ -48,12 +48,16 @@
"smoothing" : "smoothing" :
{ {
"enable" : true, "enable" : true,
"type" : "linear", "type" : "linear",
"time_ms" : 200, "time_ms" : 200,
"updateFrequency" : 25.0000, "updateFrequency" : 25.0000,
"updateDelay" : 0, "interpolationRate" : 25.0000,
"continuousOutput" : true "outputRate" : 25.0000,
"decay" : 1,
"dithering" : false,
"updateDelay" : 0,
"continuousOutput" : true
}, },
"grabberV4L2" : "grabberV4L2" :
@ -91,7 +95,7 @@
"cropRight" : 0, "cropRight" : 0,
"cropTop" : 0, "cropTop" : 0,
"cropBottom" : 0, "cropBottom" : 0,
"device" : "/dev/fb0" "display" : 0
}, },
"blackborderdetector" : "blackborderdetector" :
@ -116,7 +120,7 @@
"backgroundEffect" : "backgroundEffect" :
{ {
"enable" : true, "enable" : false,
"type" : "effect", "type" : "effect",
"color" : [255,138,0], "color" : [255,138,0],
"effect" : "Warm mood blobs" "effect" : "Warm mood blobs"
@ -193,10 +197,10 @@
{ {
"classic": "classic":
{ {
"top" : 8, "top" : 1,
"bottom" : 8, "bottom" : 0,
"left" : 5, "left" : 0,
"right" : 5, "right" : 0,
"glength" : 0, "glength" : 0,
"gpos" : 0, "gpos" : 0,
"position" : 0, "position" : 0,
@ -217,8 +221,8 @@
"matrix": "matrix":
{ {
"ledshoriz": 10, "ledshoriz": 1,
"ledsvert" : 10, "ledsvert" : 1,
"cabling" : "snake", "cabling" : "snake",
"start" : "top-left" "start" : "top-left"
} }
@ -227,160 +231,10 @@
"leds": "leds":
[ [
{ {
"hmax": 0.125, "hmax": 1,
"hmin": 0, "hmin": 0,
"vmax": 0.08, "vmax": 0.08,
"vmin": 0 "vmin": 0
},
{
"hmax": 0.25,
"hmin": 0.125,
"vmax": 0.08,
"vmin": 0
},
{
"hmax": 0.375,
"hmin": 0.25,
"vmax": 0.08,
"vmin": 0
},
{
"hmax": 0.5,
"hmin": 0.375,
"vmax": 0.08,
"vmin": 0
},
{
"hmax": 0.625,
"hmin": 0.5,
"vmax": 0.08,
"vmin": 0
},
{
"hmax": 0.75,
"hmin": 0.625,
"vmax": 0.08,
"vmin": 0
},
{
"hmax": 0.875,
"hmin": 0.75,
"vmax": 0.08,
"vmin": 0
},
{
"hmax": 1,
"hmin": 0.875,
"vmax": 0.08,
"vmin": 0
},
{
"hmax": 1,
"hmin": 0.95,
"vmax": 0.2,
"vmin": 0
},
{
"hmax": 1,
"hmin": 0.95,
"vmax": 0.4,
"vmin": 0.2
},
{
"hmax": 1,
"hmin": 0.95,
"vmax": 0.6,
"vmin": 0.4
},
{
"hmax": 1,
"hmin": 0.95,
"vmax": 0.8,
"vmin": 0.6
},
{
"hmax": 1,
"hmin": 0.95,
"vmax": 1,
"vmin": 0.8
},
{
"hmax": 1,
"hmin": 0.875,
"vmax": 1,
"vmin": 0.92
},
{
"hmax": 0.875,
"hmin": 0.75,
"vmax": 1,
"vmin": 0.92
},
{
"hmax": 0.75,
"hmin": 0.625,
"vmax": 1,
"vmin": 0.92
},
{
"hmax": 0.625,
"hmin": 0.5,
"vmax": 1,
"vmin": 0.92
},
{
"hmax": 0.5,
"hmin": 0.375,
"vmax": 1,
"vmin": 0.92
},
{
"hmax": 0.375,
"hmin": 0.25,
"vmax": 1,
"vmin": 0.92
},
{
"hmax": 0.25,
"hmin": 0.125,
"vmax": 1,
"vmin": 0.92
},
{
"hmax": 0.125,
"hmin": 0,
"vmax": 1,
"vmin": 0.92
},
{
"hmax": 0.05,
"hmin": 0,
"vmax": 1,
"vmin": 0.8
},
{
"hmax": 0.05,
"hmin": 0,
"vmax": 0.8,
"vmin": 0.6
},
{
"hmax": 0.05,
"hmin": 0,
"vmax": 0.6,
"vmin": 0.4
},
{
"hmax": 0.05,
"hmin": 0,
"vmax": 0.4,
"vmin": 0.2
},
{
"hmax": 0.05,
"hmin": 0,
"vmax": 0.2,
"vmin": 0
} }
] ]
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 KiB

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 389 KiB

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 KiB

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 346 KiB

After

Width:  |  Height:  |  Size: 282 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 356 KiB

After

Width:  |  Height:  |  Size: 287 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 444 KiB

After

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 460 KiB

After

Width:  |  Height:  |  Size: 352 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 KiB

After

Width:  |  Height:  |  Size: 389 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 646 KiB

After

Width:  |  Height:  |  Size: 498 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 KiB

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Some files were not shown because too many files have changed in this diff Show More