Skip to content

Commit

Permalink
Systray: add instance selection support
Browse files Browse the repository at this point in the history
  • Loading branch information
awawa-dev committed May 13, 2024
1 parent a1f1822 commit 6122ff8
Show file tree
Hide file tree
Showing 14 changed files with 186 additions and 83 deletions.
4 changes: 2 additions & 2 deletions cmake/packages.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -137,10 +137,10 @@ if ( ENABLE_SYSTRAY )
SET( CPACK_RPM_PACKAGE_SUGGESTS "gtk3")
endif()

if(NOT DO_NOT_BUILD_ARCHIVES)
#if(NOT DO_NOT_BUILD_ARCHIVES)
SET ( CPACK_DEBIAN_COMPRESSION_TYPE "xz" )
SET ( CPACK_RPM_COMPRESSION_TYPE "xz" )
endif()
#endif()

# OSX dmg generator
if ( APPLE )
Expand Down
9 changes: 1 addition & 8 deletions include/base/HyperHdrInstance.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,14 +102,7 @@ public slots:
void updateAdjustments(const QJsonObject& config);
void updateResult(std::vector<ColorRgb> _ledBuffer);

int setEffect(const QString& effectName, int priority, int timeout = -1, const QString& origin = "System");
int setEffect(const QString& effectName
, const QJsonObject& args
, int priority
, int timeout = -1
, const QString& origin = "System"
, const QString& imageData = ""
);
int setEffect(const QString& effectName, int priority, int timeout = -1, const QString& origin = "System");

signals:
void SignalComponentStateChanged(hyperhdr::Components comp, bool state);
Expand Down
11 changes: 11 additions & 0 deletions include/base/HyperHdrManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,16 @@

#ifndef PCH_ENABLED
#include <QMap>
#include <QStringList>

#include <utils/ColorRgb.h>
#include <utils/Logger.h>
#include <utils/settings.h>
#include <utils/Components.h>
#endif

#include <effectengine/EffectDefinition.h>

class HyperHdrInstance;
class InstanceTable;
class SoundCapture;
Expand Down Expand Up @@ -76,6 +80,13 @@ public slots:

void handleInstanceStateChange(InstanceState state, quint8 instance, const QString& name);

std::vector<QString> getInstances();

void setInstanceColor(int instance, int priority,ColorRgb ledColors, int timeout_ms);
void setInstanceEffect(int instance, QString effectName, int priority);
void clearInstancePriority(int instance, int priority);
std::list<EffectDefinition> getEffects();

signals:
void SignalInstanceStateChanged(InstanceState state, quint8 instance, const QString& name = QString());

Expand Down
4 changes: 2 additions & 2 deletions include/hyperimage/HyperImage.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
#endif

#include <QBuffer>
#include <QColor>
#include <utils/ColorRgb.h>

class HyperImage : public QObject
{
Q_OBJECT

public:
static void svg2png(QString filename, int width, int height, QBuffer& buffer);
static QColor QColorfromString(QString colorName);
static ColorRgb ColorRgbfromString(QString colorName);
};
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
#include <QMap>
#include <QMutex>
#include <QNetworkReply>
#include <QNetworkReply>
#include <QSemaphore>
#include <QSet>
#include <QStack>
#include <QStringList>
#include <QThread>
#include <QTimer>
#include <QVector>
Expand Down
1 change: 1 addition & 0 deletions resources/icons/instance.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion sources/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ if(USE_PRECOMPILED_HEADERS AND COMMAND target_precompile_headers)
add_library(precompiled_hyperhdr_headers ${CMAKE_CURRENT_BINARY_DIR}/precompiled_hyperhdr_headers.cpp)
target_link_libraries(precompiled_hyperhdr_headers Qt${Qt_VERSION}::Gui Qt${Qt_VERSION}::Network)

