summaryrefslogtreecommitdiffstats
path: root/voice-capabilities/guimetadata.h
diff options
context:
space:
mode:
Diffstat (limited to 'voice-capabilities/guimetadata.h')
-rw-r--r--voice-capabilities/guimetadata.h174
1 files changed, 174 insertions, 0 deletions
diff --git a/voice-capabilities/guimetadata.h b/voice-capabilities/guimetadata.h
new file mode 100644
index 0000000..c4a551f
--- /dev/null
+++ b/voice-capabilities/guimetadata.h
@@ -0,0 +1,174 @@
+/*
+ * Copyright (C) 2020 Konsulko Group
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef GUIMETADATA_H
+#define GUIMETADATA_H
+
+#include <QDebug>
+#include <QObject>
+
+#include <QtQml/QQmlContext>
+#include "messageengine.h"
+
+class GuiMetadata : public QObject
+{
+ Q_OBJECT
+
+ // Common to all template types
+ Q_PROPERTY(QString type READ type)
+ Q_PROPERTY(QString title READ title)
+ Q_PROPERTY(QString subtitle READ subtitle)
+
+ // BodyTemplate1/2
+ Q_PROPERTY(QString bodyText READ bodyText)
+
+ // BodyTemplate2
+ Q_PROPERTY(QUrl bodyImageSmallUrl READ bodyImageSmallUrl)
+ Q_PROPERTY(QUrl bodyImageMediumUrl READ bodyImageMediumUrl)
+ Q_PROPERTY(QUrl bodyImageLargeUrl READ bodyImageLargeUrl)
+
+ // WeatherTemplate
+ Q_PROPERTY(QString weatherCurrentTemperature READ weatherCurrentTemperature)
+ Q_PROPERTY(QUrl weatherCurrentWeatherIconSmallUrl READ weatherCurrentWeatherIconSmallUrl)
+ Q_PROPERTY(QUrl weatherCurrentWeatherIconSmallDarkBgUrl READ weatherCurrentWeatherIconSmallDarkBgUrl)
+ Q_PROPERTY(QUrl weatherCurrentWeatherIconMediumUrl READ weatherCurrentWeatherIconMediumUrl)
+ Q_PROPERTY(QUrl weatherCurrentWeatherIconMediumDarkBgUrl READ weatherCurrentWeatherIconMediumDarkBgUrl)
+ Q_PROPERTY(QUrl weatherCurrentWeatherIconLargeUrl READ weatherCurrentWeatherIconLargeUrl)
+ Q_PROPERTY(QUrl weatherCurrentWeatherIconLargeDarkBgUrl READ weatherCurrentWeatherIconLargeDarkBgUrl)
+
+ Q_PROPERTY(QString weatherLowTemperature READ weatherLowTemperature)
+ Q_PROPERTY(QUrl weatherLowTemperatureArrowSmallUrl READ weatherLowTemperatureArrowSmallUrl)
+ Q_PROPERTY(QUrl weatherLowTemperatureArrowSmallDarkBgUrl READ weatherLowTemperatureArrowSmallDarkBgUrl)
+ Q_PROPERTY(QUrl weatherLowTemperatureArrowMediumUrl READ weatherLowTemperatureArrowMediumUrl)
+ Q_PROPERTY(QUrl weatherLowTemperatureArrowMediumDarkBgUrl READ weatherLowTemperatureArrowMediumDarkBgUrl)
+ Q_PROPERTY(QUrl weatherLowTemperatureArrowLargeUrl READ weatherLowTemperatureArrowLargeUrl)
+ Q_PROPERTY(QUrl weatherLowTemperatureArrowLargeDarkBgUrl READ weatherLowTemperatureArrowLargeDarkBgUrl)
+
+ Q_PROPERTY(QString weatherHighTemperature READ weatherHighTemperature)
+ Q_PROPERTY(QUrl weatherHighTemperatureArrowSmallUrl READ weatherHighTemperatureArrowSmallUrl)
+ Q_PROPERTY(QUrl weatherHighTemperatureArrowSmallDarkBgUrl READ weatherHighTemperatureArrowSmallDarkBgUrl)
+ Q_PROPERTY(QUrl weatherHighTemperatureArrowMediumUrl READ weatherHighTemperatureArrowMediumUrl)
+ Q_PROPERTY(QUrl weatherHighTemperatureArrowMediumDarkBgUrl READ weatherHighTemperatureArrowMediumDarkBgUrl)
+ Q_PROPERTY(QUrl weatherHighTemperatureArrowLargeUrl READ weatherHighTemperatureArrowLargeUrl)
+ Q_PROPERTY(QUrl weatherHighTemperatureArrowLargeDarkBgUrl READ weatherHighTemperatureArrowLargeDarkBgUrl)
+ // weatherForecast array ignored for now
+
+public:
+ explicit GuiMetadata(QUrl &url, QQmlContext *context, QObject * parent = Q_NULLPTR);
+ virtual ~GuiMetadata();
+
+ QString type() { return m_type; }
+ QString title() { return m_title; }
+ QString subtitle() { return m_subtitle; }
+
+ // BodyTemplate1/2
+ QString bodyText() { return m_bodyText; }
+
+ // BodyTemplate2
+ QUrl bodyImageSmallUrl() { return m_bodyImageSmallUrl; }
+ QUrl bodyImageMediumUrl() { return m_bodyImageMediumUrl; }
+ QUrl bodyImageLargeUrl() { return m_bodyImageLargeUrl; }
+
+ // WeatherTemplate
+ QString weatherCurrentTemperature() { return m_weatherCurrentTemperature; }
+ QUrl weatherCurrentWeatherIconSmallUrl() { return m_weatherCurrentWeatherIconSmallUrl; }
+ QUrl weatherCurrentWeatherIconSmallDarkBgUrl() { return m_weatherCurrentWeatherIconSmallDarkBgUrl; }
+ QUrl weatherCurrentWeatherIconMediumUrl() { return m_weatherCurrentWeatherIconMediumUrl; }
+ QUrl weatherCurrentWeatherIconMediumDarkBgUrl() { return m_weatherCurrentWeatherIconMediumDarkBgUrl; }
+ QUrl weatherCurrentWeatherIconLargeUrl() { return m_weatherCurrentWeatherIconLargeUrl; }
+ QUrl weatherCurrentWeatherIconLargeDarkBgUrl() { return m_weatherCurrentWeatherIconLargeDarkBgUrl; }
+
+ QString weatherLowTemperature() { return m_weatherLowTemperature; }
+ QUrl weatherLowTemperatureArrowSmallUrl() { return m_weatherLowTemperatureArrowSmallUrl; }
+ QUrl weatherLowTemperatureArrowSmallDarkBgUrl() { return m_weatherLowTemperatureArrowSmallDarkBgUrl; }
+ QUrl weatherLowTemperatureArrowMediumUrl() { return m_weatherLowTemperatureArrowMediumUrl; }
+ QUrl weatherLowTemperatureArrowMediumDarkBgUrl() { return m_weatherLowTemperatureArrowMediumDarkBgUrl; }
+ QUrl weatherLowTemperatureArrowLargeUrl() { return m_weatherLowTemperatureArrowLargeUrl; }
+ QUrl weatherLowTemperatureArrowLargeDarkBgUrl() { return m_weatherLowTemperatureArrowLargeDarkBgUrl; }
+
+ QString weatherHighTemperature() { return m_weatherHighTemperature; }
+ QUrl weatherHighTemperatureArrowSmallUrl() { return m_weatherHighTemperatureArrowSmallUrl; }
+ QUrl weatherHighTemperatureArrowSmallDarkBgUrl() { return m_weatherHighTemperatureArrowSmallDarkBgUrl; }
+ QUrl weatherHighTemperatureArrowMediumUrl() { return m_weatherHighTemperatureArrowMediumUrl; }
+ QUrl weatherHighTemperatureArrowMediumDarkBgUrl() { return m_weatherHighTemperatureArrowMediumDarkBgUrl; }
+ QUrl weatherHighTemperatureArrowLargeUrl() { return m_weatherHighTemperatureArrowLargeUrl; }
+ QUrl weatherHighTemperatureArrowLargeDarkBgUrl() { return m_weatherHighTemperatureArrowLargeDarkBgUrl; }
+
+signals:
+ void renderTemplate();
+ void clearTemplate();
+
+private:
+ MessageEngine *m_mloop;
+ QQmlContext *m_context;
+
+ void clearMetadata();
+ bool parseImageMetadata(QJsonObject &imageObj,
+ QUrl &smallUrl, QUrl &mediumUrl, QUrl &largeUrl,
+ QUrl *pSmallDarkBgUrl = NULL, QUrl *pMediumDarkBgUrl = NULL, QUrl *pLargeDarkBgUrl = NULL);
+
+ bool updateMetadata(QJsonObject data);
+ bool updateBodyMetadata(QJsonObject &data);
+ bool updateWeatherMetadata(QJsonObject &data);
+
+ void onConnected();
+ void onDisconnected();
+ void onMessageReceived(MessageType, Message*);
+
+ const QStringList events {
+ "render_template",
+ "clear_template",
+ };
+
+ QString m_type = "";
+ QString m_title = "";
+ QString m_subtitle = "";
+
+ // BodyTemplate1/2
+ QString m_bodyText = "";
+
+ // BodyTemplate2
+ QUrl m_bodyImageSmallUrl = QString("");
+ QUrl m_bodyImageMediumUrl = QString("");
+ QUrl m_bodyImageLargeUrl = QString("");
+
+ // WeatherTemplate
+ QString m_weatherCurrentTemperature = "";
+ QUrl m_weatherCurrentWeatherIconSmallUrl = QString("");
+ QUrl m_weatherCurrentWeatherIconSmallDarkBgUrl = QString("");
+ QUrl m_weatherCurrentWeatherIconMediumUrl = QString("");
+ QUrl m_weatherCurrentWeatherIconMediumDarkBgUrl = QString("");
+ QUrl m_weatherCurrentWeatherIconLargeUrl = QString("");
+ QUrl m_weatherCurrentWeatherIconLargeDarkBgUrl = QString("");
+
+ QString m_weatherLowTemperature = "";
+ QUrl m_weatherLowTemperatureArrowSmallUrl = QString("");
+ QUrl m_weatherLowTemperatureArrowSmallDarkBgUrl = QString("");
+ QUrl m_weatherLowTemperatureArrowMediumUrl = QString("");
+ QUrl m_weatherLowTemperatureArrowMediumDarkBgUrl = QString("");
+ QUrl m_weatherLowTemperatureArrowLargeUrl = QString("");
+ QUrl m_weatherLowTemperatureArrowLargeDarkBgUrl = QString("");
+
+ QString m_weatherHighTemperature = "";
+ QUrl m_weatherHighTemperatureArrowSmallUrl = QString("");
+ QUrl m_weatherHighTemperatureArrowSmallDarkBgUrl = QString("");
+ QUrl m_weatherHighTemperatureArrowMediumUrl = QString("");
+ QUrl m_weatherHighTemperatureArrowMediumDarkBgUrl = QString("");
+ QUrl m_weatherHighTemperatureArrowLargeUrl = QString("");
+ QUrl m_weatherHighTemperatureArrowLargeDarkBgUrl = QString("");
+};
+
+#endif // GUIMETADATA_H