/** * Handler for the HMI language * $Id$ * $HeadURL$ * $Author$ */ #include "object_video_receiver.h" #include "dds_handler.h" #include "logger.h" namespace AudioVideoManagement { //------------------------------------------------------------------------------------------------------------- ObjectVideoReceiver::ObjectVideoReceiver(Interface::Dts *dts, DatabaseInterface *db) : m_dts(dts) , m_db(db) , m_logger(getLogger("ObjectVideoReceiver")) { } //------------------------------------------------------------------------------------------------------------- ObjectVideoReceiver::~ObjectVideoReceiver() { } //------------------------------------------------------------------------------------------------------------- Core::FunctionReplyObject ObjectVideoReceiver::createObject(const VideoReceiver &data) { m_data = data; if (m_data.id() <= 0) { Database::AvmVideoReceiver dbData; dbData = toDbData(data); if (!m_db->insert(dbData)) return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting AvmVideoReceiver-data into database")); m_data.id(dbData.id); DEBUG_LOG(m_logger) << "New Id: " << m_data.id(); } // Publish Data via DTS onPublishData(); return Core::FunctionReplyObject(m_data.id()); } //------------------------------------------------------------------------------------------------------------- Core::FunctionReplyObject ObjectVideoReceiver::updateObject(const VideoReceiver &data) { m_data = data; DEBUG_LOG(m_logger) << "ObjectVideoReceiver::updateObject id=" << data.id() << " isActive=" << data.isActive() << " hostName=" << data.hostName() << " isLocked=" << data.isLocked(); Database::AvmVideoReceiver dbData(toDbData(data)); if (!m_db->update(dbData)) return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Error updating VideoReceiver2 into database")); DEBUG_LOG(m_logger) << "Data changed for VideoReceiver Id: " << data.id(); // Publish Data via DTS onPublishData(); return Core::FunctionReplyObject(data.id()); } //------------------------------------------------------------------------------------------------------------- Core::FunctionReplyObject ObjectVideoReceiver::removeObject() { if (!m_db->removeAvmVideoReceiver(m_data.id())) return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Video Receiver with id %1 can not be removed from DB")).arg(m_data.id()); if (!m_dts->removeVideoReceiverByKey(m_data.id())) return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Video Receiver with id %1 can not be removed from DDS")).arg(m_data.id()); return Core::FunctionReplyObject(m_data.id()); } //------------------------------------------------------------------------------------------------------------- void ObjectVideoReceiver::onPublishData() { INFO_LOG(m_logger) << "Publish MvsVideoReceiver-data to dds (" << m_data.id() << ") ..."; if (!m_dts->publish(m_data)) ERROR_LOG(m_logger) << "Error publishing MvsVideoReceiver-data to dds"; } //------------------------------------------------------------------------------------------------------------- Database::AvmVideoReceiver ObjectVideoReceiver::toDbData(const VideoReceiver &ddsData) { Database::AvmVideoReceiver dbData; dbData.id = ddsData.id(); dbData.streamName = QString::fromStdString(ddsData.streamName()); dbData.mainStructureElementId = ddsData.mainStructureElementId(); dbData.teamId = ddsData.teamId(); dbData.isActive = ddsData.isActive(); dbData.info = QString::fromStdString(ddsData.info()); dbData.hostName = QString::fromStdString(ddsData.hostName()); dbData.frequency = ddsData.frequency(); dbData.isLocked = ddsData.isLocked(); return dbData; } //------------------------------------------------------------------------------------------------------------- AudioVideoManagement::VideoReceiver ObjectVideoReceiver::toDdsData(const Database::AvmVideoReceiver &dbData) { AudioVideoManagement::VideoReceiver ddsData; ddsData.id(dbData.id); ddsData.streamName(dbData.streamName.toStdString()); ddsData.mainStructureElementId(dbData.mainStructureElementId); ddsData.teamId(dbData.teamId); ddsData.isActive(dbData.isActive); ddsData.isLocked(dbData.isLocked); ddsData.info(dbData.info.toStdString()); ddsData.hostName(dbData.hostName.toStdString()); ddsData.frequency(dbData.frequency); // init data not in db ddsData.dbm(0); ddsData.snr(0); return ddsData; } // end of toDdsData() } // Namespace AudioVideoManagement