Commit Graph

327 Commits

Author SHA1 Message Date
brindosch
0603fadd21 Web: Centralize websocket, add json port changer and led schemas (#209)
* add comp test

* update web

* .

* typo

[skip ci]
2016-08-30 23:25:27 +02:00
penfold42
c13f2e20ec Added source and cid to e1.31 driver. (#207)
source defaults to "hyperion on <hostname>"
cid defautls to randomly generated on each startup

        "device" :
        {
                "name"       : "DMX_e131",
                "type"       : "e131",
                "universe"   : 1,
                "cid" : "{204b83c-efb5-4b23-b2d0-35939d561061}",
                "source-name": "This is my custom e1.31 source",
                "host"       : "239.255.0.1",
                "port"       : 5568,
                "colorOrder" : "rgb"
        },
2016-08-28 10:45:18 +02:00
penfold42
cc8185691a Renamed the lowlevel providers from LedXXXDevice to ProviderXXX (#206)
%s/LedUdpDevice/ProviderUdp/g
git mv LedUdpDevice.cpp ProviderUdp.cpp
git mv LedUdpDevice.h ProviderUdp.h

vi `grep -l LedHID *`
%s/LedHIDDevice/ProviderHID/g
git mv LedHIDDevice.cpp ProviderHID.cpp
git mv LedHIDDevice.h ProviderHID.h

vi `grep -l LedRs *`
%s/LedRs232Device/ProviderRs232/g
git mv LedRs232Device.cpp ProviderRs232.cpp
git mv LedRs232Device.h ProviderRs232.h

vi `grep -l LedSpi *`
%s/LedSpiDevice/ProviderSpi/g
git mv LedSpiDevice.cpp ProviderSpi.cpp
git mv LedSpiDevice.h ProviderSpi.h
2016-08-28 07:12:47 +02:00
penfold42
9cc3a2de2e LedUdpDevice now tries to parse the "host" as an IP address before trying to DNS resolve it (#205) 2016-08-27 14:05:09 +02:00
penfold42
cea4db8e60 Fix throw error in udp, fix default SPI device (#198)
* Fix throw error so it correctly fails on invalid output hostnames

* Fixed broken default /dev/spidev0.0 string

* UDP devices now use "host" and "port" rather than "output"
2016-08-24 06:05:00 +02:00
redPanther
d679affeb4 Leddevice rework2 (#193)
* commit debug code to save it due to merge

* migrate first devices to new device registry and configure on runtime

* fadecandy and rs232 resets device if config is set

* try to hunt crash on osx

* test commit if this works with osx

* refactor spi devices

* cleanup

* refactor leddevices file, tinkerforge and ws2812b

* refactor raw usb devices

* refactor udp devices

* - add tpm2net driver
- remove old udp driver from build (files left in place for reference for new udp driver)
- json serverinfo shows available leddevices

* finish rework part 2 of leddevices

* add schemas for leddevices.
currently only compiled in, but not usedx
2016-08-23 20:07:12 +02:00
penfold42
c8318ff0c7 support > 170 leds with E1.31 (#189)
* Add support for > 170 leds. These are send as multiple packets
Change default latchtime to be smaller

* code cleanup

* more code tidying
added *.swp to gitignore
2016-08-20 22:39:21 +02:00
penfold42
85e3f154d6 DMX512/sACN/E1.31 support (#184)
* Started on support for sACN/E1.31/DMX512
Just a clone of udpraw for now

* It's ALIVE!!
This adds somewhat working DMX512/sACN/E1.31 support.
I've tested it against an ESPixelStick but have no other "real" hardware
TODO:
configure universe#
configure universe and led offset
configure source names (all hard coded now...)

* oops.... forgot that dmx element 0 isnt rgb data but needs to be zero

* added universe support in the config
assorted code cleanups
2016-08-19 17:14:52 +02:00
redPanther
f6f7f55e92 fix warning 2016-08-16 18:14:36 +02:00
redPanther
97181fa83c leddevice refactoring. code style and extension of baseclass to avoid dups (#174) 2016-08-14 10:46:44 +02:00
penfold42
5a902add81 Added "invert" and "spimode" options to ws2801, ws2812spi and sk6812spi devices (#172)
* Added "invert" and "spimode" options to ws2801, ws2812spi and sk6812spi devices

* fixed test/TestSpi.cpp

* some coding style wish
2016-08-13 19:54:08 +02:00
redPanther
197af35de0 Clone single led color from other led (#157)
* start ledclone

* led cloning: clone scan areas from original led
main: show exceptions, better exit

* tune json schema for new option. somwe cleanup

* fix warnings and bug for framebuffer selection. thx to clang brought by new osx buikld on travis

* make ledclone feature work flawlessly for effects too. Effect sees the ledstring without cloned leds.
cloned leds will be inserted just before sending to leddevice

additional: remove warnings and fix code style

* fix warning
2016-08-08 00:17:00 +02:00
penfold42
84c041a6fb updated more incorrect logging types (%s vs %d) (#156) 2016-08-07 07:06:56 +02:00
penfold42
d90a36d911 chealup of udp device. (#153)
left over unneeded spi include
variable cleanup
2016-08-06 08:58:41 +02:00
penfold42
6b04c1571c Fix segmentation fault in usbasp led driver (#152) 2016-08-05 09:14:40 +02:00
redPanther
108e06ed46 LedDevicePhilipsHue: fix isNan sometimes not compile
sometime <cmath> is add automaticly, sometimes not. This leads to compile errors. Including <cmath> should fix this.

info taken from here:
http://en.cppreference.com/w/cpp/numeric/math/isnan
2016-07-24 22:43:26 +02:00
redPanther
30b9c20611 new frame grabber handling (#137)
* - implement framegrabber type option
- framegrabber autoselect
- integrate x11 grabber in hyperiond

* add doxy

* v4l: select device by name
hyperiond: fix x11 grabber connection to kodichecker
config: tune default prios of boblight and v4l

* make v4l name finding case insensitive
2016-07-24 15:18:34 +02:00
redPanther
fff42f370c fix serial port device crash (#134)
* fix resourceerror in serialport implemention and  extend error output

* cleanup

* fix json schema

* remove some nerd setting
2016-07-20 23:26:47 +02:00
redPanther
b1d9a041d4 various fixes (#129)
* various fixes:
- add folder for firmware known as working with hyperion
- rs232: add debug message for close and do not repeat "port not found" message more than neccessary
- v4l2: fix grabber started on creation when set to disabled
- cmake: add new platform x86-dev - this as most code coverage and is usefull for test/development. This is not for release

* add hints for effect-args
2016-07-20 16:04:56 +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
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
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
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
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
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
33f1ef457b More logging cleanup on led devices (#47) 2016-06-25 14:44:52 +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
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
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
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
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
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
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
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
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
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
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
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
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
penfold42
6143075365 1. changed default number of pwm LEDs to 256
2. Adds support for level shifters that invert the data
Config option - "invert" (integer)
if omitted, do not invert
if == 0, do not invert
if !=0, invert


Former-commit-id: fd5b2863a85b11ac3a8444d1e02822f852feb556
2016-03-22 23:50:14 +11:00
brindosch
fb7445b545 Update
Former-commit-id: 3c6ac5d2f618cd7499c16bca950ff3d41f855318
2016-03-22 01:01:54 +01:00
brindosch
1f18073f00 Merge pull request #534 from AEtHeLsYn/master
Color correction

Former-commit-id: 7be726f1adb8698684a2b4726650082ed517901f
2016-03-22 00:56:41 +01:00
brindosch
2677304ec4 Merge pull request #553 from ntim/support_for_philips_hue
Improved validity checks and memory footprint for Philips Hue

Former-commit-id: 65b450ae730fd5e06006a8fe6ab3e3b6ce260c43
2016-03-22 00:56:27 +01:00
Mark Walker
d2973ff20b Add ws281x driver parameter for PWM channel
The RPi 2 and 3 have two PWM channels and 3 PWM pins available to the
gpio header.  BCM18 and BCM12 run on PWM channel 0.  BCM13 runs on PWM
channel 1.  This change allows BCM13 to be used by allowing the PWM
channel to be specified.


Former-commit-id: 3693ab438c2b369e6307c262d32bba509409e5b9
2016-03-20 22:05:24 -07:00
ntim
e0c3ece80d Deletion of qt network reply objects.
Former-commit-id: 258badb680014a187d76d9183080ea3de6895692
2016-03-20 13:33:41 +01:00
ntim
926f47fc1a Added more precise outputs on failures as well as some additional checks.
Former-commit-id: a0def586410d90abda002504d9c2ae88abc43088
2016-03-19 12:36:55 +01:00
ntim
d75a88eb9f Retreived one light more than necessary.
Former-commit-id: 6ee5b0f4a86210fcf4bf3ee96b369aff20c25720
2016-03-17 09:06:28 +01:00
AEtHeLsYn
75991c16e1 Merge pull request #7 from tvdzwan/master
Up-to-date

Former-commit-id: ca05f264b29838c2444f2687ff1bf510bbf9d9af
2016-03-16 10:40:38 +01:00
RickDB
7adb339dea Updated orbIds config setting and sample config.
Former-commit-id: 350db40b53d04efbb43dc8c87c88bf2eb378fa6b
2016-03-15 18:37:55 +01:00
RickDB
f783c59185 Corrected indenting in LedDeviceFactory.cpp.
Former-commit-id: 31713a4a0ce9bd25fd1e39969bbb481363a80167
2016-03-15 12:06:24 +01:00
RickDB
e5545eaac0 Code reformatted.
Former-commit-id: 6f3688791602efb33389c3ba789e7a8a723ee290
2016-03-15 12:03:00 +01:00
RickDB
dcc6a9b449 Make sure the byte array is empty before filling it.
Former-commit-id: 64f76fa358234e131377ecfabf196f3c7324e79f
2016-03-15 11:45:25 +01:00
RickDB
5be072be24 Added more inline documentation.
Simplified joinedMulticastgroup.
Removed non-required functions and includes.


Former-commit-id: 829b5c6f89ee1e9a4789dbe18f911b05e3b5d8e1
2016-03-15 11:10:04 +01:00
RickDB
fdb164da0a Added multi Orb support, Orb ID should match that of leds index with a +1 offset (index 0 = Orb id 1 etc..)
Code cleanup.


Former-commit-id: af8a6df876f334c9a65b1a936b5bb85b380d86d1
2016-03-14 23:19:20 +01:00
RickDB
0d8c4ac5fb Correctly set buffer size based on number of leds so that it works with non-standard AtmoOrb setups.
Former-commit-id: 6aec2410d6e870c8489e565269f2990e3a9e1b85
2016-03-14 21:19:47 +01:00
RickDB
bd1a45216a Initial AtmoOrb support including sample json config.
Former-commit-id: 51ad57afd39695095b5886966e8c71c4e47f269e
2016-03-14 20:19:19 +01:00
AEtHeLsYn
37c54d733d Merge remote-tracking branch 'refs/remotes/tvdzwan/master'
Former-commit-id: 59c1c363863c950e91ac57cc2ff39a722359634b
2016-03-13 11:49:49 +01:00
brindosch
deb010cc22 fix leddevicephue
Former-commit-id: eb4f93bf7a59d496f83d8db534f99cf589c46bc9
2016-03-12 00:55:28 +01:00
brindosch
e82643ff50 Merge pull request #533 from markwal/rpi_ws281x
Add new WS281x driver

Former-commit-id: 1264edf7f5e0bc29f091e72989ab7116b78056bf
2016-03-11 19:10:13 +01:00
brindosch
9e3b98dfc3 Merge pull request #538 from ntim/support_for_philips_hue
Reads hue light ids in case the user did not supply any.

Former-commit-id: 7dc1e6a14c0bd2b08439d13e7e2acf9f539cf1c1
2016-03-11 19:08:11 +01:00
brindosch
385d5a896d Cleanup and bugfixes
Former-commit-id: 8622ff7fb963eb7c52e816f1c779e9e9869ece53
2016-03-11 19:06:36 +01:00
ntim
7849e9f23e Reads hue light ids in case the user did not supply any.
Former-commit-id: 3323fe83e3bb5f42c4b6c98cbbb021fb929cf54d
2016-03-10 09:33:16 +01:00
AEtHeLsYn
9db45c0ffb Merge remote-tracking branch 'refs/remotes/tvdzwan/master'
# Conflicts:
#	include/hyperion/Hyperion.h
#	libsrc/hyperion/CMakeLists.txt
#	libsrc/hyperion/Hyperion.cpp


Former-commit-id: 1144520581d4531952038d2118cb11e01bebc10e
2016-03-09 19:25:04 +01:00
Mark Walker
78e606a1c4 Add new WS281x driver
Add a new WS281x driver which is a wrapper around jgarff's ws281x library which
works on Pi B+, Pi 2, Pi Zero and probably Pi 3 as well.

jgarff's ws281x library is included as a submodule


Former-commit-id: e473dfd36d31b14598da5e56e4b8bf9f2aa7bb24
2016-03-08 20:41:13 -08:00
brindosch
14fc1d9bb6 Merge pull request #514 from penfold42/master
add configuratble latch time for ws2801

Former-commit-id: cd226d63ebf4d158ce72cb88d49887d8e19a185c
2016-03-08 22:53:29 +01:00
penfold42
3be4ebe6dc clean up formatting
Former-commit-id: dc3a3c7597af42b8fb37f09011d52ebacffd8959
2016-02-25 22:33:13 +11:00
penfold42
c30879017c Merge branch 'master' of https://github.com/penfold42/hyperion
Former-commit-id: eb4dcbd95b97c70fd54a204a1028636237ddda0c
2016-02-25 22:25:19 +11:00
redpanther
e667be5e0b Merge remote-tracking branch 'upstream/master' into proto_json_forwarder
Former-commit-id: 6eb800d3ed5badd831bd79fc8cfb66115df8ec28
2016-02-24 15:07:30 +01:00
tvdzwan
78b1c6fe39 Merge pull request #444 from penfold42/master
Add UDP protocol support

Former-commit-id: b2d91d3963e7eeacfc7d57a507cfc70f32ac9a5d
2016-02-23 21:02:39 +01:00
redpanther
a9e8f0264a implement proto forwarding for osxgrabber and framebuffer. prepare forwarding in amlogic and dispmanx
Former-commit-id: d67fc2b7fe8877e6eadf31a8c76e4a68110c6680
2016-02-17 00:44:06 +01:00
penfold42
3bd03e73ff Merge branch 'master' of https://github.com/penfold42/hyperion
merge to local


Former-commit-id: ebba9a31b2139201b75dc098eba8c8ee9d630ebf
2016-02-13 23:01:04 +11:00
penfold42
ca24450618 added configurable latchtime for 2801 SPI driver
Former-commit-id: a10b0bd24a85580b021c735b30ebd2635180a514
2016-02-13 23:00:31 +11:00
wisc
773222192d fixed upd merge conflicts and fadecandy compiler warning
Former-commit-id: cb9506a68deff80a331f6455c3cb8fa783a2140e
2016-02-10 00:57:21 +01:00
wisc17
d6b5dc7ae6 Revert "Update LedDeviceAPA102.cpp by pcaffardi"
Former-commit-id: 493b32c03f922cc26d9fb4fce4778636f6a96e84
2016-02-09 20:21:49 +01:00
tvdzwan
cf34f45daa Merge pull request #484 from wisc17/apa102
Update LedDeviceAPA102.cpp by pcaffardi

Former-commit-id: 0e586eda7636b4abb378fe8adf1b35145e63eb1f
2016-02-08 14:55:08 +01:00
tvdzwan
3280f7198d Merge pull request #469 from redPanther/fadecandy
fadecandy fix

Former-commit-id: 4686a0ead7ba44c13dbc4ac1f0f876d9a4d165c3
2016-02-08 14:52:48 +01:00
wisc
79dda5e840 Update LedDeviceAPA102.cpp by pcaffardi
Former-commit-id: e7efe8917fc10ceb860e44bbb37442cffa3512db
2016-02-07 17:40:24 +01:00
wisc
543042b870 pcaffardi/patch-1
Former-commit-id: 4a6737d50727518ae44f494be46a7c9c2fb54513
2016-02-07 14:52:44 +01:00
redpanther
b6060d392e make opc channel available in via config.
Former-commit-id: 6a065cd049e29d7184a3aa1454de0fe1855e9941
2016-01-27 10:44:51 +01:00
redpanther
a257f185c9 increase fadecandy maximum amount of leds
remove debug code


Former-commit-id: d74025128978e4e26d49fb57215f660bd824895b
2016-01-26 15:08:21 +01:00
frostworx
bbfded147e minor qt5 fix
Former-commit-id: 65ab3bb14d6a7ab52e6ab1e8eaa85321dc5fa543
2016-01-22 17:17:45 +01:00
ntim
6b860a7e24 Removed all QT5 switches
Former-commit-id: 7a481a921d572e4c0eccebfb1ba3abbab61d25fc
2016-01-18 10:41:45 +01:00
ntim
83c92703eb Merge remote-tracking branch 'upstream/master' into support_for_philips_hue
Former-commit-id: 51089fb3522bf9c228d67f2c2f9a1a5b33e5d0a5
2016-01-18 10:36:20 +01:00
tvdzwan
491c7c4d87 Merge pull request #445 from frostworx/master
added optional QT5 support - LedDevicePhilipsHue needs proper fixes

Former-commit-id: a9b0dd2af92266ad137c4a3ac05dbeec6a6c102b
2016-01-13 22:43:15 +01:00
tvdzwan
1ca31085c7 Merge pull request #442 from redPanther/master
add FadeCandy/OPC device support

Former-commit-id: 6280f77551c607acb301328ce197ca357d0a8b11
2016-01-13 22:42:44 +01:00
ntim
9c1e565d33 Transition to QNetworkAccessManager for compatibility to QT5
Former-commit-id: 6e65da9338d131d1017051e505db8c28696adf4f
2016-01-10 22:17:59 +01:00
frostworx
defe217c89 added optional QT5 support - LedDevicePhilipsHue needs proper fixes
Former-commit-id: 7f0971ccda221933da4be836628532e7cfc7c085
2016-01-06 17:31:23 +01:00
penfold42
382f22f23c add udp protocol support
Former-commit-id: a92810f14cf2af15710a38246a742ca2b94fd3bd
2016-01-06 20:40:48 +11:00
redpanther
9182dd5af7 fadecandy led device:
implement switchOff methode
tidy up code and add doxy comments


Former-commit-id: a162e2aae756f8b74b8e65f08740c00f3c820e50
2016-01-04 14:29:47 +01:00
redpanther
7f5a664864 set fadecandy default port to original fcserver port number
tune debug output of fadecandy device


Former-commit-id: 651459e5294ce5721ebe3bb2a6acdc1d096d9cfb
2016-01-04 12:26:06 +01:00
redpanther
13715202d8 add fadecandy led device
Former-commit-id: 490fd3ee66041b35b95d2c7ec110cc70e4c01d8d
2016-01-04 12:16:44 +01:00
redpanther
0dcacede81 add fadecandy led device
Former-commit-id: 4076e6ec2860ceaa53fdd07c47c40e45f2329de9
2016-01-04 12:06:56 +01:00
tociek
e7c9d9decd Performance fixes for adalightapa102
Adalightapa102 now inherits from RS232Device.
Due to bad initialization, previous CPU usage on RPI1 could reach 60%.
ON RPi2 20%. Now its about 3% with grabber in use.


Former-commit-id: 7ebb72f503ad74a7768deedf648b9e84c0a7cf3c
2015-11-28 22:58:58 +01:00
tociek
e44db34969 Merge remote-tracking branch 'refs/remotes/tvdzwan/master'
Former-commit-id: 0087b8cee957f0b87f722d02ef7fccbc1a34b118
2015-11-28 22:55:46 +01:00
Matthias Grimm
e76e41c046 fixed typo
forgot to pull my local changes to Mac :-/


Former-commit-id: 8e57cad4af836746ba6442443ace8d4521202151
2015-11-24 19:37:52 +01:00
Matthias Grimm
8ffbc16090 Added some more hue devices and Gamut-Profile
Added the new Lightstrip plus, hue go and Aura. The first two come with
a new Gamut profile and the Aura is from Living Colors.


Former-commit-id: 83b676bf136095f3069c219810ea361829d81558
2015-11-20 18:47:00 +01:00
tociek
7551a06cf4 Corrected APA102 USB (adalight) led device
I have removed the 'hack' that allowed to use APA102 with original
version of adalight. I have modified adalight code and placed it into
dependencies folder. This change is not backward compatible, so it won't
work with original adalight code.
The reason for the change is that last leds were not acting as they
should (last led red). Additionally with this change and new arduino
code, performance is  lot better and lights change much smoother.
I have also changed switchOff method that requires different data sent
to apa102 to turn all leds off.

Enjoy :)
Jacek


Former-commit-id: 624fe6c429aee896b150d23289f0be19e040474d
2015-11-12 00:22:11 +01:00
tvdzwan
42a6f72f06 Merge pull request #402 from AEtHeLsYn/master
APA102 end frame fixed (this time for real)

Former-commit-id: 92969b3b0c7b4cd8cc13c86e509274ec63c0b23b
2015-11-08 21:37:26 +01:00
NicoHood
1b2b3b3135 Added udev/sudo note to HID Device
Former-commit-id: 30e1524a5ca587cd5928aae028de868df2725aca
2015-11-08 21:05:12 +01:00
NicoHood
3595709099 Adapted Paintpack to HIDDevice API
Former-commit-id: 06101f0e99fbe99f8994193cea337b400acbafe3
2015-11-08 17:30:12 +01:00
NicoHood
a7d9a44dcc Fixed adalight typos
Former-commit-id: c4bccd1e6c036b244f69283d2edff41c618ffc1b
2015-11-08 17:30:01 +01:00
NicoHood
29d3209d7d Added Raw HID device
Former-commit-id: bd36530b6b63959ee4d83693e396cbb0af70ddb3
2015-11-08 17:29:53 +01:00
NicoHood
4d80fcb0f3 Added HID Device
Former-commit-id: 6284152fd9ffdad69fa1bbd4490da9547c4dbe87
2015-11-08 17:29:34 +01:00
AEtHeLsYn
1c41919c08 Update LedDeviceAPA102.cpp
Former-commit-id: f0b04ded96a9c9b99c2329e7889917645065382d
2015-11-04 14:08:33 +01:00
AEtHeLsYn
98d55e8cfc Update LedDeviceAdalightApa102.cpp
Former-commit-id: fbf05206e681fc5979a7241bcb1ee716ec088757
2015-11-04 14:07:15 +01:00
AEtHeLsYn
958aa428a3 Update LedDeviceAPA102.cpp
Former-commit-id: 164b396f7d779d01e2fc1df80438ad817a0ac712
2015-11-04 14:05:09 +01:00
AEtHeLsYn
9d004fa36e Update LedDeviceAdalightApa102.cpp
Former-commit-id: 2bbbb4756e6c3f8fe070ba73e63ce327e3f75ff4
2015-10-30 20:08:16 +01:00
AEtHeLsYn
acc1a1b397 Update LedDeviceAPA102.cpp
Problem with endFrame was not only endFrameSize, but ledValue index too

Former-commit-id: cc14e9d440a1d27f6a51c18f92aeba1f438c9c01
2015-10-30 20:07:21 +01:00
tociek
3f6c00966e Final adjustments for APA102 via Adalight
Former-commit-id: ba786d5c4165c992ce4671e487294547c8dae8c6
2015-10-13 23:35:27 +02:00
tociek
33edcddb1b APA102 device for use with Adalight (nominaly for ws2801)
Former-commit-id: 7fb9e8e84518be9387ea9feca11e93a8a5389e4f
2015-10-13 19:11:01 +02:00
mrgreywater
c0c8490b95 Maintain compatibility with gcc 4.6
This fixes a compatibility issue when compiling with gcc 4.6 (which is
the version distributed with raspbian by default)


Former-commit-id: ff8518cbc0627049526138b67f4965cedfdfd4be
2015-08-11 12:47:44 +02:00
pcaffardi
2eea311dce Update LedDeviceAPA102.cpp
This fix the previous limit of 64 APA102 leds, because of too short end frame. Now the end frame is computed accordling to this documentation: https://cpldcpu.wordpress.com/2014/11/30/understanding-the-apa102-superled/. Tested on my 98 leds, it works fine.

I suggest to modify hyperion to allow LED drivers to apply the brightness parameter because APA102 has a parameter for that, without the need to elaborate RGB color to simulate it (result is wrong colors!). Is it possible to introduce such parameter in LED drivers and let the driver apply that?

Former-commit-id: 2d714e6eb075ec57e0973839fe96d2d7a051c57f
2015-08-09 16:15:25 +02:00
AEtHeLsYn
c9636aaa6b Update LedDeviceAPA102.cpp
End frame fixed

Former-commit-id: 44107997d92d729f84adee368d12e35f1b5be6f1
2015-08-05 10:07:31 +02:00
Nico
aaf076b722 Fixed RS232 reconnect
Former-commit-id: d527e3261eebd7fa40855bfcc0fe343b1be41dcb
2015-07-20 14:01:24 +02:00
T. van der Zwan
a8c8a6a0d9 Second attempt to fix the pi-blaster device
Former-commit-id: 53764c0169093bb50e0e9a64dc9112c3bebdf0f4
2015-03-20 21:11:39 +01:00
T. van der Zwan
24af330cb4 Fixed error in Pi-Blaster
Former-commit-id: 28b0d2a43464a38c36fd49f4090a6d32795e9b5d
2015-03-20 20:53:27 +01:00
ntim
f83802f2b1 Corrected type of json array value index
Former-commit-id: f766365fc3be4d1b62c36ce05e8a6d818f73dede
2015-03-07 09:58:48 +01:00
Tim Niggemann
7292922309 Improved color space checks by adding latest model ids.
Former-commit-id: db3b067eabeaf36a2a9ab329614892e79d5089c4
2015-03-03 15:54:50 +01:00
Tim Niggemann
b2b4e17bb8 Renamed lamp to light to match HUE api convention.
Former-commit-id: f9b37989291a32162a41a7549fe4b050b79daba2
2015-03-03 15:46:53 +01:00
Tim Niggemann
ecea6e55ea Added light ids to device config.
Former-commit-id: 601616b0d7509b0e8ebb5226f00af5028fa905b5
2015-03-03 15:45:09 +01:00
ntim
acc0f61e60 Reverted last commit due to new api version.
Former-commit-id: 1b6a204183d43865d42d4ee9f3ecf28408c86a9c
2015-03-02 12:51:50 +00:00
ntim
aceb29c8c4 Merge remote-tracking branch 'upstream/master' into support_for_philips_hue
Former-commit-id: 86d827f2672adad200399baf4486f0d7ce3b7480
2015-03-02 12:48:18 +00:00
T. van der Zwan
888239e910 Fixed minor issue and removed unsued includes
Former-commit-id: 87c86459a7a1be1705a837ee0f73e88c8de2ae53
2015-02-23 15:53:05 +01:00
tvdzwan
0823ba4513 Merge pull request #257 from pckhib/patch-1
Update LedDevicePiBlaster.cpp

Former-commit-id: 8ca0054753652bddd61dde03bfa3ce143ba4649a
2015-02-23 15:38:56 +01:00
tvdzwan
b1f62cca40 Merge pull request #253 from aufano/master
Carsten Atmolight support

Former-commit-id: a1a3c245a037e3d9604cff6c5a228e9f2842a7fb
2015-02-23 15:38:02 +01:00
pckhib
2076675e8d Update LedDevicePiBlaster.cpp
updated for the new version of pi-blaster

Former-commit-id: 668084eefcb05f58e1f2e0ef6fc97ead2e540a65
2015-02-09 23:11:59 +01:00
ntim
4f7524d8de Small performance improvement if off on black is true.
Former-commit-id: dc69a21681432bef540c396847d64b07fa0bbb09
2015-02-05 09:50:05 +01:00
aufano
be3f3a968c Carsten Atmolight support
http://ca.rstenpresser.de/index.php/atmo-main.html

Former-commit-id: cd543a063af50455e3e92fc9e89c2503bef95188
2015-02-04 21:49:33 +01:00
Tim Niggemann
dfc2e6bfb5 Default setting of transition time to 100 ms.
Former-commit-id: c0981e09494c59456f45325cdcacf9bfa6e26c99
2015-02-01 15:56:51 +01:00
Tim Niggemann
9d506b888d Added config options for username and transitiontime
Former-commit-id: 2ae179c670fda838115d985f40d970e10ef002ef
2015-02-01 15:29:40 +01:00
Gamadril
3fd20ec5fa - refactored framebuffer grabber to use ImageResampler
- added OsxGrabber for OSX
- added binary for imx6 (cubox-i) and updated install script


Former-commit-id: 2c55e292c842c67e54ce36bd91e4f6303b98687a
2015-01-24 23:42:22 +01:00
T. van der Zwan
b1c1645790 Fixed missing build of AmbiLed source
Former-commit-id: bd6ad9ef5cd3df051f73f5650531c88af1d5b57e
2015-01-05 15:12:47 +01:00