Commit Graph

622 Commits

Author SHA1 Message Date
redpanther
d3e77eb018 fix doxy 2016-07-15 10:28:12 +02:00
redPanther
b49ada956b hyperion won't fail, if v4l2 has invalid device + auto device (#118)
* hyperion won't fail, if v4l2 has invalid device

* add v4l auto select. use "auto" as device name
2016-07-14 23:40:10 +02:00
redPanther
946f9fc603 compile fix (#114)
* multi fix commit

- refactoring leddevicefactory
- adalight: default for "delayAfterConnect" is 1s now - needed for most arduino's because of there special behaviour on open
- fadecandy: new option for disabling configuration send - if you want to keep your fadecandy defaults
- Hyperion.cpp: simplify createSmoothing discussed in #105
- smoothing:
-- add option for continuous output
-- when updatedelay>0 and continousOutput is disabled, buffer is flushed correctly after no input is detected

* add doxygen to travis

* fix code

* fix compile fir ws281x pwm

* remove git merge stuff

* fix compile
2016-07-13 16:19:19 +02:00
redPanther
5a2ef6c4a3 multi fix commit (#112)
* multi fix commit

- refactoring leddevicefactory
- adalight: default for "delayAfterConnect" is 1s now - needed for most arduino's because of there special behaviour on open
- fadecandy: new option for disabling configuration send - if you want to keep your fadecandy defaults
- Hyperion.cpp: simplify createSmoothing discussed in #105
- smoothing:
-- add option for continuous output
-- when updatedelay>0 and continousOutput is disabled, buffer is flushed correctly after no input is detected

* add doxygen to travis
2016-07-13 11:18:12 +02:00
brindosch
1cf7fd545e Bugfix sync with hyperion repo (#110)
* #702  if led color not black

* colorless backlight #707
2016-07-12 23:33:30 +02:00
redPanther
48d20529d3 extend Fadecandy driver (#109)
* add functions to send sysEx (not working correctly atm)

* make new values avail via config
2016-07-12 22:37:45 +02:00
penfold42
7b9b9bcdef logging migration of blackborder and grabber (#108)
* logging migration of blackborder and grabber

* change to "Debug" for noise blackborder log messages
2016-07-12 15:13:06 +02:00
penfold42
49f16ac2e6 HTTP server logging migration (and other random small cleanups) (#106) 2016-07-12 13:47:30 +02:00
penfold42
b7b17b36e8 Migrate logging and add "enable" to smoothing (#105)
* Migrate logging and add "enable" to smoothing

* Migrated the linearcolorsmoothing file
2016-07-12 12:46:54 +02:00
brindosch
76acff8043 Logging for dispmanx, framebuffer, x11, v4l2, osx (#103)
* dispmanx

* typi

* Framebuffer

* fix attempt

* x11

* osx

* V4L2
2016-07-12 00:53:48 +02:00
brindosch
c802505553 logging rework json/proto (#102)
* 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

* travis.ci

* travis: move to ubuntu 14.04

* script try

* add serialport

* update .json files

* .

* .

* .

* update travis

* fix

* typo

* fix

* .

* disable v4l2 on mac

* disable email notification

* update osx

* maybe fix

* .

* disable osx and rm v4l2

* try osx

* try fix

* travis update

* add oe systemd file

* Proto

* Json

* fix

* fix2

* fix3

* .

* typo

* update

* revert runtime error
2016-07-11 17:08:22 +02:00
penfold42
80fc153d35 udplistener will now set remaining LEDs to black. (#99)
eg: configure 42 leds, but a udp packet only contains 10 leds, the remaining 32 are now set to black
2016-07-11 13:15:08 +02:00
redPanther
2013304130 implement auto avaluation of used platform. To use it simply not add -DPLATFORM (#98) 2016-07-11 11:02:18 +02:00
redPanther
c2e2c26ab2 Logging migration continues ... (#97)
* migrate logging for blackborder and bonjour. fix logging bug in hyperion

* fix kodichecker when kodi is not there
2016-07-10 23:14:23 +02:00
redPanther
3ac0781c1f Kodi checker rework (+enable option) (#96)
* big kodichecker rework

- use new logger
- 'enable' flag in config
- startable on runtime (atm not stoppable and no reconfigure)
- rename xbmc to kodi

* remove unnecceasry checks for kodi

* make kodichecker stoppable and add reconfigure

* tune config
2016-07-10 22:04:31 +02:00
penfold42
d4635bba4e Sk6812rgbwfix (#95)
* sk6812rgbw bug fix and rename device to sk6812rgbw-spi

* Added white_algorithm support to sk6812rgbw-spi device type
2016-07-10 17:07:19 +02:00
penfold42
ca795d883e Add "enable" to forwarder, fix udp listener (#91)
* Add "enable" to forwarder

fix udp listener - address and port parsing was broken

* updated example configs

* updated example config with comments
2016-07-10 12:42:21 +02:00
redPanther
78eaaa2e84 Filter rework, next step (#82)
* common ledbuffer for color transform

hyperion class uses a common buffer for all operations on ledColors got from muxer
all color transforms uses new ledBuffer instead of making copies of ledbuffer

other fixes:
fix compile bug in profiler
update doxygen config

* migrate logging for color transform classes

* prepare new logger in hyperion class

* implement hwledcount

* Update Hyperion.cpp

Fix off color

* remove ledscount equivalent from apa102
migrate logging in hyperion.cpp
remove unused and duuplicate colorcorrection - but same is available through tempertature

* remove colorcorrection completly
fix compile

* set colororder back to static

* in remote: using correction is the same as using temperature - correction is obsolete, command not delete atm for compat reasons

* refactoring of RgbChannelAdjustment

* - remove rgbchannelcorrection, this was a dup of rgbchanneladjustment
- add cmake policy to hide warning
- tune code of rgbchanneltransform
2016-07-04 00:43:41 +02:00
redPanther
921f164b26 refactoring of RgbChannelAdjustment (#79)
* common ledbuffer for color transform

hyperion class uses a common buffer for all operations on ledColors got from muxer
all color transforms uses new ledBuffer instead of making copies of ledbuffer

other fixes:
fix compile bug in profiler
update doxygen config

* migrate logging for color transform classes

* prepare new logger in hyperion class

* implement hwledcount

* Update Hyperion.cpp

Fix off color

* remove ledscount equivalent from apa102
migrate logging in hyperion.cpp
remove unused and duuplicate colorcorrection - but same is available through tempertature

* remove colorcorrection completly
fix compile

* set colororder back to static

* in remote: using correction is the same as using temperature - correction is obsolete, command not delete atm for compat reasons

* refactoring of RgbChannelAdjustment
2016-07-02 14:00:48 +02:00
redPanther
36b4d072c5 common ledbuffer for color transform (#77)
* common ledbuffer for color transform

hyperion class uses a common buffer for all operations on ledColors got from muxer
all color transforms uses new ledBuffer instead of making copies of ledbuffer

other fixes:
fix compile bug in profiler
update doxygen config

* migrate logging for color transform classes

* prepare new logger in hyperion class

* implement hwledcount

* Update Hyperion.cpp

Fix off color

* remove ledscount equivalent from apa102
migrate logging in hyperion.cpp
remove unused and duuplicate colorcorrection - but same is available through tempertature

* remove colorcorrection completly
fix compile

* set colororder back to static

* in remote: using correction is the same as using temperature - correction is obsolete, command not delete atm for compat reasons
2016-07-01 23:20:41 +02:00
penfold42
faf5110558 More logging migration. (#74)
Cleaned up old commented out printf statements.

The piblaster stuff probably needs to be moved out of the devicefactory but Ill have to do that later
2016-06-29 16:49:05 +02:00
XfableX
6327a38582 Added logging to X11Grabber (#71)
* Added logging to X11Grabber

* Added logging to Amlogic grabber.

* Fixed mistake in amlogicgrabber.h

* fixed compile issue

* Trigger

* cleaned up log messages
2016-06-29 16:48:53 +02:00
XfableX
1faead11c5 added logging for files that were lacking it. (#66) 2016-06-28 21:53:34 +02:00
redPanther
03ac5689cf make log level settings avail in config file (#63) 2016-06-27 23:56:21 +02:00
redPanther
809ab82524 migrate boblight to new logger and make it start/stoppable during runtime (#62) 2016-06-27 22:43:43 +02:00
penfold42
96037da1cf Added support for sk6812RGBW leds (ab)using the SPI interface. (#61)
right now it only uses RGB - white is set to zero
2016-06-27 22:43:35 +02:00
penfold42
2fff9ae4fc Remove unused constructors (#60) 2016-06-27 22:43:28 +02:00
redPanther
b9634e57d6 Udplistener start/stop during runtime (#56)
* start implementening runtime start/stop for udplistener

* add signal slots for start/stop/statusChanged for better connectivity with other qt stuff

* fix typo
2016-06-27 09:27:11 +02:00
penfold42
de39ff8997 UDPListener improvements: (#53)
- if you listen to a multicast address, it now also listens to all ipv4 addresses
- shared udp sockets - multiple hyperiond instance can optionally share the same udp packets
2016-06-26 20:08:03 +02:00
redPanther
e486b10aa6 Logging leds (#52)
* switch to new logger for folowing led devices:
LedDeviceAtmo
LedDeviceFactory
LedDeviceFadeCandy
LedDeviceHyperionUsbasp
LedDeviceLightpack-hidapi
LedDevicePiBlaster
LedDeviceWS281x
LedRs232Device

leddevice base class defines logger already as protected member _log

* migrate to new logger for led devices.
still todo:
LedDeviceWS2812b
LedDeviceWs2812SPI
LedDeviceTinkerforge
LedDeviceLightpack
LedDeviceMultiLightpack

* migrate leddevice tinkerforge to new logger

* migrate Lightpack and MultiLightpack to new logger
2016-06-26 11:53:16 +02:00
redPanther
4033de85ec Logging leds (#50)
* switch to new logger for folowing led devices:
LedDeviceAtmo
LedDeviceFactory
LedDeviceFadeCandy
LedDeviceHyperionUsbasp
LedDeviceLightpack-hidapi
LedDevicePiBlaster
LedDeviceWS281x
LedRs232Device

leddevice base class defines logger already as protected member _log

* migrate to new logger for led devices.
still todo:
LedDeviceWS2812b
LedDeviceWs2812SPI
LedDeviceTinkerforge
LedDeviceLightpack
LedDeviceMultiLightpack
2016-06-25 22:08:17 +02:00
penfold42
0b59614ab3 native UDP listener enhancements (#48)
- uses new logger
- can specifiy which ip address to listen on
- if its a multicast address, multicast is enabled
2016-06-25 15:15:23 +02:00
penfold42
33f1ef457b More logging cleanup on led devices (#47) 2016-06-25 14:44:52 +02:00
redPanther
56ae551cbd extend hyperion version number (#46)
* add version number for hyperion and json level

* add new jsonrpc_version in HyperionConfig.h.in
add new hard coded version number for hyperion
2016-06-24 23:22:31 +02:00
penfold42
a6e1b89724 cleanup for compiler warning "Note: No relevant classes found. No output generated." (#42)
* 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

* Fixed random http port due to uninitialized _port

* cleaning up compiler warning

* cleaned up CMakeLists to remove warning:
Note: No relevant classes found. No output generated.
2016-06-24 17:46:30 +02:00
penfold42
b6a0b7261d logging migration for ws281x and LedUdpDevice (#45) 2016-06-24 17:46:23 +02:00
redPanther
33ebdcaffc - add cmake qt check, minimum 5.2 (#40)
- on x86 use dynamic avahi libs
- fix compile error
2016-06-23 19:56:50 +02:00
redPanther
d4142b4eb4 migrate logging for effects and verbose options (#38)
* start step by step  migration to new logger

* fix linking for serialport

* migrate effectengine to new logger

* tune log messages

* add commandline options for hyperiond to control verbosity
--silent
--verbose
--debug
2016-06-23 13:48:49 +02:00
redPanther
34252b434d fix linking for serialport (#37) 2016-06-23 09:39:56 +02:00
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
RickDB
3227a3125b AtmoOrb - removed skip same color change.
Former-commit-id: 399ad830d9ecad8bf8d1e62241744f15631f0515
2016-05-05 14:48:33 +02:00
penfold42
deed8066b0 Piblaster fix (#614)
* 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

* Experimental changes to piblaster code to work how i think it should

It is now assumed that the PWM pins in groups of 3 correspond to RGB channels of the led.
                "assignment"       : "rgbrgbrgb",
Would result in:
//Channel number    GPIO number   Led channel
//      0               4             0 red
//      1              17             0 green
//      2              18             0 blue
//      4              27             1 red
//      5              21             1 green
//      6              22             1 blue
//      7              23             2 red
//      8              24             2 green
//      9              25             2 blue

* Ammend pwm channel mapping comments to match the code

* 1st cut of the new more flexible piblaster pin mapping support

it works but is still rough

* removed old "assignment" handling
- prints an error messaage if found and terminates

fixed the switchoff method

* removing iPins hard coded list of valid GPIO pins

* removed iPins array for switchOff function

* code cleanups

input validation

* Handle catching (and ignoring) SIGPIPE.
You can now kill and restart pi-blaster daemon and hyperiond will gracefully recover

* added a binary for testing

* Added sample config and my modified pi-blaster version to support more GPIOs

* moved hyperiond

* removed testing binaries

move sample configuration to the configs directory

* re enabled device config display

* removed sample configuration


Former-commit-id: 95e4d4ea2fb7cb5439e8cd597883a638da61a574
2016-04-29 16:00:33 +02:00
Paulchen-Panther
bb9b02cf05 get current state (active Effects) over JSON Interface (#608)
* Create ActiveEffectDefinition.h

* Update EffectEngine.h

* Update Hyperion.h

* Update Effect.h

* Update EffectEngine.cpp

* Update Hyperion.cpp

* Update JsonClientConnection.cpp


Former-commit-id: 5664b69da6893dd0d0de0e7c74c01cdcafd57310
2016-04-24 17:07:31 +02:00
Rick164
d4dda2dcc4 AtmoOrb LedDevice now only processes new color commands and skips identical, saves last send color per light id separately in Qmap. (#602)
Former-commit-id: 38873e5b718c73d95111abcb10cf148f6a6ab18b
2016-04-21 14:51:43 +02:00
Rick164
02fef83bb8 AtmoOrb smoothing additions
* Updated smoothing options for AtmoOrb, can now choose between Orb external or Hyperion's internal smoothing.
With skipSmoothingDif you can set the maximum allowed color difference before overriding / clearing Orb smoothing during faster color change like for instance color <-> black.

* Updated inline documentation.

* Fixed command type typo in AtmoOrb device.

* Corrected variable spelling in AtmoOrb device.

* Make smoothing also match equal values for AtmoOrb smoothing differential


Former-commit-id: 3eede43c2f76fa324f0144aeac0526b8125ad149
2016-04-02 00:07:28 +02:00
AEtHeLsYn
b37cbd26d5 Add color adjustment to all RBG channels
* Channel adjustment config

* Create RgbChannelAdjustment.h

* Delete RgbChannelAdjustment.h

* Create RgbChannelAdjustment.cpp

* Create RgbChannelAdjustment.h

* Delete RgbChannelAdjustment.cpp

* Create ColorAdjustment.cpp

* Delete RgbChannelAdjustment.h

* Create ColorAdjustment.h

* Update ColorAdjustment.h

* Update ColorAdjustment.h

* Update ColorAdjustment.h

* Update ColorAdjustment.cpp

* Update Hyperion.cpp

* Update Hyperion.cpp

* Update Hyperion.cpp

* Update Hyperion.h

* Create RgbChannelAdjustment.cpp

* Create RgbChannelAdjustment.h

* Create ColorAdjustment.h

* Create MultiColorAdjustment.h

* Update MultiColorAdjustment.h

* Create MultiColorAdjustment.cpp

* Delete ColorAdjustment.cpp

* Delete ColorAdjustment.h

* Update RgbChannelAdjustment.cpp

* Update Hyperion.cpp

* Update Hyperion.h

* Update Hyperion.cpp

* Bug fixes

* Update hyperion.config.json

* Add color adjustment to json server and client and adapt hyperion-remote

* Change the color modification order

* Minor bug fix

* Create calibration Images folder

* Create calibration Gamma folder

* Create calibration RGB folder

* Added files via upload

* Delete .gitkeep

* Delete .gitkeep

* Added files via upload

* Delete .gitkeep

* Update color effect order and don't correct twice

* Uploaded gradient images


Former-commit-id: 8ab465e59834f12a21709a6f4546bd6808a2a495
2016-04-02 00:04:11 +02:00
brindosch
ad584aa548 Typos
Former-commit-id: fc7bc3c0e4bddcb5a6b778c2afabc3940a08782c
2016-03-23 18:54:49 +01:00
brindosch
f332473b77 Merge remote-tracking branch 'refs/remotes/origin/Beta'
Former-commit-id: 5bdbda1406bb0ddb99440502584604b85b0f3063
2016-03-23 17:53:32 +01:00
brindosch
fa66c3b2b5 Rework log messages
Former-commit-id: eac93c0fd78fdf353e940d08df3cabf0b962a3e2
2016-03-23 17:40:45 +01:00
penfold42
a3204ae6be LedDeviceFile now defaults to /dev/null if the output is omitted.
Former-commit-id: eff12ec16d08ffa00287ed68238ab6b397f1c53d
2016-03-23 21:28:31 +11:00
penfold42
7dce3ab798 renamed the "Test" device to be "File"
No functional changes, but
- files have been renamed
- the device name is now "file" not "test"


Former-commit-id: 3fbc03c3fe1d764654c1d28ebb80562ce6276ab1
2016-03-23 21:12:34 +11:00