void CDExtraHandler::processInt(CAMBEData& data) { if (m_linkState != DEXTRA_LINKED) return; if (m_dExtraId != data.getId()) return; m_inactivityTimer.reset(); m_dExtraSeq = data.getSeq(); // Send the header every 21 frames if (m_dExtraSeq == 0U) m_destination->process(*m_header, AS_DUP); // Copy the data to ensure it remains unchanged CAMBEData temp(data); m_destination->process(temp, AS_DEXTRA); if (temp.isEnd()) { delete m_header; m_header = NULL; m_dExtraId = 0x00U; m_dExtraSeq = 0x00U; m_inactivityTimer.stop(); } }
void CDPlusHandler::processInt(CAMBEData& data) { unsigned int id = data.getId(); if (m_dPlusId != id) return; m_dPlusSeq = data.getSeq(); // Send the header every 21 frames if (m_dPlusSeq == 0U) m_destination->process(*m_header, AS_DUP); m_inactivityTimer.reset(); m_pollInactivityTimer.reset(); m_destination->process(data, AS_DPLUS); if (data.isEnd()) { m_dPlusId = 0x00U; m_dPlusSeq = 0x00U; delete m_header; m_header = NULL; m_inactivityTimer.stop(); } }
void CCCSHandler::process(CAMBEData& data) { CHeaderData& header = data.getHeader(); unsigned int seqNo = data.getSeq(); unsigned int id = data.getId(); if (m_state != CS_CONNECTED && m_state != CS_ACTIVE) return; // This is a new incoming CCS call if (m_state == CS_CONNECTED) { m_yourCall = header.getMyCall1(); m_local = header.getYourCall(); m_direction = DIR_INCOMING; m_time = ::time(NULL); m_state = CS_ACTIVE; m_stateChange = true; m_inactivityTimer.start(); m_handler->ccsLinkMade(m_yourCall); wxLogMessage(wxT("CCS: New incoming link to %s from %s"), m_local.c_str(), m_yourCall.c_str()); } m_pollInactivityTimer.reset(); m_inactivityTimer.reset(); if (m_id != id) { // Write to Header.log if it's enabled if (m_headerLogger != NULL) m_headerLogger->write(wxT("CCS"), header); header.setCQCQCQ(); m_handler->process(header, DIR_INCOMING, AS_CCS); m_id = id; } else if (seqNo == 0U) { header.setCQCQCQ(); m_handler->process(header, DIR_INCOMING, AS_DUP); } m_handler->process(data, DIR_INCOMING, AS_CCS); }