109 lines
3.2 KiB
C++
Executable File
109 lines
3.2 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* OperatorManangement - Operator Edit Dialog
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by Christian Ehrlicher, SLSE, 2016-02-29
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <OperatorManagement/opm_dtc.h>
|
|
#include <AudioVideoManagement/avm_dtc.h>
|
|
#include <AudioVideoManagement/logger.h>
|
|
#include <LtsWidgets/lts_dialog.h>
|
|
#include <LtsUtilsGuiDds/request_helper.h>
|
|
#include <AudioVideoManagement/avm_ftc.h>
|
|
#include <QVector>
|
|
#include <QMap>
|
|
#include <QString>
|
|
|
|
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<StreamData> &streams);
|
|
void onDroppedInAvailable(const QVector<StreamData> &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<int, QString> m_operatorMap;
|
|
QMap<int, AudioVideoManagement::CnrTvcProfile> 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;
|
|
};
|
|
|
|
}
|