/** * @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 #include #include 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 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