diff options
author | Raquel Medina <raquel.medina@konsulko.com> | 2019-11-29 23:01:41 +0100 |
---|---|---|
committer | Raquel Medina <raquel.medina@konsulko.com> | 2019-11-29 23:41:25 +0100 |
commit | da091649e775b23a35eb88df1c2cf9ce3fb350f7 (patch) | |
tree | 0eb475a54336b12c6796f93dbedce60d2e30199d /voice/voiceagentregistry.h | |
parent | 5cd66764ad6f7397feeb3bf30f24c58ab62c1064 (diff) |
voice: add initial support for voice agents configuration
Bug-AGL: SPEC-2981
Signed-off-by: Raquel Medina <raquel.medina@konsulko.com>
Change-Id: I0195d914dc10f4fcdea1cb6df0e6a5859ad8269d
Diffstat (limited to 'voice/voiceagentregistry.h')
-rw-r--r-- | voice/voiceagentregistry.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/voice/voiceagentregistry.h b/voice/voiceagentregistry.h new file mode 100644 index 0000000..2a69294 --- /dev/null +++ b/voice/voiceagentregistry.h @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2019 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 VOICEAGENTREGISTRY_H +#define VOICEAGENTREGISTRY_H + +#include <QDebug> +#include <QObject> +#include <QJsonArray> +#include <QtQml/QQmlContext> + +class Voice; +class VoiceAgentModel; + +class VoiceAgentRegistry : public QObject +{ + Q_OBJECT + public: + explicit VoiceAgentRegistry(Voice *voice, QQmlContext *context, + QObject *parent); + virtual ~VoiceAgentRegistry(); + + enum AgentConnectionState { + DISCONNECTED = 0, + CONNECTED, + }; + Q_ENUM(AgentConnectionState) + + enum VoiceDialogState { + IDLE = 0, + LISTENING, + THINKING, + SPEAKING, + MICROPHONEOFF, + }; + Q_ENUM(VoiceDialogState) + + enum ServiceAuthState { + UNITIALIZED = 0, + REFRESHED, + }; + Q_ENUM(ServiceAuthState) + + QString addAgent(QJsonObject va); + bool removeAgent(QString id); + void clearRegistry(); + QStringList getAgentsListById() const; + QString getDefaultId() const; + void setDefaultId(QString id); + void setAuthState(QString id, ServiceAuthState state); + void setConnectionState(QString id, AgentConnectionState state); + void setDialogState(QString id, VoiceDialogState state); + void updateCblPair(QString id, QString code, QString url, + bool expired); + int stringToEnum(QString value, QString enumtype); + private: + VoiceAgentModel *m_model; + Voice *m_voice; + QString m_default_aid; + QStringList m_regids; +}; + +#endif // VOICEAGENTREGISTRY_H |