60 lines
1.6 KiB
C++
Executable File
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
|