/** * Handler for player data * $Id$ * $HeadURL$ * $Author$ * Created by hjl, SLSE, 2016-07-05 */ #pragma once #include "dds_handler.h" #include "logger.h" #include #include #include namespace VideoOverlayManagement { class HandlerParticipantData : public QObject { Q_OBJECT public: explicit HandlerParticipantData(const std::shared_ptr &ddsHandler, QObject *parent = nullptr); ~HandlerParticipantData(); /** * Initialize the handler to manage information from player management */ bool init(); /** * Get equipment number for the given participant * @param participantId participant id to get the equipment number for * @return equipment number or 0 in case of failure */ int getEquipmentNumber(int participantId) const; /** * Get all participants which are assigned to a room * @return QMap */ QMap getAllAssignedParticipants() const; Q_SIGNALS: /** * Signal is emitted when participant position changed (Signal to HandlerOverlay) */ void participantPositionChanged(int oldRoomId, int newRoomId, int participantId); private Q_SLOTS: /** * Handle the signals from 'ParticipantManagement' */ void onParticipantChanged(const ParticipantManagement::Participant &data, DataModification modType); void onParticipantPositionChanged(const ParticipantManagement::ParticipantPosition &data, DataModification modType); private: // methoden private: // attributes std::shared_ptr m_ddsHandler; ///< Pointer to VOM DDS handler std::shared_ptr m_dtc; ///< Pointer to DTC ParticipantManagement interface object QMap m_partId2EquipNoMap; ///< Reference map participant (player) to equipment number (participantId, equipmentNo) QMap m_participantsPositionMap; ///< Reference map participant (player) to room id (participantId, roomId) NGL::INGLLogger &m_logger; ///< Interface to the Logging-Facility }; } // namespace VideoOverlayManagement