Files
qt5-legatus-legacy/Lts/Plugins/AudioVideoManagement/Gui/AVMenuEdit/AudioSettings/audio_settings_dialog.h
T
2026-08-13 18:33:10 +02:00

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;
};
}