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/voice.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/voice.h')
-rw-r--r-- | voice/voice.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/voice/voice.h b/voice/voice.h new file mode 100644 index 0000000..1da7ca6 --- /dev/null +++ b/voice/voice.h @@ -0,0 +1,74 @@ +/* + * 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 VOICE_H +#define VOICE_H + +#include <QDebug> +#include <QObject> +#include <QJsonArray> +#include <QtQml/QQmlContext> +#include "message.h" + +class MessageEngine; +class ResponseMessage; +class VoiceMessage; +class VoiceAgentRegistry; + +class Voice : public QObject +{ + Q_OBJECT + + public: + explicit Voice(QUrl &url, QQmlContext *context, + QObject * parent = Q_NULLPTR); + virtual ~Voice(); + + // controls + Q_INVOKABLE void scan(); + Q_INVOKABLE void getCBLpair(QString id); + + private: + MessageEngine *m_loop; + VoiceAgentRegistry *m_var; + + void subscribeAgentToVshlEvents(QString id); + void unsubscribeAgentFromVshlEvents(QString id); + void subscribeAgentToCblEvents(QString id); + void parseAgentsList(QJsonArray agents); + void processVshlEvent(VoiceMessage *vmsg); + void processCblEvent(VoiceMessage *vmsg); + + void processEvent(VoiceMessage *vmsg); + void processReply(ResponseMessage *rmsg); + + // slots + void onConnected(); + void onDisconnected(); + void onMessageReceived(MessageType type, Message *msg); + + const QStringList vshl_events { + "voice_authstate_event", + "voice_dialogstate_event", + "voice_connectionstate_event", + }; + const QStringList cbl_events { + "voice_cbl_codepair_received_event", + "voice_cbl_codepair_expired_event", + }; +}; + +#endif // VOICE_H |