From b8aba4b4ceada2f81b47c78c1651a576c9231dee Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Thu, 18 Mar 2021 23:34:07 +0100 Subject: [PATCH] Add support for plymouth --- nymea-app/nymea-app.pro | 14 +++++------- .../generic/platformhelpergeneric.cpp | 22 ++++++++++++++++++- .../generic/platformhelpergeneric.h | 1 + packaging/ubuntu/debian/control | 1 + 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/nymea-app/nymea-app.pro b/nymea-app/nymea-app.pro index b5306293..748f1312 100644 --- a/nymea-app/nymea-app.pro +++ b/nymea-app/nymea-app.pro @@ -2,6 +2,8 @@ TEMPLATE=app TARGET=nymea-app include(../config.pri) +CONFIG += link_pkgconfig + QT += network qml quick quickcontrols2 svg websockets bluetooth charts gui-private nfc INCLUDEPATH += $$top_srcdir/libnymea-app @@ -52,6 +54,10 @@ win32 { QT += webview } +linux:!android: { + PKGCONFIG += ply-boot-client +} + android { include(../3rdParty/android/android_openssl/openssl.pri) @@ -182,11 +188,3 @@ BR=$$BRANDING target.path = /usr/bin INSTALLS += target -ANDROID_ABIS = armeabi-v7a arm64-v8a - -contains(ANDROID_TARGET_ARCH,) { - ANDROID_ABIS = \ - armeabi-v7a \ - arm64-v8a -} - diff --git a/nymea-app/platformintegration/generic/platformhelpergeneric.cpp b/nymea-app/platformintegration/generic/platformhelpergeneric.cpp index 93e7e717..ef26b297 100644 --- a/nymea-app/platformintegration/generic/platformhelpergeneric.cpp +++ b/nymea-app/platformintegration/generic/platformhelpergeneric.cpp @@ -32,7 +32,11 @@ #include "logging.h" -Q_DECLARE_LOGGING_CATEGORY(dcPlatformIntergration) +extern "C" { +#include +} + +Q_DECLARE_LOGGING_CATEGORY(dcPlatformIntegration) PlatformHelperGeneric::PlatformHelperGeneric(QObject *parent) : PlatformHelper(parent) { @@ -69,3 +73,19 @@ void PlatformHelperGeneric::setScreenBrightness(int percent) emit screenTimeoutChanged(); } } + +void PlatformHelperGeneric::hideSplashScreen() +{ + ply_event_loop_t *loop = ply_event_loop_new(); + ply_boot_client_t *client = ply_boot_client_new(); + bool status = ply_boot_client_connect(client, [] (void* data, ply_boot_client_t *) -> void { + PlatformHelperGeneric *thiz = reinterpret_cast(data); +// ply_event_loop_exit(this.loop, 0); +// ply_boot_client_free(client); + }, this); + if (!status) { + qCCritical(dcPlatformIntegration()) << "Cannot deactivate splash screen"; + } + ply_boot_client_attach_to_event_loop(client, loop); + ply_boot_client_tell_daemon_to_deactivate(client, nullptr, nullptr, nullptr); +} diff --git a/nymea-app/platformintegration/generic/platformhelpergeneric.h b/nymea-app/platformintegration/generic/platformhelpergeneric.h index 46ade2ef..bad548ff 100644 --- a/nymea-app/platformintegration/generic/platformhelpergeneric.h +++ b/nymea-app/platformintegration/generic/platformhelpergeneric.h @@ -47,6 +47,7 @@ public: virtual int screenBrightness() const override; virtual void setScreenBrightness(int percent) override; + virtual void hideSplashScreen() override; private: ScreenHelper *m_piHelper = nullptr; }; diff --git a/packaging/ubuntu/debian/control b/packaging/ubuntu/debian/control index f96d773b..b168cdca 100644 --- a/packaging/ubuntu/debian/control +++ b/packaging/ubuntu/debian/control @@ -17,6 +17,7 @@ Build-Depends: debhelper (>= 9.0.0), qtconnectivity5-dev, qtdeclarative5-dev, qtquickcontrols2-5-dev, + libplymouth-dev, Package: nymea-app Architecture: any