awawa-dev / HyperHDR

Highly optimized open source ambient lighting implementation based on modern digital video and audio stream analysis for Windows, macOS and Linux (x86 and Raspberry Pi / ARM).

Home Page:http://www.hyperhdr.eu/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Added the function of synchronizing color and effect across instances

DonaldTrump-2020 opened this issue · comments

What problem does this feature solve?

When I select an effect or color from the taskbar tray menu, only the instance is changed, other instances cannot be changed.

How should this be implemented in your opinion?

I think there should be a sync button in the menu in the taskbar tray or a button to select each instance individually, then select the effect, or the effect can be applied to each instance, or all instances.

Are you willing to work on this yourself?

I'm ready but need professional help from you..

Yes, it's a good idea to allow instance selection or apply the effect to all instances. I am aware of the limitations of the current solution. For a long time I have been considering an even more ambitious step: completely abandoning Qt Widgets, which is a huge library and has a lot of dependencies. And from which we only need something to display the systray and the color dialog. To consider an external toolbar: https://github.com/fyne-io/systray which will be launched by HyperHDR (GO has rather good portability) and we completely isolate the standard desktop GUI from HyperHDR. In this solution, it is possible to communicate the menu with HyperHDR via JsonAPI. Or we integrate it with HyperHDR eg: https://github.com/dmikushin/tray, only here I am not sure whether the event loop for the systray must run on the main thread on macOS (there will be a conflict with the current QT loop

rc = app->exec();
). Currently the QT systray works on my macOS rather poorly: I have to click on the item twice for it to react.

Just connecting the new menu functionality with HyperHDR will be a rather simple task and I don't see a problem here. Choosing the right library will be much more important. Or we stay with what is currently.