Commit Graph

533 Commits

Author SHA1 Message Date
redPanther
93e3981df1 Serialport (#36)
* migrate serialport to qt5 serialport

* remove old serialport
add logging to serialport

* remove try catch - qt serialport uses plain return values

* tiny fix, but not working atm

* make it work, tested with adalight
2016-06-23 00:11:09 +02:00
penfold42
48134d0aef Remove widgets (#35)
* Trying to remove dependency on Widget
removed unused bonjour example source

* forgot the modified files
2016-06-21 23:34:57 +02:00
redPanther
f48af9daff extend logger (#34) 2016-06-21 21:41:26 +02:00
redPanther
eccd4e6637 rework bootsequence (#30)
* udplistener/boblight: use hyperion::getInstance
hyperiond: fix dispmanx is started twice
hyperiond: rework bootsequence - now named as InitalEffect

* pull out webconfig from hyperiondaemon to functional when daemon crashes
initialEffect: forbid foreground effect duration infinitiy
2016-06-20 23:41:07 +02:00
penfold42
1cb6ee0a43 Fixed random http port due to uninitialized _port (#29) 2016-06-20 15:51:34 +02:00
penfold42
a23735d1ef New builtin udp listener (#18)
* Fixed compile error when no grabbers are defined

* Remove stupid avahi warning...

* Started on the new integrated UDP listener to replace the python effect.

Cloned boblight server and rename it to be UDP listener
It compiles!, It starts! it seems to work as a second boblight protocol server...

* moving from the exsting TCP to UDP.
i can catch packets now.. need to consider ditching the connection handling

* It kinda works right now.
UDP packets are received, led data is sent and hyperion displays them.
.... for a moment before going back to what it was doing

* It works!

looks like the default priority of 900 was fighting with something else that was also 900

commented out some udp packet debugging

* oops, forgot to add the changes the the previous commit

* resolving merge conflicts
2016-06-20 08:38:12 +02:00
brindosch
065e65b8e0 cleanup: remove ambiled and fix typo (#13)
* cleanup: remove ambiled device

as written at the forum this is no longer supported. All people should move to adalight. They just need to flash a new sketch.

* fix typo
2016-06-19 17:18:11 +02:00
redPanther
4533b34606 Hyperiond refactoring + preparation for ip restriction settings (#12)
* make hyperion to singelton.
remove arguments for config and hyperion - both are gettable via Hyperion::getInstance

* refactor hyperiond

* remove qt4 comapt
make zeroconf mandatory
refactor hyperiond

* xbmcchecker is now a singleton

* cleanup in hyperiond
zeroconf switchable between static and shared linking

* fix xbmcchecker

* extensive refactoring of hyperiond
webserver: make client ip information availabel in request object - preparation for ip filters
proto/json server, use hyperion::getInstance instead of hyperion argument

* move creation of hyperion core into hyperionDeamon class
cleanup
2016-06-19 00:56:47 +02:00
penfold42
0e5607db65 Fixed compile error when no grabbers are defined + remove avahi warning (#11)
* Fixed compile error when no grabbers are defined

* Remove stupid avahi warning...
2016-06-18 16:33:25 +02:00
redPanther
88fbc4dfde refactoring and cleanup (#2)
* make hyperion to singelton.
remove arguments for config and hyperion - both are gettable via Hyperion::getInstance

* refactor hyperiond

* remove qt4 comapt
make zeroconf mandatory
refactor hyperiond

* xbmcchecker is now a singleton

* cleanup in hyperiond
zeroconf switchable between static and shared linking

* fix xbmcchecker
2016-06-17 01:25:40 +02:00
redPanther
4a841710dd webui - "cgi" handler and multiple fixes (#700)
* initial commit of webconfig

* update example config with webconfig and fix format of file
update debian postinst script for install example config

* fix compiling
add new web server command "serverinfo" to use in webapp to retrieve json port

* change web default port to 8099

* add cgi engine to webserver

* fix include
2016-06-14 20:14:06 +02:00
redPanther
eb64e7e528 webui fix and serverinfo (#699)
* initial commit of webconfig

* update example config with webconfig and fix format of file
update debian postinst script for install example config

* fix compiling
add new web server command "serverinfo" to use in webapp to retrieve json port

* change web default port to 8099
2016-06-13 22:54:08 +02:00
redPanther
9f564f8d89 fix build on osx (#695) 2016-06-12 22:27:34 +02:00
redPanther
7dfb9f1967 integrated webserver ... (#697)
* initial commit of webconfig

* update example config with webconfig and fix format of file
update debian postinst script for install example config
2016-06-12 22:27:24 +02:00
brindosch
8746e0795c -
Former-commit-id: 7aa71ba95e2bb9d76daf612a79fc3f1dd745cf0e
2016-06-10 23:54:53 +02:00
brindosch
4743208eff silent kodi check
Former-commit-id: 45199d123fcf49194aeaaf2df0789dc7ea4df449
2016-06-10 19:52:03 +02:00
brindosch
b3fa72adba fix
Former-commit-id: 2019d94e3bb06e23890759aecfd646facbcc0f37
2016-06-10 18:55:42 +02:00
brindosch
ae40edc578 Add version string to json output (#690)
* hyperionversionid

* typo

* -


Former-commit-id: ec5777ccb32fc343ef2f478a7c779a901c8aa489
2016-06-10 18:32:50 +02:00
Paulchen-Panther
f0dec4cf73 Hyperion X11 KodiCheck (#685)
* Update X11Grabber.h

* Update ProtoConnection.h

* Update ProtoConnectionWrapper.h

* Update ProtoServer.h

* Update X11Grabber.cpp

* Update message.proto

* Update ProtoClientConnection.cpp

* Update ProtoClientConnection.h

* Update ProtoConnection.cpp

* Update ProtoConnectionWrapper.cpp

* Update ProtoServer.cpp

* Update hyperion-x11.cpp

* Update X11Wrapper.cpp

* Update X11Wrapper.h

* Update hyperiond.cpp

* Update ProtoClientConnection.cpp

* Update X11Wrapper.cpp

* Update hyperiond.cpp


Former-commit-id: a572f275b270217cd8ce8cdd91b3eca3037d6472
2016-06-07 23:12:18 +02:00
redPanther
614131ebe6 compile fix, cleanup (#684)
* implement make install
set CMAKE_INSTALL_PREFIX e.g. to /opt to install to /opt/hyperion
set ENABLE_SYSTEM_INSTALL to ON to activate installation
after compiling use
make install
or
make install/strip
(for performance/size optimized binaries - compile in Release to get best performance)

* cleanup cmake files
use
cmake -DINSTALL_PREFIX=/opt/hyperion ..
to install all files to hyperion or
cmake -DINSTALL_PREFIX=/usr/
to install to usr. install folders are linux standard. bin go to bin folder and additionals (effects) go to share/hyperion

* add uninstall target - be patient with that, this will remove files from your system
install service files to share/hyperion - if you want to use them you have to make a symlink to your location of service files

* optimize build release script
install service files into hyperion share folder (services not activated, this must be done by distribution package script)
initial support of cmake option -DPLATFORM= option. This selects platform specific cmake flags. no need for -DENABLE_... options (unless you want some special things)
automatic detect for apple build

* update submodule

* fix cmake error when no platform is given

* initial support for deb,rpm and tgz packages - no usefull content atm!

* make packeages contain usefull stuff

* add license
make packes more functional. package specific install missing yet

* implement debian postinstall

* disable rpm generation until it has a working state

* add hypercon compat

* add posibility for multiple config files. first one found is taken

* remove hyperion comaptlayer
services is not started automaticly

* rework debian postinstall:
- remove /opt compatibility complety. This makes more trouble as it is usefull
- when hyperiond already started, restart it
- cleanup

* add deb package dependencies

* wipe out last support for /opt installation

* change default effect path in config to /usr

* revert service files and config files

* remove last occurences of ENABLE_PROTOBUF
fix cmake warnings and make it ready for cmake 3
fix refactoring of hyperiond.cpp creates no objects for network services

* all arguments via reference ...

* fix xbmcchecker not working

* add logger class

* - profiler must be activated with ENABLE_PROFILER, otherwise an error will raise
-> this should prevent profiler gets into release code

* fix profiler

* make logger compat with older/partial c++11 versions (r.g. debian wheezy)
fix description of optionparser
fix atmoorb not compile for qt4. now it should compile for qt5 and 4

* make logger compiles with qt5 too
fix compiler warnings

* remove debug code


Former-commit-id: 6aa41351667caed712b1f28010dbedfca8a6a5a0
2016-06-07 22:24:29 +02:00
brindosch
ad65ca2983 atmoorb qt5 fix (#683)
Former-commit-id: 64ce9cd676059d5225493a97c89b83f589f68417
2016-06-07 13:17:40 +02:00
brindosch
9578a3e386 Kodicheck: Add option for pause modus (#681)
* introduce pause mode

* fix it fe...

* fix

* fix compile warning

* change solution

* fix order

* fix

* last update

* -


Former-commit-id: b35c4d672aed5be7a6a694b3c861c6cf287d89df
2016-06-07 12:34:50 +02:00
redPanther
f39f074dcf add logger/compiler class (#680)
* implement make install
set CMAKE_INSTALL_PREFIX e.g. to /opt to install to /opt/hyperion
set ENABLE_SYSTEM_INSTALL to ON to activate installation
after compiling use
make install
or
make install/strip
(for performance/size optimized binaries - compile in Release to get best performance)

* cleanup cmake files
use
cmake -DINSTALL_PREFIX=/opt/hyperion ..
to install all files to hyperion or
cmake -DINSTALL_PREFIX=/usr/
to install to usr. install folders are linux standard. bin go to bin folder and additionals (effects) go to share/hyperion

* add uninstall target - be patient with that, this will remove files from your system
install service files to share/hyperion - if you want to use them you have to make a symlink to your location of service files

* optimize build release script
install service files into hyperion share folder (services not activated, this must be done by distribution package script)
initial support of cmake option -DPLATFORM= option. This selects platform specific cmake flags. no need for -DENABLE_... options (unless you want some special things)
automatic detect for apple build

* update submodule

* fix cmake error when no platform is given

* initial support for deb,rpm and tgz packages - no usefull content atm!

* make packeages contain usefull stuff

* add license
make packes more functional. package specific install missing yet

* implement debian postinstall

* disable rpm generation until it has a working state

* add hypercon compat

* add posibility for multiple config files. first one found is taken

* remove hyperion comaptlayer
services is not started automaticly

* rework debian postinstall:
- remove /opt compatibility complety. This makes more trouble as it is usefull
- when hyperiond already started, restart it
- cleanup

* add deb package dependencies

* wipe out last support for /opt installation

* change default effect path in config to /usr

* revert service files and config files

* remove last occurences of ENABLE_PROTOBUF
fix cmake warnings and make it ready for cmake 3
fix refactoring of hyperiond.cpp creates no objects for network services

* all arguments via reference ...

* fix xbmcchecker not working

* add logger class

* - profiler must be activated with ENABLE_PROFILER, otherwise an error will raise
-> this should prevent profiler gets into release code

* fix profiler


Former-commit-id: b716dd40dbf5b837356eec876d85ec71c86d5c6c
2016-06-05 16:08:55 +02:00
redPanther
f2e9193987 fix #674 (#676)
* implement make install
set CMAKE_INSTALL_PREFIX e.g. to /opt to install to /opt/hyperion
set ENABLE_SYSTEM_INSTALL to ON to activate installation
after compiling use
make install
or
make install/strip
(for performance/size optimized binaries - compile in Release to get best performance)

* cleanup cmake files
use
cmake -DINSTALL_PREFIX=/opt/hyperion ..
to install all files to hyperion or
cmake -DINSTALL_PREFIX=/usr/
to install to usr. install folders are linux standard. bin go to bin folder and additionals (effects) go to share/hyperion

* add uninstall target - be patient with that, this will remove files from your system
install service files to share/hyperion - if you want to use them you have to make a symlink to your location of service files

* optimize build release script
install service files into hyperion share folder (services not activated, this must be done by distribution package script)
initial support of cmake option -DPLATFORM= option. This selects platform specific cmake flags. no need for -DENABLE_... options (unless you want some special things)
automatic detect for apple build

* update submodule

* fix cmake error when no platform is given

* initial support for deb,rpm and tgz packages - no usefull content atm!

* make packeages contain usefull stuff

* add license
make packes more functional. package specific install missing yet

* implement debian postinstall

* disable rpm generation until it has a working state

* add hypercon compat

* add posibility for multiple config files. first one found is taken

* remove hyperion comaptlayer
services is not started automaticly

* rework debian postinstall:
- remove /opt compatibility complety. This makes more trouble as it is usefull
- when hyperiond already started, restart it
- cleanup

* add deb package dependencies

* wipe out last support for /opt installation

* change default effect path in config to /usr

* revert service files and config files

* remove last occurences of ENABLE_PROTOBUF
fix cmake warnings and make it ready for cmake 3
fix refactoring of hyperiond.cpp creates no objects for network services


Former-commit-id: 56e3e0d1014999b2555418c7b5a2898ac29fb5f1
2016-06-04 19:26:34 +02:00
penfold42
e8207cfe31 fix more "dos" line endings (#673)
* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config

Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process

* reversing errant change to hyperion.systemd.sh

* cleaned up a couple of compiler warnings

* moved bitpair_to_byte initialiser to (hopefully) work with older GCC

* compiler warning in udp driver
removed some tabs in ws2812b.cpp

* formatting - spaces to tabs

* moved rpi_281x to tag sk6812-v1.0

* moving to my fork of rpi_281x

* removed dos line endings

* Found some more "dos" line ending files


Former-commit-id: c756e3ccc153fd36e23a26eff37a1230bdd4b9b4
2016-06-03 16:46:45 +02:00
penfold42
d5ce395e8e Add sk6812rgbw support (#666)
* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config

Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process

* reversing errant change to hyperion.systemd.sh

* adding support for SK6812 - not working yet

* Changed rpi_ws281x submodule to be penfold42's fork

* Set White to zero for now

* starting on the code to make the White led do stuff

* Added some basic whie led calculation
white = min(r,g,b)
r-=w, g-=w, b-=w

* cleaned up a couple of compiler warnings

* updated strip type to use corrected RGBW strip type
(the SK6812RGBW datasheet is wrong)

* moved bitpair_to_byte initialiser to (hopefully) work with older GCC

* compiler warning in udp driver
removed some tabs in ws2812b.cpp

* formatting - spaces to tabs

* moved rpi_281x to tag sk6812-v1.0

* attempt #3 at migrating the rpi_281x submodule to my fork/branch

* moving to my fork of rpi_281x

* Started implementing multiple RGB to RGBW conversion options

a quick hack has been implemented inside WS281x.cpp but ive started
moving this to RgbToRgbw.cpp for reuse by other led device types

* migrated RGB to RGBW conversion to RgbToRgbw.cpp


Former-commit-id: ff8e9038c4bb8203b71b42d12bf23be4abcc0b3b
2016-05-31 22:55:56 +02:00
penfold42
6fbfda03fa add zeroconf support based on qt4 libraries (#667)
* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config

Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process

* reversing errant change to hyperion.systemd.sh

* added bonjour/zeroconf service discovery to the json interface.

When clients are also modified, they can
- find hyperiond on the network much more quickly than ping/portscan;
- find multiple instances running on different ports instead of assuming 19444

* Moved zeroconf calls to hyperiond.cpp

* Added mDNS/zerconf/bonjour registration for proto server

Added config options.
        "jsonServer" :
        {
                "port" : 49444,
//              "mDNSDescr" : "hyperiond jsonServer blah de blah",
                "mDNSService" : "_hyperiond_json._tcp"
        },

* cleaned up a couple of compiler warnings

* moved bitpair_to_byte initialiser to (hopefully) work with older GCC

* compiler warning in udp driver
removed some tabs in ws2812b.cpp

* formatting - spaces to tabs

* moved rpi_281x to tag sk6812-v1.0

* moving to my fork of rpi_281x

* Now uses the led device name and hostname to create the annouce name


Former-commit-id: abfa51bcf359cafa63338181c1b83ecfd231bc87
2016-05-31 22:55:11 +02:00
ntim
03cee33784 Fix for Philips Hue flickering when switchOffOnBlack is set true (#668)
* Improved switch off on black feature.

* Changed "isnan" to "std::isnan"


Former-commit-id: 5db2b97674661e4e19f796a91dd443a501268e27
2016-05-31 22:54:47 +02:00
penfold42
6f43fe1196 New QT based udp driver (#662)
* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config

Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process

* reversing errant change to hyperion.systemd.sh

* cleaned up a couple of compiler warnings

* moved bitpair_to_byte initialiser to (hopefully) work with older GCC

* compiler warning in udp driver
removed some tabs in ws2812b.cpp

* formatting - spaces to tabs

* moved rpi_281x to tag sk6812-v1.0

* moving to my fork of rpi_281x

* half way thru re merging the newudp support

* Whoops.... dont know how it compiled before..

* Removed debugging that was commented out


Former-commit-id: ac4330422f93f3d594dfcba5593759288298d25e
2016-05-30 23:58:31 +02:00
Paulchen-Panther
23042ba07c Update Json Interface (Active LED Color) (#664)
* add getCurrentPriority

* add getCurrentPriority

* Update active led color


Former-commit-id: 0e6b828991fdf51d2ec859d3836ce4f976dfd88c
2016-05-30 22:39:12 +02:00
tpmodding
019d4ba6d8 Update LedDevicePhilipsHue.cpp
Changed "isnan" to "std::isnan"

Former-commit-id: 528f02452762fade16b84d17dc7692de9129559c
2016-05-27 11:16:42 +02:00
redPanther
945f3d1c5b big code cleanup. mostly line endings and indentions (#659)
No functional changes - except protobuffer is mandatory and not optional now.

Former-commit-id: 1e6347e708707cc388cdedb8d0352a9f017030b8
2016-05-26 23:44:27 +02:00
brindosch
13b08d5df1 Merge branch 'Beta' of https://github.com/hyperion-project/hyperion into Beta
Former-commit-id: 7e6f328f5cd1912374fb25a5676e07b9e44630be
2016-05-26 07:46:01 +02:00
brindosch
716935dfff xbmc checker fix (3)
Former-commit-id: c8b406033d333177dd2470522b2d8526a9c02d07
2016-05-26 07:45:54 +02:00
redPanther
a41051cc84 prevent colorsmoothing from flooding led device with data when no new input data is available (#654)
resolve compiler warnings

Former-commit-id: c7fbdce5dc7fde8b8e188320408dc547b9ad5e51
2016-05-26 07:01:10 +02:00
brindosch
84d9f4ef80 xbmc checker fix (2)
Former-commit-id: 735f8e3e356b0fca0562185f30532860c7879ee3
2016-05-25 21:15:49 +02:00
brindosch
1e319be54a hotfix x11grabber
Former-commit-id: 7068bad863cf229e01382f859ff06a51dad82d17
2016-05-25 18:53:09 +02:00
Funatiq
45dff6d1d3 Reduce saturation in backlight (#651)
Former-commit-id: c2c4fd6f957c3623e03c37393cf3c03a7a27dc1e
2016-05-24 22:15:39 +02:00
redPanther
06afe06774 better output for effect path loading (#652)
* better output for effect path loading

* effectengine: error when no efx available


Former-commit-id: 7724e56850ef9f9a703fb41e82baf88e5534f492
2016-05-24 22:14:45 +02:00
Paulchen-Panther
409ef383f3 XRender support for X11 Grabber (#649)
* Update X11Grabber.h

* Update X11Grabber.cpp

* Update CMakeLists.txt

* Update hyperion-x11.cpp

* Update X11Wrapper.cpp

* Update X11Wrapper.h


Former-commit-id: d2f7cb0e22248a0c2963bf53728f2e0d7bb9dee1
2016-05-24 19:55:50 +02:00
Funatiq
f8b724f9f9 Minimum luminance for backlight in dark scenes (#646)
* Include miminum luminance

* Add luminance minimum

* Add luminance minimum

* fixed missing ;

* Add luminance minimum

* Add luminance minimum check

Check if luminance mimimum is other than default

* Add luminance minimum

* Add luminance minimum

* Add luminance minimum

* Add luminance minimum

* Add luminance minimum

* Safe luminance calculation


Former-commit-id: 35a762b18b473a333155acba7a00894204400076
2016-05-23 00:00:48 +02:00
penfold42
c179b86b8d fix LedDeviceWs2812SPI to compile on gcc 4.6 (#643)
* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config

Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process

* reversing errant change to hyperion.systemd.sh

* cleaned up a couple of compiler warnings

* moved bitpair_to_byte initialiser to (hopefully) work with older GCC

* compiler warning in udp driver
removed some tabs in ws2812b.cpp

* formatting - spaces to tabs


Former-commit-id: 42cc7325177c9fcc3d1bd29cbfe72f02118d3233
2016-05-22 12:56:44 +02:00
Funatiq
82f3fbdb20 Reorder Transform and Adjustment (#636)
Change order from "Adjustment -> Transform" to "Transform -> Adjustment"

Former-commit-id: 5b63d0bce98a80b5a2604e43772574ec6bbfd2a5
2016-05-22 00:30:53 +02:00
Funatiq
4afd730954 Better color adjustment (#637)
Only apply color channel if color is dominant. Grey color independent from color channels. Linear increase of color channel from grey to maximum.

Former-commit-id: cda9fca0084174877c45a7e9a867e6209ffe9e44
2016-05-22 00:30:28 +02:00
Matthias Reichl
f584b05de5 dispmanx: fix grabber issues with certain widths and support cropping (#634)
* dispmanx: fix grabber issues with certain widths and support cropping

The dispmanx grabber will produce garbage output if the destination
pitch is not set to a multiple of 64 bytes (16 RGBA pixels).

It can also fail when retrieving only a part of the image
(eg in 3DSBS or TAB mode).

Handle these cases by capturing the full image into a separate
buffer with the pitch set to an appropriate value and manually
handle 3D SBS/TAB left/top half copying.

At this point supporting cropping like in the V4L2 grabber is
rather easy and added as well. This'll help handling overscan
setups (old TVs) and removing (possibly asymmetric) overscan
borders.

Cropping is disabled in video capture mode (when the
DISPMANX_SNAPSHOT_FILL flag is set).

Signed-off-by: Matthias Reichl <hias@horus.com>

* hyperion-dispmanx: add optional crop values and 3D mode options

Signed-off-by: Matthias Reichl <hias@horus.com>

* hyperiond: support cropping on the dispmanx grabber

Honor cropLeft, cropRight, cropTop and cropBottom settings in
the framegrabber section of the conf file to control cropping.

Signed-off-by: Matthias Reichl <hias@horus.com>

Former-commit-id: bbb55f6621b90384e417f37da4f2543d112ef57a
2016-05-18 11:26:25 +02:00
Rick164
4ccda40250 Kodi video checker bugifx (#633)
* Kodi video checker patch to make it compliant with recent JSON RPC API specs.

* Updated inline documentation for Kodi video checker.


Former-commit-id: e0760f55e1ddd61f10ae457c485aa01ae4507260
2016-05-17 02:54:10 +02:00
recliq
8310a6d9d0 added simple TPM2.net support to UDP output (#627)
Former-commit-id: 59356ae53c90e178a4bc198c6babc5832bb15d12
2016-05-15 18:39:26 +02:00
penfold42
a960894d14 Another option for Ws2812 - direct spi from the pi with 1 wire (#631)
* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config

Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process

* reversing errant change to hyperion.systemd.sh

* This add a new device type - ws2812spi.

I've (ab)used the SPI interface to send the correct timing pulses to keep the ws2812 happy.
THE RATE IS IMPORTANT!
A FIXED CORE_CLK IS IMPORTANT!

Attach the SPI MOSI pin on the Pi to the DIN pin on your ws2812

        "device" :
        {
                "name"       : "MyPi",
                "type"       : "ws2812spi",
                "colorOrder" : "grb",
                "output"     : "/dev/spidev0.0",
                "rate"       : 3800000
        },

* updated hyperiond.test-binary

* Updated default SPI speed to the "correct" value.
My Pi was undervolted so was dropping the core clock confusing everything

* Code cleanups
explicitly set the final 3 bytes to 0

* Removed latchtime option - not applicable

* updated test binary


Former-commit-id: d3c19c8374999f7a554bb25ca181a8a483f86289
2016-05-15 18:39:17 +02:00
penfold42
c17e4894d9 Apa102 fix if the led strip has more physical LEDs than you want to configure with hyperion (#626)
* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config

Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process

* reversing errant change to hyperion.systemd.sh

* started bug fixes for APA strips with more physical leds than configured

* 1st cut of changes to APA102.

now looks at config for "leds" which is the # of hardware leds in the strip.
This enables us to write the correct trailer length in the packet.

Also fixed a bug where switchoff was writing the wrong # of leds

* removed commented out old code

removed debug printf

* included prebuild test binary for Pi2

* Second attempt at the fix.
BEFORE:
If you have more physcial LEDs than defined in the "leds" "index" section of the config there is random junk added to the end of the strip.

WITH THIS FIX:
In the "device" section specify the number of physical leds with:
 "leds" : 212,
If this is greater than the number of led indexes, additional LEDs are set to black
If this is smaller than the number of led indexes, it is ignored

* included test binary

* Clean exit if the device config is missing or a non-supported device type is specified

Former-commit-id: 8ae96188fa74d91b13a921e7d5faf6d6ac1c42ee
2016-05-10 12:16:19 +02:00
Paulchen-Panther
536b51dba1 Update JsonClientConnection.cpp
JSON API: Get current LED color

Former-commit-id: 0b40c1eb1627afd8077bdf690109609fd531c2fb
2016-05-06 15:05:28 +02:00