diff --git a/ISSUE_TEMPLATE b/ISSUE_TEMPLATE index e8f12f0a..b43a2f97 100644 --- a/ISSUE_TEMPLATE +++ b/ISSUE_TEMPLATE @@ -1,8 +1,9 @@ -**Please provide some information that we could help as fast as possible. -Please check the wiki in case your problem is already known/feature requested.** +BEFORE YOU OPEN A NEW ISSUE! -**1.** Used hardware and sofware (Wetek,RPi1,Rpi2,... Ubuntu 14.04(64bit),OSX,OpenELEC,OSMC,XBian,...) -**2.** Your LED device and additional hardware (if used) (WS2801,APA102,WS2812B,... connected through (direct,arduino uno,...)) -**3.** Please upload your Hyperion log to pastebin.com and insert the link. Have a look at the wiki how you get one. -**4.** Please upload your "Hyperion Configuration File" to pastebin.com and insert the link. +Search at our wiki: wiki.hyperion-project.org +Our FAQ: https://hyperion-project.org/wiki/FAQ-Frequently-Asked-Questions +And have a look at our forum: forum.hyperion-project.org +If you need help please open a new thread their! +WE PROVIDE NO SUPPORT AT GITHUB! +All misleading issues will be closed without a announcement! diff --git a/PULL_REQUEST_TEMPLATE b/PULL_REQUEST_TEMPLATE index 747a065c..8e947083 100644 --- a/PULL_REQUEST_TEMPLATE +++ b/PULL_REQUEST_TEMPLATE @@ -3,3 +3,5 @@ IMPORTANT: Please don´t commit to master, we will test your changes first at th **2.** If this changes affect the .conf file. Please provide the changed section **3.** Reference a issue (optional) +Note: For further discussions use our forum: forum.hyperion-project.org + diff --git a/README.md b/README.md index 0e1a5cb7..e8ead57c 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,17 @@ HYPERION ======== -Hyperion is an opensource 'AmbiLight' implementation controlled using the RaspBerry Pi running [Raspbmc](http://www.raspbmc.com). The main features of Hyperion are: +Hyperion is an opensource 'AmbiLight' implementation supported by many devices. The main features of Hyperion are: * Low CPU load. For a led string of 50 leds the CPU usage will typically be below 1.5% on a non-overclocked Pi. * Json interface which allows easy integration into scripts. * A command line utility allows easy testing and configuration of the color transforms (Transformation settings are not preserved over a restart at the moment...). * Priority channels are not coupled to a specific led data provider which means that a provider can post led data and leave without the need to maintain a connection to Hyperion. This is ideal for a remote application (like our Android app). * HyperCon. A tool which helps generate a Hyperion configuration file. -* XBMC-checker which checks the playing status of XBMC and decides whether or not to capture the screen. +* Kodi-checker which checks the playing status of Kodi and decides whether or not to capture the screen. * Black border detector. * A scriptable effect engine. * Generic software architecture to support new devices and new algorithms easily. -More information can be found on the [wiki](https://github.com/tvdzwan/hyperion/wiki) or the [Hyperion topic](http://forum.stmlabs.com/showthread.php?tid=11053) on the Raspbmc forum. +More information can be found on the [wiki](wiki.hyperion-project.org) or the [Hyperion webpage/forum](www.hyperion-project.org). The source is released under MIT-License (see http://opensource.org/licenses/MIT). diff --git a/bin/create_all_releases.sh b/bin/create_all_releases.sh index 9f969cef..b3e5579a 100644 --- a/bin/create_all_releases.sh +++ b/bin/create_all_releases.sh @@ -1,8 +1,8 @@ #!/bin/sh # create all directly for release with -DCMAKE_BUILD_TYPE=Release -Wno-dev # Create the x64 build -mkdir build-x32x64 -cd build-x32x64 +mkdir build-x86x64 +cd build-x86x64 cmake -DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DCMAKE_BUILD_TYPE=Release -Wno-dev .. make -j 4 cd .. @@ -17,14 +17,14 @@ cd .. # Create the RPI build mkdir build-rpi cd build-rpi -cmake -DCMAKE_TOOLCHAIN_FILE="../Toolchain-rpi.cmake" -DIMPORT_PROTOC=../build-x32x64/protoc_export.cmake -DENABLE_WS2812BPWM=ON -DENABLE_WS281XPWM=ON -DCMAKE_BUILD_TYPE=Release -Wno-dev .. +cmake -DCMAKE_TOOLCHAIN_FILE="../Toolchain-rpi.cmake" -DIMPORT_PROTOC=../build-x86x64/protoc_export.cmake -DENABLE_WS2812BPWM=ON -DENABLE_WS281XPWM=ON -DCMAKE_BUILD_TYPE=Release -Wno-dev .. make -j 4 cd .. # Create the WETEK build mkdir build-wetek cd build-wetek -cmake -DCMAKE_TOOLCHAIN_FILE="../Toolchain-rpi.cmake" -DIMPORT_PROTOC=../build-x32x64/protoc_export.cmake -DENABLE_DISPMANX=OFF -DENABLE_FB=ON -DENABLE_AMLOGIC=ON -DCMAKE_BUILD_TYPE=Release -Wno-dev .. +cmake -DCMAKE_TOOLCHAIN_FILE="../Toolchain-rpi.cmake" -DIMPORT_PROTOC=../build-x86x64/protoc_export.cmake -DENABLE_DISPMANX=OFF -DENABLE_FB=ON -DENABLE_AMLOGIC=ON -DCMAKE_BUILD_TYPE=Release -Wno-dev .. make -j 4 cd .. @@ -35,7 +35,7 @@ cd .. #make -j 4 #cd .. -bin/create_release.sh . x32x64 +bin/create_release.sh . x86x64 #bin/create_release.sh . x32 bin/create_release.sh . rpi bin/create_release.sh . wetek diff --git a/bin/install_hyperion.sh b/bin/install_hyperion.sh index 9cf8f8fb..2d657caf 100755 --- a/bin/install_hyperion.sh +++ b/bin/install_hyperion.sh @@ -9,14 +9,6 @@ if [ "$1" = "HyperConInstall" ] || [ "$2" = "HyperConInstall" ]; then HCInstall=1 else HCInstall=0 fi -if [ "$1" = "WS281X" ] || [ "$2" = "WS281X" ]; then - PWM=1 -else PWM=0 -fi -if [ "$1" = "USB" ] || [ "$2" = "USB" ]; then - USB=1 -else USB=0 -fi #Check if HyperCon is logged in as root if [ $(id -u) != 0 ] && [ $HCInstall -eq 1 ]; then @@ -34,24 +26,30 @@ fi #Welcome message echo '*******************************************************************************' echo 'This script will install/update Hyperion and it´s services' -echo 'Version 0.1' +echo 'Created by brindosch - hyperion-project.org - the official Hyperion source.' echo '*******************************************************************************' -# Find out if we are on OpenElec / OSMC +# Find out if we are on OpenElec / OSMC / Raspbian OS_OPENELEC=`grep -m1 -c OpenELEC /etc/issue` OS_OSMC=`grep -m1 -c OSMC /etc/issue` +OS_RASPBIAN=`grep -m1 -c 'Raspbian\|RetroPie' /etc/issue` -# Find out if its an imx6 device +# Find out which device this script runs on CPU_RPI=`grep -m1 -c 'BCM2708\|BCM2709\|BCM2710' /proc/cpuinfo` CPU_IMX6=`grep -m1 -c i.MX6 /proc/cpuinfo` CPU_WETEK=`grep -m1 -c Amlogic /proc/cpuinfo` CPU_X32X64=`uname -m | grep 'x86_32\|i686\|x86_64' | wc -l` -#CPU_X32=`uname -m | grep 'x86_32\|i686' | wc -l` # Check that we have a known configuration if [ $CPU_RPI -ne 1 ] && [ $CPU_IMX6 -ne 1 ] && [ $CPU_WETEK -ne 1 ] && [ $CPU_X32X64 -ne 1 ]; then echo '---> Critical Error: CPU information does not match any known releases -> abort' exit 1 fi + +#Check which RPi we are one (in case) +RPI_1=`grep -m1 -c BCM2708 /proc/cpuinfo` +RPI_2=`grep -m1 -c BCM2709 /proc/cpuinfo` +RPI_3=`grep -m1 -c BCM2710 /proc/cpuinfo` + #Check, if year equals 1970 DATE=$(date +"%Y") if [ "$DATE" -le "2015" ]; then @@ -67,7 +65,7 @@ USE_SERVICE=`which /usr/sbin/service | wc -l` # Make sure that the boblight daemon is no longer running BOBLIGHT_PROCNR=$(pidof boblightd | wc -l) if [ $BOBLIGHT_PROCNR -eq 1 ]; then - echo '---> Critical Error: Found running instance of boblight. Please stop boblight via XBMC menu before installing hyperion -> abort' + echo '---> Critical Error: Found running instance of boblight. Please stop boblight via Kodi menu before installing hyperion -> abort' exit 1 fi @@ -92,7 +90,7 @@ if [ $OS_OPENELEC -ne 1 ]; then fi #Check, if dtparam=spi=on is in place (not for OPENELEC) -if [ $PWM -ne 1 ] && [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -ne 1 ]; then +if [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -ne 1 ]; then SPIOK=`grep '^\dtparam=spi=on' /boot/config.txt | wc -l` if [ $SPIOK -ne 1 ]; then echo '---> Raspberry Pi found, but SPI is not ready, we write "dtparam=spi=on" to /boot/config.txt' @@ -102,7 +100,7 @@ if [ $PWM -ne 1 ] && [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -ne 1 ]; then fi #Check, if dtparam=spi=on is in place (just for OPENELEC) -if [ $PWM -ne 1 ] && [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -eq 1 ]; then +if [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -eq 1 ]; then SPIOK=`grep '^\dtparam=spi=on' /flash/config.txt | wc -l` if [ $SPIOK -ne 1 ]; then mount -o remount,rw /flash @@ -113,27 +111,6 @@ if [ $PWM -ne 1 ] && [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -eq 1 ]; then fi fi -#Check, if dtoverlay=pwm is in place (not for OPENELEC) -#if [ $PWM -eq 1 ] && [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -ne 1 ]; then -# PWMOK=`grep '^\dtoverlay=pwm' /boot/config.txt | wc -l` -# if [ $PWMOK -ne 1 ]; then -# echo '---> Raspberry Pi found, but PWM is not ready, we write "dtoverlay=pwm" to /boot/config.txt' -# sed -i '$a dtoverlay=pwm' /boot/config.txt -# PWMREBOOTMESSAGE="echo Please reboot your Raspberry Pi, we inserted dtoverlay=pwm to /boot/config.txt" -# fi -#fi - -#Check, if dtoverlay=pwm is in place (just for OPENELEC) -if [ $PWM -eq 1 ] && [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -eq 1 ]; then - PWMOK=`grep '^\dtoverlay=pwm' /flash/config.txt | wc -l` - if [ $PWMOK -ne 1 ]; then - mount -o remount,rw /flash - echo '---> Raspberry Pi with OpenELEC found, but PWM is not ready, we write "dtoverlay=pwm" to /flash/config.txt' - sed -i '$a dtoverlay=pwm' /flash/config.txt - mount -o remount,ro /flash - PWMREBOOTMESSAGE="echo Please reboot your OpenELEC, we inserted dtoverlay=pwm to /flash/config.txt" - fi -fi #Backup the .conf files, if present echo '---> Backup Hyperion configuration(s), if present' rm -f /tmp/*.json 2>/dev/null @@ -143,10 +120,22 @@ else cp -v /opt/hyperion/config/*.json /tmp 2>/dev/null fi # Select the appropriate release -HYPERION_ADDRESS=https://raw.githubusercontent.com/tvdzwan/hyperion/master/deploy -if [ $CPU_RPI -eq 1 ]; then - HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_rpi.tar.gz +HYPERION_ADDRESS=https://sourceforge.net/projects/hyperion-project/files/release +if [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -eq 1 ] && [ $RPI_1 -eq 1 ]; then + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_rpi_oe.tar.gz OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-rpi.tar.gz +elif [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -eq 1 ] && [ $RPI_2 -eq 1 ]; then + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_rpi2_oe.tar.gz + OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-rpi.tar.gz +elif [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -eq 1 ] && [ $RPI_3 -eq 1 ]; then + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_rpi3_oe.tar.gz + OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-rpi.tar.gz +elif [ $CPU_RPI -eq 1 ] && [ $RPI_1 -eq 1 ]; then + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_rpi.tar.gz +elif [ $CPU_RPI -eq 1 ] && [ $RPI_2 -eq 1 ]; then + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_rpi2.tar.gz +elif [ $CPU_RPI -eq 1 ] && [ $RPI_3 -eq 1 ]; then + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_rpi3.tar.gz elif [ $CPU_IMX6 -eq 1 ]; then HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_imx6.tar.gz OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-imx6.tar.gz @@ -154,11 +143,8 @@ elif [ $CPU_WETEK -eq 1 ]; then HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_wetek.tar.gz OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-rpi.tar.gz elif [ $CPU_X32X64 -eq 1 ]; then - HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_x32x64.tar.gz - OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-x32x64.tar.gz -#elif [ $CPU_X32 -eq 1 ]; then -# HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_x32.tar.gz -# OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-x32x64.tar.gz + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_x86x64.tar.gz + OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-x86x64.tar.gz else echo "---> Critical Error: Target platform unknown -> abort" exit 1 @@ -189,9 +175,6 @@ else ln -fs /opt/hyperion/bin/hyperion-v4l2 /usr/bin/hyperion-v4l2 ln -fs /opt/hyperion/bin/hyperion-dispmanx /usr/bin/hyperion-dispmanx 2>/dev/null ln -fs /opt/hyperion/bin/hyperion-x11 /usr/bin/hyperion-x11 2>/dev/null - -# Copy a link to the hyperion configuration file to /etc (-s for people who replaced the symlink with their config) - ln -s /opt/hyperion/config/hyperion.config.json /etc/hyperion.config.json 2>/dev/null fi # Restore backup of .conf files, if present @@ -229,29 +212,13 @@ elif [ $USE_SYSTEMD -eq 1 ]; then rm /etc/init.d/hyperion 2>/dev/null cp -n /opt/hyperion/init.d/hyperion.systemd.sh /etc/systemd/system/hyperion.service systemctl -q enable hyperion.service - if [ $PWM -eq 1 ] && [ $OS_OSMC -eq 1 ]; then - echo '---> Modify systemd script for OSMC usage (PWM Support)' - # Wait until kodi is sarted (for xbmc checker) and FIX user in case it is wrong (need root for access to pwm!)! - sed -i '/After = mediacenter.service/d' /etc/systemd/system/hyperion.service - sed -i '/Unit/a After = mediacenter.service' /etc/systemd/system/hyperion.service - sed -i 's/User=osmc/User=root/g' /etc/systemd/system/hyperion.service - sed -i 's/Group=osmc/Group=root/g' /etc/systemd/system/hyperion.service - systemctl -q daemon-reload - elif [ $USB -eq 1 ] && [ $OS_OSMC -eq 1 ]; then - echo '---> Modify systemd script for OSMC usage (USB Support)' - # Wait until kodi is sarted (for xbmc checker) and FIX user in case it is wrong (need root for access to USB!)! - sed -i '/After = mediacenter.service/d' /etc/systemd/system/hyperion.service - sed -i '/Unit/a After = mediacenter.service' /etc/systemd/system/hyperion.service - sed -i 's/User=osmc/User=root/g' /etc/systemd/system/hyperion.service - sed -i 's/Group=osmc/Group=root/g' /etc/systemd/system/hyperion.service - systemctl -q daemon-reload - elif [ $OS_OSMC -eq 1 ]; then + if [ $OS_OSMC -eq 1 ]; then echo '---> Modify systemd script for OSMC usage' - # Wait until kodi is sarted (for xbmc checker) and replace user (for remote control through osmc) + # Wait until kodi is sarted (for kodi checker) sed -i '/After = mediacenter.service/d' /etc/systemd/system/hyperion.service sed -i '/Unit/a After = mediacenter.service' /etc/systemd/system/hyperion.service - sed -i 's/User=root/User=osmc/g' /etc/systemd/system/hyperion.service - sed -i 's/Group=root/Group=osmc/g' /etc/systemd/system/hyperion.service + sed -i 's/User=osmc/User=root/g' /etc/systemd/system/hyperion.service + sed -i 's/Group=osmc/Group=root/g' /etc/systemd/system/hyperion.service systemctl -q daemon-reload fi elif [ $USE_SERVICE -eq 1 ]; then @@ -262,10 +229,17 @@ elif [ $USE_SERVICE -eq 1 ]; then update-rc.d hyperion defaults 98 02 fi +#chown the /config/ dir and all configs inside for hypercon config upload for non-root logins +if [ $OS_OSMC -eq 1 ]; then + chown -R osmc:osmc /opt/hyperion/config +elif [ $OS_RASPBIAN -eq 1 ]; then + chown -R pi:pi /opt/hyperion/config +fi + # Start the hyperion daemon echo '---> Starting Hyperion' if [ $OS_OPENELEC -eq 1 ]; then - /storage/.config/autostart.sh + /storage/.config/autostart.sh > /dev/null 2>&1 & elif [ $USE_INITCTL -eq 1 ]; then /sbin/initctl start hyperion elif [ $USE_SERVICE -eq 1 ]; then @@ -285,16 +259,15 @@ echo 'Please get a new HyperCon version to benefit from the latest features!' echo 'Create a new config file, if you encounter problems!' $HINTMESSAGE $REBOOTMESSAGE -$PWMREBOOTMESSAGE echo '*******************************************************************************' ## Force reboot and prevent prompt if spi is added during a HyperCon Install -if ( [ "$HCInstall" = "1" ] && [ "$CPU_RPI" = "1" ] ) && ( [ "$SPIOK" = "0" ] || [ "$PWMOK" = "0" ] ); then - echo "Rebooting now, we added dtparam=spi=on and/or dtoverlay=pwm to config.txt" +if [ $HCInstall -eq 1 ] && [ $CPU_RPI -eq 1 ] && [ $SPIOK -ne 1 ]; then + echo "Rebooting now, we added dtparam=spi=on to config.txt" reboot exit 0 fi #Prompt for reboot, if spi added to config.txt -if ( [ "$CPU_RPI" = "1" ] ) && ( [ "$SPIOK" = "0" ] || [ "$PWMOK" = "0" ] ); then +if [ $CPU_RPI -eq 1 ] && [ $SPIOK -ne 1 ]; then while true do echo -n "---> Do you want to reboot your Raspberry Pi now? (y or n) :" diff --git a/bin/remove_hyperion.sh b/bin/remove_hyperion.sh index 8ce5fd38..fafd0f99 100644 --- a/bin/remove_hyperion.sh +++ b/bin/remove_hyperion.sh @@ -21,6 +21,7 @@ fi echo '*******************************************************************************' echo 'This script will remove Hyperion and it´s services' echo '-----> Please BACKUP your hyperion.config.json if necessary <-----' +echo 'Created by brindosch - hyperion-project.org - the official Hyperion source.' echo '*******************************************************************************' #Skip the prompt if HyperCon Remove @@ -49,6 +50,9 @@ USE_SYSTEMD=`grep -m1 -c systemd /proc/1/comm` USE_INITCTL=`which /sbin/initctl | wc -l` USE_SERVICE=`which /usr/sbin/service | wc -l` +# set count for forwarder +SERVICEC=1 + # Stop hyperion daemon if it is running echo '---> Stop Hyperion, if necessary' if [ $OS_OPENELEC -eq 1 ]; then @@ -59,12 +63,19 @@ elif [ $USE_SERVICE -eq 1 ]; then /usr/sbin/service hyperion stop 2>/dev/null elif [ $USE_SYSTEMD -eq 1 ]; then service hyperion stop 2>/dev/null + while [ $SERVICEC -le 20 ]; do + service hyperion_fw$SERVICEC stop 2>/dev/null + ((SERVICEC++)) + done fi +#reset count +SERVICEC=`which /usr/sbin/service | wc -l` + #Disabling and delete service files if [ $USE_INITCTL -eq 1 ]; then echo '---> Delete and disable Hyperion initctl script' - rm -v /etc/init/hyperion.conf 2>/dev/null + rm -v /etc/init/hyperion* 2>/dev/null initctl reload-configuration elif [ $OS_OPENELEC -eq 1 ]; then # Remove Hyperion from OpenELEC autostart.sh @@ -75,12 +86,20 @@ elif [ $USE_SYSTEMD -eq 1 ]; then # Delete and disable Hyperion systemd script echo '---> Delete and disable Hyperion systemd script' systemctl disable hyperion.service - rm -v /etc/systemd/system/hyperion.service 2>/dev/null + while [ $SERVICEC -le 20 ]; do + systemctl -q disable hyperion_fw$SERVICEC.service 2>/dev/null + ((SERVICEC++)) + done + rm -v /etc/systemd/system/hyperion* 2>/dev/null elif [ $USE_SERVICE -eq 1 ]; then # Delete and disable Hyperion init.d script echo '---> Delete and disable Hyperion init.d script' update-rc.d -f hyperion remove - rm /etc/init.d/hyperion 2>/dev/null + while [ $SERVICEC -le 20 ]; do + update-rc.d -f hyperion_fw$SERVICEC remove 2>/dev/null + ((SERVICEC++)) + done + rm /etc/init.d/hyperion* 2>/dev/null fi # Delete Hyperion binaries diff --git a/bin/scripts/install_hyperion_beta.sh b/bin/scripts/install_hyperion_beta.sh new file mode 100644 index 00000000..d67c4419 --- /dev/null +++ b/bin/scripts/install_hyperion_beta.sh @@ -0,0 +1,288 @@ +#!/bin/sh +# Script for downloading and installing the latest Hyperion release + +# Make sure /sbin is on the path (for service to find sub scripts) +PATH="/sbin:$PATH" + +#Check which arguments are used +if [ "$1" = "HyperConInstall" ] || [ "$2" = "HyperConInstall" ]; then + HCInstall=1 +else HCInstall=0 +fi + +#Check if HyperCon is logged in as root +if [ $(id -u) != 0 ] && [ $HCInstall -eq 1 ]; then + echo '---> Critical Error: Please connect as user "root" through HyperCon' + echo '---> We need admin privileges to install/update your Hyperion! -> abort' + exit 1 +fi + +#Check, if script is running as root +if [ $(id -u) != 0 ]; then + echo '---> Critical Error: Please run the script as root (sudo sh ./install_hyperion.sh) -> abort' + exit 1 +fi + +#Welcome message +echo '*******************************************************************************' +echo 'This script will install/update Hyperion and it´s services' +echo 'Created by brindosch - hyperion-project.org - the official Hyperion source.' +echo '*******************************************************************************' + +# Find out if we are on OpenElec / OSMC / Raspbian +OS_OPENELEC=`grep -m1 -c OpenELEC /etc/issue` +OS_OSMC=`grep -m1 -c OSMC /etc/issue` +OS_RASPBIAN=`grep -m1 -c 'Raspbian\|RetroPie' /etc/issue` + +# Find out which device this script runs on +CPU_RPI=`grep -m1 -c 'BCM2708\|BCM2709\|BCM2710' /proc/cpuinfo` +CPU_IMX6=`grep -m1 -c i.MX6 /proc/cpuinfo` +CPU_WETEK=`grep -m1 -c Amlogic /proc/cpuinfo` +CPU_X32X64=`uname -m | grep 'x86_32\|i686\|x86_64' | wc -l` +# Check that we have a known configuration +if [ $CPU_RPI -ne 1 ] && [ $CPU_IMX6 -ne 1 ] && [ $CPU_WETEK -ne 1 ] && [ $CPU_X32X64 -ne 1 ]; then + echo '---> Critical Error: CPU information does not match any known releases -> abort' + exit 1 +fi + +#Check which RPi we are one (in case) +RPI_1=`grep -m1 -c BCM2708 /proc/cpuinfo` +RPI_2=`grep -m1 -c BCM2709 /proc/cpuinfo` +RPI_3=`grep -m1 -c BCM2710 /proc/cpuinfo` + +#Check, if year equals 1970 +DATE=$(date +"%Y") +if [ "$DATE" -le "2015" ]; then + echo "---> Critical Error: Please update your systemtime (Year of your system: ${DATE}) -> abort" + exit 1 +fi + +# check which init script we should use +USE_SYSTEMD=`grep -m1 -c systemd /proc/1/comm` +USE_INITCTL=`which /sbin/initctl | wc -l` +USE_SERVICE=`which /usr/sbin/service | wc -l` + +# Make sure that the boblight daemon is no longer running +BOBLIGHT_PROCNR=$(pidof boblightd | wc -l) +if [ $BOBLIGHT_PROCNR -eq 1 ]; then + echo '---> Critical Error: Found running instance of boblight. Please stop boblight via Kodi menu before installing hyperion -> abort' + exit 1 +fi + +# Stop hyperion daemon if it is running +echo '---> Stop Hyperion, if necessary' +if [ $OS_OPENELEC -eq 1 ]; then + killall hyperiond 2>/dev/null +elif [ $USE_INITCTL -eq 1 ]; then + /sbin/initctl stop hyperion 2>/dev/null +elif [ $USE_SERVICE -eq 1 ]; then + /usr/sbin/service hyperion stop 2>/dev/null +elif [ $USE_SYSTEMD -eq 1 ]; then + service hyperion stop 2>/dev/null + #many people installed with the official script and this just uses service, if both registered -> dead + /usr/sbin/service hyperion stop 2>/dev/null +fi + +#Install dependencies for Hyperion +if [ $OS_OPENELEC -ne 1 ]; then + echo '---> Install/Update Hyperion dependencies (This may take a while)' + apt-get -qq update && apt-get -qq --yes install libqtcore4 libqtgui4 libqt4-network libusb-1.0-0 ca-certificates +fi + +#Check, if dtparam=spi=on is in place (not for OPENELEC) +if [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -ne 1 ]; then + SPIOK=`grep '^\dtparam=spi=on' /boot/config.txt | wc -l` + if [ $SPIOK -ne 1 ]; then + echo '---> Raspberry Pi found, but SPI is not ready, we write "dtparam=spi=on" to /boot/config.txt' + sed -i '$a dtparam=spi=on' /boot/config.txt + REBOOTMESSAGE="echo Please reboot your Raspberry Pi, we inserted dtparam=spi=on to /boot/config.txt" + fi +fi + +#Check, if dtparam=spi=on is in place (just for OPENELEC) +if [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -eq 1 ]; then + SPIOK=`grep '^\dtparam=spi=on' /flash/config.txt | wc -l` + if [ $SPIOK -ne 1 ]; then + mount -o remount,rw /flash + echo '---> Raspberry Pi with OpenELEC found, but SPI is not ready, we write "dtparam=spi=on" to /flash/config.txt' + sed -i '$a dtparam=spi=on' /flash/config.txt + mount -o remount,ro /flash + REBOOTMESSAGE="echo Please reboot your OpenELEC, we inserted dtparam=spi=on to /flash/config.txt" + fi +fi + +#Backup the .conf files, if present +echo '---> Backup Hyperion configuration(s), if present' +rm -f /tmp/*.json 2>/dev/null +if [ $OS_OPENELEC -eq 1 ]; then + cp -v /storage/.config/*.json /tmp 2>/dev/null +else cp -v /opt/hyperion/config/*.json /tmp 2>/dev/null +fi + +# Select the appropriate release +HYPERION_ADDRESS=https://sourceforge.net/projects/hyperion-project/files/beta +if [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -eq 1 ] && [ $RPI_1 -eq 1 ]; then + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_rpi_oe.tar.gz + OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-rpi.tar.gz +elif [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -eq 1 ] && [ $RPI_2 -eq 1 ]; then + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_rpi2_oe.tar.gz + OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-rpi.tar.gz +elif [ $CPU_RPI -eq 1 ] && [ $OS_OPENELEC -eq 1 ] && [ $RPI_3 -eq 1 ]; then + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_rpi3_oe.tar.gz + OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-rpi.tar.gz +elif [ $CPU_RPI -eq 1 ] && [ $RPI_1 -eq 1 ]; then + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_rpi.tar.gz +elif [ $CPU_RPI -eq 1 ] && [ $RPI_2 -eq 1 ]; then + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_rpi2.tar.gz +elif [ $CPU_RPI -eq 1 ] && [ $RPI_3 -eq 1 ]; then + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_rpi3.tar.gz +elif [ $CPU_IMX6 -eq 1 ]; then + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_imx6.tar.gz + OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-imx6.tar.gz +elif [ $CPU_WETEK -eq 1 ]; then + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_wetek.tar.gz + OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-rpi.tar.gz +elif [ $CPU_X32X64 -eq 1 ]; then + HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_x86x64.tar.gz + OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-x86x64.tar.gz +else + echo "---> Critical Error: Target platform unknown -> abort" + exit 1 +fi + +# Get and extract the Hyperion binaries and effects +echo '---> Downloading the appropriate Hyperion release' +if [ $OS_OPENELEC -eq 1 ]; then + # OpenELEC has a readonly file system. Use alternative location + echo '---> Downloading Hyperion OpenELEC release' + curl -# -L --get $HYPERION_RELEASE | tar -C /storage -xz + echo '---> Downloading Hyperion OpenELEC dependencies' + curl -# -L --get $OE_DEPENDECIES | tar -C /storage/hyperion/bin -xz + #set the executen bit (failsave) + chmod +x -R /storage/hyperion/bin + # modify the default config to have a correct effect path + sed -i 's:/opt:/storage:g' /storage/hyperion/config/hyperion.config.json + + # /storage/.config is available as samba share. A symbolic link would not be working + false | cp -i /storage/hyperion/config/hyperion.config.json /storage/.config/hyperion.config.json 2>/dev/null +else + wget -nv $HYPERION_RELEASE -O - | tar -C /opt -xz + #set the executen bit (failsave) + chmod +x -R /opt/hyperion/bin + # create links to the binaries + ln -fs /opt/hyperion/bin/hyperiond /usr/bin/hyperiond + ln -fs /opt/hyperion/bin/hyperion-remote /usr/bin/hyperion-remote + ln -fs /opt/hyperion/bin/hyperion-v4l2 /usr/bin/hyperion-v4l2 + ln -fs /opt/hyperion/bin/hyperion-dispmanx /usr/bin/hyperion-dispmanx 2>/dev/null + ln -fs /opt/hyperion/bin/hyperion-x11 /usr/bin/hyperion-x11 2>/dev/null +fi + +# Restore backup of .conf files, if present +echo '---> Restore Hyperion configuration(s), if present' +if [ $OS_OPENELEC -eq 1 ]; then + mv -v /tmp/*.json /storage/.config/ 2>/dev/null +else mv -v /tmp/*.json /opt/hyperion/config/ 2>/dev/null +fi + +# Copy the service control configuration to /etc/int (-n to respect user modified scripts) +if [ $USE_INITCTL -eq 1 ]; then + echo '---> Installing initctl script' + cp -n /opt/hyperion/init.d/hyperion.initctl.sh /etc/init/hyperion.conf 2>/dev/null + initctl reload-configuration +elif [ $OS_OPENELEC -eq 1 ]; then + #modify all old installs with a logfile output + sed -i 's|/dev/null|/storage/logfiles/hyperion.log|g' /storage/.config/autostart.sh + # only add to start script if hyperion is not present yet + if [ `cat /storage/.config/autostart.sh 2>/dev/null | grep hyperiond | wc -l` -eq 0 ]; then + echo '---> Adding Hyperion to OpenELEC autostart.sh' + echo "/storage/hyperion/bin/hyperiond.sh /storage/.config/hyperion.config.json > /storage/logfiles/hyperion.log 2>&1 &" >> /storage/.config/autostart.sh + chmod +x /storage/.config/autostart.sh + fi + # only add hyperion-x11 to startup, if not found and x32x64 detected + if [ $CPU_X32X64 -eq 1 ] && [ `cat /storage/.config/autostart.sh 2>/dev/null | grep hyperion-x11 | wc -l` -eq 0 ]; then + echo '---> Adding Hyperion-x11 to OpenELEC autostart.sh' + echo "DISPLAY=:0.0 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/storage/hyperion/bin /storage/hyperion/bin/hyperion-x11 /storage/logfiles/hyperion.log 2>&1 &" >> /storage/.config/autostart.sh + fi +elif [ $USE_SYSTEMD -eq 1 ]; then + echo '---> Installing systemd script' + #place startup script for systemd and activate + #Problem with systemd to enable symlinks - Bug? Workaround cp -n (overwrite never) + #Bad workaround for Jessie (systemd) users that used the official script for install + update-rc.d -f hyperion remove 2>/dev/null + rm /etc/init.d/hyperion 2>/dev/null + cp -n /opt/hyperion/init.d/hyperion.systemd.sh /etc/systemd/system/hyperion.service + systemctl -q enable hyperion.service + if [ $OS_OSMC -eq 1 ]; then + echo '---> Modify systemd script for OSMC usage' + # Wait until kodi is sarted (for kodi checker) + sed -i '/After = mediacenter.service/d' /etc/systemd/system/hyperion.service + sed -i '/Unit/a After = mediacenter.service' /etc/systemd/system/hyperion.service + sed -i 's/User=osmc/User=root/g' /etc/systemd/system/hyperion.service + sed -i 's/Group=osmc/Group=root/g' /etc/systemd/system/hyperion.service + systemctl -q daemon-reload + fi +elif [ $USE_SERVICE -eq 1 ]; then + echo '---> Installing startup script in init.d' + # place startup script in init.d and add it to upstart (-s to respect user modified scripts) + ln -s /opt/hyperion/init.d/hyperion.init.sh /etc/init.d/hyperion 2>/dev/null + chmod +x /etc/init.d/hyperion + update-rc.d hyperion defaults 98 02 +fi + +#chown the /config/ dir and all configs inside for hypercon config upload for non-root logins +if [ $OS_OSMC -eq 1 ]; then + chown -R osmc:osmc /opt/hyperion/config +elif [ $OS_RASPBIAN -eq 1 ]; then + chown -R pi:pi /opt/hyperion/config +fi + +# Start the hyperion daemon +echo '---> Starting Hyperion' +if [ $OS_OPENELEC -eq 1 ]; then + /storage/.config/autostart.sh > /dev/null 2>&1 & +elif [ $USE_INITCTL -eq 1 ]; then + /sbin/initctl start hyperion +elif [ $USE_SERVICE -eq 1 ]; then + /usr/sbin/service hyperion start +elif [ $USE_SYSTEMD -eq 1 ]; then + service hyperion start +fi + +#Hint for the user with path to config +if [ $OS_OPENELEC -eq 1 ];then + HINTMESSAGE="echo Path to your configuration -> /storage/.config/hyperion.config.json" +else HINTMESSAGE="echo Path to your configuration -> /opt/hyperion/config/hyperion.config.json" +fi +echo '*******************************************************************************' +echo 'Hyperion Installation/Update finished!' +echo 'Please get a new HyperCon version to benefit from the latest features!' +echo 'Create a new config file, if you encounter problems!' +$HINTMESSAGE +$REBOOTMESSAGE +echo '*******************************************************************************' +## Force reboot and prevent prompt if spi is added during a HyperCon Install +if [ $HCInstall -eq 1 ] && [ $CPU_RPI -eq 1 ] && [ $SPIOK -ne 1 ]; then + echo "Rebooting now, we added dtparam=spi=on to config.txt" + reboot + exit 0 +fi +#Prompt for reboot, if spi added to config.txt +if [ $CPU_RPI -eq 1 ] && [ $SPIOK -ne 1 ]; then + while true + do + echo -n "---> Do you want to reboot your Raspberry Pi now? (y or n) :" + read CONFIRM + case $CONFIRM in + y|Y|YES|yes|Yes) break ;; + n|N|no|NO|No) + echo "---> No reboot - you entered \"$CONFIRM\"" + exit + ;; + *) echo "-> Please enter only y or n" + esac + done + echo "---> You entered \"$CONFIRM\". Rebooting now..." + reboot +fi + +exit 0 \ No newline at end of file diff --git a/bin/service/hyperion.init.sh b/bin/service/hyperion.init.sh index ca3f8d14..3ed78f5b 100644 --- a/bin/service/hyperion.init.sh +++ b/bin/service/hyperion.init.sh @@ -13,7 +13,7 @@ ### END INIT INFO DAEMON=hyperiond -DAEMONOPTS="/etc/hyperion.config.json" +DAEMONOPTS="/opt/hyperion/config/hyperion.config.json" DAEMON_PATH="/usr/bin" NAME=$DAEMON diff --git a/bin/service/hyperion.initctl.sh b/bin/service/hyperion.initctl.sh index 773c6e61..58f6f79f 100644 --- a/bin/service/hyperion.initctl.sh +++ b/bin/service/hyperion.initctl.sh @@ -8,4 +8,4 @@ stop on (runlevel [!2345]) respawn -exec /usr/bin/hyperiond /etc/hyperion.config.json \ No newline at end of file +exec /usr/bin/hyperiond /opt/hyperion/config/hyperion.config.json \ No newline at end of file diff --git a/bin/service/hyperion.systemd.sh b/bin/service/hyperion.systemd.sh index c3c66255..b3503c7c 100644 --- a/bin/service/hyperion.systemd.sh +++ b/bin/service/hyperion.systemd.sh @@ -6,7 +6,7 @@ Type=simple User=root Group=root UMask=007 -ExecStart=/opt/hyperion/bin/hyperiond /etc/hyperion.config.json +ExecStart=/opt/hyperion/bin/hyperiond /opt/hyperion/config/hyperion.config.json ExecReload=/bin/kill -HUP $MAINPID Restart=on-failure TimeoutStopSec=10 diff --git a/config/hyperion.config.json b/config/hyperion.config.json index 62c7d70e..5d549075 100644 --- a/config/hyperion.config.json +++ b/config/hyperion.config.json @@ -1,16 +1,17 @@ // Automatically generated configuration file for 'Hyperion daemon' -// Generated by: HyperCon (The Hyperion deamon configuration file builder +// Generated by: HyperCon (The Hyperion deamon configuration file builder) +// Created with HyperCon V1.02.0 (30.04.2016) { /// Device configuration contains the following fields: /// * 'name' : The user friendly name of the device (only used for display purposes) /// * 'type' : The type of the device or leds (known types for now are - /// APA102, Adalight, AmbiLed, Atmo, Hyperion-USBASP-WS2801, Hyperion-USBASP-WS2812, Lightberry, Lightpack, LPD6803, LPD8806, Multi-Lightpack, P9813, Paintpack, PhilipsHUE, PiBlaster, SEDU, file, ThinkerForge, TPM2, WS2801, WS2812b, None) + /// ---------SPI---------, APA102, WS2801, P9813, LPD6803, LPD8806, ---------PWM---------, WS2812b (just RPi1), WS281X (RPi1, RPi2, RPi3), --------OTHER--------, PhilipsHUE, AtmoOrb, PiBlaster, Tinkerforge, FadeCandy, RawHID (USB), UDP, SEDU, TPM2, USBASP-WS2801, USBASP-WS2812, ------3rd PARTY------, Adalight, AdalightAPA102, AmbiLed, Atmo, Lightpack, Multi-Lightpack, Paintpack, Test (file), None) /// * [device type specific configuration] /// * 'colorOrder' : The order of the color bytes ('rgb', 'rbg', 'bgr', etc.). "device" : { - "name" : "MyPi", + "name" : "MyHyperionConfig", "type" : "ws2801", "output" : "/dev/spidev0.0", "rate" : 1000000, @@ -20,18 +21,31 @@ /// Color manipulation configuration used to tune the output colors to specific surroundings. /// The configuration contains a list of color-transforms. Each transform contains the /// following fields: - /// * 'id' : The unique identifier of the color transformation (eg 'device_1') /// * 'leds' : The indices (or index ranges) of the leds to which this color transform applies - /// (eg '0-5, 9, 11, 12-17'). The indices are zero based. /// * 'hsv' : The manipulation in the Hue-Saturation-Value color domain with the following + /// * 'channelAdjustment' + /// * 'id' : The unique identifier of the channel adjustments (eg 'device_1') + /// * 'leds' : The indices (or index ranges) of the leds to which this channel adjustment applies + /// (eg '0-5, 9, 11, 12-17'). The indices are zero based. + /// * 'pureRed'/'pureGreen'/'pureBlue' : The manipulation in the Red-Green-Blue color domain with the + /// following tuning parameters for each channel: + /// * 'temperature' + /// * 'id' : The unique identifier of the temperature (eg 'device_1') + /// * 'leds' : The indices (or index ranges) of the leds to which this temperature applies + /// (eg '0-5, 9, 11, 12-17'). The indices are zero based. + /// * 'red'/'green'/'blue' : The temperature manipulation in the Red-Green-Blue color domain with the + /// following tuning parameters for each channel: + /// * 'transform' + /// * 'id' : The unique identifier of the color transformation (eg 'device_1') + /// * 'leds' : The indices (or index ranges) of the leds to which this color transform applies + /// (eg '0-5, 9, 11, 12-17'). The indices are zero based. + /// * 'hsv' : The manipulation in the Hue-Saturation-Value color domain with the following /// tuning parameters: /// - 'saturationGain' The gain adjustement of the saturation - /// - 'valueGain' The gain adjustement of the value + /// - 'luminanceGain' The gain adjustement of the luminance /// * 'red'/'green'/'blue' : The manipulation in the Red-Green-Blue color domain with the /// following tuning parameters for each channel: /// - 'threshold' The minimum required input value for the channel to be on /// (else zero) /// - 'gamma' The gamma-curve correction factor - /// - 'blacklevel' The lowest possible value (when the channel is black) - /// - 'whitelevel' The highest possible value (when the channel is white) /// /// Next to the list with color transforms there is also a smoothing option. /// * 'smoothing' : Smoothing of the colors in the time-domain with the following tuning @@ -42,16 +56,28 @@ /// - 'updateDelay' The delay of the output to leds (in periods of smoothing) "color" : { - "correction" : + "channelAdjustment" : [ { "id" : "default", "leds" : "*", - "correctionValues" : + "pureRed" : { - "red" : 255, - "green" : 255, - "blue" : 255 + "redChannel" : 255, + "greenChannel" : 0, + "blueChannel" : 0 + }, + "pureGreen" : + { + "redChannel" : 0, + "greenChannel" : 255, + "blueChannel" : 0 + }, + "pureBlue" : + { + "redChannel" : 0, + "greenChannel" : 0, + "blueChannel" : 255 } } ], @@ -62,75 +88,40 @@ "leds" : "*", "temperatureValues" : { - "red" : 255, - "green" : 255, - "blue" : 255 + "red" : 255, + "green" : 255, + "blue" : 255 } } ], - "channelAdjustment" : - [ - { - "id" : "default", - "leds" : "*", - "pureRed" : - { - "redChannel" : 255, - "greenChannel" : 0, - "blueChannel" : 0 - }, - "pureGreen" : - { - "redChannel" : 0, - "greenChannel" : 255, - "blueChannel" : 0 - }, - "pureBlue" : - { - "redChannel" : 0, - "greenChannel" : 0, - "blueChannel" : 255 - } - } - ], "transform" : [ { "id" : "default", "leds" : "*", - "hsv" : - { - "saturationGain" : 1.0000, - "valueGain" : 1.0000 - }, "hsl" : { - "saturationGain" : 1.0000, - "luminanceGain" : 1.0000 + "saturationGain" : 1.0000, + "luminanceGain" : 1.0000 }, "red" : { - "threshold" : 0.0000, - "gamma" : 1.0000, - "blacklevel" : 0.0000, - "whitelevel" : 1.0000 + "threshold" : 0.0000, + "gamma" : 2.5000 }, "green" : { - "threshold" : 0.0000, - "gamma" : 1.0000, - "blacklevel" : 0.0000, - "whitelevel" : 1.0000 + "threshold" : 0.0000, + "gamma" : 2.5000 }, "blue" : { - "threshold" : 0.0000, - "gamma" : 1.0000, - "blacklevel" : 0.0000, - "whitelevel" : 1.0000 + "threshold" : 0.0000, + "gamma" : 2.5000 } } ], + "smoothing" : { "type" : "linear", @@ -164,7 +155,7 @@ /// * color : Set static color after boot -> set effect to "" (empty) and input the values [R,G,B] and set duration_ms NOT to 0 (use 1) instead /// * effect : The effect selected as 'boot sequence' /// * duration_ms : The duration of the selected effect (0=endless) - /// * priority : The priority of the selected effect/static color (default=0) + /// * priority : The priority of the selected effect/static color (default=990) HINT: lower value result in HIGHER priority! "effects" : { "paths" : @@ -190,20 +181,21 @@ // "forwarder" : // { // "proto" : ["127.0.0.1:19447"], -// "json" : ["127.0.0.1:19446"] +// "json" : ["127.0.0.1:19446"] // }, /// The configuration for the frame-grabber, contains the following items: /// * width : The width of the grabbed frames [pixels] /// * height : The height of the grabbed frames [pixels] /// * frequency_Hz : The frequency of the frame grab [Hz] - /// * priority : The priority + /// * priority : The priority of the frame-gabber (Default=890) HINT: lower value result in HIGHER priority! + /// * ATTENTION : Power-of-Two resolution is not supported and leads to unexpected behaviour! "framegrabber" : { - "width" : 80, - "height" : 45, + "width" : 64, + "height" : 64, "frequency_Hz" : 10.0, - "priority" : 900 + "priority" : 890 }, /// The configuration of the Kodi connection used to enable and disable the frame-grabber. Contains the following fields: @@ -242,10 +234,11 @@ }, /// The configuration of the boblight server which enables the boblight remote interface - /// * port : Port at which the boblight server is started + /// * port : Port at which the boblight server is started + /// * priority: Priority of the boblight server (Default=900) HINT: lower value result in HIGHER priority! // "boblightServer" : // { -// "port" : 19333, +// "port" : 19333, // "priority" : 900 // }, @@ -257,7 +250,7 @@ /// * height : V4L2 height to set [default=-1] /// * frameDecimation : Frame decimation factor [default=2] /// * sizeDecimation : Size decimation factor [default=8] - /// * priority : Hyperion priority channel [default=800] + /// * priority : Hyperion priority channel [default=900] /// * mode : 3D mode to use 2D/3DSBS/3DTAB (note: no autodetection) [default="2D"] /// * cropLeft : Cropping from the left [default=0] /// * cropRight : Cropping from the right [default=0] @@ -275,7 +268,7 @@ // "height" : -1, // "frameDecimation" : 2, // "sizeDecimation" : 8, -// "priority" : 800, +// "priority" : 900, // "mode" : "2D", // "cropLeft" : 0, // "cropRight" : 0, diff --git a/config/hyperion_x86.config.json b/config/hyperion_x86.config.json deleted file mode 100644 index a17801b9..00000000 --- a/config/hyperion_x86.config.json +++ /dev/null @@ -1,453 +0,0 @@ -// Automatically generated configuration file for 'Hyperion daemon' -// Generated by: HyperCon (The Hyperion deamon configuration file builder - -{ - /// Device configuration contains the following fields: - /// * 'name' : The user friendly name of the device (only used for display purposes) - /// * 'type' : The type of the device or leds (known types for now are 'ws2801', 'ldp8806', - /// 'lpd6803', 'sedu', 'adalight', 'lightpack', 'file' and 'none') - /// * 'output' : The output specification depends on selected device. This can for example be the - /// device specifier, device serial number, or the output file name - /// * 'rate' : The baudrate of the output to the device - /// * 'colorOrder' : The order of the color bytes ('rgb', 'rbg', 'bgr', etc.). - "device" : - { - "name" : "MyPi", - "type" : "adalight", - "output" : "/dev/ttyUSB0", - "rate" : 115200, - "colorOrder" : "rgb" - }, - - /// Configuration for message forwarding to other hyperions - /// protobuffer and json remote interface are forwarded to configured hosts - /// 'proto' is mostly used for video streams and 'json' for effects - /// - /// ** pay attention which port you use. use correct ports for protols ** - /// - /// * 'proto' : list of host in form of : - /// * 'json' : list of host in form of : -/// "forwarder" : -/// { -/// "proto" : [ "127.0.0.1:19445","192.168.178.88:19445" ], -/// "json" : [ "127.0.0.1:19444","192.168.178.88:19444" ] -/// }, - - - /// Color manipulation configuration used to tune the output colors to specific surroundings. - /// The configuration contains a list of color-transforms. Each transform contains the - /// following fields: - /// * 'id' : The unique identifier of the color transformation (eg 'device_1') /// * 'leds' : The indices (or index ranges) of the leds to which this color transform applies - /// (eg '0-5, 9, 11, 12-17'). The indices are zero based. /// * 'hsv' : The manipulation in the Hue-Saturation-Value color domain with the following - /// tuning parameters: - /// - 'saturationGain' The gain adjustement of the saturation - /// - 'valueGain' The gain adjustement of the value - /// * 'red'/'green'/'blue' : The manipulation in the Red-Green-Blue color domain with the - /// following tuning parameters for each channel: - /// - 'threshold' The minimum required input value for the channel to be on - /// (else zero) - /// - 'gamma' The gamma-curve correction factor - /// - 'blacklevel' The lowest possible value (when the channel is black) - /// - 'whitelevel' The highest possible value (when the channel is white) - /// - /// Next to the list with color transforms there is also a smoothing option. - /// * 'smoothing' : Smoothing of the colors in the time-domain with the following tuning - /// parameters: - /// - 'type' The type of smoothing algorithm ('linear' or 'none') - /// - 'time_ms' The time constant for smoothing algorithm in milliseconds - /// - 'updateFrequency' The update frequency of the leds in Hz - "color" : - { - "transform" : - [ - { - "id" : "default", - "leds" : "*", - "hsv" : - { - "saturationGain" : 1.0000, - "valueGain" : 1.0000 - }, - "red" : - { - "threshold" : 0.0000, - "gamma" : 1.0000, - "blacklevel" : 0.0000, - "whitelevel" : 1.0000 - }, - "green" : - { - "threshold" : 0.0000, - "gamma" : 1.0000, - "blacklevel" : 0.0000, - "whitelevel" : 1.0000 - }, - "blue" : - { - "threshold" : 0.0000, - "gamma" : 1.0000, - "blacklevel" : 0.0000, - "whitelevel" : 1.0000 - } - } - ], - "smoothing" : - { - "type" : "none", - "time_ms" : 200, - "updateFrequency" : 20.0000 - } - }, - - /// The configuration for each individual led. This contains the specification of the area - /// averaged of an input image for each led to determine its color. Each item in the list - /// contains the following fields: - /// * index: The index of the led. This determines its location in the string of leds; zero - /// being the first led. - /// * hscan: The fractional part of the image along the horizontal used for the averaging - /// (minimum and maximum inclusive) - /// * vscan: The fractional part of the image along the vertical used for the averaging - /// (minimum and maximum inclusive) - "leds" : - [ - { - "index" : 0, - "hscan" : { "minimum" : 0.4375, "maximum" : 0.5000 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 1, - "hscan" : { "minimum" : 0.3750, "maximum" : 0.4375 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 2, - "hscan" : { "minimum" : 0.3125, "maximum" : 0.3750 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 3, - "hscan" : { "minimum" : 0.2500, "maximum" : 0.3125 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 4, - "hscan" : { "minimum" : 0.1875, "maximum" : 0.2500 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 5, - "hscan" : { "minimum" : 0.1250, "maximum" : 0.1875 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 6, - "hscan" : { "minimum" : 0.0625, "maximum" : 0.1250 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 7, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0625 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 8, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 9, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.8571, "maximum" : 1.0000 } - }, - { - "index" : 10, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.7143, "maximum" : 0.8571 } - }, - { - "index" : 11, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.5714, "maximum" : 0.7143 } - }, - { - "index" : 12, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.4286, "maximum" : 0.5714 } - }, - { - "index" : 13, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.2857, "maximum" : 0.4286 } - }, - { - "index" : 14, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.1429, "maximum" : 0.2857 } - }, - { - "index" : 15, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.1429 } - }, - { - "index" : 16, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 17, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0625 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 18, - "hscan" : { "minimum" : 0.0625, "maximum" : 0.1250 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 19, - "hscan" : { "minimum" : 0.1250, "maximum" : 0.1875 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 20, - "hscan" : { "minimum" : 0.1875, "maximum" : 0.2500 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 21, - "hscan" : { "minimum" : 0.2500, "maximum" : 0.3125 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 22, - "hscan" : { "minimum" : 0.3125, "maximum" : 0.3750 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 23, - "hscan" : { "minimum" : 0.3750, "maximum" : 0.4375 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 24, - "hscan" : { "minimum" : 0.4375, "maximum" : 0.5000 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 25, - "hscan" : { "minimum" : 0.5000, "maximum" : 0.5625 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 26, - "hscan" : { "minimum" : 0.5625, "maximum" : 0.6250 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 27, - "hscan" : { "minimum" : 0.6250, "maximum" : 0.6875 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 28, - "hscan" : { "minimum" : 0.6875, "maximum" : 0.7500 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 29, - "hscan" : { "minimum" : 0.7500, "maximum" : 0.8125 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 30, - "hscan" : { "minimum" : 0.8125, "maximum" : 0.8750 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 31, - "hscan" : { "minimum" : 0.8750, "maximum" : 0.9375 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 32, - "hscan" : { "minimum" : 0.9375, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 33, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 34, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.1429 } - }, - { - "index" : 35, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.1429, "maximum" : 0.2857 } - }, - { - "index" : 36, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.2857, "maximum" : 0.4286 } - }, - { - "index" : 37, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.4286, "maximum" : 0.5714 } - }, - { - "index" : 38, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.5714, "maximum" : 0.7143 } - }, - { - "index" : 39, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.7143, "maximum" : 0.8571 } - }, - { - "index" : 40, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.8571, "maximum" : 1.0000 } - }, - { - "index" : 41, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 42, - "hscan" : { "minimum" : 0.9375, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 43, - "hscan" : { "minimum" : 0.8750, "maximum" : 0.9375 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 44, - "hscan" : { "minimum" : 0.8125, "maximum" : 0.8750 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 45, - "hscan" : { "minimum" : 0.7500, "maximum" : 0.8125 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 46, - "hscan" : { "minimum" : 0.6875, "maximum" : 0.7500 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 47, - "hscan" : { "minimum" : 0.6250, "maximum" : 0.6875 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 48, - "hscan" : { "minimum" : 0.5625, "maximum" : 0.6250 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 49, - "hscan" : { "minimum" : 0.5000, "maximum" : 0.5625 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - } - ], - - /// The black border configuration, contains the following items: - /// * enable : true if the detector should be activated - /// * threshold : Value below which a pixel is regarded as black (value between 0.0 and 1.0) - "blackborderdetector" : - { - "enable" : true, - "threshold" : 0.01 - }, - - /// The configuration of the effect engine, contains the following items: - /// * paths : An array with absolute location(s) of directories with effects - /// * bootsequence : The effect selected as 'boot sequence' - /// * effect : name of the effect you want to start. Set to empty if no effect wanted - /// * color : switch to static color after effect is done - /// * duration_ms : duration of boot effect in ms. 0 means effect stays forever - /// * priority : priority of boot effect and static color - "effects" : - { - "paths" : - [ - "/home/dincs/projects/hyperion/effects" - ] - }, - - "bootsequence" : - { - "color" : [0,0,0], - "effect" : "Rainbow swirl fast", - "duration_ms" : 3000, - "priority" : 990 - }, - - /// The configuration for the frame-grabber, contains the following items: - /// * width : The width of the grabbed frames [pixels] - /// * height : The height of the grabbed frames [pixels] - /// * frequency_Hz : The frequency of the frame grab [Hz] -/// "framegrabber" : -/// { -/// "width" : 64, -/// "height" : 64, -/// "frequency_Hz" : 10.0, -/// "priority" : 900 -/// }, - - /// The configuration of the XBMC connection used to enable and disable the frame-grabber. Contains the following fields: - /// * xbmcAddress : The IP address of the XBMC-host - /// * xbmcTcpPort : The TCP-port of the XBMC-server - /// * grabVideo : Flag indicating that the frame-grabber is on(true) during video playback - /// * grabPictures : Flag indicating that the frame-grabber is on(true) during picture show - /// * grabAudio : Flag indicating that the frame-grabber is on(true) during audio playback - /// * grabMenu : Flag indicating that the frame-grabber is on(true) in the XBMC menu - /// * grabScreensaver : Flag indicating that the frame-grabber is on(true) when XBMC is on screensaver - /// * enable3DDetection : Flag indicating that the frame-grabber should switch to a 3D compatible modus if a 3D video is playing -// "xbmcVideoChecker" : -// { -// "xbmcAddress" : "127.0.0.1", -// "xbmcTcpPort" : 9090, -// "grabVideo" : true, -// "grabPictures" : true, -// "grabAudio" : true, -// "grabMenu" : false, -// "grabScreensaver" : true, -// "enable3DDetection" : true -// }, - - /// The configuration of the Json server which enables the json remote interface - /// * port : Port at which the json server is started - "jsonServer" : - { - "port" : 19444 - }, - - /// The configuration of the Proto server which enables the protobuffer remote interface - /// * port : Port at which the protobuffer server is started - "protoServer" : - { - "port" : 19445 - }, - - /// The configuration of the boblight server which enables the boblight remote interface - /// * port : Port at which the boblight server is started -// "boblightServer" : -// { -// "port" : 19333, -// "priority" : 900 -// }, - - "endOfJson" : "endOfJson" -} diff --git a/deploy/hummingboard_prerelease.tar.gz.REMOVED.git-id b/deploy/hummingboard_prerelease.tar.gz.REMOVED.git-id deleted file mode 100644 index 25e27e13..00000000 --- a/deploy/hummingboard_prerelease.tar.gz.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -63b2cc4bf190a0c0c996be6db30fcf03109c9625 \ No newline at end of file diff --git a/deploy/hyperion.deps.openelec-imx6.tar.gz.REMOVED.git-id b/deploy/hyperion.deps.openelec-imx6.tar.gz.REMOVED.git-id deleted file mode 100644 index bebbc1ba..00000000 --- a/deploy/hyperion.deps.openelec-imx6.tar.gz.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -198ac3d44bac13ba993069454397ad8c201d37b9 \ No newline at end of file diff --git a/deploy/hyperion.deps.openelec-rpi.tar.gz.REMOVED.git-id b/deploy/hyperion.deps.openelec-rpi.tar.gz.REMOVED.git-id deleted file mode 100644 index 1f708387..00000000 --- a/deploy/hyperion.deps.openelec-rpi.tar.gz.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -a628a0f8dea4332995fe4f32860a114a9b48ea4b \ No newline at end of file diff --git a/deploy/hyperion.deps.openelec-x32x64.tar.gz.REMOVED.git-id b/deploy/hyperion.deps.openelec-x32x64.tar.gz.REMOVED.git-id deleted file mode 100644 index 00d28a05..00000000 --- a/deploy/hyperion.deps.openelec-x32x64.tar.gz.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -dcef2212c5d493fed074dc5b1e222ad9cb6098e8 \ No newline at end of file diff --git a/deploy/hyperion_imx6.tar.gz.REMOVED.git-id b/deploy/hyperion_imx6.tar.gz.REMOVED.git-id deleted file mode 100644 index 0a91a093..00000000 --- a/deploy/hyperion_imx6.tar.gz.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -53710fe42ce52c16b82464e0e01ca6ee6df6912c \ No newline at end of file diff --git a/deploy/hyperion_rpi.tar.gz.REMOVED.git-id b/deploy/hyperion_rpi.tar.gz.REMOVED.git-id deleted file mode 100644 index 66cb6d93..00000000 --- a/deploy/hyperion_rpi.tar.gz.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -89463afae2a82b597e5728ccac952669cc5efad3 \ No newline at end of file diff --git a/deploy/hyperion_wetek.tar.gz.REMOVED.git-id b/deploy/hyperion_wetek.tar.gz.REMOVED.git-id deleted file mode 100644 index 358d9c54..00000000 --- a/deploy/hyperion_wetek.tar.gz.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -2a0699eb2d8b7b44ceee890fa106714fca2b15d0 \ No newline at end of file diff --git a/deploy/hyperion_x32x64.tar.gz.REMOVED.git-id b/deploy/hyperion_x32x64.tar.gz.REMOVED.git-id deleted file mode 100644 index d92319c2..00000000 --- a/deploy/hyperion_x32x64.tar.gz.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -b0ef7e5348fb3710b3e5083a3249fac33b8119a8 \ No newline at end of file diff --git a/doc/calibration/Gamma/000000.png b/doc/calibration/Gamma/000000.png deleted file mode 100644 index f4c09261..00000000 Binary files a/doc/calibration/Gamma/000000.png and /dev/null differ diff --git a/doc/calibration/Gamma/3F3F3F.png b/doc/calibration/Gamma/3F3F3F.png deleted file mode 100644 index 7c9d7e81..00000000 Binary files a/doc/calibration/Gamma/3F3F3F.png and /dev/null differ diff --git a/doc/calibration/Gamma/7F7F7F.png b/doc/calibration/Gamma/7F7F7F.png deleted file mode 100644 index dcf7a3f6..00000000 Binary files a/doc/calibration/Gamma/7F7F7F.png and /dev/null differ diff --git a/doc/calibration/Gamma/BFBFBF.png b/doc/calibration/Gamma/BFBFBF.png deleted file mode 100644 index f61f7297..00000000 Binary files a/doc/calibration/Gamma/BFBFBF.png and /dev/null differ diff --git a/doc/calibration/Gamma/FFFFFF.png b/doc/calibration/Gamma/FFFFFF.png deleted file mode 100644 index 8e5dc2d5..00000000 Binary files a/doc/calibration/Gamma/FFFFFF.png and /dev/null differ diff --git a/doc/calibration/Gamma/HGradient_1.png b/doc/calibration/Gamma/HGradient_1.png deleted file mode 100644 index b681c709..00000000 Binary files a/doc/calibration/Gamma/HGradient_1.png and /dev/null differ diff --git a/doc/calibration/Gamma/HGradient_2.png b/doc/calibration/Gamma/HGradient_2.png deleted file mode 100644 index d9f99f95..00000000 Binary files a/doc/calibration/Gamma/HGradient_2.png and /dev/null differ diff --git a/doc/calibration/Gamma/VGradient_1.png b/doc/calibration/Gamma/VGradient_1.png deleted file mode 100644 index 974b087e..00000000 Binary files a/doc/calibration/Gamma/VGradient_1.png and /dev/null differ diff --git a/doc/calibration/Gamma/VGradient_2.png b/doc/calibration/Gamma/VGradient_2.png deleted file mode 100644 index 940dcda0..00000000 Binary files a/doc/calibration/Gamma/VGradient_2.png and /dev/null differ diff --git a/doc/calibration/RGB/blue_00007F.png b/doc/calibration/RGB/blue_00007F.png deleted file mode 100644 index 8ca29242..00000000 Binary files a/doc/calibration/RGB/blue_00007F.png and /dev/null differ diff --git a/doc/calibration/RGB/blue_0000FF.png b/doc/calibration/RGB/blue_0000FF.png deleted file mode 100644 index 727f8cf3..00000000 Binary files a/doc/calibration/RGB/blue_0000FF.png and /dev/null differ diff --git a/doc/calibration/RGB/cyan_007F7F.png b/doc/calibration/RGB/cyan_007F7F.png deleted file mode 100644 index 334e191b..00000000 Binary files a/doc/calibration/RGB/cyan_007F7F.png and /dev/null differ diff --git a/doc/calibration/RGB/cyan_00FFFF.png b/doc/calibration/RGB/cyan_00FFFF.png deleted file mode 100644 index 5bf23750..00000000 Binary files a/doc/calibration/RGB/cyan_00FFFF.png and /dev/null differ diff --git a/doc/calibration/RGB/green_007F00.png b/doc/calibration/RGB/green_007F00.png deleted file mode 100644 index d6e76dd1..00000000 Binary files a/doc/calibration/RGB/green_007F00.png and /dev/null differ diff --git a/doc/calibration/RGB/green_00FF00.png b/doc/calibration/RGB/green_00FF00.png deleted file mode 100644 index 01e18f12..00000000 Binary files a/doc/calibration/RGB/green_00FF00.png and /dev/null differ diff --git a/doc/calibration/RGB/magenta_7F007F.png b/doc/calibration/RGB/magenta_7F007F.png deleted file mode 100644 index 07e8f130..00000000 Binary files a/doc/calibration/RGB/magenta_7F007F.png and /dev/null differ diff --git a/doc/calibration/RGB/magenta_FF00FF.png b/doc/calibration/RGB/magenta_FF00FF.png deleted file mode 100644 index 891ac731..00000000 Binary files a/doc/calibration/RGB/magenta_FF00FF.png and /dev/null differ diff --git a/doc/calibration/RGB/red_7F0000.png b/doc/calibration/RGB/red_7F0000.png deleted file mode 100644 index 7dc59c7d..00000000 Binary files a/doc/calibration/RGB/red_7F0000.png and /dev/null differ diff --git a/doc/calibration/RGB/red_FF0000.png b/doc/calibration/RGB/red_FF0000.png deleted file mode 100644 index 93d40815..00000000 Binary files a/doc/calibration/RGB/red_FF0000.png and /dev/null differ diff --git a/doc/calibration/RGB/yellow_7F7F00.png b/doc/calibration/RGB/yellow_7F7F00.png deleted file mode 100644 index 02967645..00000000 Binary files a/doc/calibration/RGB/yellow_7F7F00.png and /dev/null differ diff --git a/doc/calibration/RGB/yellow_FFFF00.png b/doc/calibration/RGB/yellow_FFFF00.png deleted file mode 100644 index b2eb1711..00000000 Binary files a/doc/calibration/RGB/yellow_FFFF00.png and /dev/null differ