Files
qt5-legatus-legacy/Lts/Services/AudioVideoManagement/stream_name_mapping_to_ava.cpp
T
2026-08-13 18:33:10 +02:00

60 lines
1.6 KiB
C++
Executable File

/**
* @RDE_HEADER@
* StreamNameMappingToAva
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Fröbel, NLSE, 2018-03-12
*/
#include "stream_name_mapping_to_ava.h"
#include "stream_name_mapping.h"
#include "ava_session.h"
#include "ava_control.h"
#include <QString>
#include <QtGlobal>
#include <vector>
namespace AudioVideoManagement
{
StreamNameMappingToAva::StreamNameMappingToAva(AvaSession *avaSession, StreamNameMapping *mapping)
: m_avaSession(avaSession)
, m_mapping(mapping)
{
Q_ASSERT(avaSession);
Q_ASSERT(mapping);
QObject::connect(m_avaSession, &AvaSession::sessionEstablished, this, &StreamNameMappingToAva::onSessionEstablished);
QObject::connect(m_avaSession, &AvaSession::disconnected, this, &StreamNameMappingToAva::onDisconnected);
QObject::connect(m_mapping, &StreamNameMapping::changed, this, &StreamNameMappingToAva::onNamesChanged);
if (m_avaSession->isEstablished())
onSessionEstablished();
}
void StreamNameMappingToAva::onSessionEstablished()
{
m_established = true;
std::vector<StreamNameMapping::Names> names = m_mapping->allNames();
for (const auto &element : names)
m_avaSession->control()->defineStreamNameMapping(element.internal, element.display);
}
void StreamNameMappingToAva::onDisconnected()
{
m_established = false;
}
void StreamNameMappingToAva::onNamesChanged(int32_t mountingPointId, const QString &internalName, const QString &displayName)
{
Q_UNUSED(mountingPointId);
if (!m_established)
return;
m_avaSession->control()->defineStreamNameMapping(internalName, displayName);
}
} // namespace AudioVideoManagement