Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { isConnected = false; ui->setupUi(this); setWindowTitle("WiFlyControlPad"); connect(ui->bExit, SIGNAL(clicked()), this, SLOT(close())); connect(ui->bClear, SIGNAL(clicked()), ui->datastream, SLOT(clear())); connect(ui->bControl, SIGNAL(clicked()), this, SLOT(handleControl())); socket = new QTcpSocket(this); connect(socket, SIGNAL(connected()), this, SLOT(connectedToSocket())); }
void RTMP::handlePacket(const RTMPPacket& packet) { const PacketType t = packet.header.packetType; log_debug("Received %s", t); switch (t) { case PACKET_TYPE_CHUNK_SIZE: handleChangeChunkSize(*this, packet); break; case PACKET_TYPE_BYTES_READ: break; case PACKET_TYPE_CONTROL: handleControl(*this, packet); break; case PACKET_TYPE_SERVERBW: handleServerBW(*this, packet); break; case PACKET_TYPE_CLIENTBW: handleClientBW(*this, packet); break; case PACKET_TYPE_AUDIO: if (!m_mediaChannel) m_mediaChannel = packet.header.channel; break; case PACKET_TYPE_VIDEO: if (!m_mediaChannel) m_mediaChannel = packet.header.channel; break; case PACKET_TYPE_FLEX_STREAM_SEND: LOG_ONCE(log_unimpl(_("unsupported packet received"))); break; case PACKET_TYPE_FLEX_SHARED_OBJECT: LOG_ONCE(log_unimpl(_("unsupported packet received"))); break; case PACKET_TYPE_FLEX_MESSAGE: { LOG_ONCE(log_unimpl(_("partially supported packet %s received"))); _messageQueue.push_back(packet.buffer); break; } case PACKET_TYPE_METADATA: handleMetadata(*this, payloadData(packet), payloadSize(packet)); break; case PACKET_TYPE_SHARED_OBJECT: LOG_ONCE(log_unimpl(_("packet %s received"))); break; case PACKET_TYPE_INVOKE: _messageQueue.push_back(packet.buffer); break; case PACKET_TYPE_FLV: _flvQueue.push_back(packet.buffer); break; default: log_error(_("Unknown packet %s received"), t); } }
/* * int linestream_receiveFrame(unsigned char *dest, unsigned maxsize) * receive a full frame * */ int linestream_receiveFrame(unsigned char *dest, unsigned maxsize) { unsigned char *dptr = dest; unsigned int bIn; unsigned int ctrl = 0; unsigned int checksum=0; state = CONTROL; do { bIn = readData(); if (bIn==HDLC_escapeFlag) { unEscaping=1; continue; } if (bIn==HDLC_frameFlag && !unEscaping) { if (inFrame) { inFrame = 0; /* Check frame type */ if (state==CONTROL) return -1; /* Error, no data */ state = CONTROL; /* Checksum computation */ if (checksum!=0) { continue; } if (!(ctrl & 0x80)) { /* Control frame */ handleControl(ctrl,dest, dptr-dest); if (ctrl==HDLC_Control_Reset) { /* Reset Ack frame */ *--dptr; } continue; } else { /* Data frame */ if ( (ctrl & 0x7) != rxSeq ) { /* out of order */ sendNAK(); continue; } } /* Ack this frame */ rxSeq++; rxSeq &= 0x7; sendACK(); // removing chk *--dptr = '\0'; return dptr - dest; } else { /* Beginning of packet */ inFrame = 1; state = CONTROL; checksum=0xaa; } } else { if (!inFrame) continue; if (unEscaping) { bIn^=HDLC_escapeXOR; unEscaping=0; } checksum^=bIn; /* State processing */ switch (state) { case CONTROL: ctrl = bIn; state=DATA; break; case DATA: if (maxsize-- == 0) { return -1; /* Overflow */ } *dptr++=bIn; break; } } } while (1); }