/** * @RDE_HEADER@ * OperatorManangement - Operator Edit Dialog * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2016-02-29 */ #pragma once #include #include #include #include #include #include #include #include #include namespace Ui { class AudioSettingsDialog; } namespace LtsSession { class LtsSessionDataDds; } class QItemSelection; namespace AudioVideoManagement { struct StreamData; class AvailStreamsModel; class AvailStreamsFilter; class AllocatedStreamsModel; class AudioSettingsDialog : public LtsWidgets::LtsDialog , protected AudioVideoManagement::Interface::Ftc::ModifyCnrTvcProfileReplyHandler , protected AudioVideoManagement::Interface::Ftc::RemoveCnrTvcProfileReplyHandler { Q_OBJECT public: explicit AudioSettingsDialog(QWidget *parent = nullptr); ~AudioSettingsDialog(); bool init(OperatorManagement::Interface::Dtc *opmDtc, AudioVideoManagement::Interface::Dtc *avmDtc, AudioVideoManagement::Interface::Ftc *avmFtc, LtsSession::LtsSessionDataDds *session); void onModifyCnrTvcProfileReply(const Core::FunctionReplyObject &replyObject) override; void onRemoveCnrTvcProfileReply(const Core::FunctionReplyObject &replyObject) override; private: enum class CircuitChoice { None, Cnr, Tvc }; void retranslate() override; bool apply() override final; bool applyModify(); bool applyRemove(); void fillOperatorBox(); void fillOperatorList(); private slots: void onOperatorChanged(const OperatorManagement::User &data, DataModification modType); void onCnrTvcProfileChanged(const AudioVideoManagement::CnrTvcProfile &data, DataModification modType); void onUpButtonClicked(); void onDownButtonClicked(); void onSelectionChangedAllocation(const QItemSelection &selected, const QItemSelection &deselected); void onSelectionOperatorChanged(const int index); void onDroppedInAllocated(const QVector &streams); void onDroppedInAvailable(const QVector &streams); void onEntryRemoved(const StreamData &stream); private: StreamData toStreamData(const CnrTvcProfileData &profileEntry) const; AudioVideoManagement::Interface::Dtc *m_avmDtc{nullptr}; AudioVideoManagement::Interface::Ftc *m_avmFtc{nullptr}; int m_operatorId{-1}; //!< currently displayed operator QMap m_operatorMap; QMap m_cnrTvcProfileMap; // all dds-Configs key = DDS-ID AvailStreamsModel *m_modelAvailable{nullptr}; AvailStreamsFilter *m_filterAvailable{nullptr}; AllocatedStreamsModel *m_modelAllocated{nullptr}; Ui::AudioSettingsDialog *m_ui{nullptr}; LtsUtils::RequestHelper *m_requestHelper{nullptr}; LtsSession::LtsSessionDataDds *m_session{nullptr}; LOGGER_T m_logger; }; }