/** * @RDE_HEADER@ * SetAbsPosition * $Id$ * $HeadURL$ * $Author$ * Created by Christian Fröbel, NLSE, 2018-02-28 */ #pragma once #include #include #include #include namespace AudioVideoManagement { class IAvaComm; class IAvaCommandDoneObserver; namespace AvaCommands { /** * @author Christian Fröbel */ class SetAbsPosition final : public ICommand { Q_OBJECT public: SetAbsPosition(IAvaComm *comm, IAvaCommandDoneObserver *doneObserver, const QString &dialogId, const QString &streamName, AvaTimePoint pos); void send() override; QString debug() const override { return QLatin1String("SetAbsPosition: ") + m_streamName + QLatin1String(" to ") + toString(m_pos); } bool canTimeout() const override { return true; } bool nullifies(ICommand *other) const override; private slots: void onOk(); void onStreamPositionReceived(const QString &dialogId, const QString &streamName, AvaTimePoint); private: void done(); const QString m_dialogId; const QString m_streamName; const AvaTimePoint m_pos; bool m_ok{false}; IAvaComm *m_comm; IAvaCommandDoneObserver *m_observer; }; }} // namespace AudioVideoManagement::AvaCommands