void VncServer::invalidate(int viewNum, int x, int y, int w, int h, const VncServer::ViewParameters ¶m, bool lastView) { if (m_numClients - m_numRhrClients > 0) { std::cerr << "Non-RHR clients: " << m_numClients - m_numRhrClients << std::endl; rfbMarkRectAsModified(m_screen, x, y, w, h); } if (m_numRhrClients > 0) { encodeAndSend(viewNum, x, y, w, h, param, lastView); } }
/** * @brief Begins a P2PPE Transmission with a prefix * @param[in] data The prefix data to send * @param[in] dataCount The number of prefix data bytes * @param[in] data The data to send * @param[in] dataCount The number of data bytes * @param[in] sendHandler The actual send function */ void P2PPE_TransmissionPrefixed(register const uint8_t*const prefix, register uint8_t prefixCount, register const uint8_t*const data, register uint8_t dataCount, register void (*sendHandler)(uint8_t dataByte)) { /* send the preamble */ for (int i=0; i<DEFAULT_PREAMBLE_LENGTH; ++i) { sendHandler(default_preamble[i]); } /* send the header */ sendHandler(SOH); sendHandler(dataCount + prefixCount); /* send the data frame */ #if 0 sendHandler(STX); #endif /* send prefix */ for (int i=0; i<prefixCount; ++i) { register uint8_t byte = prefix[i]; encodeAndSend(byte, sendHandler); } /* send data */ for (int i=0; i<dataCount; ++i) { register uint8_t byte = data[i]; encodeAndSend(byte, sendHandler); } /* send data frame end */ #if 0 sendHandler(ETX); #endif sendHandler(EOT); }