/** * @RDE_HEADER@ * SetScript * $Id$ * $HeadURL$ * $Author$ * Created by Astrid Müller, SGAS, 2018-02-14 */ #pragma once #include "icommand.h" #include #include #include namespace AudioVideoManagement { class IAvaComm; class IAvaCommandDoneObserver; namespace AvaCommands { /** * The response to setScript depends on whether a script is currently * set or not. * The response to the actual setScript contains -- among other things -- * a ScriptInfo and a ScriptState. * @author Astrid Müller */ class SetScript final : public ICommand { Q_OBJECT public: SetScript(IAvaComm *comm, IAvaCommandDoneObserver *doneObserver, const QString &dialogId, const QString &scriptName, AvaScriptSource source, const QVector &streams); void send() override; QString debug() const override { return QLatin1String("SetScript"); } /** * May only be called after the command has successfully completed. */ ///{@ AvaStreamInfo scriptInfo() const { return *m_scriptInfo; } AvaStreamState scriptState() const { return *m_scriptState; } ///@} private slots: void onScriptInfoReceived(const QString &dialogId, const QString &scriptName, const AvaStreamInfo &scriptInfo); void onScriptStateReceived(const QString &dialogId, const QString &scriptName, AvaStreamState scriptState); private: void done(); const QString m_dialogId; const QString m_scriptName; AvaScriptSource m_scriptSource; const QVector m_streams; boost::optional m_scriptInfo; boost::optional m_scriptState; IAvaComm *m_comm; IAvaCommandDoneObserver *m_observer; }; } } // namespace AudioVideoManagement::AvaCommands