target_precompile_headers(precompiled_hyperhdr_headers PRIVATE ${CMAKE_SOURCE_DIR}/include/base/AllHeaders_pch.h ${CMAKE_SOURCE_DIR}/include/base/AllHdrHeaders_pch.h )
target_precompile_headers(precompiled_hyperhdr_headers PRIVATE ${CMAKE_SOURCE_DIR}/include/precompiled_hyperhdr_headers/AllHeaders_pch.h ${CMAKE_SOURCE_DIR}/include/precompiled_hyperhdr_headers/AllHdrHeaders_pch.h )
endif()

# Define the current source locations
Expand Down
9 changes: 0 additions & 9 deletions sources/base/HyperHdrInstance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -650,15 +650,6 @@ int HyperHdrInstance::setEffect(const QString& effectName, int priority, int tim
return 0;
}

int HyperHdrInstance::setEffect(const QString& effectName, const QJsonObject& args, int priority, int timeout, const QString& origin, const QString& imageData)
{
if (_effectEngine != nullptr)
return _effectEngine->runEffect(effectName, priority, timeout, origin);
else
return 0;

}

void HyperHdrInstance::setLedMappingType(int mappingType)
{
if (mappingType != _imageProcessor->getLedMappingType())
Expand Down
58 changes: 58 additions & 0 deletions sources/base/HyperHdrManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
#include <QThread>
#endif

#include <QStringList>

#include <base/HyperHdrManager.h>
#include <base/HyperHdrInstance.h>
#include <db/InstanceTable.h>
Expand Down Expand Up @@ -84,6 +86,62 @@ std::shared_ptr<HyperHdrInstance> HyperHdrManager::getHyperHdrInstance(quint8 in
return _runningInstances.value(0);
}

std::vector<QString> HyperHdrManager::getInstances()
{
std::vector<QString> ret;

for (const quint8& key : _runningInstances.keys())
{
ret.push_back(QString::number(key));
ret.push_back(_instanceTable->getNamebyIndex(key));
}

return ret;
}

void HyperHdrManager::setInstanceColor(int instance, int priority, ColorRgb ledColors, int timeout_ms)
{
std::vector<ColorRgb> rgbColor{ ledColors };

for (const auto& selInstance : _runningInstances)
if (instance == -1 || selInstance->getInstanceIndex() == instance)
{
QUEUE_CALL_3(selInstance.get(), setColor, int, 1, std::vector<ColorRgb>, rgbColor, int, 0);
}
}

void HyperHdrManager::setInstanceEffect(int instance, QString effectName, int priority)
{
for (const auto& selInstance : _runningInstances)
if (instance == -1 || selInstance->getInstanceIndex() == instance)
{
QUEUE_CALL_2(selInstance.get(), setEffect, QString, effectName, int, 1);
}
}

void HyperHdrManager::clearInstancePriority(int instance, int priority)
{
for (const auto& selInstance : _runningInstances)
if (instance == -1 || selInstance->getInstanceIndex() == instance)
{
QUEUE_CALL_1(selInstance.get(), clear, int, 1);
}
}

std::list<EffectDefinition> HyperHdrManager::getEffects()
{
std::list<EffectDefinition> efxs;

if (IsInstanceRunning(0))
{
auto inst = getHyperHdrInstance(0);

SAFE_CALL_0_RET(inst.get(), getEffects, std::list<EffectDefinition>, efxs);
}

return efxs;
}

QVector<QVariantMap> HyperHdrManager::getInstanceData() const
{
QVector<QVariantMap> instances = _instanceTable->getAllInstances();
Expand Down
1 change: 1 addition & 0 deletions sources/hyperhdr/HyperHdrDaemon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ HyperHdrDaemon::HyperHdrDaemon(const QString& rootPath, QCoreApplication* parent
{

// Register metas for thread queued connection
qRegisterMetaType<ColorRgb>("ColorRgb");
qRegisterMetaType<Image<ColorRgb>>("Image<ColorRgb>");
qRegisterMetaType<hyperhdr::Components>("hyperhdr::Components");
qRegisterMetaType<settings::type>("settings::type");
Expand Down
Loading

0 comments on commit 6122ff8

Please sign in to comment.