Commit Graph

102 Commits

Author SHA1 Message Date
Murat Seker
71dbd77708
Merge pull request #946 from m-seker/refactor/python
Move Python related code to Python module
2020-08-31 21:10:07 +02:00
Murat
4a688b932a Const correctness, override keyword, a bunch of stuff.. 2020-08-08 23:12:43 +02:00
Murat Seker
c00d8e62fb
Pass primitive types by value (#935) 2020-08-08 13:09:15 +02:00
Murat
6ad511881e Move Python related code to Python module 2020-08-04 19:30:16 +02:00
Murat Seker
031b9a6b7c
refactor: Modernize Qt connections (#914) 2020-08-02 22:32:00 +02:00
Murat Seker
126c18e003
Fix some data races (#890) 2020-07-22 16:43:24 +02:00
Murat Seker
138b7d9c94
Random cleanup (#861)
Co-authored-by: Seker <murat.seker@barco.com>
2020-07-12 09:19:59 +02:00
Murat Seker
45990f2726
fix: leaking active effects during quit (#850) 2020-06-28 23:46:36 +02:00
SJunkies
3ff7fe483f
fix: small collection of bugfixed debugger hints and warnings (#801)
* small collection of bugfixed debugger hints / warnings

* 'toStdVector' has been explicitly marked deprecated

* fixed double zip naming in artifacts

* V4L2 WebUI Fix

* Some code fixes based on alerts from lgtm.com

* only execute dynamic v4l2 enum code, if V4L2_AVAIL

* very high critical bugfix ;)

* merge fix

* some lgtm.com fixes

* lgtm fixes

* undo localtime_r fix

Co-authored-by: Paulchen Panther <16664240+Paulchen-Panther@users.noreply.github.com>
2020-05-25 21:51:11 +02:00
brindosch
510bb903ae
Windows compilation support (#738)
* Disable AVAHI

* Replace SysInfo backport with Qt SysInfo

* Update vscode config

* Update LedDevices

* Update Logger

* Update hyperiond

* Update hyperion-remote

* Exclude avahi

* Empty definition for Process

* PythonInit path broken

* Exclude PiBlaster and link ws2_32

* more avahi

* resolve ui bug

* Update Compile howto

* JsonAPI QtGrabber missing

* fix error

* ssize_t replacement

* Nope, doesn't work

* Adjust compile description and verify winSDK

* Update ci script

* Update ci script

* Update ci

* Update ci script

* update Logger

* Update PythonInit

* added Azure & GitHub Actions, Logger, PythonInit

* resolve merge conflicts

* revert ssize_t in FadeCandy

* look at registry for QT5 & use find_package(Python) if cmake >= 3.12

* second try

* another try

* and yet another test

* qt5 registry search undone

* Package creation test

* finished package creation. only fine tuning is required :-)

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* Dependencies for Windows finished

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* use 'add_definitions()' until CMake 3.12

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* Update .github/workflows/pull-request.yml

Co-Authored-By: Paulchen Panther <16664240+Paulchen-Panther@users.noreply.github.com>

* Update cmake/Dependencies.cmake

Co-Authored-By: brindosch <edeltraud70@gmx.de>

* fix typo/ add VCINSTALLDIR var

* fix again

* Undo change again (Not working)

* fix QT grabber

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* first NSIS test

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* Update NSIS package

* surprise :-)

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* Update NSIS package

* fix: NSIS .bmps

* Add nsis templates

* Force windows gui app

* fix: QSysInfo required Qt5.6, now it's 5.4 again

* Update: Remove platform component and adjust package name

* Add macOS as system name

* Update docs

* fix: Allow gh actions ci also for forks with branches

* Add ReadMe docs, mention windows, add vscode linux debug config

* fix: readme visual

* reduce/hide banner/copyright/log message

Infos here: https://docs.microsoft.com/de-de/visualstudio/msbuild/msbuild-command-line-reference?view=vs-2019#switches

* Fix PythonInit

* vscode: Add runner task

* fix(vscode): compiler path gcc ver independent

* fix azure

* vscode: add windows run tasks

* move process detection

* main: add windows process detection

* Azure file shredder

* Update docs

Co-authored-by: Paulchen Panther <16664240+Paulchen-Panther@users.noreply.github.com>
Co-authored-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>
2020-05-12 19:51:19 +02:00
brindosch
2739aec1e3
refactor: API split (#721)
* refactor: API split

* refactor: cleanup hyperiond
2020-03-26 17:59:41 +01:00
LordGrey
ed5455458b
Disentangle LedDevice/LinearColorSmoothing, Bug Fixes & Test support (#654)
* Handle Exceptions in main & Pythoninit

* Have SSDPDiscover generic again

* Have SSDPDiscover generic again

* Change Info- to Debug logs as technical service messages

* Nanoleaf - When switched on, ensure UDP mode

* Include SQL Database in Cross-Compile instructions

* Fix Clazy (QT code checker) and clang Warnings

* Stop LedDevice:write for disabled device

* Nanoleaf: Fix uint printfs

* NanoLeaf: Fix indents to tabs

* NanoLeaf - Add debug verbosity switches

* Device switchability support, FileDevice with timestamp support

* Nanoleaf Light Panels now support External Control V2

* Enhance LedDeviceFile by Timestamp + fix readyness

* Stop color stream, if LedDevice disabled

* Nanoleaf - remove switchability

* Fix MultiColorAdjustment, if led-range is greater lednum

* Fix logging

* LedFileDevice/LedDevice - add testing support

* New "Led Test" effect

* LedDeviceFile - Add chrono include + Allow Led rewrites for testing

* Stabilize Effects for LedDevices where latchtime = 0

* Update LedDeviceFile, allow latchtime = 0

* Distangle LinearColorSmoothing and LEDDevice, Fix Effect configuration updates

* Updates LedDeviceFile - Initialize via Open

* Updates LedDeviceNanoleaf - Initialize via Open, Remove throwing exceptions

* Updates ProviderUDP - Remove throwing exceptions

* Framebuffer - Use precise timer

* TestSpi - Align to LedDevice updates

* Pretty Print CrossCompileHowTo as markdown-file

* Ensure that output is only written when LedDevice is ready

* Align APA102 Device to new device staging

* Logger - Remove clang warnings on extra semicolon

* Devices SPI - Align to Device stages and methods

* Fix cppcheck and clang findings

* Add Code-Template for new Devices

* Align devices to stages and methods, clean-up some code

* Allow to reopen LedDevice without restart

* Revert change "Remove Connect (PriorityMuxer::visiblePriorityChanged -> Hyperion::update) due to double writes"

* Remove visiblePriorityChanged from LedDevice to decouple LedDevice from hyperion logic

* Expose LedDevice getLedCount and align signedness
2020-02-10 15:21:58 +01:00
Paulchen Panther
875b54fc2e [HotFix] The Python version number was explicitly set
Signed-off-by: Paulchen Panther <Paulchen-Panter@protonmail.com>
2020-01-08 18:17:55 +01:00
François Picot
85d1016dff [BUGFIX] fix python38 compilation (#647) 2019-12-08 13:18:11 +01:00
Paulchen-Panther
05a4f53fa2
EffectModule::getEffect() is now a preprocessor directive
Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>
2019-08-03 19:14:52 +02:00
Paulchen-Panther
cacfbada7a
The WebUI remote page has been rearranged
Set interuption flag to running effects when hyperion emits finished signal
Protobuffer, Flatbuffer and Boblight connection priority check to avoid unwanted program behavior

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>
2019-08-03 19:14:52 +02:00
Paulchen-Panther
bea8345e4b
Fixed build warnings and undo changes
- Build problems:
    - Qt 5.13 obsoleted some calls that were used in our Qt library.
    - The PhilipsHueLight and PhilipsHueBridge classes did not use the private logger class
- Undo changes:
    - In Commit e6c2e7e, I made changes that were not covered. An apology goes to @b1rdhous3

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>
2019-07-10 10:24:40 +02:00
Paulchen-Panther
d414942e2e
Bugfix/Hotfix/Update
Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>
2019-07-02 19:06:36 +02:00
Paulchen-Panther
2ccdfeb9e1
Gold linker, CCache, Stats, LGTM
- Increases linker performance under Linux builds by using Gold linker, if available
- ccache is used if available
- removed statistic class (Stats.cpp) from project due to the missing result (sorry @Brindosch)
- add LGTM bandges for code analysis overview

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>
2019-06-05 21:13:37 +02:00
Paulchen-Panther
2dca1c93e6 Commits from @MartB and more ...
- Commit: 1d9165f403
- New default QT capture implementation
- UploadHandler added to Effects Configurator to allow uploading GIF files
- Docker compile script and instruction
- Travis Fix
2019-01-06 21:09:27 +01:00
Paulchen-Panther
d6b2cfaf9d update 2018-12-31 15:48:29 +01:00
Paulchen-Panther
38950edf35 remove protobuf (part 2) 2018-12-30 22:07:53 +01:00
Paulchen-Panther
2a77f6f012
even more changes
Signed-off-by: Paulchen-Panther <Paulchen--Panter@gmx.net>
2018-12-28 18:28:49 +01:00
Paulchen-Panther
d762aa2f3e Details coming soon. 2018-12-27 23:11:32 +01:00
brindosch
4c2b75b45a Python 3.4 (#479)
* Python 3

* fix travis osx

* try fix

* get info

* digging in the dirt

* .

* .

* cleanup

* .

* .

* finalize, add multi threaded python support
2017-10-13 17:49:29 +02:00
brindosch
992dd6ea84 cmake 3.0.0 (#480) 2017-10-13 00:06:31 +02:00
Paulchen Panther
9cc6c75633 Use GIF files for effects (#477)
* Add new Effects

* add schema file for gif based effects

* add background color to snake effect

* add background color to snake effect

* Update schema file for snake effect

* Add function getImage

* add function getImage

* optimize lights.gif

* Add format to GIF schema
2017-10-12 12:00:32 +02:00
brindosch
838008568a JsonUtils & improvements (#476)
* add JsonUtils

* update

* repair

* update

* ident

* Schema correct msg other adjusts

* fix effDel, ExceptionLog, cleanup

* fix travis qt5.2

* not so funny

* use Qthread interrupt instead abort bool

* update services
2017-10-12 11:55:03 +02:00
brindosch
81f5f51257 UI fixes/updates (#468)
* fix logging display

* hue wizard add usrname

* fix restartAction sometimes not executed

* remove configRevision

* remove v4l2 grabMode(2d/3d)

* remove latchTime from configs

not in main led device schema

* config comment: all grabbers can crop

* remove smoothing delay&pause for effects

* finalize disable effects ui

* fix empty effect selects

* remote page add 2D/3D videoMode

* add blackborder texts

* Update EffectEngine.cpp
2017-09-04 23:12:59 +02:00
redPanther
569e59110e implement set videomode via json api (#457)
* implement set videomode via json api

* refactor grabbers:
- new base class
- move shared code to base class

* fix osx

* rework all cmakelist files with auto file collection. except leddevices (need further restructuring)

* store current video and grabbing mode

* add json stuff

* remove grabbingmode - we do not want to expose it
2017-08-04 23:08:15 +02:00
redPanther
6279dcb2a9 per effect smoothing (#456)
* add dynamic smoothing first step
* extend prio muxer to hold smoothing preset id
* add icons for systray
* fix missing changes in prio muxer
*  implement specific smoothing params for effects
* refactoring: std::min/max to qMin/Max
* some code optimization
* fix schema and translation
* revoke change of python include order
* fix eol in effect shemas
* optimize random,candle and fadecandy json schemas
2017-08-04 12:01:45 +02:00
brindosch
5c7085439b update to cmake 2.8.12 (#451)
* update

* resolve qt5w

* test

* Go down

cmake python search won the price for crazy lib searches!

* 2.7 python forced, RPATH

* upstream

* ...

* update

* ...

* 2.7.12 py it picks random versions...

* max 7.12.5....

* Test 14.04 tests
2017-08-01 15:42:36 +02:00
brindosch
8a794039cf Expand effect engine & ui update (#445)
* update

* update

* update

* .

* .

* .

* update

* .

* .

* .

* .

* update

* .

* update

* .

* update

* update

* update

* update

* update

* update

* .

* update

* update

* update

* .

* .

* .

* Revert "."

This reverts commit 4dd6404b32.

* update

* .

* .

* .

* .

* .

* .

* .

* .

* .

* .

* .

* ...

* .

* .

* .

* .

* .

* .

* .

* .

* .

* update

* update

* update

* remove svg and pic

* colorpicker imgs to base64 to prevent delayed load if not cached

* fix json2python func

* update swirl with rgba

* add double swirl, tune default val in schema, update explanation

* adjust swirl.py

* FileObserver for config checks with timer as fallback (#4)
2017-07-30 14:36:23 +02:00
Paulchen Panther
5bd020a570 JSON Auto correction + hyperion schema split for better readability (#452)
* revoke schema split

* add "getAutoCorrectedConfig" function

* revoke schema split

* revoke schema split

* revoke schema split

* Prevent compiler error if none grabber is available

* revoke schema split

* add "getAutoCorrectedConfig" function

* revoke schema split

* remove "configMigrator"

* remove "configMigrator"

* Change TestConfigFile to show how the autocorrection works

* revoke schema split

* revoke schema split

* remove "ConfigMigrator"

* remove "ConfigMigrator"

* remove "ConfigMigratorBase"

* remove "ConfigMigratorBase"

* Add QJsonUtils.h

* added ability "ignore-required"

It has been added the ability to correct the configuration without having to pay attention to the keyword "required" in the hyperion schema

* Allow Comments in Hyperion Schema

* add ability to ignore the "required" keyword in hyperion schema

* add ability to ignore the "required" keyword in hyperion schema

* add ability to ignore the "required" keyword in hyperion schema

* //Allow Comments in Hyperion Schema

* Update jsonschema.py to version 0.8.0 to support ...

references in json schema

* add RefResolver from jsonschema.py to resolve

references in hyperion schema

* remove dupe code

* split the hyperion schema in separatly files

For better readability

* add function "resolveReferences" to resolve

references in hyperion schema.

* remove CURRENT_CONFIG_VERSION

* remove CURRENT_CONFIG_VERSION

* split the hyperion schema in separatly files

For better readability

* Create schema-backgroundEffect.json

* Add the rest of the Hyperion schema via upload

* Remove Comments in config file

* Add return variable to function writeJson().

fix function resolveReferences().
edit function load() to handle QPair result from schemaChecker.

* edit function validate() to return QPair variable

* fit function loadEffectDefinition()

* fit function checkJson()

*  Expand error check by dividing

"_error" variable in "_error" and "_schemaError".
Replace variable "bool" in validate() in QPair

* Extend function "cmd_cfg_set" to handle auto correction

* Extend function "loadConfig" to handle auto correction

* fix function loadConfig()
2017-07-30 13:32:10 +02:00
brindosch
a7f72a7bf2 fix mess 2017-05-29 21:34:47 +02:00
brindosch
e2ca9bcaa5 Stats
Testing time!
Also new: Effects dirs are now created automatically
2017-05-29 15:59:11 +02:00
redPanther
f6209174c3 effects: image: make saving and minsize work (#433) 2017-04-14 07:58:34 +02:00
redPanther
b65d811640 add limit for write to leddevice (#432)
* add limit for write to leddevice

* add to default config

* add i18n

* extend xmas effect

* fix indention

* add check for minimum brightness

* adapt effects to fading and new minWriteTime

* remove old latchTime
rename minimumWriteTime to latchTime
make it as dev specific option

* set default for rewriteTime to 1s
pause smoothing on color too

* reenable smoothing for color - it looks nicer :-)

* fix timeout timer
2017-04-09 22:28:32 +02:00
redPanther
bfb9a08c80 migrate std::string to qstring + add sysinfo via json (#412)
* std::string -> qstring part 1

* more string migration

* more string migration ...

* ...

* more qstring mogrations
add sysinfo via json

* remove unneccessary includes

* integrate sysinfo into webui
2017-03-04 22:17:42 +01:00
redPanther
221af075a4 implement origin for effects (#408)
* implement rigin for efx

* implement origin for effects and other components
add experimental adalight firmware for arduino with upto 5 pwm channels

* cleanup

* origin ip now with dns lookup

* fix compile

* move some code
2017-03-01 15:23:53 +01:00
redPanther
cab3c2fdc9 add more drawing func to effect engine (#400)
* - add more drawing func to effect engine
- make provider rs232 less noisy
- json checks: remove utf8 conversion temporarly and make it compat with py3 again

* fix compile prob
2017-02-16 07:33:58 +01:00
brindosch
8d7137136b priorities rework, webc update (#366)
* update

* update

* tabs test

* update

* test

* ...

* fix editor

* update ui

* fix visual glitch if help is off

* fix fadecandy error and th

[skip ci]
2017-01-17 21:53:35 +01:00
Paulchen Panther
8f67294de6 Implement "reloadEffects" function in Hyperion for "write and delete" custom created effect configuration files (#293)
* Update EffectEngine.h

* add reloadEffects function

* add readEffects function

* add reloadEffects function

* Call reloadEffects after handleCreateEffectCommand and handleDeleteEffectCommand
2016-11-20 18:41:10 +01:00
Paulchen Panther
c2faf07574 Delete custom created effect configurations with JSON RPC (#289)
* Add ability to delete custom created Effects

* Add deleteEffect function to Hyperion-Remote

* Add deleteEffect function to Hyperion-Remote

* Update schema.json

* Update JsonSchemas.qrc

* Add schema-delete-effect.json

* Add deleteEffect function to JSON RPC

* Add deleteEffect function to JSON RPC

* Add Effect configuration file (.json) to Effect Definition

* Update EffectDefinition.h
2016-11-18 18:39:21 +01:00
Paulchen Panther
08dfec20c5 Adding the possibility to test new Effects ... (#282)
* Update effects_configurator.html

* Update content_effectsconfigurator.js

* Update hyperion.js

* Update de.json

* Add argument QString "pythonScript" to runEffect function

* Update Hyperion.h

* Update EffectEngine.cpp

* Update Hyperion.cpp

* Update JsonClientConnection.cpp

* Update schema-effect.json
2016-10-30 22:59:45 +01:00
Paulchen Panther
fab0c208fe Create Effect configuration files (.json) with JSON RPC (#277)
* Add getEffectSchemas and loadEffectSchema function

* Add getEffectSchemas function

* add effect schema files to internal resources

* Add loadEffectSchema and getEffectSchemas function

* add effect schema resources

* add getEffectSchemas function

* extend handleSchemaGetCommand to get ...

... all available effect schemas
add handleCreateEffectCommand function

* add handleCreateEffectCommand function

* include schema-create-effect.json file

* add create-effect schema

* Add schema-create-effect.json file

* Add createEffect to hyperion-remote

* Add createEffect function

* add createEffect function

* Create fade.schema.json

* Add files via upload

* Add files via upload

* Update police.schema.json

* Update EffectEngine.qrc.in

* Update CMakeLists.txt
2016-10-24 23:52:53 +02:00
redPanther
1565d60d86 fix json double evaluation for effects 2016-10-14 20:59:03 +02:00
redPanther
f881a0abe3 fix effect overlay not evaluated correctly 2016-10-14 20:13:45 +02:00
Paulchen Panther
ebbb6b9440 JsonCpp to QTJson (Part 5) (#270)
* Update Hyperion.h

* Update ImageProcessorFactory.h

* Update ProtoConnection.h

* Update WebConfig.h

* Update CMakeLists.txt

* Update Hyperion.cpp

* Update CMakeLists.txt

* Update CMakeLists.txt

* Update CgiHandler.cpp

* Update CgiHandler.h

* Update WebConfig.cpp

* Update CMakeLists.txt

* Update hyperion-remote.cpp

* Update JsonConnection.cpp

* Update JsonConnection.h

* Update hyperiond.cpp

* Update hyperiond.h

* Delete JsonFactory.h

* Delete JsonSchemaChecker.h

* Delete JsonSchemaChecker.cpp

* Update WebConfig.cpp
2016-10-11 19:51:20 +02:00
redPanther
e889996ae7 implement optional color correction for V4L only (#267)
* remove color temperatire, its the same as color adjustment

* remove temperature from schema

* implement most part of v4l only colro settings,
now hyperion update knows from which component the colors come

* update configs

* fix webui config write

* reomve correction and temperature from hyperion-remote
2016-10-10 18:29:54 +02:00